1 function setContainerMinHeight( applicableDiv){
\r
3 if ( $(applicableDiv).length > 0 ) {
\r
4 //var h = $('.header').height(); div.header is not found
\r
5 var f = $('.footer').height();
\r
6 var w = $(window).height();
\r
7 var pTop = parseInt (($(applicableDiv).css('padding-top').replace("px", "")) );
\r
8 var pBottom = parseInt (($(applicableDiv).css('padding-bottom').replace("px", "")));
\r
10 var c = w - ( f+pTop+pBottom+36);//36 is header's height.
\r
11 $(applicableDiv).css('min-height', c);
\r
16 function tableFixedCols(table, firstColWidth ){
\r
17 ColsNum = $('table th').size();
\r
18 var ColWidth = parseFloat( (100 - firstColWidth)/ColsNum ).toFixed(0);
\r
19 var ColWidthPercentage = ColWidth+'%';
\r
20 var firstColWidthPercentage = firstColWidth+'%';
\r
21 $('table th, table td').attr('width',ColWidthPercentage );
\r
22 $('table tr td:first-child, table tr th:first-child').attr('width',firstColWidthPercentage );
\r
26 function addClassHover(hoverEl, applicableEl){
\r
30 $(applicableEl).addClass('red-border')
\r
33 $(applicableEl).removeClass('red-border');
\r
40 $.fn.equalHeights = function(minHeight, maxHeight) {
\r
41 tallest = (minHeight) ? minHeight : 0;
\r
42 this.each(function() {
\r
43 if($(this).height() > tallest) {
\r
44 tallest = $(this).height();
\r
47 if((maxHeight) && tallest > maxHeight) tallest = maxHeight;
\r
48 return this.each(function() {
\r
49 $(this).height(tallest);
\r
56 // fix for iPhone - iPad orientation bug
\r
57 var metas = document.getElementsByTagName('meta');
\r
58 function resetViewport() {
\r
60 if (navigator.userAgent.match(/iPhone/i)) {
\r
61 for (i=0; i<metas.length; i++) {
\r
62 if (metas[i].name == "viewport") {
\r
63 metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
\r
70 window.onorientationchange = function() {
\r
74 function gestureStart() {
\r
75 for (i=0; i<metas.length; i++) {
\r
76 if (metas[i].name == "viewport") {
\r
77 metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
\r
82 if (navigator.userAgent.match(/iPhone/i)) {
\r
83 document.addEventListener("gesturestart", gestureStart, false);
\r
87 $(document).ready(function() {
\r
89 setContainerMinHeight('.container .wrapper');
\r
90 tableFixedCols('my-projects', 25);
\r
92 $('.show-extra').click(function(e) {
\r
94 $(this).parents('.bg-wrap').find('.extra').slideToggle(600);
\r
96 $('.hide-extra').click(function(e) {
\r
98 $(this).parents('.bg-wrap').find('.extra').slideUp(600);
\r
101 $('.box-more p').click(function(e) {
\r
102 $(this).siblings('.clearfix').toggle('slow');
\r
103 $(this).parents('.box-more').toggleClass('border');
\r
106 var fixTopMessageHeight = function() {
\r
107 var topMargin = parseInt($('.mainlogo img').height())+parseInt($('.top-msg').css('marginBottom'));
\r
108 $('.mainlogo').css('marginTop','-'+topMargin+'px');
\r
111 // Uncomment to hide logo upon top message appearance
\r
113 // if ($('.mainlogo img').length > 0) {
\r
114 // $('.mainlogo img').bind('load', fixTopMessageHeight)
\r
116 // fixTopMessageHeight();
\r
119 $('.top-msg a.close').click(function(e) {
\r
120 e.preventDefault();
\r
121 $('.top-msg').animate({
\r
125 }, 1000, function (){
\r
126 $('.top-msg').removeClass('active')
\r
128 $('.mainlogo').animate({
\r
130 }, 1000, function (){
\r
136 $('select.dropkicked').dropkick({
\r
137 change: function (value, label) {
\r
138 $(this).parents('form').submit();
\r
143 $('.with-info select').attr('tabindex','1');
\r
144 $('.with-info select').dropkick();
\r
146 $('.top-msg .success').parents('.top-msg').addClass('success');
\r
147 $('.top-msg .error').parents('.top-msg').addClass('error');
\r
148 $('.top-msg .warning').parents('.top-msg').addClass('warning');
\r
149 $('.top-msg .info').parents('.top-msg').addClass('info');
\r
151 // clouds homepage animation
\r
152 $('#animation a').hover(
\r
157 }, 600, function() {
\r
158 if ($(this).find('img').attr('src').indexOf("_top") == -1) {
\r
159 var src = $(this).find('img').attr('src').replace('.png', '_top.png')
\r
160 $(this).find('img').attr("src", src);
\r
164 $(this).siblings('p').find('img').animate({
\r
170 $(this).animate({top: '0'}, 600, function() {
\r
171 var src = $(this).find('img').attr('src').replace('_top.png', '.png')
\r
172 $(this).find('img').attr("src", src);
\r
174 $(this).siblings('p').find('img').animate({
\r
184 $( "#id_start_date" ).datepicker({
\r
186 defaultDate: "+0",
\r
187 dateFormat: "yy-mm-dd",
\r
188 onSelect: function( selectedDate ) {
\r
189 $( "#id_end_date" ).datepicker( "option", "minDate", selectedDate );
\r
193 $( "#id_end_date" ).datepicker({
\r
194 defaultDate: "+3w",
\r
195 dateFormat: "yy-mm-dd",
\r
196 onSelect: function( selectedDate ) {
\r
197 $( "#id_start_date" ).datepicker( "option", "maxDate", selectedDate );
\r
204 $('table .more-info').click(function(e){
\r
205 e.preventDefault();
\r
206 $(this).toggleClass('open');
\r
207 if ($(this).hasClass('open')){
\r
208 $(this).html('- less info ')
\r
210 $(this).html('+ more info ')
\r
212 $(this).parents('tr').next('tr').toggle();
\r
216 $('.projects .details .edit').click( function(e){
\r
217 e.preventDefault();
\r
218 $(this).parents('.details').children('.data').hide();
\r
219 $(this).parents('.details').children('.editable').slideDown(500, 'linear');
\r
223 $('.editable .form-row').each(function() {
\r
224 if ( $(this).hasClass('with-errors') ){
\r
225 $('.editable').show();
\r
226 $('.projects .details a.edit, .projects .details .data').hide();
\r
232 $("input.leave, input.join").click(function () {
\r
233 $('dialog').hide();
\r
234 $(this).parents('.msg-wrap').find('.dialog').show();
\r
239 $('.msg-wrap .no').click( function(e){
\r
240 e.preventDefault();
\r
241 $(this).parents('.dialog').hide();
\r
244 $('.msg-wrap .yes').click( function(e){
\r
245 e.preventDefault();
\r
246 $(this).parents('.dialog').siblings('form').submit();
\r
249 $('.hidden-submit input[readonly!="True"]').focus(function () {
\r
250 $('.hidden-submit .form-row.submit').slideDown(500);
\r
258 setTimeout(function() {
\r
259 if ($('input#id_username').val()){
\r
260 $('input#id_username').siblings('label').css('opacity','0');
\r
262 if ($('input#id_password').val()){
\r
263 $('input#id_password').siblings('label').css('opacity','0');
\r
270 $('.landing-page .cms').hover(
\r
272 el = $('.cloudbar ul.services li').first();
\r
273 var offset = el.offset();
\r
274 positionX = offset.left;
\r
275 $('#hand').css('left',positionX);
\r
283 $('.landing-page .pithos').hover(
\r
285 el = $('.cloudbar ul.services li:nth-child(3)');
\r
286 var offset = el.offset();
\r
287 positionX = offset.left;
\r
288 left = parseInt(positionX) +20;
\r
289 $('#hand').css('left',left+'px');
\r
297 $('.landing-page .cyclades').hover(
\r
299 el = $('.cloudbar ul.services li:nth-child(2)').first();
\r
300 var offset = el.offset();
\r
301 positionX = offset.left;
\r
302 left = parseInt(positionX) +20;
\r
303 $('#hand').css('left',left+'px');
\r
312 $('.landing-page .dashboard').hover(
\r
314 el = $('.cloudbar .profile');
\r
315 var offset = el.offset();
\r
316 positionX = offset.left +50;
\r
317 $('#hand').css('left',positionX);
\r
325 $('.pagination a.disabled').click(function(e){
\r
326 e.preventDefault();
\r
329 // fix for recaptcha fields
\r
330 $('#okeanos_recaptcha').parents('.form-row').find('.extra-img').hide();
\r
332 fixEl = $('.details .lt');
\r
333 if (fixEl.offset()) {
334 window.fixEloffsetTop = fixEl.offset().top;
\r
339 $(window).resize(function() {
\r
341 setContainerMinHeight('.container .wrapper');
\r
347 /* js for fixed faq/userguide side nav */
\r
348 $(window).scroll(function () {
\r
350 if ( $('.details .lt').height() < $('.details .rt').height() ) {
\r
351 if ($(window).scrollTop() > window.fixEloffsetTop){
\r
352 fixEl.addClass('fixed');
\r
354 fixEl.removeClass('fixed');
\r