
function showLayer(layerName) {
	var obj;

	obj = document.getElementById(layerName);
	try {
		obj.style.visibility = 'visible';
	}
	catch(err) {}
}

function hideLayer(layerName) {
	var obj;

	obj = document.getElementById(layerName);
	try {
		obj.style.visibility = 'hidden';
	}
	catch(err) {}
}


function setOpacity(layerName, perc) {
	var obj;
	var frac = perc/100;
	
	obj = document.getElementById(layerName);

	try {
		if (obj.style.opacity !== undefined) {
			obj.style.opacity = frac;
		}
		else if (obj.style.filter !== undefined) {
			obj.style.filter = 'alpha(opacity=' + perc + ')';
		}
	}
	catch(err) {}
}



function setTransition(layerName, trans) {
	var obj;

	obj = document.getElementById(layerName);

	try {
		if (obj.style.WebkitTransition !== undefined) {
			obj.style.WebkitTransition = trans;
		}
		if (obj.style.MozTransition !== undefined) {
			obj.style.MozTransition = trans;
		}
		if (obj.style.OTransition !== undefined) {
			obj.style.OTransition = trans;
		}
		if (obj.style.Transition !== undefined) {
			obj.style.Transition = trans;
		}
	}
	catch(err) {}
}


function canTransition() {
	var obj;

	obj = document.getElementById('outerPanel');

	return (
			(obj.style.WebkitTransition !== undefined) ||
			(obj.style.MozTransition !== undefined) ||
			(obj.style.OTransition !== undefined) ||
			(obj.style.Transition !== undefined)
		)
}


/******************************************

Home Page functions


*******************************************/
function onMouseOverHomePageHandler(event) {
	var eTarget, newTarget;
	
	eTarget = getEventTarget(event);

	if(eTarget.substr(0,11)=="setMenuItem") {
		setOpacity(eTarget, 100);

		newTarget = "setMenuTitle" + eTarget.substr(11,2);
		setOpacity(newTarget, 100);
	}
}

function onMouseOutHomePageHandler(event) {
	var eTarget, objList;
	
	eTarget = getEventTarget(event);

	if(eTarget.substr(0,11)=="setMenuItem") {
		objList = document.getElementsByTagName("img");

		for(x in objList) {
			if(objList[x].className == "setMenuImg") {
				setOpacity(objList[x].id, 50);
			}
		}

		objList = document.getElementsByTagName("div");

		for(x in objList) {
			if(objList[x].className == "homeMenuTitle") {
				setOpacity(objList[x].id, 0);
			}
		}
	}
}

/******************************************

Gallery Page functions


*******************************************/
function onMouseOverGalleryPageHandler(event) {
	var eTarget, newTarget;
	
	eTarget = getEventTarget(event);

	if(eTarget.substr(0,11)=="setMenuItem") {
		setOpacity(eTarget, 100);
	}
}

function onMouseOutGalleryPageHandler(event) {
	var eTarget, objList;
	
	eTarget = getEventTarget(event);

	if(eTarget.substr(0,11)=="setMenuItem") {
		objList = document.getElementsByTagName("img");

		for(x in objList) {
			if(objList[x].className == "setMenuImg") {
				setOpacity(objList[x].id, 50);
			}
		}
	}
}



/******************************************

Gallery functions


*******************************************/

function addEvent(obj, evt, func)
{
    if(typeof func == 'function')
    {
	    if(obj.addEventListener) //standard browsers
	    {
	        obj.addEventListener(evt, func, false);
	    }
	    else if(obj.attachEvent) //IE
	    {
	        obj.attachEvent('on' + evt, func);
	    }
	}
}
 

function removeEvent(obj, evt, func)
{
    if(obj.removeEventListener) //standard browsers
    {
        obj.removeEventListener(evt, func, false);
    }
    else if(obj.detachEvent) //IE
    {
        obj.detachEvent('on' + evt, func);
    }
}
 

function setGalleryEvents() {
	addEvent(document, 'keydown', onKeyDownHandler)
	addEvent(document, 'mouseout', onMouseOutHandler);
	addEvent(document, 'mousemove', onMouseMove);
	addEvent(document, 'mousedown', onMouseDownHandler);
}


function getEventTarget(event) {
	var eTarget;
	
	eTarget = event.target || event.srcElement;
	if (eTarget.nodeType == 3) { // defeat Safari bug
		eTarget = eTarget.parentNode;
	}

	return eTarget.id;
}

function onMouseDownHandler(event) {
	var eTarget, perc;
	
	eTarget = getEventTarget(event);

	//gallery navigation
	if(eTarget=='galleryImageContainer' || eTarget=='galleryImageImg') {
	
		obj = document.getElementById('galleryWidth');
		width = obj.value;

		if (event.layerX !== undefined) {
			mouseX = event.layerX;

		}
		else if (event.offsetX !== undefined) {
			mouseX = event.offsetX;

		}
		
		perc = Math.round((mouseX/width)*100);
		
		//if with 10% of left, the go backwards
		if(perc < 10) {
			setPreviousGalleryImage();
		}
		else
		{
			setNextGalleryImage();
		}
		
	}
	else if(eTarget=='galleryImageNext') {
		setNextGalleryImage();
	}
	else if(eTarget=='galleryImagePrevious') {
		setPreviousGalleryImage();
	}
}


function onMouseOutHandler(event) {
	var eTarget;
	
	eTarget = getEventTarget(event);	
	
	//hide gallery navigation
	if(eTarget=='galleryImageContainer' || eTarget=='galleryImageImg' || eTarget=='galleryImageNext' || eTarget=='galleryImagePrevious') {
		setOpacity('galleryImageNext',0);
		setOpacity('galleryImagePrevious',0);
	}
}


function setNextGalleryImage() {
	var obj;
	var exh;
	var imageID;
	
	try {
		obj = document.getElementById('galleryExhibition');
		exh = obj.value;
		obj = document.getElementById('galleryNextImageID');
		imageID = obj.value;
	
		setGalleryImage(exh, imageID);
	}
	catch(err) {}
}

function setPreviousGalleryImage() {
	var obj;
	var exh;
	var imageID;
	
	try {
		obj = document.getElementById('galleryExhibition');
		exh = obj.value;
		obj = document.getElementById('galleryPreviousImageID');
		imageID = obj.value;
	
		setGalleryImage(exh, imageID);
	}
	catch(err) {}
}



function onKeyDownHandler(event) {
	if(event.keyCode==39) { //right key
		setNextGalleryImage();
	}
	else if (event.keyCode==37) { //left key
		setPreviousGalleryImage();
	}
}


function onMouseMove(event) {
	var perc;
	var obj;
	var mouseX;
	var eTarget;
	var imageWidth = 48;
	
	eTarget = getEventTarget(event);	

	if(eTarget=='galleryImageContainer' || eTarget=='galleryImageImg') {
	
		obj = document.getElementById('galleryWidth');
		width = obj.value;

		if (event.layerX !== undefined) {
			mouseX = event.layerX;

		}
		else if (event.offsetX !== undefined) {
			mouseX = event.offsetX;

		}
		
		//only calc between two arrow images
		if(mouseX > width - imageWidth) {mouseX = width - imageWidth;} //right trim
		mouseX = mouseX - imageWidth; //remove left offset
		if(mouseX < 0) {mouseX = 0;} //left trim
		perc = Math.round((mouseX/(width-2*imageWidth))*100); //calculate percentage
		
		
		setOpacity('galleryImageNext',perc);
	
		perc = 100 - perc;
	
		setOpacity('galleryImagePrevious',perc);

		
		showLayer('galleryImageNext');
		showLayer('galleryImagePrevious');
	}
	else if(eTarget=='galleryImageNext') {
		setOpacity('galleryImageNext',100);
		setOpacity('galleryImagePrevious',0);

		
		showLayer('galleryImageNext');
		showLayer('galleryImagePrevious');
	}
	else if(eTarget=='galleryImagePrevious') {
		setOpacity('galleryImageNext',0);
		setOpacity('galleryImagePrevious',100);

		
		showLayer('galleryImageNext');
		showLayer('galleryImagePrevious');
	}
}


function setAjaxLoader() {
	var obj;

	obj = document.getElementById('galleryImages');

	obj.innerHTML = "<img src='/ajax-loader.gif' width='48' height='48' border='0' alt='Loading...' style='position: absolute; left: 466px; top: 306px;'>";

	setOpacity('galleryImages',100);
}


function setGalleryImage(exh, img) {
	var AJAX = null;                                 // Initialize the AJAX variable.
	var obj, timerID;

	obj = document.getElementById('galleryImages');


	if(canTransition()) { //IE doesn't like this stuff so skip it
		setTransition('galleryImages', 'opacity 0.2s ease-in');
		setOpacity('galleryImages',0);
		timerID = setTimeout("setAjaxLoader()", 200);
	}
	else {
		obj.innerHTML = "<img src='/ajax-loader.gif' width='48' height='48' border='0' alt='Loading...' style='position: absolute; left: 466px; top: 306px;'>";
	}
	
	
	if (window.XMLHttpRequest) {                     // Does this browser have an XMLHttpRequest object?
		AJAX=new XMLHttpRequest();                    // Yes -- initialize it.
	}
	else {                                         // No, try to initialize it IE style
		AJAX=new ActiveXObject("Microsoft.XMLHTTP");  
	}                                                // End setup Ajax.
	if (AJAX==null) {                                // If we couldn't initialize Ajax...
		alert("Your browser doesn't support AJAX.");  // Sorry msg.                                               
		return false;                                 // Return false, couldn't set up ajax
	}

	AJAX.onreadystatechange = function() {                      // When the browser has the request info..
	   if (AJAX.readyState==4 || AJAX.readyState=="complete") { //  see if the complete flag is set.
			if(AJAX.status == 200) {

				if(canTransition()) { //IE doesn't like this stuff so skip it
					clearTimeout(timerID);
					setOpacity('galleryImages',0);
					
					obj.innerHTML = AJAX.responseText;
	
					setTransition('galleryImages', 'opacity 0.5s ease-in');
					setOpacity('galleryImages',100);
				}
				else {
					obj.innerHTML = AJAX.responseText;
				}
			}
			else {
				obj.innerHTML = "Error!";
			}
	   }                                                        // End Ajax readystate check.
	}

	var url='/include/set_gallery_image.php?exh=' + exh + '&img=' + img; // This is the URL we will call.
	AJAX.open("GET", url, true);                                  // Open the url this object was set-up with.
	AJAX.send(null);  

}





