/****************************************************
	ZR JQuery Lightbox zoom script 2.1	 
****************************************************/
var lbStage = 'ready';
var lbArray = new Array();
var lbTitleArray = new Array();
var lbGallery = false;
var zoomDetail = false;

//Set up all the HTML for the lightbox
var lbLoadHTML = '<img src="/images/lightbox/lightbox-load.gif" alt="loading" title="loading" id="lightboxload" />'
var maskHTML = '<div id="mask" onclick="closeLightBox();" title="Click to Close"></div>'+lbLoadHTML;
var maskHTMLZoom = '<div id="mask" onclick="closeZoomBox();" title="Click to Close"></div>'+lbLoadHTML;
var lightBoxHTML = '<div id="lightbox"><div id="lightboxutil"><img src="/images/lightbox/close.png" alt="Close" title="Close" onclick="closeLightBox();" id="lbclose" /></div><div id="lightboximage"></div></div>';
var lbCloseBtn = '<img src="/images/lightbox/mini-close.gif" id="lbminiclose" onclick="captionFade();" alt="Hide Caption" title="Hide Caption" />';
var prevLink = '';
var nextLink = '';
var captionLink = '';


//function to set up the backound and preloader
var maskLoad = function(opener) { 
	//Set up all the positioning variables
	docHeight = $(document).height();
	winHeight = $(window).height();
	winHeightFrag = Math.round(winHeight*1)/10;
	winWidth = $(window).width();
	scrollTop = $(window).scrollTop();
	lbTopPos = scrollTop + winHeightFrag;
	lbLoadTopPos = (((Math.round(winHeight)/2)+scrollTop)-16);
	lbLoadLeftPos = ((Math.round(winWidth)/2)-16);
	lbStage = 'loading';
	if (opener == 'productZoom'){
		$("body").prepend(maskHTMLZoom);
	}
	else {
		$("body").prepend(maskHTML);
	}
	$("#mask").css("height",docHeight);
	$("#lightboxload").css("top",lbLoadTopPos);
	$("#lightboxload").css("left",lbLoadLeftPos);
}

//core function that sets up the mask and the light box
var lightBoxZoom = function(lmnt){
	maskLoad();
	//Set up arrays for Lightbox Galleries Mode.
	$(".zoom").each(function (i) {
		lbArray[i] = this.href;
		lbTitleArray[i] = this.title;
		//$("#debug").append(lbTitleArray	[i]);
	});
	if(lbArray.length > 1) { 
		lbGallery = true;
	}
	lbLoadContent(lmnt);
}

//same as lightbox but it pulls content from a hidden div
//directly after the <a> element for longer article driven images
var lightBoxDetail = function(lmnt){
	zoomDetail = true;
	maskLoad();
	//Set up arrays for Lightbox Galleries Mode.
	$(".zoomdetail").each(function (i) {
		lbArray[i] = this.href;
		lbTitleArray[i] = $(this).next('div').html();
	});
	if(lbArray.length > 1) { 
		lbGallery = true;
	}
	lbLoadContent(lmnt);
}

var prevNextBox = function(lmnt){
	if ($.browser.msie == true) {
		//hide the caption so it doesn't look like garbage in ie.
		$('#lightboxcaption').css('display','none');
	}
	$("#lightbox").fadeOut('fast', function(){
		$("#lightbox").remove();
		$("#mask").after(lbLoadHTML);
		$("#lightboxload").css("top",lbLoadTopPos);
		$("#lightboxload").css("left",lbLoadLeftPos);
		lbStage = 'loading';
		lbLoadContent(lmnt);
		captionVisible = true;
	});
}

var captionVisible = true;
var captionFade = function() { 
	if (captionVisible == false){
		$('#lbcaptionicon').attr('alt','Hide Caption');
		$('#lbcaptionicon').attr('title','Hide Caption');
		$('#lbminiclose').css('display','block');
		$('#lightboxcaption').fadeTo(500,.8);
		captionVisible = true;
	} else { 
		$('#lbcaptionicon').attr('alt','Show Caption');
		$('#lbcaptionicon').attr('title','Show Caption');
		$('#lightboxcaption').fadeTo(500,0, function(){
			$('#lbminiclose').css('display','none');
		});
		captionVisible = false;
		
	}
}

//Core function that loads the Image to the lightbox
var lbLoadContent = function(lmnt){
	//Set up the Image properties
	imgPath = lmnt.href;
	if (zoomDetail == true) { 
		lbCaption = $(lmnt).next('div').html();
	} else { 
		lbCaption = lmnt.title;
	}
	var lbImg = new Image();
	$(lbImg).load(function() { 
		//This all happens after the image loads
		
		//Set up Previous and next content for Lightbox Galleries
		if(lbGallery == true){
			lbx=0;
			lastImg = lbArray.length - 1;
			for (lbx=0; lbx<lbArray.length; lbx++){
				if(imgPath == lbArray[lbx]){
					lbCaption = lbTitleArray[lbx];
					switch (lbx){
						case 0:
							prevImg = lbArray[lastImg];
							nextImg = lbArray[lbx+1];
							prevCaption = lbTitleArray[lastImg];
							nextCaption = lbTitleArray[lbx+1];
						break;
						case lastImg:
							prevImg = lbArray[lbx-1];
							nextImg = lbArray[0];
							prevCaption = lbTitleArray[lbx-1];
							nextCaption = lbTitleArray[0];
						break;
						default:
							prevImg = lbArray[lbx-1];
							nextImg = lbArray[lbx+1];
							prevCaption = lbTitleArray[lbx-1];
							nextCaption = lbTitleArray[lbx+1];
					}
				}
			}
			prevLink = '<a href="'+prevImg+'" onclick="prevNextBox(this); return false;" title="'+prevCaption+'" class="lightboxprev"><img src="/images/lightbox/previous.png" alt="previous" /></a>';
			nextLink = '<a href="'+nextImg+'" onclick="prevNextBox(this); return false;" title="'+nextCaption+'" class="lightboxnext"><img src="/images/lightbox/next.png" alt="next" /></a>';
		}
		
		$("#lightboxload").replaceWith(lightBoxHTML);
		$("#lightboximage").html(this);
		
		if(lbCaption != '') { 
			captionLink = '<img src="/images/lightbox/info.png" onclick="captionFade();" alt="Hide Caption" title="Hide Caption" id="lbcaptionicon" />';
		} else { 
			captionLink = '';
		}
		
		$("#lightboxutil").prepend(captionLink+prevLink+nextLink);
		
		$("#lightbox").css("top",lbTopPos);
		var lbwidth = $("#lightbox").width();
		lbLeftPos = (Math.round(winWidth/2))-(Math.round(lbwidth/2));
		$("#lightbox").css("left",lbLeftPos);
		//Must have PNG fix enabled to fix the close button PNG on the fly
		$("#lightboxutil img").css("behavior","url(/iepngfix.htc)");
		$("#lightbox").fadeIn('normal',function() {
		//set the docHeight again because the lightbox can push it down.
		docHeight = $(document).height();
		$("#mask").css("height",docHeight);
			lbStage = 'loaded';
			if(lbCaption != '') { 
				//caption width is width of the image - 20px for padding
				captionWidth = $('#lightboximage img').width() - 20;
				$("#lightbox").prepend('<div id="lightboxcaption">'+lbCaption+lbCloseBtn+'</div>');
				$("#lightboxcaption").css('width',captionWidth);
				$("#lightboxcaption").css('filter','alpha(opacity=0)');
				$("#lightboxcaption").fadeTo(300,.8);
			}
		});
	}).attr('src',imgPath).error(function () {
			 alert('there was an error loading the image');
			 $("#lightboxload").remove();
				$("#mask").remove();
				lbImg = '';
				lbStage = 'ready';
	});
}

/****************************************************
	ZR JQuery Video Lightbox  script 1.0				 
****************************************************/
var videoBoxHTML = '<div id="lightbox" class="videobox"><div id="lightboxutil"><img src="/images/lightbox/close.png" alt="close" title="close" onclick="closeLightBox();" /></div><div id="videoboxcontent"></div></div>';


var positionVideoLB = function() { 
	maskLoad();
	$("#lightboxload").after(videoBoxHTML);
	$("#lightbox").css("top",lbTopPos);
		lbLeftPos = (Math.round(winWidth/2))-340;
	$("#lightbox").css("left",lbLeftPos);
	$("#lightboxclose img").css("behavior","url(/iepngfix.htc)");
	docHeight = $(document).height();
	$("#mask").css("height",docHeight);
}

var loadVideoLB = function(vidPath,cont) { 
	// <![CDATA[
	vidFrame = vidPath.replace(/.flv/,'.jpg');
	var so = new SWFObject("/flash/gen_flv_player.swf", "myMovie", 640, 360, "9", "#000000");
	so.addParam("wmode", "transparent");
	so.addVariable("videoPath", vidPath);
	so.addVariable("framePath", vidFrame);
	so.addVariable("videoWidth", 640);
	so.addVariable("videoHeight", 360);
	so.addVariable("displayPlayPause", "true");
	so.addVariable("displayTimeline", "true");
	so.addVariable("displayTimeClock", "true");
	so.addVariable("displayVolume", "true");
	so.addVariable("autoStart", "false");
	so.addVariable("autoBuffer", "true");
	so.addVariable("autoPlayButton", "true");
	so.addVariable("loaderColor", "0x333333");
	so.write(cont);
	//so.write("videoboxcontent");
	// ]]>
}

var videoLightBox = function(lmnt) { 
	vid = lmnt.href;
	vidPath = vid.replace('/videos/','/images/videos/');
	positionVideoLB();
	$("#lightboxload").remove();
	$("#lightbox").fadeIn('normal', function(){
		lbStage = 'loaded';
		loadVideoLB(vidPath,"videoboxcontent");
	});
}

var videoAjaxBox = function(lmnt){
	var vidIDPath = lmnt.href.split('/');
	var vidIDLast = vidIDPath.length - 2;
	var vidRefID = vidIDPath[vidIDLast];
	positionVideoLB();
	$("#videoboxcontent").load("/includes/video-ajax-box.jsp", {refid: vidRefID}, function(){
		$("#lightboxload").remove();
		$("#lightbox").fadeIn('normal', function(){
			lbStage = 'loaded';
			loadVideoLB($('#videoboxpath').html(),'videoboxreplace');
		});
	});
}


/****************************************************
	ZR JQuery Ajax Lightbox  script 1.0				 
****************************************************/

var ajaxBoxHTML = '<div id="lightbox" class="ajaxbox"><div id="lightboxutil"><img src="/images/lightbox/close.png" alt="close" title="close" onclick="closeLightBox();" /></div><div id="ajaxboxcontent"></div></div>';


var ajaxLightBox = function(lmnt) { 
	ajaxLink = lmnt.href;
	lbparm = ajaxLink.split("/");
	lbparm = lbparm.reverse();
	maskLoad();
	$("#lightboxload").after(ajaxBoxHTML);
	$("#lightbox").css("top",lbTopPos);
	lbLeftPos = (Math.round(winWidth/2))-250;
	$("#lightbox").css("left",lbLeftPos);
	$("#lightboxclose img").css("behavior","url(/iepngfix.htc)");
	$("#ajaxboxcontent").load("/includes/ajax-box.jsp", {refid: lbparm[1]}, function(){
		$("#lightboxload").remove();
		//set the mask height again just to make sure we don't have the white space in the footer
		docHeight = $(document).height();
		$("#mask").css("height",docHeight);
		//show the content
		$("#lightboxutil img").css("behavior","url(/iepngfix.htc)");
		$("#lightbox").fadeIn('normal', function(){
			lbStage = 'loaded';
		});
		
		//set a max height
		maxWinHeight = winHeight * .7;
		if($('#ajaxboxcopy').height() > maxWinHeight) { 
			$('#ajaxboxcopy').css('height',maxWinHeight+'px');
			$('#ajaxboxcopy').css('overflow','auto');
			$('#ajaxboxcopy').css('padding-right','10px');
		}
	});
	//alert(ajaxLink);
}

/****************************************************
	ZR Close Lightbox													
****************************************************/

var closeLightBox = function(){
	if (lbStage == 'loading') { 
		if ($.browser.msie == false) {
			//do nothing if it is IE until the window is done loading.
			stop();
			$("#lightboxload").remove();
			$("#lightbox").remove();
			$("#mask").remove();
			lbStage = 'ready';
		}
	} else {
		$("#lightbox").fadeOut('fast', function(){
			$("#lightbox").remove();
			$("#mask").remove();
			lbStage = 'ready';
		});
	}
}

/****************************************************
	Open lightbox													 		 
	arrive at the page with the lightbox open 
	just specify a param.lightbox and add this code:
	
	$(function(){
		openLightBox(${param.lightbox});
	});
****************************************************/


var openLightBox = function(num){
	$('.zoom:eq('+num+')').each(function(){
		lightBoxZoom(this);
	});
}


var openLightBoxDetail = function(num){
	$('.zoomdetail:eq('+num+')').each(function(){
		lightBoxDetail(this);
	});
}


/****************************************************
	Attach Lightbox
****************************************************/
$(function(){
	//Load all the images that need to be loaded.
	lightBoxLoader= new Image(); 
  lightBoxLoader.src="/images/lightbox/lightbox-load.gif";
	lightboxclose= new Image(); 
	lightboxclose.src="/images/lightbox/close.png"; 
	lightboxinfo= new Image(); 
	lightboxinfo.src="/images/lightbox/info.png"; 
	lightboxprev= new Image(); 
	lightboxprev.src="/images/lightbox/previous.png"; 
	lightboxnext= new Image(); 
	lightboxnext.src="/images/lightbox/next.png"; 
	
	//attach lightbox to the zoom class
	$('a.zoom').click(function(){
		lightBoxZoom(this);
		return false;
	});
	
	$('a.zoomdetail').click(function(){
		lightBoxDetail(this);
		return false;
	});
	
	$('a.ajaxlink').click(function(){
		ajaxLightBox(this);
		return false;
	});
	
	$('a.videobox').click(function(){
		videoLightBox(this);
		return false;
	});
	
	$('a.videoajax').click(function(){
		videoAjaxBox(this);
		return false;
	});
});
