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 $('.projects table th, .projects table td').attr('width',ColWidthPercentage );
\r
22 $('.projects table tr td:first-child,.projects 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
88 $(document).ready(function() {
\r
92 setContainerMinHeight('.container .wrapper');
\r
93 tableFixedCols('my-projects', 25);
\r
95 $('.show-extra').click(function(e) {
\r
97 $(this).parents('.bg-wrap').find('.extra').slideToggle(600);
\r
99 $('.hide-extra').click(function(e) {
\r
100 e.preventDefault();
\r
101 $(this).parents('.bg-wrap').find('.extra').slideUp(600);
\r
104 $('.box-more p').click(function(e) {
\r
105 $(this).siblings('.clearfix').toggle('slow');
\r
106 $(this).parents('.box-more').toggleClass('border');
\r
109 var fixTopMessageHeight = function() {
\r
110 var topMargin = parseInt($('.mainlogo img').height())+parseInt($('.top-msg').css('marginBottom'));
\r
111 $('.mainlogo').css('marginTop','-'+topMargin+'px');
\r
114 // Uncomment to hide logo upon top message appearance
\r
116 // if ($('.mainlogo img').length > 0) {
\r
117 // $('.mainlogo img').bind('load', fixTopMessageHeight)
\r
119 // fixTopMessageHeight();
\r
122 $('.top-msg a.close').click(function(e) {
\r
123 e.preventDefault();
\r
124 $('.top-msg').animate({
\r
128 }, 1000, function (){
\r
129 $('.top-msg').removeClass('active')
\r
131 $('.mainlogo').animate({
\r
133 }, 1000, function (){
\r
139 $('select.dropkicked').dropkick({
\r
140 change: function (value, label) {
\r
141 $(this).parents('form').submit();
\r
146 $('.with-info select').attr('tabindex','1');
\r
147 $('.with-info select').dropkick();
\r
149 $('.top-msg .success').parents('.top-msg').addClass('success');
\r
150 $('.top-msg .error').parents('.top-msg').addClass('error');
\r
151 $('.top-msg .warning').parents('.top-msg').addClass('warning');
\r
152 $('.top-msg .info').parents('.top-msg').addClass('info');
\r
154 // clouds homepage animation
\r
155 $('#animation a').hover(
\r
160 }, 300, function() {
\r
161 if ($(this).find('img').attr('src').indexOf("_top") == -1) {
\r
162 var src = $(this).find('img').attr('src').replace('.png', '_top.png')
\r
163 $(this).find('img').attr("src", src);
\r
167 $(this).siblings('p').find('img').animate({
\r
173 $(this).animate({top: '0'}, 300, function() {
\r
174 var src = $(this).find('img').attr('src').replace('_top.png', '.png')
\r
175 $(this).find('img').attr("src", src);
\r
177 $(this).siblings('p').find('img').animate({
\r
187 $( "#id_start_date" ).datepicker({
\r
189 defaultDate: "+0",
\r
190 dateFormat: "yy-mm-dd",
\r
191 onSelect: function( selectedDate ) {
\r
192 $( "#id_end_date" ).datepicker( "option", "minDate", selectedDate );
\r
196 $( "#id_end_date" ).datepicker({
\r
197 defaultDate: "+3w",
\r
198 dateFormat: "yy-mm-dd",
\r
199 onSelect: function( selectedDate ) {
\r
200 $( "#id_start_date" ).datepicker( "option", "maxDate", selectedDate );
\r
207 $('table .more-info').click(function(e){
\r
208 e.preventDefault();
\r
209 $(this).toggleClass('open');
\r
210 if ($(this).hasClass('open')){
\r
211 $(this).html('- less info ')
\r
213 $(this).html('+ more info ')
\r
215 $(this).parents('tr').next('tr').toggle();
\r
219 $('.projects .details .edit').click( function(e){
\r
220 e.preventDefault();
\r
221 $(this).parents('.details').children('.data').hide();
\r
222 $(this).parents('.details').children('.editable').slideDown(500, 'linear');
\r
226 $('.editable .form-row').each(function() {
\r
227 if ( $(this).hasClass('with-errors') ){
\r
228 $('.editable').show();
\r
229 $('.projects .details a.edit, .projects .details .data').hide();
\r
235 $("input.leave, input.join").click(function () {
\r
236 $('dialog').hide();
\r
237 $(this).parents('.msg-wrap').find('.dialog').show();
\r
242 $('.msg-wrap .no').click( function(e){
\r
243 e.preventDefault();
\r
244 $(this).parents('.dialog').hide();
\r
247 $('.msg-wrap .yes').click( function(e){
\r
248 e.preventDefault();
\r
249 $(this).parents('.dialog').siblings('form').submit();
\r
252 $('.hidden-submit input[readonly!="True"]').focus(function () {
\r
253 $('.hidden-submit .form-row.submit').slideDown(500);
\r
261 setTimeout(function() {
\r
262 if ($('input#id_username').val()){
\r
263 $('input#id_username').siblings('label').css('opacity','0');
\r
265 if ($('input#id_password').val()){
\r
266 $('input#id_password').siblings('label').css('opacity','0');
\r
273 $('.landing-page .cms').hover(
\r
275 el = $('.cloudbar ul.services li').first();
\r
276 var offset = el.offset();
\r
277 positionX = offset.left;
\r
278 $('#hand').css('left',positionX);
\r
286 $('.landing-page .pithos').hover(
\r
288 el = $('.cloudbar ul.services li:nth-child(3)');
\r
289 var offset = el.offset();
\r
290 positionX = offset.left;
\r
291 left = parseInt(positionX) +20;
\r
292 $('#hand').css('left',left+'px');
\r
300 $('.landing-page .cyclades').hover(
\r
302 el = $('.cloudbar ul.services li:nth-child(2)').first();
\r
303 var offset = el.offset();
\r
304 positionX = offset.left;
\r
305 left = parseInt(positionX) +20;
\r
306 $('#hand').css('left',left+'px');
\r
315 $('.landing-page .dashboard').hover(
\r
317 el = $('.cloudbar .profile');
\r
318 var offset = el.offset();
\r
319 positionX = offset.left +50;
\r
320 $('#hand').css('left',positionX);
\r
328 $('.pagination a.disabled').click(function(e){
\r
329 e.preventDefault();
\r
332 // fix for recaptcha fields
\r
333 $('#okeanos_recaptcha').parents('.form-row').find('.extra-img').hide();
\r
335 fixEl = $('.details .lt');
\r
336 if (fixEl.length){ window.fixEloffsetTop = fixEl.offset().top;}
\r
339 $(".stats-block li em").equalHeights();
\r
344 $(window).resize(function() {
\r
346 setContainerMinHeight('.container .wrapper');
\r
347 $(".stats-block li em").equalHeights();
\r
353 /* js for fixed faq/userguide side nav */
\r
354 $(window).scroll(function () {
\r
356 if ( $('.details .lt').height() < $('.details .rt').height() ) {
\r
357 if ($(window).scrollTop() > window.fixEloffsetTop){
\r
358 fixEl.addClass('fixed');
\r
360 fixEl.removeClass('fixed');
\r