/* 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'); }