/* interface.js
 * Interface script for harldparkhotel.com.au
 * Developed by David Thomson http://www.hundredthcodemonkey.net
 */

//Root url for website script.
var sRootUrl = 'http://www.haroldparkhotel.com.au/';

function initialiseInterface()
{
	//addPreloadedInterfaceImages();
	
	//Add page specific functionallity.
	var sBodyId = document.getElementsByTagName('body')[0].getAttribute('id');
	
	if (sBodyId == '/functions')
	{
		initialiseFunctionsGalleries();
	}
	else if (sBodyId == '/gallery')
	{
		initialiseGalleryInterface();
	}
	else if (sBodyId == '/contact')
	{
		initialiseContactForm();
	}

	return;
}

//Image preload function for core interface elements across the site.
// * Return:			VOID
// * EH:				document.onload()
// NB: Functions creates new image elements to document DOM without appending them to any element.
function addPreloadedInterfaceImages()
{
	//Image folder.
	var sImgDir = sRootUrl+'images/';
	//Image resource locations.
	var aImages = new Array('slidetab_dlt.png',
							'slidetab_drt.png',
							'orb_send_yellow.png',
							'orb_navnext_grey.png',
							'orb_navnext_red.png',
							'orb_navnext_yellow.png',
							'orb_navprev_grey.png',
							'orb_navprev_red.png',
							'orb_navprev_yellow.png');

	var oImagePreload = new Array();
	for (var i = 0; i < aImages.length; i++)
	{
		oImagePreload[i] = document.createElement('img');
		oImagePreload[i].setAttribute('src', sImgDir + aImages[i]);
	}

	return;
}

/*
function initialiseContactForm()
{
	var oSumbit = document.getElementById('submit_button');
	oSumbit.onmouseover = function(){return focusSubmit(this);};
	oSumbit.onmouseout = function(){return blurSubmit(this);};
	
	return;
}

function focusSubmit(oButton)
{
	var sButtonImage = oButton.src;
	sButtonImage = sButtonImage.replace('_red', '_yellow');
	oButton.src = sButtonImage;

	return;
}

function blurSubmit(oButton)
{
	var sButtonImage = oButton.src;
	sButtonImage = sButtonImage.replace('_yellow', '_red');
	oButton.src = sButtonImage;

	return;
}
*/


///////////////////////////////////////////////////////////////////////////////
//                    M A I N   I M A G E   G A L L E R Y                    //
///////////////////////////////////////////////////////////////////////////////

//Initialises image gallery.
// * Return:					VOID
function initialiseGalleryInterface()
{
	initialiseDisplayGallery('gall');
	return;
}


///////////////////////////////////////////////////////////////////////////////
//                       I M A G E   G A L L E R I E S                       //
///////////////////////////////////////////////////////////////////////////////

//Initialises functions gallery.
// * Return:					VOID
function initialiseFunctionsGalleries()
{
	//Initialise galleries.
	initialiseDisplayGallery('lnge');
	initialiseDisplayGallery('deck');
	return;
}

//Builds image display with thumbnail controls galleries.
// - sGalleryId:				Gallery id handle
// * Return:					VOID
// * NB: This function will set as default the first image in the gallery to display.
function initialiseDisplayGallery(sGalleryId)
{
	//Assign first image display to control.
	document.getElementById(sGalleryId + '_flag').value = 1;

	//Build the gallery.
	buildImageDisplayGallery(sGalleryId);

	return;
}

//Updates the display gallery image and controls based on user input
// - sGalleryId:				Gallery id handle
// - nDisplayFlag:				Image number to update the display with
// - sDirection:				Value of direct button used('prev', next'), if no button was used value should be 'none'(or other);
// * Return:					VOID
function updateDisplayGallery(sGalleryId, nDisplayFlag, sDirection)
{
	//Assign first image display to control.
	document.getElementById(sGalleryId + '_flag').value = nDisplayFlag;

	//Build the gallery.
	buildImageDisplayGallery(sGalleryId);

	//Assign pagination images.
/*
	if ((sDirection == 'prev') && (nDisplayFlag > 1))
		document.getElementById(sGalleryId + '_prev').src = sRootUrl+'images/orb_navprev_yellow.png';
	if ((sDirection == 'next') && (nDisplayFlag < 5))
		document.getElementById(sGalleryId + '_next').src = sRootUrl+'images/orb_navnext_yellow.png';
*/
	return;
}

function updateDisplayPagination(sGalleryId, nDisplayFlag, sDisplaySRC)
{
	//Set display image.
	document.getElementById(sGalleryId + '_dply').src = sDisplaySRC;
	
	//Assign pagination images.
	//var oPrevButton = document.getElementById(sGalleryId + '_prev');
	//var oNextButton = document.getElementById(sGalleryId + '_next');
	var nPrevFlag = parseInt(nDisplayFlag, 10) - 1;
	var nNextFlag = parseInt(nDisplayFlag, 10) + 1;
	
	//Count number of images in displayed gallery.
	var oThumbnailPanel = document.getElementById(sGalleryId + '_thmb');
	var aImageThumbnails = oThumbnailPanel.getElementsByTagName('INPUT');
	var nNumOfImages = aImageThumbnails.length;

	if ((nDisplayFlag == 1) && (nDisplayFlag < nNumOfImages))
	{
		/*
		oPrevButton.src = sRootUrl+'images/orb_navprev_grey.png';
		oNextButton.src = sRootUrl+'images/orb_navnext_red.png';
		oNextButton.onmouseover = function(){return focusThumbnailPagination(this, nNextFlag);};
		oNextButton.onmouseout = function(){return blurThumbnailPagination(this, nNextFlag);};
		oNextButton.onclick = function(){return updateDisplayGallery(sGalleryId, nNextFlag, 'next');};
		*/
	}
	else if ((nDisplayFlag == 1) && (nDisplayFlag == nNumOfImages))
	{
		/*
		oPrevButton.src = sRootUrl+'images/orb_navprev_grey.png';
		oNextButton.src = sRootUrl+'images/orb_navnext_grey.png';
		oNextButton.onmouseover = function(){return;};
		oNextButton.onmouseout = function(){return;};
		oNextButton.onclick = function(){return;};
		*/
	}
	else if (nDisplayFlag == nNumOfImages)
	{
		/*
		oPrevButton.src = sRootUrl+'images/orb_navprev_red.png';
		oNextButton.src = sRootUrl+'images/orb_navnext_grey.png';
		oPrevButton.onmouseover = function(){return focusThumbnailPagination(this, nDisplayFlag);};
		oPrevButton.onmouseout = function(){return blurThumbnailPagination(this, nDisplayFlag);};
		oPrevButton.onclick = function(){return updateDisplayGallery(sGalleryId, nPrevFlag, 'prev');};
		oNextButton.onmouseover = function(){return;};
		oNextButton.onmouseout = function(){return;};
		oNextButton.onclick = function(){return;};
		*/
	}
	else
	{
		/*
		oPrevButton.src = sRootUrl+'images/orb_navprev_red.png';
		oNextButton.src = sRootUrl+'images/orb_navnext_red.png';
		oPrevButton.onmouseover = function(){return focusThumbnailPagination(this, nPrevFlag);};
		oPrevButton.onmouseout = function(){return blurThumbnailPagination(this, nPrevFlag);};
		oPrevButton.onclick = function(){return updateDisplayGallery(sGalleryId, nPrevFlag, 'prev');};
		oNextButton.onmouseover = function(){return focusThumbnailPagination(this, nNextFlag);};
		oNextButton.onmouseout = function(){return blurThumbnailPagination(this, nNextFlag);};
		oNextButton.onclick = function(){return updateDisplayGallery(sGalleryId, nNextFlag, 'next');};
		*/
	}
	
	return;
}

function buildImageDisplayGallery(sGalleryId)
{
	//Get the image display gallery root element.
	var oGalleryPane = document.getElementById(sGalleryId + '_pane');

	//Get input flag value.
	var nDisplayFlag = document.getElementById(sGalleryId + '_flag').value;

	//If the gallery is not initialised do it.
	if (nDisplayFlag == 0)
	{
		initialiseDisplayGallery(sGalleryId);
		return;
	}

	//Get thumbnail elements.
	var oThumbnailPane = document.getElementById(sGalleryId + '_thmb');
	var oThumbnails = oThumbnailPane.getElementsByTagName('input');
	var nThumbnails = oThumbnails.length;
	var sDisplaySRC = '';
	var sDescription = '';

	//Loop through thumbnail elements.
	for (i = 0; i < nThumbnails; i++)
	{
		//Assign thumbnail classes.
		oThumbnails[i].className = '';
		var nFlag = i + 1;

		//Assign thumbnail selection.
		if (nFlag == nDisplayFlag)
		{
			oThumbnails[i].className = 'selected';
			sDisplaySRC = oThumbnails[i].src;
			//Get description.
			sDescription = (sGalleryId == 'gall')? oThumbnails[i].getAttribute('alt'): '';
		}
		//Attach event handler to thumbnail.
		else
		{
			oThumbnails[i].onclick = function(){return clickGalleryThumbnail(this, sGalleryId);};
			oThumbnails[i].onmouseover = function(){return focusThumbnailImage(this);};
			oThumbnails[i].onmouseout = function(){return blurThumbnailImage(this);};
		}
	}

	//Assign display image.
	updateDisplayPagination(sGalleryId, nDisplayFlag, sDisplaySRC);
	
	//Update description for main gallery.
	if (sGalleryId == 'gall')
		document.getElementById('image_description').innerHTML = sDescription;

	return;
}

function clickGalleryThumbnail(oThumbnail, sGalleryId)
{
	nThumbnail = oThumbnail.value;
	updateDisplayGallery(sGalleryId, nThumbnail, 'none');
}

function focusThumbnailImage(oThumbnail)
{
	if (oThumbnail.className != 'selected')
		oThumbnail.className = 'focused';
}

function blurThumbnailImage(oThumbnail)
{
	if (oThumbnail.className != 'selected')
		oThumbnail.className = '';
}

function focusThumbnailPagination(oButton, nNavFlag)
{
	//Change button.
	sButtonImage = oButton.src;
	sButtonImage = sButtonImage.replace('_red', '_yellow');
	oButton.src = sButtonImage;

	return;
}

function blurThumbnailPagination(oButton, nNavFlag)
{
	//Change button.
	sButtonImage = oButton.src;
	sButtonImage = sButtonImage.replace('_yellow', '_red');
	oButton.src = sButtonImage;

	return;
}

//Opens a googlemap in a new window.
function openMapWindow()
{
	window.open('http://www.haroldparkhotel.com.au/map.html','','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');
}



