$(document).ready( function() {
  $("body").addClass("js");
	galleryInit();
  $(".gallery .thumb a").each(function() {
    var title = $(this).find('img').attr('alt');
    if (title == '') {
      var title = $(this).find('p').text();
    }
    var rel = $(this).parents('div.gallery').attr('id');
    $(this).colorbox({transition:"elastic", maxWidth: "90%", maxHeight: "90%", scalePhotos: 'true', slideShow: "true", title: title, rel: rel}); 
  });
	//galleryHover();
});

function galleryInit() {
  // set number of elements to scroll at a time
  var scrollNum = 5;
	
	$(".gallery").each(function() {
		var id = $(this).attr("id");
		
		// create carousel navigation
		var elemCt = $('#'+id+' li').size();
		if (elemCt > scrollNum) {
			$('#'+id).append('<a href="#" class="pager back"></a><a href="#" class="pager next"></a>');
		}
		
		// bind carousel next button
		$('#'+id+' .next').bind('click', function() {
			scrollNext(id, scrollNum);
			return false;
		});
		
		// bind carousel back button
		$('#'+id+' .back').bind('click', function() {
			scrollBack(id, scrollNum);
			return false;
		});
		
		// set cover image
		if ($('#'+id+" .cover").length > 0) {
			var cover = $('#'+id+" .cover a img").clone();
		} else {
			var cover = $('#'+id+" li:first-child a img").clone();
		}
		$(this).append("<div class='coverimg'></div>");
		$(this).children(".coverimg").append(cover);
		
	});
  
}

function galleryToggle(id) {
  if ($('#'+id).hasClass('open')) {
    return false;
  } else {
    // close any open galleries
    $('div.gallery').fadeOut().removeClass('open');
    $('#'+id).addClass('open').fadeIn();
    
    // math for carousel width
    var elemCt = $('#'+id+' li').size();
    var elemWdth = $('#'+id+' li').outerWidth(true) + 4;
    var fullWdth = elemCt * elemWdth;
    
    // set full width of carousel
    $('#'+id).find('ul.galleryList').css('width', fullWdth);
  }
}

function scrollNext(id, scrollNum) {
  var elemCt = $('#'+id+' li').size();
  var elemWdth = $('#'+id+' li').outerWidth(true) + 4;
  var fullWdth = elemCt * elemWdth;
  var scrollOffset = elemWdth * scrollNum;
  var maxOffset = fullWdth - scrollOffset;
  var currPoss = $('#'+id+' ul.galleryList').position();
  var currOffset = currPoss.left;
  var nextOffset = currOffset - scrollOffset;
  //alert("elemCt: "+elemCt+"\n elemWdth: "+elemWdth+"\n fullWdth: "+fullWdth+"\n scrollOffset: "+scrollOffset+"\n maxOffset: "+maxOffset+" \n currOffset: "+currOffset+"\n nextOffset: "+nextOffset);
  if (currOffset > -maxOffset) {
    if (nextOffset >= -maxOffset) {
      $('#'+id+' ul.galleryList').animate({left: nextOffset}, 1500);
    } else {
      $('#'+id+' ul.galleryList').animate({left: -maxOffset}, 1000);
    }
  } else {
    return false;
  }
}

function scrollBack(id, scrollNum) {
  var elemCt = $('#'+id+' li').size();
  var elemWdth = $('#'+id+' li').outerWidth(true) + 4;
  var scrollOffset = elemWdth * scrollNum;
  var currPoss = $('#'+id+' ul.galleryList').position();
  var currOffset = currPoss.left;
  var nextOffset = currOffset + scrollOffset;
  if (currOffset < 0) {
    if (nextOffset <= 0) {
      $('#'+id+' ul.galleryList').animate({left: nextOffset}, 1500);
    } else {
      $('#'+id+' ul.galleryList').animate({left: 0}, 1000);
    }
  } else {
    return false;
  }
}

function galleryHover() {
	$(".thumb img").hover(
		function() {
			var src = $(this).attr("src");
			var coverimg = $(this).parents("div.gallery").children(".coverimg").children("img").attr("src");
			//alert("mouse in");
			$(this).parents("div.gallery").children(".coverimg").children("img").attr("src", src);
		},
		function() {
			var id = $(this).parents(".gallery").attr("id");
			var src = $("#"+id+" .cover a img").attr("src");
			//alert(src);
			$(this).parents("div.gallery").children(".coverimg").children("img").attr("src", src);
		}
	);
}
