// галерея jq 
// пролистывание галереи с подгрузкой картинок

// в текущем макете влезает 3 колонки картинок
var cols = 3

$(document).ready(function(){

   $("a.gallery_nav").click(function(event){
      
      $arr = $(this)
      
      if(($arr.hasClass('back_act') || $arr.hasClass('next_act')) && !$arr.hasClass('disabled')) {
         
         // собираем нужные объекты и переменные
         var $block = $arr.closest('.gallery')
         var gal_id = $block.attr('rel')
         var index = parseInt($arr.attr('rel'))
         var $table = $block.find('table')
         var load_at_once = parseInt($table.attr('rel'))
         
         
         $arr.addClass('disabled')
         
         if($arr.hasClass('back_act')) {
            scrollTable($block,$arr,$table,gal_id,index,load_at_once)
         }
         
         if($arr.hasClass('next_act')) {
            // надо проверить, загружена ли уже следующая ячейка
            if(!$table.find("td:eq("+(index/load_at_once)+")").length) {
               var $tr = $table.find('tr')
               var content = $tr.html()
               content += genContent(gal_id,index,load_at_once)
               $tr.html(content)
               
               //setEqualHeightAll()
               
            }
            scrollTable($block,$arr,$table,gal_id,index,load_at_once)
         }
         
      }
      
      event.preventDefault()
      
      })
   
   $("table.scrollable_table").bind('mousewheel',function(event,delta){
      
      if(delta<0) {
         $(event.target).closest(".gallery").find(".next_act").click()
      }
      else {
         $(event.target).closest(".gallery").find(".back_act").click()
      }
      event.preventDefault()
      })
   
   })

function genContent(gal_id,index,load_at_once) {
   
   // находим в коде массив всех элементов
   var all_files = eval("files"+gal_id)
   
   var new_content = ''
   
   new_content += '<td>'
   
   for(i=0;i<load_at_once;++i){
      
      var new_ind = parseInt(index)+i
      if(all_files.length>new_ind){
         var el = all_files[new_ind]
         
         new_content += '<div class="catalog cat" style="height:260px; overflow:hidden;">'
         new_content += '<div class="f1" style="height:250px;"><a href="'+el.link+'">'
         new_content += '<img alt="'+el.title_simple+'" src="'+el.path+'" />'
         if(el.price) {
            new_content += '<span class="trigger">'+el.price+' <span><span>руб.</span></span></span>'
         }
         
         new_content += '</a>'
         new_content += '<p class="zagol">'
         new_content += '<a href="'+el.link+'">'+el.title+'</a></p>'
         new_content += '</div></div>'
      }

   }
   
   new_content += '</td>'
   
   return new_content
   
}

function scrollTable($block,$arr,$table,gal_id,index,load_at_once) {
   var wd = $table.find('td').width()
   //console.log($table.position().left)
   var lf = ($arr.hasClass('back_act') ? "+":"-")+"="+wd+"px"
   $table.animate({'left':lf},300,function(){
      updateNavArrs($block,$arr,gal_id,index,load_at_once)
      
      })

}

function updateNavArrs($block,$arr,gal_id,index,load_at_once) {
   
   // двигали назад
   if($arr.hasClass('back_act')) {
      var $arr2 = $arr.next()
      if($arr2.hasClass('next')) {
         $arr2.removeClass('next')
         $arr2.addClass('next_act')
      }
      var index_next = index+(cols*load_at_once)
      var index_back = index-load_at_once
      $arr2.attr('rel',index_next)
      //console.log("index_back="+index_back+"; index_next="+index_next)
      if(index==0) {
         $arr.removeClass('back_act')
         $arr.addClass('back')
      }
      else {
         $arr.attr('rel',index_back)
      }
   }
   // двигали вперед
   if($arr.hasClass('next_act')) {
      var $arr2 = $arr.prev()
      if($arr2.hasClass('back')) {
         $arr2.removeClass('back')
         $arr2.addClass('back_act')
      }
      var all_files = eval("files"+gal_id)
      var total_files = all_files.length
      
      var index_next = index+load_at_once
      var index_back = index-(cols*load_at_once)
      $arr2.attr('rel',index_back)
      //console.log("index_back="+index_back+"; index_next="+index_next)
      if(index_next<total_files) {
         $arr.attr('rel',index_next)
      }
      else {
         $arr.removeClass('next_act')
         $arr.addClass('next')
      }
         
   }
   $arr.removeClass('disabled')
}
