//<![CDATA[
	var IMG_NORMAL_WIDTH = 294;
	var IMG_NORMAL_HEIGHT = 400;

	//Pre-load png images
	var img1 = new Image();
	img1.src = "../images/lyricsSelectAlbum.png";
	var img2 = new Image();
	img2.src = "../images/smallAtomARed.png";

	//Keep track of last viewed album
	var currentAlbumId;
	
	//Fix IE 6 background flicker
	try {
		document.execCommand("BackgroundImageCache", false, true);
	} catch(err) {}

	function getAlbumsArray() {
		var alb = new Array();
		alb[1] = 'Sword of 77 Faces';
		alb[2] = 'The Day the World Changed';
		alb[11] = 'Son of Slaves and Lords';

		return alb;
	}

	function GetXMLHttpObject() {
		var xmlHttp=null;
		
		try {
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		} catch (e) {
			// Internet Explorer
			try {
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
		}	
		
		return xmlHttp;
	}

	function processCloseClick() {
		var divWrap = document.getElementById('divLyricsWrapper');
		if (divWrap) {
			new Effect.Fade(divWrap, {duration: 0.1});
		}
		new Effect.Puff('imgBoxScreenOverlay');

		return false;
	}

	function processBackClick() {
		var objDisplayDiv = document.getElementById('divLyricsContent');
		var albums = getAlbumsArray();

		new Effect.Opacity(objDisplayDiv.id, {to: 0.0});
		new Effect.Opacity('imgBoxScreenOverlay', {to: 0.85, afterFinish: function(){processAjaxImageClick(currentAlbumId, albums[currentAlbumId]); new Effect.Opacity(objDisplayDiv.id, {to: 1.0});}})

		return false;
	}

	function processAjaxImageClick(albumId, albumName) {
		var xmlHttp = GetXMLHttpObject();
		var objDisplayDiv = document.getElementById('divLyricsContent');

		//Re-set content
		objDisplayDiv.innerHTML = "<div style=\"height: 100%; width: 100%; text-align: center; padding-top: 120px; font-weight: bold;\">Loading...</div>";
		
		//Hide back button
		new Effect.Fade('btnBack', {duration: 0.1});

		if (xmlHttp == null) {
			alert("Your browser does not support Ajax!");
			return false;
		}

		var strParams = "AL=" + albumId + "&AN=" + albumName;
		xmlHttp.open("POST","lyricsFunctions.php",true);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		xmlHttp.send(strParams);

		xmlHttp.onreadystatechange=function() {
			if (xmlHttp.readyState == 4) {
				var objFilter = objDisplayDiv.style.filter;
				var objOpacity = objDisplayDiv.style.opacity;

				objDisplayDiv.innerHTML = xmlHttp.responseText;
			}
		}
	}

	function processLyricsLinkClick(lyricsId) {
		var objDisplayDiv = document.getElementById('divLyricsContent');
		var objOverlayDiv = document.getElementById('imgBoxScreenOverlay');

		//Make everything fade to white...
		new Effect.Parallel([new Effect.Opacity(objDisplayDiv.id, {from: 1.0, to: 0.0, afterFinish: function() {updateLyricsText(lyricsId);}}),	new Effect.Opacity(objOverlayDiv.id, {to: 1.0})], {duration: 0.5});
		
		return false;
	}

	function updateLyricsText(lyricsId) {
		var xmlHttp = GetXMLHttpObject();
		var objDisplayDiv = document.getElementById('divLyricsContent');
		var objOverlayDiv = document.getElementById('imgBoxScreenOverlay');

		if (xmlHttp == null) {
			alert("Your browser does not support Ajax!");
			return false;
		}

		var strParams = "ID=" + lyricsId;
		xmlHttp.open("POST","lyricsFunctions.php",true);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		xmlHttp.send(strParams);

		xmlHttp.onreadystatechange=function() {
			if (xmlHttp.readyState == 4) {
				var objFilter = objDisplayDiv.style.filter;
				var objOpacity = objDisplayDiv.style.opacity;

				objDisplayDiv.innerHTML = xmlHttp.responseText;

				//Show back button
				new Effect.Appear('btnBack');

				//Then fade back...
				new Effect.Opacity(objOverlayDiv.id, {to: 0.95});
				new Effect.Opacity(objDisplayDiv.id, {to: 1.0});
			}
		}
	
		return false;
	}

	function moveSlideBox(slideAmount, positionMode, obj) {
		new Effect.Move('imageBoxInside', {x: slideAmount, y: 0, mode: positionMode, transition: Effect.Transitions.sinoidal});
	}
	
	function getDifference(obj) {
		objIndex = getImageOrdinalPosition(obj);
		var objContainer = document.getElementById('divSlideGalleryContainer');
		imgX = getPos(obj)[0];

		imgWidth = parseInt(IMG_NORMAL_WIDTH * (0.7)) + 20; //plus padding
		boxX = getPos(objContainer)[0];
		boxWidth = objContainer.offsetWidth;

		var difference = -(((objIndex * imgWidth) - (imgWidth / 2)) - (boxWidth / 2));
		difference -= 70;	//Scaling factor
		return difference;
	}

	function imageMouseoverFollowup(obj) {
		var difference = getDifference(obj);
		if (difference < -1 || difference > 1) {
			new Effect.Move('imageBoxInside', {x: difference, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal});
		}
	}

	function processImageMouseover(e, obj) {
		var difference = getDifference(obj);
		new Effect.Morph(obj.id, {style:{width: IMG_NORMAL_WIDTH + 'px', height: IMG_NORMAL_HEIGHT + 'px'}});

		moveSlideBox(difference, 'absolute', obj);
	}

	function processImageMouseout(obj) {
		new Effect.Morph(obj.id,{style:{width: parseInt(IMG_NORMAL_WIDTH * (0.7)) + 'px', height: parseInt(IMG_NORMAL_HEIGHT * (0.7)) + 'px'}});
	}

	function processImageClick(obj, num) {
		var albums = getAlbumsArray();
		
		//Save last viewed album id
		currentAlbumId = num;

		//Get list of lyrics
		processAjaxImageClick(num, albums[num]);

		lowerScreen();
		resetGallery(null, document.getElementById('imageBox'));
	}

	function lowerScreen() {
		new Effect.Parallel([new Effect.BlindDown('imgBoxScreenOverlay'), new Effect.Opacity('imgBoxScreenOverlay', {from: 1, to: 0.85})]);
	}
	
	function getImageOrdinalPosition(obj) {
		var objBox = document.getElementById('imageBox');
		arrImgs = objBox.getElementsByTagName("IMG");

		for (i = 0; i < arrImgs.length; i++) {
			if (arrImgs[i] === obj) return i + 1;
		}

		return 1;
	}

	function resetGallery(e, objBox) {
		try {
			if (typeof objBox.contains == "undefined") {objBox.contains = function (arg) {return !!(this.compareDocumentPosition(arg) & 16);}}
			if (!e.srcElement) e.srcElement = e.target;
			if (!e.toElement) e.toElement = e.relatedTarget;
			if (!e.toElement || (e.toElement && objBox.contains(e.toElement))) return;		
		} catch (e) {}	
		
		arrImgs = objBox.getElementsByTagName("IMG");

		for (i = 0; i < arrImgs.length; i++) {
			if (arrImgs[i].offsetWidth > parseInt(IMG_NORMAL_WIDTH * (0.7))) {
				new Effect.Morph(arrImgs[i].id,{style:{width: parseInt(IMG_NORMAL_WIDTH * (0.7)) + 'px', height: parseInt(IMG_NORMAL_HEIGHT * (0.7)) + 'px'}});
			}
		}

		new Effect.Move('imageBoxInside', {x: -135, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal});
	}
//]]>