var $j=jQuery.noConflict();
$j(document).ready(function(){
	applyEvents();
});

//Language global variables
var currentHref="";
var currentLoader="";
var currentLanguage="English";
var translationLink ="";

displayLoader = function displayLoader(loaderParentId, loaderId) {
	if(!loaderId){
		loaderId="loader";
	}
	currentLoader=loaderId;
	var parentTop=$(loaderParentId).cumulativeOffset().top;
	var parentLeft=$(loaderParentId).cumulativeOffset().left;
	var parentWidth=$(loaderParentId).getWidth();
	var parentHeight=$(loaderParentId).getHeight();
	$(loaderId).setStyle({position: 'absolute', top: parentTop+'px', left: parentLeft+'px', width: parentWidth+'px', height: parentHeight+'px'});
	$(loaderId).removeClassName('display-none');	
}

hideLoader = function hideLoader(){
	$(currentLoader).addClassName('display-none');	
}

function applyStylesheet(title) {  
  $$('link[type=text/css][title]').each(function(stylesheet) {
    stylesheet.disabled = true;
    if (stylesheet.title == title) {
      stylesheet.disabled = false;
    }
  });
}

translateTextCallBack = function translateTextCallBack(){
	//alert(currentLanguage);
	//displayLoader('popupinnerright','translationloader');
	if(currentLanguage!='English'){
		$j('#popup_content').translate('English', currentLanguage, {
		not: 'select, #popupnav',
		replace: true,
		onTimeout: function(){hideLoader();}, 
		complete:  function(){hideLoader();},
		error:     function(){hideLoader();}
		})
		
		var translationLink = '<div id="translation_link">Translated by Google Translate.<br/>Help improve the translation by proposing changes at <a class="url" target="_blank" href="http://translate.google.com/translate?client=tmpg&hl='+currentLanguage+'&langpair=en|'+currentLanguage+'&u='+currentHref+'/TranslateRedirect/True">translate.google.com</a></div>';
	$('popup_content').down('[id=contenttext]').insert({bottom: translationLink});
	$('popup_content').down('[id=contenttext]').addClassName('clear');
		
	}else{
		hideLoader('translationloader');
	}
	
}

function applyEvents(){
	if(document.getElementById && document.getElementsByTagName){
		//Link ID's
		var openinfo;
		openinfo=document.getElementById("openinfo");
		
		var tagsclose;
		tagsclose=document.getElementById("tagsclose");
		
		var popupclose;
		popupclose=document.getElementById("popup_close");
		
		var translate;
		translate=document.getElementById("translate");
		
		if (openinfo){
			openinfo.onclick = function (oEvent){
				var oEvent = (typeof oEvent != "undefined")? oEvent : event;
				oEvent.returnValue = false;
				if(oEvent.preventDefault){
					oEvent.preventDefault();
				}
				if(openinfo.className.search(/down/) != -1){
					if(openinfo.className.search(/darkdown/) != -1){
						$("infocontent").className = "display-block column span-6 norightmargin dark";
						openinfo.className = "darkup";
						openinfo.blur();
					}else{
						$("infocontent").className = "display-block column span-6 norightmargin";
						openinfo.className = "up";
						openinfo.blur();
					}
				}else{
					if(openinfo.className.search(/darkup/) != -1){
						$("infocontent").className = "display-none column span-6 norightmargin";
						openinfo.className = "darkdown";
						openinfo.blur();
					}else{
						$("infocontent").className = "display-none column span-6 norightmargin";
						openinfo.className = "down";
						openinfo.blur();
					}
					
				}
			}
		}

		if (tagsclose){
			tagsclose.onclick = function (oEvent){
				var oEvent = (typeof oEvent != "undefined")? oEvent : event;
				oEvent.returnValue = false;
				if(oEvent.preventDefault){
					oEvent.preventDefault();
				}
				$("tagslist").className = "display-none";
				$("tagsclose").className = "display-none";
				tagsclose.blur();
			}
		}
		
		if (popupclose){
			popupclose.onclick = function (oEvent){
				var oEvent = (typeof oEvent != "undefined")? oEvent : event;
				oEvent.returnValue = false;
				if(oEvent.preventDefault){
					oEvent.preventDefault();
				}
				$j('#jq-primaryNavigation').empty();
				currentHref="";
				currentLanguage="English";
				applyStylesheet('print');
				$("popup_frame").className = "display-none";	
				$("popup_inner").className = "display-none";
			}
		}
		
		if (translate){
	
			translate.onclick = function (oEvent){
				var oEvent = (typeof oEvent != "undefined")? oEvent : event;
				oEvent.returnValue = false;
				if(oEvent.preventDefault){
					oEvent.preventDefault();
				}
				
				applyStylesheet('print_ajax');
				currentHref=this.href;

			  $j.translate(function(){ //when the Google Language API is loaded
			  
			  if(!currentLanguage){
					currentLanguage='en';
				}
				
			    $j.translate().ui('select', 'option') //generate dropdown
			      .change(function(){ //when selecting another language
				  displayLoader('popupinnerright','translationloader');
				  currentLanguage=$j.translate().toLanguageCode($j(this).val());
				  new Ajax.Updater('popup_content', currentHref+'/f/Translate/Ajax/True', {evalScripts: true, onComplete: translateTextCallBack});
					})
					
			      .val(currentLanguage) //select English as default
			      .appendTo('#jq-primaryNavigation'); //insert the dropdown to the page
			    
			    //insert Google's logo after the dropdown:
				$j.translate().getBranding().appendTo('#jq-primaryNavigation');
			    
			  });
			  
			$("popup_frame").className = "popup display-block";	
			$("popup_inner").className = "popupctn display-block";
			displayLoader('popupinnerright','translationloader');
			new Ajax.Updater('popup_content', currentHref+'/f/Translate/Ajax/True', {evalScripts: true, onComplete: translateTextCallBack});
			this.blur();
			}
		}
		
		
		
		
		//Handle all other links
		var arrAllLinks = $$('a');
		//var arrDivs = document.getElementsByTagName("div");
		//var oDiv;
		var oLink;
		for(var i=0; i<arrAllLinks.length; i++){
	    	oLink = arrAllLinks[i];
			//Handle click on thumb images on Art Project Pages. The Id of the link represents the Image to show.
			if(oLink.className.search(/thumb/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					//document.getElementById("topimagearealoader").className = "loader display-block";
					displayLoader('topimagearea');
					new Ajax.Updater('topimagearea', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
				
			}
			
			if(oLink.className.search(/selectorforward/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('toparea');
					new Ajax.Updater('toparea', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}
			
			if(oLink.className.search(/popuplink/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('popupinnerright','translationloader');
					new Ajax.Updater('popup_content', this.href+'/f/Translate/Ajax/True', {evalScripts: true, onComplete: translateTextCallBack});
					currentHref=this.href;
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}
		
			if(oLink.className.search(/selectorback/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('toparea');
					new Ajax.Updater('toparea', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}
			
			if(oLink.className.search(/artistinfo/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('topimagearea');
					new Ajax.Updater('topimagearea', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}
			
			if(oLink.className.search(/placeinfo/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('topimagearea');
					new Ajax.Updater('topimagearea', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}
			
			if(oLink.className.search(/backgroundinfo/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('topimagearea');
					new Ajax.Updater('topimagearea', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}

			if(oLink.className.search(/taglink/) != -1){
				oLink.onclick = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					displayLoader('tagslistheader');
					$("tagsclose").className = "display-block";
					$("tagslist").className = "list column span-50em clear norightmargin display-block";
					new Ajax.Updater('tagslist', this.href+'/Ajax/True', {evalScripts: true, onSuccess: hideLoader});
					pageTracker._trackPageview(this.href);
					this.blur();
				}
			}	
			
			/*for(var i=0; i<arrDivs.length; i++){
				oDiv = arrDivs[i];
			if(oDiv.className.search(/factboxouter/) != -1){
				oDiv.onmouseover = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					this.className = "factboxactive";
				}
				
				oDiv.onmouseout = function (oEvent){
					var oEvent = (typeof oEvent != "undefined")? oEvent : event;
					oEvent.returnValue = false;
					if(oEvent.preventDefault){
						oEvent.preventDefault();
					}
					this.className = "factboxouter";
				}
			}*/	
			
			//}		

	    }
	
	}
}
