c93fe8d76be7973fb0cd6ca8d34ccec818f987e8
[snf-cloudcms] / cloudcms / static / cloudcms / js / common.js
1 function setContainerMinHeight( applicableDiv){\r
2         \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
9 \r
10         var c = w - ( f+pTop+pBottom+36);//36 is header's height.\r
11         $(applicableDiv).css('min-height', c);\r
12     }    \r
13 \r
14 }\r
15 \r
16 \r
17 //equal heights\r
18  \r
19 (function($) {\r
20         $.fn.equalHeights = function(minHeight, maxHeight) {\r
21                 tallest = (minHeight) ? minHeight : 0;\r
22                 this.each(function() {\r
23                         if($(this).height() > tallest) {\r
24                                 tallest = $(this).height();\r
25                         }\r
26                 });\r
27                 if((maxHeight) && tallest > maxHeight) tallest = maxHeight;\r
28                 return this.each(function() {\r
29                         $(this).height(tallest);\r
30                 });\r
31         }\r
32 })(jQuery);\r
33 \r
34 \r
35 \r
36 // fix for iPhone - iPad orientation bug \r
37 var metas = document.getElementsByTagName('meta');\r
38 function resetViewport() {\r
39     var i;\r
40     if (navigator.userAgent.match(/iPhone/i)) {\r
41                 for (i=0; i<metas.length; i++) {\r
42                 if (metas[i].name == "viewport") {\r
43                         metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";\r
44                 }\r
45                 }\r
46         }\r
47 }\r
48 resetViewport();\r
49     \r
50 window.onorientationchange = function() {\r
51     resetViewport();\r
52 };\r
53     \r
54 function gestureStart() {\r
55   for (i=0; i<metas.length; i++) {\r
56     if (metas[i].name == "viewport") {\r
57       metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";\r
58     }\r
59   }\r
60 }\r
61 \r
62 if (navigator.userAgent.match(/iPhone/i)) {\r
63         document.addEventListener("gesturestart", gestureStart, false);\r
64 }\r
65 //end of fix\r
66 \r
67 $(document).ready(function() {\r
68         \r
69          \r
70     setContainerMinHeight('.container .wrapper');\r
71     \r
72         \r
73     $('.show-extra').click(function(e) {\r
74         e.preventDefault();\r
75         $(this).parents('.bg-wrap').find('.extra').slideToggle(600);\r
76     });\r
77     $('.hide-extra').click(function(e) {\r
78         e.preventDefault();\r
79         $(this).parents('.bg-wrap').find('.extra').slideUp(600);\r
80     });\r
81     \r
82     $('.box-more p').click(function(e) {\r
83         $(this).siblings('.clearfix').toggle('slow');\r
84         $(this).parents('.box-more').toggleClass('border');\r
85     });\r
86         \r
87         var fixTopMessageHeight = function() {\r
88                 var topMargin = parseInt($('.mainlogo img').height())+parseInt($('.top-msg').css('marginBottom'));\r
89                 $('.mainlogo').css('marginTop','-'+topMargin+'px');\r
90         }\r
91         \r
92         if ($('.mainlogo img').length > 0) {\r
93                 $('.mainlogo img').bind('load', fixTopMessageHeight)\r
94         } else {\r
95                 fixTopMessageHeight();\r
96         }\r
97         \r
98         $('.top-msg a.close').click(function(e) {\r
99                 e.preventDefault();\r
100         $('.top-msg').animate({\r
101             paddingTop:'0',\r
102             paddingBottom:'0',\r
103             height:'0'\r
104         }, 1000, function (){\r
105              $('.top-msg').removeClass('active')\r
106         });\r
107         $('.mainlogo').animate({\r
108             marginTop:'0'\r
109         }, 1000, function (){\r
110              //todo\r
111         });\r
112     }); \r
113     \r
114     \r
115      \r
116         $('select').dropkick();\r
117  \r
118     \r
119     $('.top-msg .success').parents('.top-msg').css(\r
120         {\r
121                 backgroundColor: '#77C596',\r
122                 color: '#fff'\r
123         }\r
124     );\r
125     \r
126     $('.top-msg .error').parents('.top-msg').css(\r
127         {\r
128                 backgroundColor: '#EF4F54',\r
129                 color: '#fff'\r
130         }\r
131     );\r
132     \r
133     \r
134     $('.top-msg .warning').parents('.top-msg').css(\r
135         {\r
136                 backgroundColor: '#F6921E',\r
137                 color: '#fff'\r
138         }\r
139     );\r
140     \r
141     $('.top-msg .info').parents('.top-msg').css(\r
142         {\r
143                 backgroundColor: '#C3C3B9',\r
144                 color: '#fff'\r
145         }\r
146     );\r
147     \r
148     // clouds homepage animation\r
149     $('#animation a').hover(\r
150       function () {\r
151         \r
152         $(this).animate({\r
153            top: '+=-10'   \r
154            }, 600, function() {\r
155                 if ($(this).find('img').attr('src').indexOf("_top") == -1) {\r
156                         var src = $(this).find('img').attr('src').replace('.png', '_top.png')\r
157                         $(this).find('img').attr("src", src);\r
158                 }\r
159 \r
160                 });\r
161         $(this).siblings('p').find('img').animate({\r
162           width: '60%'       \r
163         }, 600);\r
164       }, \r
165       function () {\r
166 \r
167         $(this).animate({top: '0'}, 600, function() {\r
168                 var src = $(this).find('img').attr('src').replace('_top.png', '.png')\r
169                 $(this).find('img').attr("src", src);\r
170                 });\r
171         $(this).siblings('p').find('img').animate({\r
172           width: '65%'       \r
173         },600);\r
174       }\r
175     );\r
176     \r
177     \r
178    \r
179     \r
180     \r
181     if ($('.widjets'.length > 0)) {\r
182                 $('.widjets li div').equalHeights();\r
183         }\r
184     \r
185     $(function() {\r
186         if($("#id_issue_date").length > 0 ){\r
187                         $( "#id_issue_date" ).datepicker({\r
188                                 defaultDate: "+0", \r
189                                 dateFormat: "yy-mm-dd",\r
190                                 onSelect: function( selectedDate ) {\r
191                                         $( "#id_expiration_date" ).datepicker( "option", "minDate", selectedDate );\r
192                                 }\r
193                         });\r
194                         $( "#id_expiration_date" ).datepicker({\r
195                                 defaultDate: "+1w", \r
196                                 dateFormat: "yy-mm-dd",\r
197                                 onSelect: function( selectedDate ) {\r
198                                         $( "#id_issue_date" ).datepicker( "option", "maxDate", selectedDate );\r
199                                 }\r
200                         });\r
201                 }\r
202         });\r
203         \r
204         \r
205         $(".table_sorting").tablesorter(); \r
206         \r
207         // Billing functionality\r
208         $('.billing table.complex tr:nth-child(4n+1), .billing table.complex tr:nth-child(4n+2)').addClass('zebra');\r
209         $('.billing table.complex table tr').removeClass('zebra');\r
210         $('.billing table a').click(function(e){\r
211                 e.preventDefault();\r
212                 $(this).parents('tr').next('tr').toggle();\r
213                 \r
214         })\r
215         \r
216         \r
217         \r
218         \r
219 });\r
220 \r
221 $(window).resize(function() {\r
222     \r
223    setContainerMinHeight('.container .wrapper');\r
224    if ($('.widjets').length > 0) {\r
225                 $('.widjets  li div').equalHeights();\r
226         }\r
227 \r
228 });