/*
Flip Brochure Gallery
By James Mountford
*/
var intransit = false;
jQuery(document).ready(
  function(){
    
    var gallerythumbs = jQuery("#gallerythumbs");
    gallerythumbs.css({'left':'0px'});
    var galleryslides = jQuery("#galleryslides");
    
    var totalvisible = 32;
    
    var totalthumb = jQuery("a.thumbimage", gallerythumbs).length - 1;
    var totalvisibleportions = Math.ceil((totalthumb+1)/totalvisible);
    //alert(totalvisibleportions);
    /* wrap 'visibleportion' divs around each visible set of images */
    for(var x = 0; x < totalvisibleportions; x++){
      first = totalvisible * x;
      last = totalvisible * (x+1);
      jQuery(".gallerythumb", gallerythumbs).slice(first, last).wrapAll("<div class='visibleportion' />");
    }
    
    var totalthumbs = gallerythumbs.children(".visibleportion").length - 1;
    gallerythumbs.css({"width":(totalthumbs+1)*parseInt(gallerythumbs.children(".visibleportion").width())+"px"});
    var currentpos = 0;
    if(totalthumbs > 0){
      jQuery("#gallerynext").css({"display":"block"});
    }
    
    
    jQuery(".galleryslide", galleryslides).eq(0).slideDown(800);
    jQuery("#gallerythumbwrap").slideDown(1200);
    
    
    jQuery(".gallerythumb:nth-child(8n)", gallerythumbs).css({"margin-right":"0px"});
    
    jQuery(".thumbimage", gallerythumbs).click(
      function(e){
        e.preventDefault();
        var picindexInPortion = jQuery(this).parent().index();
        var portionIndex = jQuery(this).parent().parent().index();
        var picindex = portionIndex * totalvisible + picindexInPortion;
        var activepicInPortion = jQuery(".activethumb").parent().index();
        var activePortionIndex = jQuery(".activethumb").parent().parent().index();
        var activepicindex = activePortionIndex * totalvisible + activepicInPortion;
        var bigpics = jQuery(".galleryslide", galleryslides);
        if(!jQuery(this).hasClass("activethumb")){
          if(picindex > activepicindex){
            jQuery(".thumbimage", gallerythumbs).removeClass("activethumb");
            jQuery(this).addClass("activethumb");
            bigpics.slideUp(500).css({"zIndex":0}).removeClass("activeslide");
            bigpics.eq(picindex).fadeIn(500).css({"zIndex":10}).addClass("activeslide");
          }else if(picindex < activepicindex){
            jQuery(".thumbimage", gallerythumbs).removeClass("activethumb");
            jQuery(this).addClass("activethumb");
            bigpics.fadeOut(500).css({"zIndex":10}).removeClass("activeslide");
            bigpics.eq(picindex).slideDown(500).css({"zIndex":0}).addClass("activeslide");
          }
        }
      }
    );
    
    jQuery("#galleryprev").click(
      function(e){
        e.preventDefault();
        if(!intransit){
          intransit = true;
          currentpos--;
          if(currentpos == 0){
            jQuery("#galleryprev").css({"display":"none"});
          }else{
            jQuery("#galleryprev").css({"display":"block"});
          }
          if(currentpos == totalthumbs){
            jQuery("#gallerynext").css({"display":"none"});
          }else{
            jQuery("#gallerynext").css({"display":"block"});
          }
          var distanceleft = (parseInt(gallerythumbs.css("left")) + parseInt(jQuery(".visibleportion").outerWidth()));
          gallerythumbs.stop(true, true).animate({"left":distanceleft + "px"}, 800,
            function(){
              intransit = false;
            }
          );
        }
      }
    );
    jQuery("#gallerynext").click(
      function(e){
        e.preventDefault();
        if(!intransit){
          intransit = true;
          currentpos++;
          if(currentpos == 0){
            jQuery("#galleryprev").css({"display":"none"});
          }else{
            jQuery("#galleryprev").css({"display":"block"});
          }
          if(currentpos == totalthumbs){
            jQuery("#gallerynext").css({"display":"none"});
          }else{
            jQuery("#gallerynext").css({"display":"block"});
          }
          var distanceright = (parseInt(gallerythumbs.css("left")) - parseInt(jQuery(".visibleportion").outerWidth()));
          gallerythumbs.stop(true, true).animate({"left":distanceright + "px"}, 800,
            function(){
              intransit = false;
            }
          );
        }
      }
    );
    jQuery("#categorySwitcher").change(
      function(e){
        e.preventDefault();
        var classToShow = jQuery(this).val();
        if(classToShow != ""){
          jQuery(".gallerythumb").unwrap();
          totalthumb = jQuery(".gallerythumb", gallerythumbs).parent().length - 1;
          totalvisibleportions = Math.ceil((totalthumb+1)/totalvisible);
          for(var x = 0; x < totalvisibleportions; x++){
            first = totalvisible * x;
            last = totalvisible * (x+1);
            jQuery(".gallerythumb." + classToShow, gallerythumbs).slice(first, last).wrapAll("<div class='visibleportion' />");
          }
          gallerythumbs.children(".gallerythumb").wrapAll("<div class='therest' />");
        }else{
          
        }
      }
    );
  }
);
