//GLOBALS
var current = 0;
var totalNodes = null;
var timerObj;
var stoptimer = false;
//ARRAYS
var arrImage = new Array();
var arrTimer = new Array();
var arrDir = new Array();
var arrText1 = new Array();
var arrText2 = new Array();
var arrText3 = new Array();
var arrLink1 = new Array();
var arrLink2 = new Array();
var arrLink3 = new Array();
var arrMulti = new Array();
var arrMultiCount = new Array();
var arrSingle = new Array();
var arrDebug = new Array();
var arrOveride = new Array();
var arrSingleLink = new Array();
var arrMultiLink1 = new Array();
var arrMultiLink2 = new Array();
var arrMultiLink3 = new Array();
var arrMultiY1 = new Array();
var arrMultiY2 = new Array();
var arrMultiY3 = new Array();
var arrMultiX1 = new Array();
var arrMultiX2 = new Array();
var arrMultiX3 = new Array();
var arrMultiW1 = new Array();
var arrMultiW2 = new Array();
var arrMultiW3 = new Array();
var arrMultiH1 = new Array();
var arrMultiH2 = new Array();
var arrMultiH3 = new Array();
var arrSwf = new Array();
var flash = 'bottom';

function initLoaded(){
	var msg = "";
	if(arrOveride[current]=="0"){
		if(arrSingle[current]=="1") {
			$('#panoImg'+current).click(function(){window.location.href = arrSingleLink[current];}).css('cursor','pointer');
		}else if(arrMulti[current]=="1"){
			msg = validateCount(arrMultiCount[current],msg,current); //validate requestd number of image map links. max = 3
			if(arrMultiCount[current]>0) msg = validateUrl(arrMultiLink1[current],msg,1);
			if(arrMultiCount[current]>1) msg = validateUrl(arrMultiLink2[current],msg,2);
			if(arrMultiCount[current]>2) msg = validateUrl(arrMultiLink3[current],msg,3);
			if(arrMultiCount[current]>0) msg = validateY(arrMultiY1[current],arrMultiH1[current],msg,1);
			if(arrMultiCount[current]>1) msg = validateY(arrMultiY2[current],arrMultiH2[current],msg,2);
			if(arrMultiCount[current]>2) msg = validateY(arrMultiY3[current],arrMultiH3[current],msg,3);
			if(arrMultiCount[current]>0) msg = validateX(arrMultiX1[current],arrMultiW1[current],msg,1);
			if(arrMultiCount[current]>1) msg = validateX(arrMultiX2[current],arrMultiW2[current],msg,2);
			if(arrMultiCount[current]>2) msg = validateX(arrMultiX3[current],arrMultiW3[current],msg,3);
			if(arrMultiCount[current]>0) msg = validateWidth(arrMultiW1[current],msg,1);
			if(arrMultiCount[current]>1) msg = validateWidth(arrMultiW2[current],msg,2);
			if(arrMultiCount[current]>2) msg = validateWidth(arrMultiW3[current],msg,3);
			if(arrMultiCount[current]>0) msg = validateHeight(arrMultiH1[current],msg,1);
			if(msg.length > 0){
				alert(msg);
			}else{
				switch(arrMultiCount[current]){
					case "1":
						$('#panotop').append('<a href="'+arrMultiLink1[current]+'" class="click1"></a>');
						break;
					case "2":
						$('#panotop').append('<a href="'+arrMultiLink1[current]+'" class="click1"></a>');
						$('#panotop').append('<a href="'+arrMultiLink2[current]+'" class="click2"></a>');
						break;
					case "3":
						$('#panotop').append('<a class="click1" href="'+arrMultiLink1[current]+'"></a>');
						$('#panotop').append('<a class="click2" href="'+arrMultiLink2[current]+'"></a>');
						$('#panotop').append('<a class="click3" href="'+arrMultiLink3[current]+'"></a>');
						break;
				}
				$('#panotop .click1').css('top',arrMultiY1[current]).css('left',arrMultiX1[current]).css('width',arrMultiW1[current]).css('height',arrMultiH1[current]);
				$('#panotop .click2').css('top',arrMultiY2[current]).css('left',arrMultiX2[current]).css('width',arrMultiW2[current]).css('height',arrMultiH2[current]);
				$('#panotop .click3').css('top',arrMultiY3[current]).css('left',arrMultiX3[current]).css('width',arrMultiW3[current]).css('height',arrMultiH3[current]);
				if(arrDebug[current]=="1"){
					$('#panotop .click1').css('border','3px solid red').append('<div class="debugtext">1</div>');
					$('#panotop .click2').css('border','3px solid red').append('<div class="debugtext">2</div>');
					$('#panotop .click3').css('border','3px solid red').append('<div class="debugtext">3</div>');
				}
			}
		}
	}
	
	if(arrText1[current].length>0){
		$('#panoitem1').css('background-image','url("' + arrDir[current] + arrText1[current] + '.jpg")').fadeIn('fast');
		$('#divider1').fadeIn('fast');
	}else{
		$('#divider1').fadeOut('fast');
	}
	
	if(arrText2[current].length>0){
		$('#panoitem2').css('background-image','url("' + arrDir[current] + arrText2[current] + '.jpg")').fadeIn('fast');
		$('#divider1').fadeIn('fast');
		$('#divider2').fadeIn('fast');
	}else{
		$('#divider1').fadeOut('fast');
		$('#divider2').fadeOut('fast');
	}

	if(arrText3[current].length>0){
		$('#panoitem3').css('background-image','url("' + arrDir[current] + arrText3[current] + '.jpg")').fadeIn('fast');
	}
	
	if(arrLink1[current].length>0) $('#panoitem1').attr("href", arrLink1[current] );
	else $('#panoitem1').attr("href", 'javascript:void(0);' );
	
	if(arrLink2[current].length>0) $('#panoitem2').attr("href", arrLink2[current] );
	else $('#panoitem2').attr("href", 'javascript:void(0);' );
	
	if(arrLink3[current].length>0) $('#panoitem3').attr("href", arrLink3[current] );
	else $('#panoitem3').attr("href", 'javascript:void(0);' );

	if(stoptimer==false) timerObj = $.timer(arrTimer[current],function(timer){onTimerEvent(timer)});
	
	bindButtons();
}

function bindButtons(){
	$("#previousbutton").bind("click", {index: -1} , loadImg);
	$("#nextbutton").bind("click", {index: 1} , loadImg);
}

function unbindButtons(){
	$("#previousbutton").unbind("click", loadImg);
	$("#nextbutton").unbind("click", loadImg);
}

function pause(){
	unbindButtons();
	timerObj.stop();
	stoptimer = true;
	$("#pausebutton").remove();
	$("#panobottom").append('<a id="playbutton" href="javascript:play()"></a>');
	bindButtons();
}

function play(){
	unbindButtons();
	timerObj.reset(arrTimer[current]);
	$("#playbutton").remove();
	stoptimer = false;
	$("#panobottom").append('<a id="pausebutton" href="javascript:pause();"></a>');
	bindButtons();
}
	
function loadImg2(inc){
	$('#panotop .click1').remove();
	$('#panotop .click2').remove();
	$('#panotop .click3').remove();
	var removeid = $("#panotop img").attr('id');
	current = current + inc;
	$('#panoitem1').fadeOut('fast');
	$('#panoitem2').fadeOut('fast');
	$('#panoitem3').fadeOut('fast');
	$('#divider1').fadeOut('fast');
	$('#divider2').fadeOut('fast');
	if(current < 0) current = totalNodes - 1;
	else if(current == totalNodes) current = 0;
	
//	if(arrSwf[current].length > 0){
//		
//		$('#' + removeid).fadeOut('slow',function(){
//			$('#swfDelta').css({'width':'649px','height':'237px','visibility':'visible','display':'block'});
//			$('#' + removeid).remove();
//			initLoaded();
//		});
//		
//	}else{
		//$('#swfDelta').css({'width':'0px','height':'0px','visibility':'hidden','display':'none'});
		$('<img/>').bind('load readystatechange',function(){if(this.complete);}).attr('src',arrDir[current] + arrImage[current] + '.jpg').attr('id','panoImg'+current).attr('class','loadedImg').appendTo('#panotop'); 
		$('#panoImg'+current).fadeIn('slow',function(){$('#' + removeid).remove();initLoaded();});					
//	}
}

function loadImg(event){
	unbindButtons();
	stoptimer = true;
	timerObj.stop();
	$("#pausebutton").remove();
	$("#playbutton").remove();
	$("#panobottom").append('<a id="playbutton" href="javascript:play();"></a>');
	var inc = event.data.index;
	loadImg2(inc);				
}

function onTimerEvent(timer){
	unbindButtons();
	timer.stop();
	loadImg2(1)
}

jQuery.timer = function (interval, callback){
	var interval = interval || 100;
	if (!callback) return false;
	_timer = function (interval, callback) {
		this.stop = function () { clearInterval(self.id); };
		this.internalCallback = function () { callback(self); };
		this.reset = function (val) {
			if (self.id) clearInterval(self.id);
			var val = val || 100;
			this.id = setInterval(this.internalCallback, val);
		};
		this.interval = interval;
		this.id = setInterval(this.internalCallback, this.interval);
		var self = this;
	};
	return new _timer(interval, callback);
};

function validateCount(cnt,msg,node){
	if(msg.length == 0){
		if((cnt>3)||(cnt<=0)||(cnt=='')||!IsNumeric(cnt)) return 'WARNING - MULTICOUNT FOR ITEM '+ node +', IS GREATER THAN 0 OR LESS THEN 4.';
		else return "";
	}else{
		return msg;
	}
}

function validateY(top,height,msg,node){
	if(msg.length == 0){
		var panoheight = 237;
		var parsedtop = Left(top,(top.length - 2));
		var parsedheight = Left(height,(height.length - 2));
		if( top == '' ) return 'PLEASE ENTER A Y VALUE FOR ITEM ' + node;
		else if( ( Right( top, 2) != 'px') || (Right(height,2) != 'px' ) )return 'PLEASE MAKE SURE THAT "PX" IS PRESENT ON THE HEIGHT OR Y COORD OF ITEM ' + node;
		else if( ( parseInt(parsedtop) < 0 ) || ( parseInt(parsedtop) + parseInt(parsedheight) > parseInt(panoheight) ) ) return 'PLEASE ENTER A Y COORD FOR ITEM ' + node + ' GREATER THAN EQUAL TO OR GREATER THAN 0 AND LESS THAN ' + (panoheight - parsedheight); 
		else return "";		
	}else{
		return msg;
	}
}

function validateX(left,width,msg,node){
	if(msg.length == 0){
		var panowidth = 650;
		var parsedleft = Left(left,(left.length - 2));
		var parsedwidth = Left(width,(width.length - 2));
		if( left == '' ) return 'PLEASE ENTER AN X VALUE FOR ITEM ' + node;
		else if( ( Right( left, 2) != 'px') || (Right(width,2) != 'px' ) )return 'PLEASE MAKE SURE THAT "PX" IS PRESENT ON THE WIDTH OR X COORD OF ITEM ' + node;
		else if( ( parseInt(parsedleft) < 0 ) || ( parseInt(parsedleft) + parseInt(parsedwidth) > parseInt(panowidth) ) ) return 'PLEASE ENTER AN X COORD FOR ITEM ' + node + ' GREATER THAN OR EQUAL TO 0 AND LESS THAN ' + (panowidth - parsedwidth); 
		else return "";		
	}else{
		return msg;
	}
}

function validateWidth(width,msg,node){
	if(msg.length == 0){
		var panowidth = 650;
		var parsedwidth = Left(width,(width.length - 2));
		if( width == '' ) return 'PLEASE ENTER A WIDTH VALUE FOR ITEM ' + node;
		else if( (parseInt(parsedwidth) > parseInt(panowidth)) ||  ( parseInt(parsedwidth) <= 0 ) ) return 'PLEASE ENTER A WIDTH VALUE FOR ITEM ' + node + ' LESS THAN ' + panowidth; 
		else return "";		
	}else{
		return msg;
	}
}

function validateHeight(height,msg,node){
	if(msg.length == 0){
		var panoheight = 237;
		var parsedheight = Left(height,(height.length - 2));
		if( height == '' ) return 'PLEASE ENTER A HEIGHT VALUE FOR ITEM ' + node;
		else if( (parseInt(parsedheight) > parseInt(panoheight)) ||  ( parseInt(parsedheight) <= 0 ) ) return 'PLEASE ENTER A HEIGHT VALUE FOR ITEM ' + node + ' LESS THAN ' + panoheight; 
		else return "";		
	}else{
		return msg;
	}
}

function validateUrl(url,msg,num){
	if(msg.length == 0){
		var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
		if(regexp.test(url)) return "";
		else return 'WARNING - URL '+num+' IS INVALID.';
	}else{
		return msg;
	}
}

function swapZindex(){
	if( flash == 'bottom'){
	
		flash = 'top';
		
		$('#panotop').css('z-index','11');
		$('#panobottom').css('z-index','11');
		
		$('#panotop_flash').css('z-index','12');
	
	}else{
		
		flash = 'bottom';
		$('#panotop').css('z-index','12');
		$('#panobottom').css('z-index','12');
		
		$('#panotop_flash').css('z-index','11');
		
	}
	
	return;
	
}

//HELPER FUNCTIONS#############################################################
function Left(str, n){
	if (n <= 0) return "";
	else if (n > String(str).length) return str;
	else return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0) return "";
    else if (n > String(str).length) return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function IsNumeric(sText){
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) IsNumber = false;
	}
   return IsNumber;
}

/*
	jQuery Coda-Slider v1.1 - http://www.ndoherty.com/coda-slider
	
	Copyright (c) 2007 Niall Doherty
*/
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3(d(){3("4.T").1s("<p r=\'O\'>16...<1t /><18 19=\'1a/11-1b.1c\' 1d=\'O...\'/ ></p>")});b j=0;3.1e.1f=d(f){f=3.1g({G:"1h",E:1i,1j:Q},f);P 6.w(d(){b o=3(6);o.7("p.O").1k();o.q("T").l("1l");b m=o.7("4.I").C();b k=o.7("4.I").1m();b U=m*k;o.7("4.t").K("C",U);b N=k*2;F(h.g&&D(h.g.s(1))<=k){b 9=D(h.g.s(1));b e=-(m*(9-1));3(6).7("4.t").K({H:e})}B{b 9=1};o.w(d(i){3(6).W("<4 r=\'J\' M=\'J"+j+"\'><a A=\'#\'>1n</a><\\/4>");3(6).1o("<4 r=\'L\' M=\'L"+j+"\'><a A=\'#\'>1q</a><\\/4>");3(6).W("<4 r=\'c\' M=\'c"+j+"\'><v><\\/v><\\/4>");3(6).7("4.I").w(d(n){3("4#c"+j+" v").X("<x r=\'Z"+(n+1)+"\'><a A=\'#"+(n+1)+"\'>"+3(6).S("10")+"<\\/a><\\/x>")});3("4#c"+j+" a").w(d(z){N+=3(6).5().C();3(6).12("u",d(){3(6).l("8").5().5().7("a").13(3(6)).q("8");b e=-(m*z);9=z+1;3(6).5().5().5().V().7("4.t").R({H:e},f.E,f.G)})});3("4#J"+j+" a").u(d(){F(9==1){b e=-(m*(k-1));9=k;3(6).5().5().7("4.c a.8").q("8").5().5().7("x:14 a").l("8")}B{9-=1;b e=-(m*(9-1));3(6).5().5().7("4.c a.8").q("8").5().15().7("a").l("8")};3(6).5().5().7("4.t").R({H:e},f.E,f.G);h.g=9;P Q});3("4#L"+j+" a").u(d(){F(9==k){b e=0;9=1;3(6).5().5().7("4.c a.8").q("8").5().5().7("a:y(0)").l("8")}B{b e=-(m*9);9+=1;3(6).5().5().7("4.c a.8").q("8").5().V().7("a").l("8")};3(6).5().5().7("4.t").R({H:e},f.E,f.G);h.g=9;P Q});3("a.1p-1r").u(d(){3(6).Y().7(".c v x a:y("+(D(3(6).S("A").s(1))-1)+")").17(\'u\')});3("4#c"+j).K("C",N);F(h.g&&D(h.g.s(1))<=k){3("4#c"+j+" a:y("+(h.g.s(1)-1)+")").l("8")}B{3("4#c"+j+" a:y(0)").l("8")}});j++})};',62,92,'|||jQuery|div|parent|this|find|current|cPanel||var|stripNav|function|cnt|settings|hash|location|||panelCount|addClass|panelWidth||container||removeClass|class|slice|panelContainer|click|ul|each|li|eq||href|else|width|parseInt|easeTime|if|easeFunc|left|panel|stripNavL|css|stripNavR|id|navWidth|loading|return|false|animate|attr|csw|stripViewerWidth|next|before|append|parents|tab|title|ajax|bind|not|last|prev|Loading|trigger|img|src|img|loader|gif|alt|fn|codaSlider|extend|expoinout|750|toolTip|remove|stripViewer|size|Left|after|cross|Right|link|prepend|br'.split('|'),0,{})) 

$(window).load(function () {
						 
	jQuery("div#slider1").codaSlider();
	
	////////////////////////////////
	$('#panotop_flash').removeClass('flashcontainer_hide').addClass('flashcontainer_show');
	
	if(jQuery.browser.msie && parseInt(jQuery.browser.version, 10) == 6) {
	  try {
	    document.execCommand("BackgroundImageCache", false, true);
	  } catch(err) { }
	}
	$.ajax({
		type: "GET",
		cache: false,
		url: "../xml/main_gallery2.xml",
		dataType: "xml",
		success: function(xml) {
			var cnt = 0;
			$(xml).find('pano').each(function(){
				arrSwf[cnt] = $(this).find('swf').text();
				arrDir[cnt] = $(this).attr('dir');
				arrDebug[cnt] = $(this).attr('debug');
				arrImage[cnt] = $(this).find('image').text();
				arrTimer[cnt] = $(this).find('timer').text();
				arrOveride[cnt] = $(this).find('overide').text();
				arrMulti[cnt] = $(this).find('multi').text();
				arrMultiCount[cnt] = $(this).find('multicount').text();
				arrMultiLink1[cnt] = $(this).find('multilink1').text();
				arrMultiLink2[cnt] = $(this).find('multilink2').text();
				arrMultiLink3[cnt] = $(this).find('multilink3').text();
				arrMultiY1[cnt] = $(this).find('multiY1').text();
				arrMultiY2[cnt] = $(this).find('multiY2').text();
				arrMultiY3[cnt] = $(this).find('multiY3').text();
				arrMultiX1[cnt] = $(this).find('multiX1').text();
				arrMultiX2[cnt] = $(this).find('multiX2').text();
				arrMultiX3[cnt] = $(this).find('multiX3').text();
				arrMultiW1[cnt] = $(this).find('multiW1').text();
				arrMultiW2[cnt] = $(this).find('multiW2').text();
				arrMultiW3[cnt] = $(this).find('multiW3').text();
				arrMultiH1[cnt] = $(this).find('multiH1').text();
				arrMultiH2[cnt] = $(this).find('multiH2').text();
				arrMultiH3[cnt] = $(this).find('multiH3').text();
				arrSingle[cnt] = $(this).find('single').text();
				arrSingleLink[cnt] = $(this).find('singlelink').text();
				arrText1[cnt] = $(this).find('text1').text();
				arrText2[cnt] = $(this).find('text2').text();
				arrText3[cnt] = $(this).find('text3').text();
				arrLink1[cnt] = $(this).find('link1').text();
				arrLink2[cnt] = $(this).find('link2').text();
				arrLink3[cnt] = $(this).find('link3').text();
				$.preload([ arrImage[cnt], arrText1[cnt], arrText2[cnt], arrText3[cnt] ], {base:'img/pano/',ext:'.jpg'});
				cnt = cnt + 1;
			});
			totalNodes = cnt;
			
			$('#panoloader').fadeIn('slow',function(){


//				$('#panotop').append('<div class="loadedSwf" id="swfDelta"></div>');
//				var params = {wmode:"transparent"};      
//				var attributes = {};  
//				var FlashVars = {};
//				swfobject.embedSWF("img/pano/delta/video.swf", "swfDelta", "639", "247", "9.0.0", "img/pano/delta/expressInstall.swf",FlashVars, params, attributes);
//				$('#panotop').css('background-color','#000000');
//				$('#swfDelta').css({'width':'649px','height':'237px','visibility':'visible','display':'block'});
				
				
				bindButtons();
				$('<img/>').bind('load readystatechange',function(){if (this.complete);}).attr('src',arrDir[current] + arrImage[current] + '.jpg').attr('id','panoImg'+current).attr('class','loadedImg').appendTo('#panotop'); 
				$('#panoloader').fadeOut('slow',function(){
					$('#panoloader').remove();
					$('#panoImg'+current).fadeIn('slow', function(){
						initLoaded();
					});
				});
			});

		}
	});	

	
	//////////////////////////////////
	
	
	
	
	
						 
	
//	if(arrSwf[current].length > 0){
//		
//		$('#panotop').css('background-color','#000000');
//		$('#swfDelta').css({'width':'649px','height':'237px','visibility':'visible','display':'block'});
//		initLoaded();
//		
//	}else{

	//}
});

$(document).ready(function () {
	var params = {wmode:"transparent"};      
	var attributes = {};  
	var FlashVars = {};
	swfobject.embedSWF('flash/xmasWrap.swf', 'flash_container', "950", "276", "9.0.0", "img/pano/expressInstall.swf",FlashVars, params, attributes);
	$("a[rel^='prettyPhoto']").prettyPhoto();
});