/*
  JS Navigation Bar v.1.11
  (с) Гаенко Д.С.
  --------------------------------------------------
  Аргументы функции:
    total_item_cnt - общее количество элементов
    item_per_page  - количество элементов на страницу
    cur_page       - текущая страница
    url            - урл для ссылок с номерами страниц
  Дополнительные параметры объекта:
    imgs_path      - путь к имиджам
    img_first      - картинка для кнопки "Первый элемент"
    img_last       - картинка для кнопки "Последний элемент"
    img_prev       - картинка для кнопки "Предыдущий элемент"
    img_next       - картинка для кнопки "Следующий элемент"
    max_items      - максимальное количество страниц в панели
    spliter        - символ-разделитель элементов
    highlight      - цвет подсветки элементов при onMouseOver
    item_style     - CSS класс элементов 
    sel_item_style - CSS класс текущего элемента
*/
function navigation_pages_bar(total_item_cnt,item_per_page,cur_page,url)
  {
    this.imgs_path = "images";
    this.img_first = "first.gif";
    this.img_last = "last.gif";
    this.img_prev = "prev.gif";
    this.img_next = "next.gif";
    this.max_items = 11;
    this.spliter = "&#183;";
    this.highlight = "red";
    this.item_style = "nav_bar";
    this.sel_item_style = "nav_bar_selected";

    if (this.imgs_path.substr(this.imgs_path.length-1,1)!="/")
      this.imgs_path += "/";

    this.show = function()
      {
        var pages_count = Math.ceil(total_item_cnt/item_per_page);
        if (pages_count==1 || total_item_cnt==0)
          return;
        nav_prev = cur_page>1?cur_page-1:1;
        nav_next = cur_page<pages_count?cur_page+1:pages_count;
        start_val = cur_page<Math.ceil(this.max_items/2)?1:cur_page-Math.floor(this.max_items/2);
        end_val = cur_page+Math.floor(this.max_items/2)>pages_count?pages_count:cur_page+Math.floor(this.max_items/2);
        if ((cur_page<Math.ceil(this.max_items/2))&&(pages_count>=this.max_items))
          end_val = this.max_items;
        if (end_val-start_val<this.max_items)
           { 
             start_val = end_val-this.max_items>0?end_val-this.max_items+1:1;
             if (cur_page<Math.floor(this.max_items/2))
               end_val = pages_count>this.max_items?this.max_items:pages_count;
           }
        var result = '<TABLE cellpadding="0" cellspacing="0">'+
          '<TR>'+
          '<TD class="'+this.item_style+'" style="text-align:right" onClick="document.location=\''+url+'&page=1\'"><IMG src="'+this.imgs_path+this.img_first+'" border="0" align="center"/></TD>'+
          '<TD class="'+this.item_style+'" onClick="document.location=\''+url+'&page='+nav_prev+'\'" onMouseOver="this.style.color=\''+this.highlight+'\'" onMouseOut="this.style.color=\'\'"><IMG src="'+this.imgs_path+this.img_prev+'" border="0" align="center"/></TD>';
        for (var i=start_val; i<=end_val; i++)
          {
            result += '<TD>'+this.spliter+'</TD>';
            var item = '<TD class="';
            if (i==cur_page)
              item += this.sel_item_style;
            else
              item += this.item_style+'" onClick="document.location=\''+url+'&page='+i+'\'" onMouseOver="this.style.color=\''+this.highlight+'\'" onMouseOut="this.style.color=\'\'';
            item += '">'+i+'</TD>';
            result += item;
          }
        result += '<TD>'+this.spliter+'</TD>'+
          '<TD class="'+this.item_style+'" onClick="document.location=\''+url+'&page='+nav_next+'\'" onMouseOver="this.style.color=\''+this.highlight+'\'" onMouseOut="this.style.color=\'\'"><IMG src="'+this.imgs_path+this.img_next+'" border="0" align="center"/></TD>'+
          '<TD class="'+this.item_style+'" style="text-align:left" onClick="document.location=\''+url+'&page='+pages_count+'\'"><IMG src="'+this.imgs_path+this.img_last+'" border="0" align="center"/></TD>'+
          '</TR>'+
          '</TABLE>';
        document.write(result);
      }
  }
