
var Engine = {};

Engine.hideBetaMessage = function(){
	if(Utils.cookies.set("AR_s_beta", "false", "never")) document.getElementById("beta").style.display="none";
}

Engine.showAllPhotos = function(){
	document.getElementById('hidden_photos').style.display = "block";
	document.getElementById('show_more_photos_link').style.display = "none";
	var vc = document.getElementById('video_container');
	if(vc != undefined){
		//document.getElementById('hidden_photos').innerHTML += '<span class="spacer"></span>' + vc.innerHTML;
		document.getElementById('hidden_photos').innerHTML += vc.innerHTML;
		vc.innerHTML = "";
		vc.style.display = "none";
	}
}


Engine.media = {};
Engine.media._initialized = false;
Engine.media._currentID = 0;
Engine.media._currentPosition = -1;
Engine.media._sequence = new Array();

Engine.media._generatePath = function(id){
	if(document.location.toString().indexOf("shows")!=-1)
		return "../photos/shows/" + id.split("_")[0] + "/" + id.split("_")[1] + ".jpg";
	
	if(document.location.toString().indexOf("artists")!=-1)
		return "../photos/artists/" + id.split("_")[0] + "/" + id.split("_")[1] + ".jpg";	
		
	if(document.location.toString().indexOf("gallery")!=-1)
		return "../photos/gallery/" + id + ".jpg";
	 
	return "../photos/shows/" + id.split("_")[0] + "/" + id.split("_")[1] + ".jpg";
}

Engine.media.initialize = function(){
	Engine.media._band = document.createElement('div');
	Engine.media._band.id = 'mediadisplay_bg';
	Engine.media._container = document.createElement('div');
	Engine.media._container.id = 'mediadisplay_container';
	Engine.media._description = document.createElement('div');
	Engine.media._description.id = 'mediadisplay_description';
	Engine.media._loading = document.createElement('div');
	Engine.media._loading.id = 'mediadisplay_loading';
	Engine.media._loading.innerHTML = 'loading...';
	Engine.media._close = document.createElement('a');
	Engine.media._close.id = 'mediadisplay_close';
	Engine.media._close.innerHTML = 'close';
	Engine.media._close.href = 'javascript:Engine.media.close()';
	Engine.media._next = document.createElement('a');
	Engine.media._next.id = "mediadisplay_next";
	Engine.media._next.href = "javascript:Engine.media.next()";
	Engine.media._previous = document.createElement('a');
	Engine.media._previous.id = "mediadisplay_previous";
	Engine.media._previous.href = "javascript:Engine.media.previous()";	
	Engine.media._videoFrame = document.createElement('iframe');
	Engine.media._videoFrame.id = "video_frame";
	Engine.media._videoFrame.className = "youtube-player";
	Engine.media._videoFrame.setAttribute("type",'type="text/html"'); 
	Engine.media._videoFrame.setAttribute("frameborder", 0);
		
	document.body.appendChild(Engine.media._band);	
	document.body.appendChild(Engine.media._loading);	
	document.body.appendChild(Engine.media._close);
	document.body.appendChild(Engine.media._container);
	document.body.appendChild(Engine.media._next);
	document.body.appendChild(Engine.media._previous);
	
	Engine.media._initialized = true;
}

Engine.media.show = function(type, id, description){
	if(!Engine.media._initialized) Engine.media.initialize();
	
	Engine.media._currentID = id;

	if(!document.onkeydown){
		document.onkeydown = function(e){
				e = e || document.event;
				
				var code;
				
				if(e.which) code = e.which
				else code = e.keyCode;

				switch(code){
					case 37:
						Engine.media.previous()						
						break;
					case 39:
						Engine.media.next()
						break;
					case 13:
					case 27:
						Engine.media.close()
						break;
				}
				
			};	
	}
	
	Engine.media._centerAndDisplay("loading");
	
	if(type == 'photo'){
		var path = Engine.media._generatePath(id);
		Engine.media._img = new Image();
		
		Engine.media._img.onload = function(){
				Engine.media._container.innerHTML = "";
				Engine.media._container.appendChild(Engine.media._img);
				if(description){
					Engine.media._container.appendChild(Engine.media._description);	
					Engine.media._description.innerHTML = decodeURIComponent(description);
				}
				Engine.media._centerAndDisplay("container");
			};
		Engine.media._img.src = path;
	}
	
	if(type == 'video'){
		Engine.media._container.innerHTML = "";
		
		Engine.media._videoFrame.src = "http://www.youtube.com/embed/" + id + "?rel=0";
		
		Engine.media._container.appendChild(Engine.media._videoFrame);
		
		if(description){
			Engine.media._container.appendChild(Engine.media._description);	
			Engine.media._description.innerHTML = decodeURIComponent(description);
		}
		
		Engine.media._centerAndDisplay("video_container");		
	}
	
	setTimeout(function(){
			if(!Engine.media._sequence.length) Engine.media.createSequence();
			
			if(Engine.media._sequence.length && Engine.media._currentPosition==-1){
				var a = Engine.media._sequence;
				for(var j=0; j<a.length; j++){
					if(a[j].id == id) Engine.media._currentPosition = j;
				}
			}

			if(Engine.media._currentPosition > 0) Engine.media._previous.style.visibility = "visible";
			if(Engine.media._currentPosition < (Engine.media._sequence.length-1)) Engine.media._next.style.visibility = "visible";
		}, 0);
}

Engine.media.createSequence = function(){
	var a = document.body.getElementsByTagName("a");
	
	for(var i=0; i<a.length; i++)
		if(a[i].className && a[i].className.indexOf("mediadisplay_thumb")!=-1){
			Engine.media._sequence.push(a[i]);
			setTimeout("loadImg('"+a[i].id+"')",0);
		}
	a = Engine.media._sequence;

	for(var i=0; i<a.length; i++)
		if(a[i].id == Engine.media._currentID) Engine.media._currentPosition = i;
}

function loadImg(id){
	var ni = new Image();
	ni.src = Engine.media._generatePath(id);
}


Engine.media.next = function(){
	Engine.media.close(true);

	if(Engine.media._currentPosition + 1 < Engine.media._sequence.length){
		Engine.media._currentPosition++;
		Engine.media._next.blur();
		eval(Engine.media._sequence[Engine.media._currentPosition].href);
	}
}

Engine.media.previous = function(){
	Engine.media.close(true);

	if(Engine.media._currentPosition - 1 >= 0){
		Engine.media._currentPosition--;
		Engine.media._previous.blur();
		eval(Engine.media._sequence[Engine.media._currentPosition].href);
	}
}

Engine.media.close = function(partial){
	if(!Engine.media._initialized) return;
	document.onkeydown = "";
	if(Engine.media._img) Engine.media._img.onload = "";
	Engine.media._container.style.display = "none";
	Engine.media._container.style.visibility = "hidden";
	Engine.media._container.innerHTML = "";
	Engine.media._band.style.display = "none";
	Engine.media._band.style.visibility = "hidden";	
	Engine.media._loading.style.display = "none";
	Engine.media._loading.style.visibility = "hidden";	
	Engine.media._close.style.display = "none";
	Engine.media._close.style.visibility = "hidden";	
	Engine.media._previous.style.display = "none";
	Engine.media._previous.style.visibility = "hidden";	
	Engine.media._next.style.display = "none";
	Engine.media._next.style.visibility = "hidden";	
	if(!partial) Engine.media._currentPosition = -1;
}

Engine.media._centerAndDisplay = function(type){
	Engine.media._band.style.display = "block";
	Engine.media._close.style.display = "block";	
	
	if(type == "loading"){
		Engine.media._loading.style.display = "block";
		Engine.media._band.style.height = Engine.media._loading.offsetHeight + 100 + "px";	
		centerElement(Engine.media._loading);	
		Engine.media._loading.style.visibility = "visible";
	}
	
	if(type == "container" || type == "video_container"){
		Engine.media._loading.style.display = "none";
		Engine.media._container.style.display = "block";
		Engine.media._band.style.height = Engine.media._container.offsetHeight + 100 + "px";
		
		if(type == "container")
			Engine.media._container.style.width = Engine.media._img.offsetWidth + Engine.media._description.offsetWidth + "px";
		else
			Engine.media._container.style.width = Engine.media._videoFrame.offsetWidth + Engine.media._description.offsetWidth + "px";
		
		centerElement(Engine.media._container);
		Engine.media._container.style.visibility = "visible";		
	}

	centerElement(Engine.media._band);				
	Engine.media._close.style.top = Engine.media._band.offsetTop + 10 + "px";
	Engine.media._close.style.left = (Engine.media._band.offsetLeft + Engine.media._band.offsetWidth - Engine.media._close.offsetWidth - 20) + "px";				
	
	Engine.media._band.style.visibility = "visible";
	Engine.media._close.style.visibility = "visible";
	
	if(type == "container" || type == "video_container"){
		Engine.media._next.style.display = "block";	
		Engine.media._previous.style.display = "block";	
		Engine.media._next.style.top = Engine.media._band.offsetTop + "px";
		Engine.media._next.style.height = Engine.media._band.offsetHeight - 30 + "px";
		Engine.media._next.style.left = Engine.media._band.offsetLeft + Engine.media._band.offsetWidth - Engine.media._next.offsetWidth + "px";
		Engine.media._previous.style.height = Engine.media._band.offsetHeight - 40 + "px";
		Engine.media._previous.style.top = Engine.media._band.offsetTop + "px";
		Engine.media._previous.style.left = Engine.media._band.offsetLeft + "px";			
	}
	
	function centerElement(element){
		if(typeof(element)=="string") element = $(element);
		var windowHeight = (window.innerHeight)?window.innerHeight:((document.documentElement && document.documentElement.clientHeight)?document.documentElement.clientHeight:document.body.clientHeight);
		var windowWidth = (window.innerWidth)?window.innerWidth:((document.documentElement && document.documentElement.clientWidth)?document.documentElement.clientWidth:document.body.clientWidth);
			
		element.style.top =  windowHeight/2 - element.offsetHeight/2 + "px";
		element.style.left = windowWidth/2 - element.offsetWidth/2 + "px";			
	}
	
}

Engine.switchToPrintableVersion = function(){
	var c = document.getElementById('contents');
	var r = document.getElementById('contacts_link');

	document.body.innerHTML = "<div id='wait' style='text-align: center;font-family:times new roman; font-style:italic; color: #333; font-size: 25px;padding: 20px;'>please wait...</div>";
	
	c.style.visibiliy = 'hidden';
	document.body.appendChild(c);

	c.style.width = "800px";
	
	var p = document.getElementById('photo_container');
	if(p != undefined) p.style.display = 'none';
	
	var v = document.getElementById('video_container');
	if(v != undefined) v.style.display = 'none';
	
	var f = document.getElementById('file_container');
	if(f != undefined) f.style.display = 'none';
	
	var t = document.getElementById('type');
	if(t != undefined) t.style.display = "none";
	
	document.getElementById('printable_version').style.display = 'none';	
	document.getElementById('lang_select').style.display = 'none';
	
	c.innerHTML = '<img src="../images/logo_printable.jpg" style="float:right;"/><div style="clear:both"></div> ' + c.innerHTML;
		
	for(var i=0; i < c.childNodes.length; i++)
		if(c.childNodes[i].style) 
			c.childNodes[i].style.color = "#333";
	
	for(var i=0; i < document.links.length; i++)
		document.links[i].href = "#";
	
	c.innerHTML += '<div style="text-align: right; padding-top: 50px;font-size: 1.2em; color: #333"><strong style="font-size:1.4em;">http://www.allegraravizza.com</strong><br/>' + r.innerHTML + '</div>';
	c.style.visibiliy = 'visible';
	document.getElementById("wait").style.display = "none"
}









