/****************************************************
	ZR JQuery Lightbox zoom script 2.0	 
****************************************************/
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 lbHTML = '<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 lbMaskLoad = function() { 
	//Set up all the positioning variables
	docHeight = $(document).height();
	winHeight = $(window).height();
	winHeightFrag = Math.round(winHeight*1)/14;
	winWidth = $(window).width();
	scrollTop = $(window).scrollTop();
	lbTopPos = scrollTop + winHeightFrag;
	lbLoadTopPos = (((Math.round(winHeight)/2)+scrollTop)-16);
	lbLoadLeftPos = ((Math.round(winWidth)/2)-16);
	lbStage = 'loading';
	
	$("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){
	lbMaskLoad();
	//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;
	lbMaskLoad();
	//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(lbHTML);
		$("#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 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, widerPixels) { 
	lbMaskLoad();
	$("#lightboxload").after(ajaxBoxHTML);
	$("#lightbox").css("top",lbTopPos);
	lbLeftPos = (Math.round(winWidth/2))-200;
	$("#lightbox").css("left",lbLeftPos);
	$("#lightboxclose img").css("behavior","url(/iepngfix.htc)");
	ajaxLightBoxRefresh(lmnt.href, widerPixels);
}

var ajaxLightBoxRefresh = function(href, widerPixels) { 
  var lbparm = href.split("/");
  lbparm = lbparm.reverse();
  
  $("#ajaxboxcontent").load("/ajax-box/", {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
    if($('#ajaxboxcopy').height() > 400) { 
      $('#ajaxboxcopy').css('height','400px');
      $('#ajaxboxcopy').css('overflow','auto');
      $('#ajaxboxcopy').css('width','332px');
      $('#ajaxboxcopy').css('padding-right','10px');
    }
    
    
    if (!isNaN(widerPixels)) {
      $('.ajaxbox').css('width', (parseInt($('.ajaxbox').css('width')) + widerPixels) + 'px');
      $('.ajaxbox h1').css('width', (parseInt($('.ajaxbox h1').css('width')) + widerPixels) + 'px');
      $('#ajaxboxcopy').css('width', (parseInt($('#ajaxboxcopy').css('width')) + widerPixels) + 'px');
      $("#lightbox").css("left", lbLeftPos - (widerPixels / 2));
    }   
  });
}



/****************************************************
	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';
		});
	}
}

var lbIframe = function(url){
	lbMaskLoad();
	$("#lightboxload").after(lbHTML);
	$("#lightboxload").remove();
	var lbLeftPos = Math.round(($(window).width()-500)/2);
	var lbTopPos = Math.round(($(window).height()-380)/2);
	$("#lightboxclose img").css("behavior","url(/iepngfix.htc)");
	$('#lightbox').append('<iframe src="' + url + '" name="lbIframe" width="500" height="380" border="0" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>');
	lbStage = 'ready';
	$("#lightbox").width(500);
	$("#lightbox").height(380);
	$("#lightbox").css("top",lbTopPos);
	$("#lightbox").css("left",lbLeftPos);
	$("#lightbox").fadeIn('normal',function() {
	});
}

var loadLoginPage = function(){
	var parentLoc = window.location.href;
	var parentArr = parentLoc.split('/');
	var parentParm = parentArr.pop();
			parentParm = parentArr.pop();
	lbIframe(zrSecureHostURL() + '/account/includes/login/?parent=' + parentLoc + '&loc=' + parentParm); return false;
}

/****************************************************
	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
	$('.zoom').click(function(){
		lightBoxZoom(this);
		return false;
	});
	
	$('.zoomdetail').click(function(){
		lightBoxDetail(this);
		return false;
	});
	
	$('.ajaxlink').click(function(){
		ajaxLightBox(this);
		return false;
	});
	
	$('#headerlogin, #addressloginbtn, .loginbtn').click(function(){
		loadLoginPage(); return false;
	});

});
