_bgImages = {
	services: "images/services/splash_01.jpg",
	services_0: "images/services/splash_02.jpg",
	services_1: "images/services/splash_03.jpg",
	services_2: "images/services/splash_05.jpg",
	services_3: "images/services/splash_06.jpg",
	services_4: "images/services/splash_07.jpg",
	services_5: "images/services/splash_08.jpg",
	services_6: "images/services/splash_09.jpg",	
	services_7: "images/services/splash_10.jpg",	
	facility: "images/facilities/splash_01.jpg",
	about: "images/about/splash.jpg",
	press: "images/press/splash.jpg",
	news: "images/press/splash.jpg",
	release: "images/press/splash.jpg",
	contact: "images/contact/splash.jpg",
	"default": "images/about/splash.jpg",
	index: "images/index/splash.jpg"
};

var pageIdHash = {};

function doAjaxReady() {
	
	currentContent.trigger('ready');
	if (_servicesOpen)  {
		_servicesToggler.click();
	}
	
	if (hrefHash2[curPage]) {
		linkSubContent3();
	}
	linkSubContentAny();
	
	transitionInContent();
}

function linkSubContent3() {
	var elem = $("#content ul.listing li.swfAddressLink");
	var clickElems = $("#content ul.listing li.swfAddressLink a");
	hookUpLinks3(elem, clickElems);
	
}
function linkSubContentAny() {
	var elem = $(".swfAddressLinkHolder");
	var clickElems = $("a.swfAddressLink");
	hookUpLinks3(elem, clickElems);
	
}



function onReady(prefix) {
	prefix = prefix ? prefix + " " : "";
	$(prefix+".gallery [rel^='prettyPhoto']").prettyPhoto({social_tools:false,theme:'light_rounded',deeplinking:false});
	$(prefix+"a[rel^='prettyPhoto[ajax]']").prettyPhoto({animationSpeed:'slow',theme:'light_rounded',social_tools:false,deeplinking:true,allow_resize:false,deeplinking:false});
	$(prefix+"a[rel^='prettyPhoto']").prettyPhoto({animationSpeed:'slow',theme:'light_rounded',social_tools:false,deeplinking:true,allow_resize:false,deeplinking:false});	

}

function doIETemplateReady() {

}

function doTemplateReady() {
	/*
	if (isIE) {
		doIETemplateReady();
		return;
	}
	*/
	var nDelay = 600;
	slideBgImageTo("index");
	var nFadeIn = 0;
		
		$('.logo').fadeTo(0,0);

		$('.splash').each(function(){
			if (isIE) $(this).css("opacity", "1");
   			else $(this).delay(nDelay).fadeTo(700,1);
			$(".logo", this).delay(nFadeIn+nDelay).fadeTo(0,0);
			$(".logo", this).delay(nDelay).animate({top:'30', opacity:1},400, 'easeInOutCirc');
		});
	
	var nFadetime = 850;
	var aAnimObj = {".maincontent":250,
	".contentwrapper":850
					};
 
	jQuery.each(aAnimObj, function(i, val) 
	{
		$(i).css({opacity: 0.0});
		$(i).delay(val).fadeTo(nFadetime,1);
    });
	
	if (isIE) {
		primaryListItems.css("opacity", "1");
		secondaryListItems.css("opacity", "1");
	}
	onReady();
}

function transitionInContent() {
	onReady("#content");
	
	_pageTransiting = true;
	_isIn= true;
	var computedHeight = currentContent.height();
	
	contentWrapper.animate({height:computedHeight}, 1350, 'easeInOutCubic');
	currentContent.delay(640).animate({opacity:1},850, 'easeInOutCubic', transitionInComplete);
	
	currentContent.trigger("transitionIn");
}

function transitionOutContent() {
	hrefHash3 = {};
	_pageTransiting =true;
	_isIn = false;
//	contentWrapper.animate({height:0}, 850);
	currentContent.animate({opacity:0},800, 'easeInOutCubic', transitionOutComplete);
	currentContent.trigger("transitionOut");
}

function transitionInComplete() {
	_pageTransiting = false;
	if (_isInterrupted) {
		var result = loadPage(targetPage);
		_isInterrupted = false;
	
	}
	currentContent.trigger("transitionInComplete");
	
}

function transitionOutComplete() {
	_pageTransiting = false;
	currentContent.trigger("transitionOutComplete");
	loadContent();
}


var contentWrapper;
var splashHolder;
var targetPage;
var currentContent;
var curPage;
var _isInterrupted = false;
var _isIn = false;
var _pageTransiting = false;
var primaryListItems;
var secondaryListItems;
var hrefHash = {};
var hrefHash2 = {};
var hrefHash3  = {};
var secondaryServices;
var serviceLinks;

function loadPage(url) {
	if (!hrefHash[url]) return 1;
	if (curPage == url) return 2;

	if (targetPage == undefined) {
		splashHolder.animate({height:390},850, 'easeInOutCubic');
	}
	
	if ( targetPage!=undefined && targetPage != url  ) hrefHash[targetPage].removeClass("active");
	
	serviceLinks.removeClass("active");
	if (hrefHash2[url]) {
		secondaryServices.addClass("active");
	}
	else {
		secondaryServices.removeClass("active");
	}
	
	if ( hrefHash[url] ) { // !hrefHash2[url] && 
		hrefHash[url].addClass("active");
	}


	targetPage = url;
	_isInterupted = false;
	
	if (_pageTransiting ) {   // INTERRUPT
		_isInterrupted = _isIn;	
		return 3;
	}
	
	if (currentContent != null) {
		 transitionOutContent();
		return true;
	}

	loadContent();
	return 4;
}


function loadContent() {
	/*
	if (isIE) {
		window.location = targetPage;
		return;
	}
	*/
	contentWrapper.empty();
	curPage = targetPage;

	/*** Ajax load append content ***/
	var jqxhr = $.ajax(targetPage, { data: {ajax:1}  } )
    .done(function(e) { 
		var ider = curPage.split(".")[0];
		contentWrapper.attr("id", pageIdHash[curPage]);
	
		slideBgImageTo(ider);
		
		var elem = $(e);
		elem.attr("id" , "content");
		currentContent = contentWrapper.append(elem);
		currentContent = $("#content");
		doAjaxReady(ider);	
	})
    .fail(function() { alert("error"); })
}

var hrefRelId;  // to depeciate
function hrefHandler() {
	var elem = $(this);
	//try {
	hrefRelId = elem.attr("rel") ;
	if (hrefRelId== "nolink") {
		hrefRelId = null;
		return false;
	}
	var valToSet = elem.attr("href").split("/").pop().split(".")[0];
	if (valToSet == "services_all") valToSet = "services_"+elem.attr("href").split("?id=").pop();
	if (!hrefRelId) hrefRelId = valToSet;
	SWFAddress.setValue(valToSet );
	return false;
	//}
	//catch(e) {
	//	console.log(e);
	//	return false;
	//}
}

function hookUpLinks(elem, clickElems, secondary) {
	clickElems.click ( hrefHandler);
	var att;
	var element;
	clickElems.each( function(index, item) {	
		item = $(item);
		att = item.attr("href");
		pageIdHash[att] = item.attr("rel") || att.split(".")[0];
		element =  $(elem[index]);
		hrefHash[ att ] = element;
		if (secondary) {
			hrefHash2[att] = element;
		}
	});
}



function hookUpLinks3(elem, clickElems) {
	clickElems.click ( hrefHandler);
	var att;
	var element;
	clickElems.each( function(index, item) {	
		att = $(item).attr("href");
		element =  $(elem[index]);
		hrefHash3[att] = element;
	});
}

$(document).ready(function() {
	var elem;
	splashHolder = $(".splash");
	splashImageHolder =  $("#splashHolder");
	contentWrapper = $("#contentwrapper");
	contentWrapper.css({
		overflow:"hidden",
		height:"0px"
	});
	
	elem = $("#main .primary li a");
	primaryListItems =$("#main .primary li");
	hookUpLinks(primaryListItems, elem);
	
	elem = $("#main .secondary li a");
	secondaryListItems = $("#main .secondary li");
	hookUpLinks(secondaryListItems, elem, true);
	
	secondaryServices = $("#main .primary li.services");
	serviceLinks = $("li.servicelink");
	
	/*** Kenburns SlideSHOW ***/
	/*
	$('.splash').crossSlide({
	  fade: 1
	}, [
	  {
		src:  'images/about/splash.jpg',
		alt:  'Sand Castle',
		from: '100% 40% 1x',
		to:   '100% 0% 1.5x',
		time: 12
	  }, {
		src:  'images/facilities/splash_01.jpg',
		alt:  'Sunflower',
		from: 'top left',
		to:   'bottom right 1.5x',
		time: 12
	  }
	], function(idx, img, idxOut, imgOut) {
	  if (idxOut == undefined)
	  {
		// starting single image phase, put up caption
		//$('div.caption').text(img.alt).animate({ opacity: .7 })
	  }
	  else
	  {
		// starting cross-fade phase, take out caption
		//$('div.caption').fadeOut()
	  }
	});
	*/
	doTemplateReady();
});

//SWFAddress.setStrict(false);

/*
var _curBgId = "index";
function slideBgImageTo(ider) {
//	if (ider == _curBgId) return;
  $("#splashHolder").crossSlide({
  loop:1,  
  sleep:1,
  fade:1
	}, [
	//  { src: _bgImages[_curBgId] },
	  { src: _bgImages[ider] }
	]);
	
	_curBgId = ider;
	
}
*/


var _curBgId;
function slideBgImageTo(ider) {
	/*
	if (isIE) {
		
		return;
	}
	*/
	if (_bgImages[ider] == _curBgId) return;

	var arr =  _curBgId  ?  [ {src:_curBgId} ] : [];
	arr.push( {src:_bgImages[ider]} );
	_curBgId = _bgImages[ider]; 
	
	if (splashImageHolder.length == 0) {
		splashHolder.css("background", "#000000 url('"+_curBgId+"') no-repeat");
		return;
	}
	
	splashImageHolder.crossSlide({
  loop:1,  
  fade:1,
  sleep:1,
  time: 1.75,
  ease: "easeInOutQuint"
	}, arr );

}


function handleChange(e) {
	
	if (hrefRelId == null && _isIn && currentContent!=null) currentContent.trigger(e.type, e);
	hrefRelId = null;
	if (e.cancelled) {
		if (e.serviceIndex != undefined) {
			serviceLinks.removeClass("active");
			$(serviceLinks[e.serviceIndex]).addClass("active");
			slideBgImageTo("services_"+e.serviceIndex);
		}
		return;
	}
	
	 var valuer = SWFAddress.getValue().slice(1);
	
	loadPage(valuer+".php");
}

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
