//set default view mode
$defaultViewMode="full"; //full (fullscreen background), fit (fit to window), original (no scale)
//cache vars
$bg=$("#bg");
$bgimg=$("#bg #bgimg");
$preloader=$("#preloader");
$outer_container=$("#outer_container");
$specs=$("#specs");
$contact=$("#contact");
$menu=$("#menu");
$pdf=$("#pdfs");
$outer_container_a=$("#outer_container a.thumb_link");
$toolbar=$("#toolbar");
$nextimage_tip=$("#nextimage_tip");
$previmage_tip=$("#previmage_tip");
$btn_close_g=$("#btn_close_g");
$btn_close_s=$("#btn_close_s");
$btn_close_c=$("#btn_close_c");
$btn_close_p=$("#btn_close_p");
$opened = 0;
$playing = 0;
$start = 0;
$direction = 'left';
	
$(window).load(function() {
	$toolbar.data("imageViewMode",$defaultViewMode); //default view mode
	//cache vars
	$customScrollBox=$("#customScrollBox");
	$customScrollBox_container=$("#customScrollBox .container");
	
	$customScrollBox.height($customScrollBox_container.height());
	
	//resize browser window functions
	$(window).resize(function() {
		FullScreenBackground("#bgimg"); //scale bg image
	});
	$('#firstlink').trigger('click');
	$('#lnk_play').trigger('click');
});

//loading bg image
$bgimg.load(function() {
	LargeImageLoad($(this));
});

function LargeImageLoad($this){
	$preloader.fadeOut("fast"); //hide preloader
	//$this.fadeOut("slow");
	$this.removeAttr("width").removeAttr("height").css({ width: "", height: "" }); //lose all previous dimensions in order to rescale new image data
	$bg.data("originalImageWidth",$this.width()).data("originalImageHeight",$this.height());
	if($bg.data("newTitle")){
		$this.attr("title",$bg.data("newTitle")); //set new image title attribute
	}
	FullScreenBackground($this); //scale new image
	$bg.data("nextImage",$($outer_container.data("selectedThumb")).next().attr("href")); //get and store next image
	$bg.data("prevImage",$($outer_container.data("selectedThumb")).prev().attr("href")); //get and store prev image
	if(typeof itemIndex!="undefined"){
		if(itemIndex==lastItemIndex){ //check if it is the last image
			$bg.data("lastImageReached","Y");
			$bg.data("nextImage",$outer_container_a.first().attr("href")); //get and store next image
		} 
		else {
			$bg.data("lastImageReached","N");
		}
		if (itemIndex==0) {
			$bg.data("firstImageReached","Y");
			$bg.data("prevImage",$outer_container_a.last().attr("href")); //get and store prev image
		}
		else {
			$bg.data("firstImageReached","N");
		}
	} else {
		$bg.data("lastImageReached","N");
		$bg.data("firstImageReached","N");
	}
	$this.animate({"opacity": "toggle"}, "slow");//$this.animate({"width": "toggle", "opacity": "toggle"}, "slow"); //fadein background image $this.fadeIn("slow"); $this.show("slow");$this.show("slide",{direction:$direction},"slow");
	
	if($bg.data("nextImage") || $bg.data("lastImageReached")=="Y"){ //don't close thumbs pane on 1st load
		//SlidePanels("close"); close the left pane
	}
}


$("#lnk_specs").click(
	function(){ //mouse over
		SlideSpecs("open");
		$("#lnk_specs").addClass('active');
		$("#lnk_contact").removeClass('active');
		$("#lnk_pictures").removeClass('active');
		$("#lnk_pdf").removeClass('active');
		$opened = 1;
	}
);

/*
$("#lnk_pictures").click(
	function(){ //mouse over
		SlidePanels("open");
		$("#lnk_pictures").addClass('active');
		$("#lnk_contact").removeClass('active');
		$("#lnk_specs").removeClass('active');
		$("#lnk_pdf").removeClass('active');
	}
);*/

$("#lnk_pictures").click(
	function(){ //mouse over
		SlidePanels("open");
		$("#lnk_pictures").addClass('active');
		$("#lnk_contact").removeClass('active');
		$("#lnk_specs").removeClass('active');
		$("#lnk_pdf").removeClass('active');
		$opened = 1;
	}
);

$("#lnk_contact").click(
	function(){ //mouse over
		SlideContact("open");
		$("#lnk_contact").addClass('active');
		$("#lnk_specs").removeClass('active');
		$("#lnk_pictures").removeClass('active');
		$("#lnk_pdf").removeClass('active');
		$opened = 1;
	}
);

$("#lnk_pdf").click(
	function(){ 
		SlidePDF("open");
		$("#lnk_pdf").addClass('active');
		$("#lnk_pictures").removeClass('active');
		$("#lnk_contact").removeClass('active');
		$("#lnk_specs").removeClass('active');
		$opened = 1;
	}
);

$("#btn_close_g").click(
	function(){ //mouse over
		SlidePanels("close");
		$opened = 0;
	}
);

$("#btn_close_s").click(
	function(){ //mouse over
		SlideSpecs("close");
		$opened = 0;
	}
);

$("#btn_close_c").click(
	function(){ //mouse over
		SlideContact("close");
		$opened = 0;
	}
);

$("#btn_close_p").click(
	function(){ //mouse over
		SlidePDF("close");
		$opened = 0;
	}
);

//Clicking on thumbnail changes the background image
$outer_container_a.click(function(event){
	event.preventDefault();
	var $this=this;
	$bgimg.css("display","none");
	$preloader.fadeIn("fast"); //show preloader
	////style clicked thumbnail
	$outer_container_a.each(function() {
		$(this).children(".selected").css("display","block");
	});
	$(this).children(".selected").css("display","none");
	//get and store next image and selected thumb 
	$outer_container.data("selectedThumb",$this); 
	$bg.data("nextImage",$(this).next().attr("href")); 	
	$bg.data("newTitle",$(this).children("img").attr("title")); //get and store new image title attribute
	itemIndex=getIndex($this); //get clicked item index
	lastItemIndex=($outer_container_a.length)-1; //get last item index
	firstItemIndex=0; //get first item index
	if (itemIndex == 0 ) {
		$bg.data("prevImage",$outer_container_a.last().attr("href"));
	}
	else {
		$bg.data("prevImage",$(this).prev().attr("href")); 		
	}
	$direction = 'left';
	$bgimg.attr("src", "").attr("src", $this); //switch image
	//SlidePanels("close");
	if($playing == 1)
	{ Controls("stop");Controls("play"); }
}); 

//clicking on large image loads the next one
$bgimg.click(function(event){
	var $this=$(this);
	if($bg.data("nextImage")){ //if next image data is stored
		$bgimg.css("display","none");
		$preloader.fadeIn("fast"); //show preloader
		$($outer_container.data("selectedThumb")).children(".selected").css("display","block"); //deselect thumb
		if($bg.data("lastImageReached")!="Y"){
			$($outer_container.data("selectedThumb")).next().children(".selected").css("display","none"); //select new thumb
		} else {
			$outer_container_a.first().children(".selected").css("display","none"); //select new thumb - first
		}
		//store new selected thumb
		var selThumb=$outer_container.data("selectedThumb");
		if($bg.data("lastImageReached")!="Y"){
			$outer_container.data("selectedThumb",$(selThumb).next()); 
		} else {
			$outer_container.data("selectedThumb",$outer_container_a.first()); 
		}
		$bg.data("newTitle",$($outer_container.data("selectedThumb")).children("img").attr("title")); //get and store new image title attribute
		if($bg.data("lastImageReached")!="Y"){
			itemIndex++;
		} else {
			itemIndex=0;
		}
		$direction = 'left';
		$bgimg.attr("src", "").attr("src", $bg.data("nextImage")); //switch image
		if($playing == 1)
		{ Controls("stop");Controls("play"); }
	}
});

//clicking on next button loads the next image
$nextimage_tip.click(function(event){
	var $this=$(this);
	if($bg.data("nextImage")){ //if next image data is stored
		$bgimg.css("display","none");
		$preloader.fadeIn("fast"); //show preloader
		$($outer_container.data("selectedThumb")).children(".selected").css("display","block"); //deselect thumb
		if($bg.data("lastImageReached")!="Y"){
			$($outer_container.data("selectedThumb")).next().children(".selected").css("display","none"); //select new thumb
		} else {
			$outer_container_a.first().children(".selected").css("display","none"); //select new thumb - first
		}
		//store new selected thumb
		var selThumb=$outer_container.data("selectedThumb");
		if($bg.data("lastImageReached")!="Y"){
			$outer_container.data("selectedThumb",$(selThumb).next()); 
		} else {
			$outer_container.data("selectedThumb",$outer_container_a.first()); 
		}
		$bg.data("newTitle",$($outer_container.data("selectedThumb")).children("img").attr("title")); //get and store new image title attribute
		if($bg.data("lastImageReached")!="Y"){
			itemIndex++;
		} else {
			itemIndex=0;
		}
		$direction = 'left';
		$bgimg.attr("src", "").attr("src", $bg.data("nextImage")); //switch image
		if($playing == 1)
		{ Controls("stop");Controls("play"); }
	}
});

//clicking on prev button loads the next image
$previmage_tip.click(function(event){
	var $this=$(this);
	if($bg.data("prevImage")){ //if next image data is stored
		$bgimg.css("display","none");
		$preloader.fadeIn("fast"); //show preloader
		$($outer_container.data("selectedThumb")).children(".selected").css("display","block"); //deselect thumb
		if($bg.data("firstImageReached")!="Y"){
			$($outer_container.data("selectedThumb")).prev().children(".selected").css("display","none"); //select new thumb
		} else {
			$outer_container_a.last().children(".selected").css("display","none"); //select new thumb - last
		}
		//store new selected thumb
		var selThumb=$outer_container.data("selectedThumb");
		if($bg.data("firstImageReached")!="Y"){
			$outer_container.data("selectedThumb",$(selThumb).prev()); 
		} else {
			$outer_container.data("selectedThumb",$outer_container_a.last()); 
		}
		$bg.data("newTitle",$($outer_container.data("selectedThumb")).children("img").attr("title")); //get and store new image title attribute
		if($bg.data("firstImageReached")!="Y"){
			itemIndex--;
		} else {
			itemIndex=($outer_container_a.length)-1;
		}
		$direction = 'right';
		$bgimg.attr("src", "").attr("src", $bg.data("prevImage")); //switch image
		if($playing == 1)
		{ Controls("stop");Controls("play"); }
	}
});

//function to get element index (IE!)
function getIndex(theItem){
	for ( var i = 0, length = $outer_container_a.length; i < length; i++ ) {
		if ( $outer_container_a[i] === theItem ) {
			return i;
		}
	}
}

//slide in/out left pane function
function SlidePanels(action){
	var speed=1800;
	var easing="easeOutExpo";
	if(action=="open"){
		$outer_container.stop().animate({top: 0}, speed,easing);
		$outer_container.css("color","white");
		SlideContact("close");
		SlideSpecs("close");
		SlidePDF("close");
		$opened = 1;
	} else {
		$outer_container.stop().animate({top: -800}, speed,easing);
		$outer_container.css("color","transparent");
	}
}

//slide in/out specs pane function
function SlideSpecs(action){
	var speed=1800;
	var easing="easeOutExpo";
	if(action=="open"){
		$specs.stop().animate({top: 0}, speed,easing);
		SlideContact("close");
		SlidePanels("close");
		SlidePDF("close");
	} else {
		$specs.stop().animate({top: -800}, speed,easing);
	}
}

//slide in/out specs pane function
function SlideContact(action){
	var speed=1800;
	var easing="easeOutExpo";
	if(action=="open"){
		$contact.stop().animate({top: 0}, speed,easing);
		SlidePanels("close");
		SlideSpecs("close");
		SlidePDF("close");
	} else {
		$contact.stop().animate({top: -800}, speed,easing);
	}
}

//slide in/out specs pane function
function SlidePDF(action){
	var speed=1800;
	var easing="easeOutExpo";
	if(action=="open"){
		$pdf.stop().animate({top: 0}, speed,easing);
		SlidePanels("close");
		SlideSpecs("close");
		SlideContact("close");
	} else {
		$pdf.stop().animate({top: -800}, speed,easing);
	}
}

//Image scale function
function FullScreenBackground(theItem){
	var winWidth=$(window).width()//-259;//-207;
	var winHeight=$(window).height();//-14;
	var imageWidth=$(theItem).width();
	var imageHeight=$(theItem).height();
	if($toolbar.data("imageViewMode")!="original"){ //scale
		$(theItem).removeClass("with_border").removeClass("with_shadow"); //remove extra styles of orininal view mode
		var picHeight = imageHeight / imageWidth;
		var picWidth = imageWidth / imageHeight;
		if($toolbar.data("imageViewMode")!="fit"){ //image view mode: full
			if ((winHeight / winWidth) < picHeight) {
				$(theItem).css("width",winWidth).css("height",picHeight*winWidth);
			} else {
				$(theItem).css("height",winHeight).css("width",picWidth*winHeight);
			};
			$("#header").css("height",winHeight);
			$("#specs").css("height",winHeight);
			$("#contact").css("height",winHeight);
			$("#outer_container").css("height",winHeight);
		} else { //image view mode: fit
			if ((winHeight / winWidth) > picHeight) {
				$(theItem).css("width",winWidth).css("height",picHeight*winWidth);
			} else {
				$(theItem).css("height",winHeight).css("width",picWidth*winHeight);
			};
		}
		//center it
		$(theItem).css("margin-left",((winWidth - $(theItem).width())/2)).css("margin-top",((winHeight - $(theItem).height())/2));
	}
	
}	
//play and pause function

$("#lnk_play").click(
	function(){ 
		$('#lnk_pause').fadeIn("fast");
		$('#lnk_play').fadeOut("fast");
		if ($start==0){
			$start=1;
		}
		else {
			$('#nextimage_tip').trigger('click');
		}
		Controls("play");
		$playing = 1;
	}
);

$("#lnk_pause").click(
	function(){ 
		Controls("pause");
		$('#lnk_play').fadeIn("fast");
		$('#lnk_pause').fadeOut("fast");
		$playing = 0;
	}
);
		
function Controls(action) {
	if(action=="play"){
		myTimer = setInterval(function() { $('#nextimage_tip').trigger('click');}, 5000);
	}
	else {
		clearInterval(myTimer);
	}
}

//preload script images
var images=["ajax-loader_dark.gif","round_custom_scrollbar_bg_over.png"];
$.each(images, function(i) {
  images[i] = new Image();
  images[i].src = this;
});
