Merge branch 'feature-newstyles' into develop
[snf-cloudcms] / cloudcms / static / cloudcms / js / common.js
index 030dfbf..583b8f8 100644 (file)
-function setContainerMinHeight(){\r
+function setContainerMinHeight( applicableDiv){\r
+       \r
+    if ( $(applicableDiv).length > 0 ) {\r
+        //var h = $('.header').height(); div.header is not found \r
+        var f = $('.footer').height();\r
+        var w = $(window).height();\r
+        var pTop = parseInt (($(applicableDiv).css('padding-top').replace("px", "")) );\r
+        var pBottom = parseInt (($(applicableDiv).css('padding-bottom').replace("px", "")));\r
+\r
+        var c = w - ( f+pTop+pBottom+36);//36 is header's height.\r
+        $(applicableDiv).css('min-height', c);\r
+    }    \r
+\r
+}\r
+\r
+function tableFixedCols(table, firstColWidth ){\r
+       ColsNum = $('table th').size();\r
+       var ColWidth = parseFloat( (100 - firstColWidth)/ColsNum ).toFixed(0);\r
+       var ColWidthPercentage = ColWidth+'%';\r
+       var firstColWidthPercentage = firstColWidth+'%';\r
+       $('.projects table th, .projects  table td').attr('width',ColWidthPercentage ); \r
+       $('.projects table tr td:first-child,.projects  table tr th:first-child').attr('width',firstColWidthPercentage );\r
+       \r
+}\r
+\r
+function addClassHover(hoverEl, applicableEl){ \r
+       $(hoverEl).hover(\r
+      function () {\r
+        \r
+         $(applicableEl).addClass('red-border')\r
+      }, \r
+      function () {\r
+       $(applicableEl).removeClass('red-border');\r
+    \r
+    });\r
+}\r
+//equal heights\r
\r
+(function($) {\r
+       $.fn.equalHeights = function(minHeight, maxHeight) {\r
+               tallest = (minHeight) ? minHeight : 0;\r
+               this.each(function() {\r
+                       if($(this).height() > tallest) {\r
+                               tallest = $(this).height();\r
+                       }\r
+               });\r
+               if((maxHeight) && tallest > maxHeight) tallest = maxHeight;\r
+               return this.each(function() {\r
+                       $(this).height(tallest);\r
+               });\r
+       }\r
+})(jQuery);\r
+\r
 \r
-    var h = $('.header').height();\r
-    var f = $('.footer').height();\r
-    var w = $(window).height();\r
-    var pTop = parseInt (($('.container .wrapper').css('padding-top').replace("px", "")) );\r
-    var pBottom = parseInt (($('.container .wrapper').css('padding-bottom').replace("px", "")));\r
 \r
-    var c = w - ( h+f+pTop+pBottom);\r
-    $('.container .wrapper').css('min-height', c);\r
+// fix for iPhone - iPad orientation bug \r
+var metas = document.getElementsByTagName('meta');\r
+function resetViewport() {\r
+    var i;\r
+    if (navigator.userAgent.match(/iPhone/i)) {\r
+               for (i=0; i<metas.length; i++) {\r
+               if (metas[i].name == "viewport") {\r
+                       metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";\r
+               }\r
+               }\r
+       }\r
+}\r
+resetViewport();\r
     \r
+window.onorientationchange = function() {\r
+    resetViewport();\r
+};\r
+    \r
+function gestureStart() {\r
+  for (i=0; i<metas.length; i++) {\r
+    if (metas[i].name == "viewport") {\r
+      metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";\r
+    }\r
+  }\r
+}\r
 \r
+if (navigator.userAgent.match(/iPhone/i)) {\r
+       document.addEventListener("gesturestart", gestureStart, false);\r
 }\r
+//end of fix\r
 \r
+  \r
 $(document).ready(function() {\r
+   \r
+\r
 \r
-       setContainerMinHeight();\r
+    setContainerMinHeight('.container .wrapper');\r
+    tableFixedCols('my-projects', 25);\r
        \r
-     $('.show-extra').click(function(e) {\r
+    $('.show-extra').click(function(e) {\r
         e.preventDefault();\r
-        \r
-        $(this).parents('.bg-wrap').find('.extra').toggle('slow');\r
-        $('.hide-extra').toggle();    \r
+        $(this).parents('.bg-wrap').find('.extra').slideToggle(600);\r
     });\r
     $('.hide-extra').click(function(e) {\r
         e.preventDefault();\r
-        $(this).hide();\r
-        $(this).parents('.bg-wrap').find('.extra').hide('slow');\r
+        $(this).parents('.bg-wrap').find('.extra').slideUp(600);\r
     });\r
     \r
     $('.box-more p').click(function(e) {\r
@@ -33,44 +106,260 @@ $(document).ready(function() {
         $(this).parents('.box-more').toggleClass('border');\r
     });\r
        \r
-               \r
+       var fixTopMessageHeight = function() {\r
+               var topMargin = parseInt($('.mainlogo img').height())+parseInt($('.top-msg').css('marginBottom'));\r
+               $('.mainlogo').css('marginTop','-'+topMargin+'px');\r
+       }\r
+       \r
+  // Uncomment to hide logo upon top message appearance\r
+\r
+       // if ($('.mainlogo img').length > 0) {\r
+       //      $('.mainlogo img').bind('load', fixTopMessageHeight)\r
+       // } else {\r
+       //      fixTopMessageHeight();\r
+       // }\r
+       \r
        $('.top-msg a.close').click(function(e) {\r
-        e.preventDefault();\r
-        $(this).parents('.top-msg').slideUp('5000', function() {\r
+               e.preventDefault();\r
+        $('.top-msg').animate({\r
+            paddingTop:'0',\r
+            paddingBottom:'0',\r
+            height:'0'\r
+        }, 1000, function (){\r
              $('.top-msg').removeClass('active')\r
         });\r
+        $('.mainlogo').animate({\r
+            marginTop:'0'\r
+        }, 1000, function (){\r
+             //todo\r
+        });\r
+    });        \r
+    \r
+     \r
+       $('select.dropkicked').dropkick({\r
+               change: function (value, label) {\r
+                   $(this).parents('form').submit();\r
+                   \r
+               }\r
+       });\r
+       \r
+       $('.with-info select').attr('tabindex','1');\r
+    $('.with-info select').dropkick();\r
+    \r
+    $('.top-msg .success').parents('.top-msg').addClass('success');\r
+    $('.top-msg .error').parents('.top-msg').addClass('error');\r
+    $('.top-msg .warning').parents('.top-msg').addClass('warning');\r
+    $('.top-msg .info').parents('.top-msg').addClass('info');\r
+    \r
+    // clouds homepage animation\r
+    $('#animation a').hover(\r
+      function () {\r
+       \r
+        $(this).animate({\r
+           top: '+=-3'   \r
+           }, 0, function() {\r
+               if ($(this).find('img').attr('src').indexOf("_top") == -1) {\r
+                       var src = $(this).find('img').attr('src').replace('.png', '_top.png')\r
+                       $(this).find('img').attr("src", src);\r
+               }\r
+\r
+               });\r
+        $(this).siblings('p').find('img').animate({\r
+          width: '60%'       \r
+        }, 600);\r
+      }, \r
+      function () {\r
+\r
+        $(this).animate({top: '0'}, 600, function() {\r
+               var src = $(this).find('img').attr('src').replace('_top.png', '.png')\r
+                       $(this).find('img').attr("src", src);\r
+               });\r
+        $(this).siblings('p').find('img').animate({\r
+          width: '65%'       \r
+        },600);\r
+      }\r
+    );\r
+    \r
+    \r
+    \r
+    \r
+    $(function() {              \r
+               $( "#id_start_date" ).datepicker({\r
+                       minDate: 0,\r
+                       defaultDate: "+0", \r
+            dateFormat: "yy-mm-dd",\r
+            onSelect: function( selectedDate ) {\r
+                $( "#id_end_date" ).datepicker( "option", "minDate", selectedDate );\r
+            }\r
+        });\r
+        \r
+        $( "#id_end_date" ).datepicker({\r
+               defaultDate: "+3w", \r
+            dateFormat: "yy-mm-dd",\r
+            onSelect: function( selectedDate ) {\r
+                $( "#id_start_date" ).datepicker( "option", "maxDate", selectedDate );\r
+            }\r
+        });\r
+       });\r
+       \r
+        \r
+       \r
+       $('table .more-info').click(function(e){\r
+               e.preventDefault();\r
+               $(this).toggleClass('open');\r
+               if ($(this).hasClass('open')){\r
+                       $(this).html('- less info ')\r
+               } else {\r
+                       $(this).html('+ more info ')\r
+               }\r
+               $(this).parents('tr').next('tr').toggle();\r
+                \r
+       });\r
+       \r
+       $('.projects .details .edit').click( function(e){\r
+               e.preventDefault();\r
+               $(this).parents('.details').children('.data').hide();\r
+               $(this).parents('.details').children('.editable').slideDown(500, 'linear');\r
+               $(this).hide();\r
+       });\r
+       \r
+       $('.editable .form-row').each(function() {\r
+                       if ( $(this).hasClass('with-errors') ){\r
+                               $('.editable').show();\r
+                               $('.projects .details a.edit, .projects .details .data').hide();\r
+                               \r
+                       }\r
+               });\r
+       \r
\r
+       $("input.leave, input.join").click(function () {\r
+               $('dialog').hide();\r
+               $(this).parents('.msg-wrap').find('.dialog').show();\r
+               return false;      \r
+               \r
     });\r
     \r
-    //$('select').dropkick();\r
+     $('.msg-wrap .no').click( function(e){\r
+               e.preventDefault();\r
+               $(this).parents('.dialog').hide();\r
+       })\r
     \r
-  \r
-    if ( $('#os').length > 0 ) {\r
-       var os = BrowserDetect.OS;\r
-       if ( os!=="an unknown OS" ) {\r
-           $('#os').html('version '+os);\r
-        }\r
-    }\r
+    $('.msg-wrap .yes').click( function(e){\r
+               e.preventDefault();\r
+               $(this).parents('.dialog').siblings('form').submit();\r
+       })\r
+    \r
+    $('.hidden-submit input[readonly!="True"]').focus(function () {\r
+         $('.hidden-submit .form-row.submit').slideDown(500);\r
+    });\r
+    \r
+    \r
+    \r
+   \r
+      \r
+    \r
+    setTimeout(function() {\r
+      if ($('input#id_username').val()){ \r
+       $('input#id_username').siblings('label').css('opacity','0');\r
+      };\r
+      if ($('input#id_password').val()){ \r
+       $('input#id_password').siblings('label').css('opacity','0');\r
+      }\r
+       }, 100);\r
+       \r
+       \r
+       \r
+       \r
+       $('.landing-page .cms').hover(\r
+      function () {\r
+        el = $('.cloudbar ul.services li').first();\r
+        var offset = el.offset();\r
+        positionX = offset.left;\r
+        $('#hand').css('left',positionX);               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
+    \r
+    });  \r
+    \r
+    $('.landing-page .pithos').hover(\r
+      function () {\r
+        el = $('.cloudbar ul.services li:nth-child(3)');\r
+        var offset = el.offset();\r
+        positionX = offset.left;\r
+        left = parseInt(positionX) +20;\r
+        $('#hand').css('left',left+'px');               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
     \r
-    $('.top-msg .success').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: '#f3c',\r
-               color: '#fff'\r
-       }\r
-    )\r
+    });  \r
     \r
-    $('.top-msg .error').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: 'red',\r
-               color: '#fff'\r
-       }\r
-    )\r
+    $('.landing-page .cyclades').hover(\r
+      function () {\r
+        el = $('.cloudbar ul.services li:nth-child(2)').first();\r
+        var offset = el.offset();\r
+        positionX = offset.left;\r
+        left = parseInt(positionX) +20;\r
+        $('#hand').css('left',left+'px');               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
     \r
+    });  \r
     \r
-    $('.top-msg .warning').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: '#90f',\r
-               color: '#fff'\r
-       }\r
-    )\r
     \r
+    $('.landing-page .dashboard').hover(\r
+      function () {\r
+        el = $('.cloudbar .profile');\r
+        var offset = el.offset();\r
+        positionX = offset.left +50;\r
+        $('#hand').css('left',positionX);               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
+    \r
+    });  \r
+    \r
+    $('.pagination a.disabled').click(function(e){\r
+       e.preventDefault();\r
+    });\r
+         \r
+       // fix for recaptcha fields\r
+       $('#okeanos_recaptcha').parents('.form-row').find('.extra-img').hide();\r
+\r
+  fixEl = $('.details .lt');\r
+  if (fixEl.length){ window.fixEloffsetTop = fixEl.offset().top;} \r
+  \r
+\r
+  $(".stats-block li em").equalHeights();\r
+\r
\r
 });\r
+       \r
+$(window).resize(function() {\r
+    \r
+   setContainerMinHeight('.container .wrapper');\r
+    \r
+\r
+});\r
+\r
+\r
+/* js for fixed faq/userguide side nav */\r
+$(window).scroll(function () {\r
+\r
+  if ( $('.details .lt').height() < $('.details .rt').height() ) {\r
+    if ($(window).scrollTop() > window.fixEloffsetTop){ \r
+      fixEl.addClass('fixed');\r
+    } else {\r
+      fixEl.removeClass('fixed');\r
+    }\r
+  }\r
+\r
+\r
+\r
+});