Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / static / im / js / common.js @ 0c27cc1b

History | View | Annotate | Download (10.5 kB)

1
function setContainerMinHeight( applicableDiv){
2
        
3
    if ( $(applicableDiv).length > 0 ) {
4
        //var h = $('.header').height(); div.header is not found 
5
        var f = $('.footer').height();
6
        var w = $(window).height();
7
        var pTop = parseInt (($(applicableDiv).css('padding-top').replace("px", "")) );
8
        var pBottom = parseInt (($(applicableDiv).css('padding-bottom').replace("px", "")));
9

    
10
        var c = w - ( f+pTop+pBottom+36);//36 is header's height.
11
        $(applicableDiv).css('min-height', c);
12
    }    
13

    
14
}
15

    
16
function tableFixedCols(table, firstColWidth ){
17
        ColsNum = $('table th').size();
18
        var ColWidth = parseFloat( (100 - firstColWidth)/ColsNum ).toFixed(0);
19
        var ColWidthPercentage = ColWidth+'%';
20
        var firstColWidthPercentage = firstColWidth+'%';
21
        $('table th, table td').attr('width',ColWidthPercentage ); 
22
        $('table tr td:first-child, table tr th:first-child').attr('width',firstColWidthPercentage );
23
        
24
}
25

    
26
function addClassHover(hoverEl, applicableEl){ 
27
        $(hoverEl).hover(
28
      function () {
29
               
30
         $(applicableEl).addClass('red-border')
31
      }, 
32
      function () {
33
              $(applicableEl).removeClass('red-border');
34
    
35
    });
36
}
37
//equal heights
38
 
39
(function($) {
40
        $.fn.equalHeights = function(minHeight, maxHeight) {
41
                tallest = (minHeight) ? minHeight : 0;
42
                this.each(function() {
43
                        if($(this).height() > tallest) {
44
                                tallest = $(this).height();
45
                        }
46
                });
47
                if((maxHeight) && tallest > maxHeight) tallest = maxHeight;
48
                return this.each(function() {
49
                        $(this).height(tallest);
50
                });
51
        }
52
})(jQuery);
53

    
54

    
55

    
56
// fix for iPhone - iPad orientation bug 
57
var metas = document.getElementsByTagName('meta');
58
function resetViewport() {
59
    var i;
60
    if (navigator.userAgent.match(/iPhone/i)) {
61
                  for (i=0; i<metas.length; i++) {
62
                    if (metas[i].name == "viewport") {
63
                              metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
64
                    }
65
                  }
66
          }
67
}
68
resetViewport();
69
    
70
window.onorientationchange = function() {
71
    resetViewport();
72
};
73
    
74
function gestureStart() {
75
  for (i=0; i<metas.length; i++) {
76
    if (metas[i].name == "viewport") {
77
      metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";
78
    }
79
  }
80
}
81

    
82
if (navigator.userAgent.match(/iPhone/i)) {
83
        document.addEventListener("gesturestart", gestureStart, false);
84
}
85
//end of fix
86

    
87
 
88
$(document).ready(function() {
89
        
90
         
91
    setContainerMinHeight('.container .wrapper');
92
    //tableFixedCols('my-projects', 25);
93
        
94
    $('.show-extra').click(function(e) {
95
        e.preventDefault();
96
        $(this).parents('.bg-wrap').find('.extra').slideToggle(600);
97
    });
98
    $('.hide-extra').click(function(e) {
99
        e.preventDefault();
100
        $(this).parents('.bg-wrap').find('.extra').slideUp(600);
101
    });
102
    
103
    $('.box-more p').click(function(e) {
104
        $(this).siblings('.clearfix').toggle('slow');
105
        $(this).parents('.box-more').toggleClass('border');
106
    });
107
        
108
        var fixTopMessageHeight = function() {
109
                var topMargin = parseInt($('.mainlogo img').height())+parseInt($('.top-msg').css('marginBottom'));
110
                $('.mainlogo').css('marginTop','-'+topMargin+'px');
111
        }
112
        
113
        if ($('.mainlogo img').length > 0) {
114
                $('.mainlogo img').bind('load', fixTopMessageHeight)
115
        } else {
116
                fixTopMessageHeight();
117
        }
118
        
119
        $('.top-msg a.close').click(function(e) {
120
                e.preventDefault();
121
        $('.top-msg').animate({
122
            paddingTop:'0',
123
            paddingBottom:'0',
124
            height:'0'
125
        }, 1000, function (){
126
             $('.top-msg').removeClass('active')
127
        });
128
        $('.mainlogo').animate({
129
            marginTop:'0'
130
        }, 1000, function (){
131
             //todo
132
        });
133
    });        
134
    
135
     
136
        $('select.dropkicked').dropkick({
137
                change: function (value, label) {
138
                    $(this).parents('form').submit();
139
                    
140
                }
141
        });
142
        
143
        $('.with-info select').attr('tabindex','1');
144
    $('.with-info select').dropkick();
145
    
146
    $('.top-msg .success').parents('.top-msg').addClass('success');
147
    $('.top-msg .error').parents('.top-msg').addClass('error');
148
    $('.top-msg .warning').parents('.top-msg').addClass('warning');
149
    $('.top-msg .info').parents('.top-msg').addClass('info');
150
    
151
    // clouds homepage animation
152
    $('#animation a').hover(
153
      function () {
154
              
155
        $(this).animate({
156
           top: '+=-10'   
157
           }, 600, function() {
158
                   if ($(this).find('img').attr('src').indexOf("_top") == -1) {
159
                           var src = $(this).find('img').attr('src').replace('.png', '_top.png')
160
                        $(this).find('img').attr("src", src);
161
                   }
162

    
163
                });
164
        $(this).siblings('p').find('img').animate({
165
          width: '60%'       
166
        }, 600);
167
      }, 
168
      function () {
169

    
170
        $(this).animate({top: '0'}, 600, function() {
171
                var src = $(this).find('img').attr('src').replace('_top.png', '.png')
172
                       $(this).find('img').attr("src", src);
173
                });
174
        $(this).siblings('p').find('img').animate({
175
          width: '65%'       
176
        },600);
177
      }
178
    );
179
    
180
    
181
    
182
    
183
    $(function() {                 
184
                $( "#id_start_date" ).datepicker({
185
                        minDate: 0,
186
                        defaultDate: "+0", 
187
            dateFormat: "yy-mm-dd",
188
            onSelect: function( selectedDate ) {
189
                $( "#id_end_date" ).datepicker( "option", "minDate", selectedDate );
190
            }
191
        });
192
        
193
        $( "#id_end_date" ).datepicker({
194
                defaultDate: "+3w", 
195
            dateFormat: "yy-mm-dd",
196
            onSelect: function( selectedDate ) {
197
                $( "#id_start_date" ).datepicker( "option", "maxDate", selectedDate );
198
            }
199
        });
200
        });
201
        
202
         
203
        
204
        $('table .more-info').click(function(e){
205
                e.preventDefault();
206
                $(this).toggleClass('open');
207
                if ($(this).hasClass('open')){
208
                        $(this).html('- less info ')
209
                } else {
210
                        $(this).html('+ more info ')
211
                }
212
                $(this).parents('tr').next('tr').toggle();
213
                 
214
        });
215
        
216
        $('.projects .details .edit').click( function(e){
217
                e.preventDefault();
218
                $(this).parents('.details').children('.data').hide();
219
                $(this).parents('.details').children('.editable').slideDown(500, 'linear');
220
                $(this).hide();
221
        });
222
        
223
        $('.editable .form-row').each(function() {
224
                        if ( $(this).hasClass('with-errors') ){
225
                                $('.editable').show();
226
                                $('.projects .details a.edit, .projects .details .data').hide();
227
                                
228
                        }
229
                });
230
        
231

    
232

    
233

    
234
 
235
        $("input.leave, input.join").click(function (e) {
236
        e.preventDefault();
237
        var form = $(this).parents('form');
238
        var dialog = $(this).parents('.msg-wrap').find('.dialog');
239

    
240
                $('.dialog').hide();
241
    if ($(this).parents('.form-actions').hasClass('inactive')) {
242
      return false;
243
    }
244
                $(this).parents('.msg-wrap').find('.dialog').show();
245
        var offset = dialog.offset();
246

    
247
        if (offset.left <= 10) {
248
          dialog.css({'left': '10px'})
249
        }
250
        if (offset.top <= 10) {
251
          dialog.css({'top': '10px'})
252
        }
253

    
254
        if (dialog.find('textarea').length > 0) {
255
          dialog.find('textarea').val('');
256
          dialog.find('textarea').focus();
257
        }
258

    
259
                return false;      
260
                
261
    });
262
    
263
     $('.msg-wrap .no').click( function(e){
264
                e.preventDefault();
265
                $(this).parents('.dialog').hide();
266
        })
267
    
268
    $('.msg-wrap .yes').click( function(e){
269
                e.preventDefault();
270
        var dialog = $(this).parents('.msg-wrap').find('.dialog');
271
        var form = $(this).parents('.msg-wrap').find('form');
272
        var fields = dialog.find('input, textarea')
273
        
274
        var toremove = [];
275
        fields.each(function(){
276
          var f = $(this).clone();
277
          f.hide();
278
          form.append(f);
279
          f.val($(this).val());
280
          toremove.push(f);
281
        });
282
        
283
        form.submit();
284
        })
285
    
286
    $('.hidden-submit input[readonly!="True"]').focus(function () {
287
         $('.hidden-submit .form-row.submit').slideDown(500);
288
    });
289
    
290
    
291
    
292
   
293
      
294
    
295
    setTimeout(function() {
296
      if ($('input#id_username').val()){ 
297
              $('input#id_username').siblings('label').css('opacity','0');
298
      };
299
      if ($('input#id_password').val()){ 
300
              $('input#id_password').siblings('label').css('opacity','0');
301
      }
302
        }, 100);
303
        
304
        
305
        
306
        
307
        $('.landing-page .cms').hover(
308
      function () {
309
               el = $('.cloudbar ul.services li').first();
310
               var offset = el.offset();
311
               positionX = offset.left;
312
               $('#hand').css('left',positionX);                   
313
         $('#hand').show();
314
      }, 
315
      function () {
316
              $('#hand').hide();
317
    
318
    });  
319
    
320
    $('.landing-page .pithos').hover(
321
      function () {
322
               el = $('.cloudbar ul.services li:nth-child(3)');
323
               var offset = el.offset();
324
               positionX = offset.left;
325
               left = parseInt(positionX) +20;
326
               $('#hand').css('left',left+'px');                   
327
         $('#hand').show();
328
      }, 
329
      function () {
330
              $('#hand').hide();
331
    
332
    });  
333
    
334
    $('.landing-page .cyclades').hover(
335
      function () {
336
               el = $('.cloudbar ul.services li:nth-child(2)').first();
337
               var offset = el.offset();
338
               positionX = offset.left;
339
               left = parseInt(positionX) +20;
340
               $('#hand').css('left',left+'px');                   
341
         $('#hand').show();
342
      }, 
343
      function () {
344
              $('#hand').hide();
345
    
346
    });  
347
    
348
    
349
    $('.landing-page .dashboard').hover(
350
      function () {
351
               el = $('.cloudbar .profile');
352
               var offset = el.offset();
353
               positionX = offset.left +50;
354
               $('#hand').css('left',positionX);                   
355
         $('#hand').show();
356
      }, 
357
      function () {
358
              $('#hand').hide();
359
    
360
    });  
361
    
362
    $('.pagination a.disabled').click(function(e){
363
            e.preventDefault();
364
    });
365
          
366
        // fix for recaptcha fields
367
        $('#okeanos_recaptcha').parents('.form-row').find('.extra-img').hide();          
368
     
369
/* project members page js */         
370
function check_form_actions_inactive(){
371
   if ( $('#members-table tbody td.check input:checked').length >0 ) {
372
    $('.projects .form-actions').removeClass('inactive');
373
  } else {
374
    $('.projects .form-actions').addClass('inactive');
375
  }
376
}
377

    
378
$('#members-table td.email').click(function(e){
379
  var that = $(this).parent('tr').find('.check').find('input[type="checkbox"]')
380
  if(that.is(":checked")){
381
    that.removeAttr('checked');
382
  } else {
383
    that.attr('checked', 'checked');
384
  }
385
  check_form_actions_inactive();
386

    
387
})
388

    
389

    
390

    
391

    
392
$('#members-table tr th.check input').click(function(e){
393
  if($(this).is(":checked")){
394
    $('#members-table tbody td.check input').attr('checked', 'checked');
395
  } else {
396
    $('#members-table tbody td.check input').removeAttr('checked');
397
  } 
398
});
399

    
400
$('#members-table tr .check input').click(function(e){
401
  check_form_actions_inactive()
402
});
403

    
404

    
405
/* end of project members page js */
406

    
407

    
408

    
409
            
410
});
411
        
412
$(window).resize(function() {
413
    
414
   setContainerMinHeight('.container .wrapper');
415
    
416

    
417
});