source: products/quintagroup.portlet.collection/trunk/quintagroup/portlet/collection/browser/resources/batch.js @ 2755

Last change on this file since 2755 was 2755, checked in by fenix, 14 years ago
  • added tests;
  • fixed style bug (None class was added when no portlet style is selected);
  • removed trailing characters;
  • removed unnecessary pice of code;
  • some javascript optimizations;
File size: 2.6 KB
Line 
1jq(document).ready(function(e) {
2    var prev_link = jq('.prevlink');
3    var next_link = jq('.nextlink');
4    var nav_links = jq('.navlink');
5    var batch_size = 4;
6    batch_size = nav_links.size() > batch_size ? batch_size : nav_links.size();
7
8    var hideNavigation = function (){
9      jq.each(nav_links, function(index, link){
10        jq(link).hide();
11      });
12    };
13
14    var showPageByIndex = function(index){
15      jq('dd[class*=page]').hide();
16      jq('dd.page-'+(index)).show();
17    };
18
19    var bind_prev_handler = function(link, index){
20      if (index == 0) jq(link).hide();
21      jq(link).unbind();
22      jq(link).click(function(e) {
23        if (!(index % batch_size)) {
24          hideNavigation();
25          for (i=1;i<=batch_size;i++){
26            jq(nav_links[index-i]).show();
27          }
28        }
29        nav_link_handler(index-1);
30     });
31    };
32    var bind_next_handler = function(link, index){
33      if (index == nav_links.size()-1) jq(link).hide();
34      jq(link).unbind();
35      jq(link).click(function(e) {
36        if (!((index+1) % batch_size)) {
37          hideNavigation();
38          for (i=1;i<=batch_size;i++){
39            if (i+index<nav_links.size()){
40              jq(nav_links[i+index]).show();
41            }
42            if (i==batch_size) {
43              jq(nav_links[i+index]).find('.navlinkSeparator').hide();
44            }
45          }
46        }
47        nav_link_handler(index+1);
48      });
49    };
50    var nav_link_handler = function(index){
51      if (index > 0) {
52        prev_link.show();
53        bind_prev_handler(prev_link, index);
54      }
55      else {
56        prev_link.hide();
57      }
58      if (index < nav_links.size()-1) {
59        next_link.show();
60        bind_next_handler(next_link, index);
61      }
62      else {
63        next_link.hide();
64      }
65      showPageByIndex(index);
66      for (i=0;i<nav_links.size();i++){
67        if (i == index) {
68          jq(nav_links[i]).addClass('selected');
69        }
70        else{
71          jq(nav_links[i]).removeClass('selected');
72      }
73      }
74    }
75    var initialize_navigation = function(){
76      prev_link.show();
77      next_link.show();
78      for (i=0; i<batch_size;i++){
79          jq(nav_links[i]).show();
80          if (i==batch_size-1) {
81            jq(nav_links[i]).find('.navlinkSeparator').hide();
82          }
83      }
84      showPageByIndex(0);
85      bind_prev_handler(prev_link, 0);
86      bind_next_handler(next_link, 0);
87      jq.each(nav_links, function(index, link) {
88        jq(link).unbind();
89        jq(link).click(function(e) {
90          nav_link_handler(index);
91        });
92    });
93    };
94
95   initialize_navigation();
96
97});
Note: See TracBrowser for help on using the repository browser.