
/*******************************************************************************
	JQUERY CUSTOM SCRIPTS
*******************************************************************************/

var isIpad = navigator.userAgent.match(/iPad/i) != null;
var isIphone = navigator.userAgent.match(/iPhone/i) != null;
var isIE = navigator.userAgent.match(/msie/i) != null;


// INIT

siteLoader = {
		
	domainName: null,
	swipeAnimation: null,
	activeMainNavNode: null
};

siteLoader.init = function(){

	$(document).bind("touchmove",function(){
		event.preventDefault();
	});
	
	siteLoader.prepareLinks();
	siteLoader.addMainNavEvents();
	siteLoader.observeHashChange();  // ADDS ONHASCHANGE LISTENER TO HASH
	siteLoader.panoptikumInit();
}


/* PRERPARE LINKS */

siteLoader.prepareLinks = function(){
	
	$('a').unbind('click');
	
	$('a:not(.noAjax)').bind('click', function(event) {

		if ($(event.target).attr('target')) {	
			
			return;
		}
		
		event.preventDefault();
			
		if ($(event.target).get(0).nodeName != 'A') {  
				
			var linkNode = $(event.target).get(0);
				
			while (linkNode.nodeName != 'A') {						
				
				linkNode =  linkNode.parentNode;					
			}
				
			linkNode = $(linkNode);				
		}
		else{
			
			var linkNode = $(event.target);					
		}

		// detect swipe animation
		
		if (siteLoader.swipeAnimation == null) {
					
			var targetId = linkNode.attr("id");

			if (targetId == "scrollArrowRight") {
				
				siteLoader.swipeAnimation = 'left';
			
			} else if (targetId == "scrollArrowLeft") {
					
				siteLoader.swipeAnimation = 'right';
			}
		}
		
		siteLoader.triggerLink(linkNode.attr('href'));
		this.blur();
		return false;
	
	}, false);
}


/* TRIGGER LINK */

siteLoader.triggerLink = function(href) {
	
	var tmp = href.indexOf(siteLoader.domainName);
	var pathStr = '';
	
	if (tmp > -1) {
		
		var startPos = tmp + siteLoader.domainName.length;
		pathStr = href.substr(startPos);
	}

	// google analytics tracking
	if (typeof _gaq != 'undefined') {
		
		_gaq.push(['_trackPageview', pathStr]);
	}
	
	window.location.hash = '/' + pathStr;
}


/* OBSERVE HASH */

siteLoader.observeHashChange = function(){
	
	// event supported?
	if (typeof window.onhashchange == "function") { 
	
		window.onhashchange = function () {	
		
			siteLoader.hashChanged(window.location.hash);
		}
	
	// event not supported
	} else { 
	    
		var storedHash = window.location.hash;
	    
		window.setInterval(function () {
			
	        if (window.location.hash != storedHash) {
	        	
	            storedHash = window.location.hash;
	            siteLoader.hashChanged(storedHash);
	        }
	        
	    }, 100);
	}
}


/* HASH CHANGE */
	
siteLoader.hashChanged = function(newHash){

	if (newHash.indexOf("#") > -1) {

		siteLoader.loadContent(newHash.substr(1));		
	}
}


/* LOAD CONTENT (AJAX) */

siteLoader.loadContent = function(path) {	
	
	siteLoader.prepareNewContainer();

	$.ajax({
		   type: "GET",
		   url: "ajax.php",
		   data: {path:path},
		   dataType: "json",
		   success: siteLoader.replaceContent
	});
	
	return false;
}


/* PREPARE NEW mainContent CONTAINER */

siteLoader.prepareNewContainer = function(){
	
	if (isIpad || isIphone){
		$("#mainContent .sliderList").remove();
	}
	
	// REMOVE OLD CONTAINER IF THERE IS ONE
	
	if(document.getElementById("mainContentOld")!=null){
		$("#mainContentOld").remove();
	}
		
	// REPLACE ID OF OLD CONTAINER
	
	$("#mainContent").attr("id","mainContentOld");
	
	// GENERATE AND APPEND NEW CONTAINER
	
	var newMainContentContainer = $('<div id="mainContent">');
		newMainContentContainer.append('<div id="mainColBg"></div>');	
		newMainContentContainer.append('<div id="loadingIcon"></div>');	
	
	$("#stage").append(newMainContentContainer);

	$('#mainContentOld').removeClass("slideToLeft slideToRight fadeIn fadeOut");
	$('#mainContent').removeClass("slideToLeft slideToRight fadeIn fadeOut");
	
	if (siteLoader.swipeAnimation != null){
		
		// ARROW 
	
		if (siteLoader.swipeAnimation == 'left'){
			
			$('#mainContentOld').addClass('slideToLeft');						
				
			$('#mainContent').addClass('nextContainerOnRightSide');
						
			setTimeout("$('#mainContent').addClass('slideToLeft')",100);
		
		} else if (siteLoader.swipeAnimation == 'right'){
			
			$('#mainContentOld').addClass('slideToRight');
							
			$('#mainContent').addClass('nextContainerOnLeftSide');
							
			setTimeout("$('#mainContent').addClass('slideToRight')",100);				
		}
		
		siteLoader.swipeAnimation = null;
		
	} else {
		
		// NAVI OR OTHER LINKS
				
		setTimeout("$('#mainContentOld').addClass('fadeOut')",0);
		setTimeout("$('#mainContent').addClass('nextContainerInCenter')",10);
		setTimeout("$('#mainContent').addClass('fadeIn')",20);	
	}			
}


/* AJAX REPLACE CONTENT */

siteLoader.replaceContent = function(data){
	
	// short delay for IE when deeplinking?
	// alert("delay me");

	// set page title
	document.title = data.title;
	
	if (data.hrefPrev!=null){
		$("#scrollArrowLeft").addClass("active");
		$("#scrollArrowLeft").attr("href",data.hrefPrev);
	}
	else{
		$("#scrollArrowLeft").removeClass("active");
		$("#scrollArrowLeft").attr("href","#");
	}
	
	if (data.hrefNext!=null){
		$("#scrollArrowRight").addClass("active");
		$("#scrollArrowRight").attr("href",data.hrefNext);
	}
	else{
		$("#scrollArrowRight").attr("href","#");
		$("#scrollArrowRight").removeClass("active");
	}
	
	$("#stage").attr("class",data.stageClass);
	
	$('#mainContent').html(data.content);
	
	siteLoader.prepareLinks();
	
	if (isIpad  || isIphone) {

		siteLoader.removeSwipeEvents();
			
		if (data.hrefNext != null || data.hrefPrev != null) {
			
			siteLoader.addSwipeEvents(data);
		}
		
		else{
			
			// no swipe content - init scroller
			
			$("#mainContentOld #scroller").remove();
						
			if (document.getElementById("scroller")!= null){
				
				myScroll = new iScroll('scroller');
			}			
		}
	}	
}


siteLoader.addSwipeEvents = function(data) {
	
	var startPositionX = null;
	var currentPositionX = null;

	$('#mainContent').bind('touchstart', function(event) {

		startPositionX = siteLoader.getCurrentEvent(event).clientX;

		$('#mainContent').bind('touchmove', function(event) {

			event.preventDefault();
			currentPositionX = siteLoader.getCurrentEvent(event).clientX;
			
		}, false);
		
	}, false);
	
	
	$('#mainContent').bind('touchend touchcancel', function(event) {
		
		if (startPositionX == null) return;
		if (currentPositionX == null) return;

		var diff = startPositionX - currentPositionX;
		if (diff < 0) diff *= (-1);
		if (diff < 60) return;
		
		if ((currentPositionX > startPositionX)&&(data.hrefPrev != null)) {
			
			// move left
			siteLoader.swipeAnimation = 'right';
			$('#scrollArrowLeft').trigger('click');	
			
		} else if ((currentPositionX < startPositionX)&&(data.hrefNext != null)){
						
			// move right
			siteLoader.swipeAnimation = 'left';
			$('#scrollArrowRight').trigger('click');			
		}

		startPositionX = null;
		currentPositionX = null;
		$('#mainContent').unbind('touchmove');
		
		return false;
		
	}, false);
}


siteLoader.removeSwipeEvents = function() {
	
	$('#mainContent').unbind('touchstart touchmove touchend touchcancel');
	$('#mainContentOld').unbind('touchstart touchmove touchend touchcancel');
}


/* GET EVENT */

siteLoader.getCurrentEvent = function(event) {
	
	return (event.originalEvent.touches[0]) ? event.originalEvent.touches[0] : event.originalEvent;
}


/* MAIN NAV */

siteLoader.addMainNavEvents = function() {
	
	if (isIpad  || isIphone){
		
		$("#nav li").bind("touchstart", touchStartMainNav);
		$("#nav li").bind("touchend", touchEndMainNav);		
	
	} else {
		
		$("#nav li").hover(hoverInMainNav,hoverOutMainNav);
	}
		
	function touchStartMainNav(event){
		
		event.preventDefault();
		event = siteLoader.getCurrentEvent(event);
		
		$(this).addClass("active");
        
		$("#nav li").bind("touchmove mousemove", touchMoveMainNav);
		$("#nav li").bind("touchcancel", touchEndMainNav);				
	}
	
	function touchMoveMainNav(event){
		
		event.preventDefault();
		event = siteLoader.getCurrentEvent(event);
			
		node = document.elementFromPoint(event.clientX, event.clientY);

		while (node.nodeName != "LI") {						
			
			node = node.parentNode;
			
			if (node == null) {
				
				touchEndMainNav(event);
				return;
			}	
		}
		
		siteLoader.activeMainNavNode = node;
													
		$(node).addClass("active");
		$(node).nextAll().removeClass("active");
		$(node).prevAll().removeClass("active");			
	}
 	
 	function touchEndMainNav(event) {		
 
 		if ((isIpad  || isIphone) && siteLoader.activeMainNavNode) {

 			var href = $(siteLoader.activeMainNavNode).find('a:first-child').attr('href');
 			siteLoader.triggerLink(href);
 			siteLoader.activeMainNavNode = null;
 		}
 		
 		$("#nav li").removeClass("active");
		$("#nav li").unbind("touchmove mousemove");
 	}
 	
    function hoverInMainNav(){
		$(this).addClass("active");
	}
    
	function hoverOutMainNav(){
		$(this).removeClass("active");
	}		
}


/* PANOPTIKUM INIT */

siteLoader.panoptikumInit = function(){
	
	$("#panoptikumBar .title").bind("click", togglePanoptikum);	
		
	siteLoader.SliderInit("#panoptikumBar",6);
	
	function togglePanoptikum(){
			
		if($("#panoptikumBar").hasClass("active")){
			
			$("#panoptikumBar").removeClass("active");
			$("#panoptikumBar #description").removeClass("fadeIn");
			$("#panoptikumBarContent").removeClass("fadeIn");
			$("#panoptikumBar #description").addClass("fadeOut");
			$("#panoptikumBarContent").addClass("fadeOut");			
		}
		else{	
			
			$("#panoptikumBar").addClass("active");
			$("#panoptikumBar #description").removeClass("fadeOut");
			$("#panoptikumBarContent").removeClass("fadeOut");
			$("#panoptikumBar #description").addClass("fadeIn");
			$("#panoptikumBarContent").addClass("fadeIn");
			$("#panoptikumBar #description").addClass("animate");
			$("#panoptikumBarContent").addClass("animate");			
		}			
	}
}	


/* SLIDER INIT */

siteLoader.SliderInit = function(parentSelector,visibleElements){
		
	var xPos = 0;		
	var margin = 8;	
	var elementWidth = $(parentSelector+" .sliderList > li").width() + margin;
	var sliderViewPortWidth = $(parentSelector+" .sliderContainer").width();
	var elementsToSlide = $(parentSelector+" .sliderList > li").length;	
	var sliderWidth = elementsToSlide*elementWidth;	
	
	$(parentSelector+" .sliderList").css("width",sliderWidth);	
	
	if (isIpad || isIphone) {
		
		$(parentSelector+" .slideArrow").bind("touchstart", slide);		
	} 
	else {
	
		$(parentSelector+" .slideArrow").bind("click", slide);
	}
	
	if (sliderWidth>sliderViewPortWidth){		
		
		var maxXPos = (sliderWidth - visibleElements*elementWidth -elementWidth + margin)*-1; //-elementWidth 			
	}
	else{
		
		maxXPos=0;		
	}
			
	if (xPos == 0){
		$(parentSelector+" #arrowLeft").css("visibility","hidden");
	}
	
	if (elementsToSlide <= visibleElements){
		$(parentSelector+" #arrowRight").css("visibility","hidden");
	}
	
	function slide(event){
		
		var position = $(parentSelector+' .sliderInnerContainer').position();
		var xPos = position.left;

		if (xPos % elementWidth != 0){
			return;
		}

		if($(this).attr("id")=="arrowLeft"){
			slideDirection = "left";			
		}
		if($(this).attr("id")=="arrowRight"){
			slideDirection = "right";
		}
		
		if (slideDirection == "left"){
						
			if(xPos < 0){
				
				xPos += elementWidth;
				
				$(parentSelector+" #arrowRight").css("visibility","visible");
				
				if (xPos==0){
					
					$(parentSelector+" #arrowLeft").css("visibility","hidden");						
				}
			}		
		}
		else{
			
			if(xPos > maxXPos){
				
				xPos -= elementWidth;
			
				if (xPos > maxXPos){ 
					
					$(parentSelector+" #arrowLeft").css("visibility","visible");					
				}
			
				if (xPos-margin < maxXPos){ 
					
					$(parentSelector+" #arrowLeft").css("visibility","visible");	
					$(parentSelector+" #arrowRight").css("visibility","hidden");					
				}				
			}			
		}

		$(parentSelector+" .sliderInnerContainer").css("left",+xPos+"px");		
	}	
}		


/* MEDIA GALLERY INIT */

siteLoader.mediaGalleryInit = function(parentSelector,visibleElements){

	var elementsToDisplay = [];

	$("#mainContentOld #swfPlaceholder").remove();	
	$("#mainContentOld #galleryDisplayContainer").remove();
	$("#mainContentOld .sliderList").remove();
	
	drawSliderList();
	
	siteLoader.SliderInit(parentSelector,visibleElements);
			
	// DRAW SLIDER LIST
 
	function drawSliderList(){
		
		count=0;
		
		SliderList = $('<ul class="sliderList">');
		
		createTitleThumb();
		
		for (var i in gallery){	
							
			createListElement(i,count);
				
			$(SliderList).append(SliderListElement);
			
			count++;
				
		}
			
		$(parentSelector+" .sliderInnerContainer").append(SliderList);			
	}
	
	
	// CREATE GALLERY TITLE THUMB 
	
	function createTitleThumb(){
		
		// GALLERY TITLE 
		
		var SliderListElement = $("<li class='hand'>");				
		
		var SliderListThumb = $("<img src='imgs/global/galleryTextInfo.jpg' id='galleryDescription' alt='galleryInfoText' />");
		
			if (isIpad || isIphone){
				SliderListThumb.bind("touchend", displayContent);
			}
			else{
				SliderListThumb.bind("click", displayContent);
			}
		
		var contentToDisplay = $("<div id='swfPlaceholder'>");	
							
		var	galleryDescription = "<h2>"+galleryTitle+"</h2>";
		
		$(SliderListElement).append(SliderListThumb);
		$(SliderList).append(SliderListElement);

		
		// GALLERY DESCRIPTION
		
		galleryDescription += galleryText;
							
		elementsToDisplay["galleryDescription"] = galleryDescription;
		
		$(contentToDisplay).append(elementsToDisplay["galleryDescription"]);	
						
		$(parentSelector+" #galleryDisplayContainer").html(contentToDisplay);
		
		$(SliderListElement).append(SliderListThumb);
		$(SliderList).append(SliderListElement);
	}
	
	// CREATE LIST ELEMENT + THUMB
	
	function createListElement(i,count){
	
		SliderListElement = $("<li class='hand'>");			
		
		SliderListThumb = $("<img id="+count+" src="+gallery[i]["thumbnailSrc"]+" alt="+gallery[i]["thumbnailAlt"]+" width="+gallery[i]["thumbnailWidth"]+" height="+gallery[i]["thumbnailHeight"]+" />");
								
		if (gallery[i]["type"] == "image"){		
			
			// IMAGE
			
			if (isIpad || isIphone){								
				SliderListThumb.bind("touchstart", displayContent);
			}
			else{
				SliderListThumb.bind("click", displayContent);
			}
			
			prepareImageToDisplay(i,count);			
		}
									
		else{
		
			// VIDEO
			
			if (isIpad || isIphone){				
				SliderListThumb.bind("touchstart", displayVideoContent);
			}
			else{
				SliderListThumb.bind("click", displayVideoContent);
			}
			
			prepareVideoToDisplay(i,count);				
		}
					
		$(SliderListElement).append(SliderListThumb);	
	}
	
	
	// PREPARE ELEMENTS TO DISPLAY
	
	function prepareVideoToDisplay(i,count){
		
		SliderListVideo = gallery[i]["videoSrc"];
		
		elementsToDisplay[count] = SliderListVideo;		
	}
		
	function prepareImageToDisplay(i,count){
	
		createDescriptionOverlay(i);
	
		SliderListImage = "<div class='imageContainer'><img src="+gallery[i]["imageSrc"]+" width="+gallery[i]["imageWidth"]+" height="+gallery[i]["imageHeight"]+" alt="+gallery[i]["imageAlt"]+" /></div>";
										
		elementsToDisplay[count] = SliderListImageDescription + SliderListImage;		
	}
	
	
	// CREATE DESCRIPTION OVERLAY
	
	function createDescriptionOverlay(id){
	
		if (gallery[id]["description"] != ""){
			
			SliderListImageDescription = "<div id='galleryImageOverlay'><span class='galleryDescription'>"+gallery[id]["description"]+"</span><br class='clear'><a href='"+gallery[id]["href"]+"' target='_blank' class='left'>"+gallery[id]["href"]+"</a>";
				
			if (gallery[id]["copyright"]) {
			
				SliderListImageDescription += "<span class='right'>&copy; "+gallery[id]["copyright"]+"</span>";
			}
				
			SliderListImageDescription += "</div>";
		
		} else {
			
			SliderListImageDescription = "";
		}
		
		return SliderListImageDescription;	
	}
	
	
	// PREPARE FOR DISPLAY
	
	function prepareForDisplay(clickSourceElement){
		
		$(parentSelector+" #swfPlaceholder").remove();	
		
		$("#mainContentOld #swfPlaceholder").remove();		
					
		index = clickSourceElement.attr("id");
		
		contentToDisplay = $("<div id='swfPlaceholder'>");			
	}
	
	
	// DISPLAY TEXT / IMAGE
	
	function displayContent(){
							
		prepareForDisplay($(this));

		$(contentToDisplay).append(elementsToDisplay[index]);

		$(parentSelector+" #galleryDisplayContainer").html(contentToDisplay);		
	}
	

	// DISPLAY VIDEO
	
	function displayVideoContent(){
						
		prepareForDisplay($(this));
		
		if (isMobile){
			
			// h264
		
			var mobileVideoPlayer = $("<video src="+elementsToDisplay[index]+" controls='controls' width='665' height='374'>");	
						
			$(contentToDisplay).append(mobileVideoPlayer);

			$(parentSelector+" #galleryDisplayContainer").html(contentToDisplay);	
	        
		}
		else{
			
			 // flv
		
			$(parentSelector+" #galleryDisplayContainer").html(contentToDisplay)
			
			 var params = {};
		     params.allowFullScreen = 'true';
		     params.allowScriptAccess = 'always';
		     params.wMode = 'transparent';
		     var attributes = {};
		        
		     var flashvars = {};
		     flashvars.vidPath = elementsToDisplay[index];
		     swfobject.embedSWF("swf/videoPlayer.swf", "swfPlaceholder", "665", "374", "9.0.0", "swf/expressInstall.swf", flashvars, params, attributes);			
		}			
	}	
}


/* LIVE CAM */
		
siteLoader.liveCamInit = function(camToActivate,firstLoad){ 
	
	imageDate = [];
	var imageUrls=[];	
	var counter = 0;
	
	for (var i in cams[camToActivate]["images"]){	
		
		currImageUrl = cams[camToActivate]["images"][i];		
		imageUrls.push(currImageUrl);		
		siteLoader.getImageDate(currImageUrl);

	}
		
	$.preload(imageUrls,{
		
		onComplete: function(data){
		
			var img = new Image();
			img.src = data.image;
			img.id = "liveCamPic_"+counter;
			img.className = "liveCamImage";
			
			$('#displayContainer').append(img);
			
			counter++;
			
		},
		onFinish:function(){
			
			$('#displayContainer #loadingIcon').css('display','none');			
			$('#displayContainer').append("<div id='liveCamPicOverlay'></div>");
			
			siteLoader.liveCamDraggerInit(camToActivate);
						
			if (firstLoad == true){						
				siteLoader.liveCamDrawSelection(active);				
			}		
		}
	});
}

siteLoader.getImageDate = function(currUrl){
	
	var imageUrlParts = currUrl.split("_");
	
	var relevantImageUrlPart = imageUrlParts.length - 3;
	
	if (imageUrlParts[relevantImageUrlPart].length < 7) {
		relevantImageUrlPart--;
	}
	
	 var tmpDate = imageUrlParts[relevantImageUrlPart];
	 	
	 if (isNaN(tmpDate)||tmpDate.length< 7) {		 
		 imageDate.push("");	
	 }	
	 else{			 
		 var year = tmpDate.substr(0,4);
		 var month = tmpDate.substr(4,2);
		 var day = tmpDate.substr(6,2);
		 var date = day +"." +month+ "." +year; 
		 imageDate.push(date);		 		 
	 }		 
}

siteLoader.liveCamDrawSelection = function(){
		
	for (var j in cams){	
					
		$('#mainContent .liveCam .camList').append('<li class="hand"><img src="'+cams[j]["preview"]+'" id="'+j+'" /><span class="camTitle">'+cams[j]["title"]+'</span></li>');
		
		if (isIpad || isIphone){
			$("#"+j).bind("touchstart", siteLoader.changeLiveCamImageSet);
		}
		else{
			$("#"+j).bind("click", siteLoader.changeLiveCamImageSet);
		}		
	}
}

siteLoader.liveCamDraggerInit = function(cam){
	
	oldSliderValue = 0; //1
	
	//$("#liveCamPic_0").css("display","block");

	var imageAmount = cams[cam]["images"].length-1;	

	$("#sliderContainer").html('<div class="layout-slider"><input id="SliderSingle" type="slider" name="price" value="0" style="display:none" /></div>');
				
  	$("#SliderSingle").slider({ onstatechange:sliderChanged, from: 0, to: imageAmount, step: 1, round: 1, dimension: '&nbsp', skin: "round" });
  	
  	function sliderChanged(){	
  		
  		var currValue =	$("#SliderSingle").slider('value');
   		  	  		
  	 	if (currValue!=oldSliderValue){  			  			
  	  	 		
  			document.getElementById("liveCamPic_"+oldSliderValue).style.display="none";
  			document.getElementById("liveCamPic_"+currValue).style.display="block";
  	  	  			
  			if (imageDate[currValue]!=""){  				
  				$("#liveCamPicOverlay").show();
  				$("#liveCamPicOverlay").html(imageDate[currValue]);  				
  			}
  			else{
  				$("#liveCamPicOverlay").hide();
  			}
  			  			
  			oldSliderValue = currValue;   			  		      			     			
  		}  	
  	}  	
}

siteLoader.changeLiveCamImageSet = function(event){
	
	event.preventDefault();
	
	$("#displayContainer").empty();
	
	$("#sliderContainer").empty();
		
	$('#displayContainer').append("<div id='loadingIcon'></div>");
		
	var newCam = $(this).attr("id");
	
	siteLoader.liveCamInit(newCam, false);	
}


/* INDEX PROJECT OVERVIEW */

siteLoader.addIndexMouseEvents = function(location){
	
	if(!isIpad && !isIphone){
		
		$("#map"+location).bind("mouseover", siteLoader.mouseOverBuildingMap);
		$("#overlay"+location).bind("mouseover", siteLoader.mouseOverBuildingOverlay);
	}
}

siteLoader.addIndexTouchEvents = function(location){
	
	buildingDetailActive = false;
	
	if (isIpad || isIphone){
		
		$(".projectOverview").bind("touchstart", siteLoader.touchStartBuildingMap);		
	}	
}

siteLoader.touchStartBuildingMap = function(){
	
	$(".projectOverview").bind("touchend", siteLoader.touchEndBuildingMap);
	$(".projectOverview").bind("touchmove", siteLoader.touchMoveBuildingMap);
}

siteLoader.touchMoveBuildingMap = function (event){
	
	event.preventDefault();
	event = siteLoader.getCurrentEvent(event);
				
	node = document.elementFromPoint(event.clientX, event.clientY);
	
	if ($(node).hasClass("buildingMap")){
	
		siteLoader.getLocation("activate",node);
		siteLoader.activateBuildingDetail(currentLocation);		
	}
	
	else{
	
		 if ($(node).hasClass("outerWhite")){
			 
			 siteLoader.getLocation("deactivate",node);
			 siteLoader.deactivateBuildingDetail(currentLocation);			 
		 }			
	}	
}

siteLoader.touchEndBuildingMap = function(event){
					
	if($(event.target).hasClass("buildingMap")){
		
		siteLoader.mouseOverBuildingMap(event);		
	}
	
	if($(event.target).hasClass("outerWhite")){
		
		siteLoader.mouseOverBuildingOverlay(event);		
	}
	
	$(".projectOverview").unbind("touchmove");
	$(".projectOverview").unbind("touchend");	
}

siteLoader.mouseOverBuildingMap = function(event){
	
	if (buildingDetailActive == false){
				
		buildingDetailActive = true;
		
		siteLoader.getLocation("activate",event.target);
		
		siteLoader.activateBuildingDetail(currentLocation);
	}	
}

siteLoader.mouseOverBuildingOverlay = function(event){

	buildingDetailActive = false;
		
	siteLoader.getLocation("deactivate",event.target);		
	
	siteLoader.deactivateBuildingDetail(currentLocation);
	
}

siteLoader.getLocation = function(toDo,currentNode){		
	
	if (toDo=="activate"){			
		currentLocation = $(currentNode).attr("id").substr(3);				
	}		
	else{
		currentLocation = $(currentNode).attr("id").substr(7);				
	}
	
	return currentLocation;	
}

siteLoader.activateBuildingDetail = function(building){

	$("#overlay"+building).css("visibility","visible");
	$("#overlay"+building).addClass("fadeIn");
	$("#overlay"+building).addClass("animate");
	
	$("#map"+building).addClass("active");
	
	$("#detail"+building).css("visibility","visible");
	$("#detail"+building).addClass("animate");		
		
}

siteLoader.deactivateBuildingDetail = function(building){
	
	$("#overlay"+building).removeClass("fadeIn");
	$("#overlay"+building).css("visibility","hidden");
				
	$("#map"+building).removeClass("active");
	
	$("#detail"+building).css("visibility","hidden");
	$("#detail"+building).removeClass("animate");		
	
}		










