/***********************************************
* Fade-in/out image slideshow script
* © Cote Business Systems (www.cotesystems.com)
* This notice MUST stay intact for legal use
* -Based on original code from: Dynamic Drive DHTML code library (www.dynamicdrive.com)
* -added handling of different size slides
* -added simultaneous fade-in of next slide and fade-out of current slide
***********************************************/

//=Declarations===================================================

var slideshow_width = '750' //SET IMAGE WIDTH
var slideshow_height = '300' //SET IMAGE HEIGHT
var textPanel_left = 450 //SET TEXT PANEL WIDTH
var textCover_left = 300 //SET TEXT COVER LEFT

var pause = 3000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)
var fadeTime = 10 //SET LENGTH OF FADETIME FOR EACH SLIDE
var openBlindSpeed = 25	//SET SPEED OF BLINDS (HIGHER = FASTER)
var openSlidePanelSpeed = 40 //SET SPEED OF SLIDE PANEL (HIGHER = FASTER)
var iIttMenu = 13; //SET MENU DECRYPT ITTERATIONS
var iItvMenu = 50; //SET MENU DECRYPT INTERVALS
var iIttSubMenu = 10; //SET SUBMENU DECRYPT ITTERATIONS
var iItvSubMenu = 50; //SET SUBMENU DECRYPT INTERVALS
var imagePath = "http://www.thirdstone.ca/images/menu_images/";

var fadeImages = new Array() //SET IMAGE PATHS. Extend or contract array as needed
var imgCount = -1
var imgFolder = "http://www.thirdstone.ca/images/slide_show/"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss01_muttart.jpg";
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss02_alum_firepit.jpg";
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss03_grasses.jpg";
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss04_muttart.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss05_pillow.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss06_pere_zen_pagoda_detail.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss07_minimalist.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss08_muttart.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss09_pool_court.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss10_muttart.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss11_muttart.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss12_min_bath.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss13.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss14.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss15.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss16_minimalist2.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss17_pouf1.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss18.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss19.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss20.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss21.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss22.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss23.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss24_min_sink.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss25.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss26.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss27.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss28_pere_main_bath.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss29.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss30.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss31.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss32.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss33.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss34_pereira_conc_steps.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss35_pereira_firepit2.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss36_giesha.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss37.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss39.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss40_lanterns.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss41_mod_fireplace.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss42_mod_bath.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss43_mod_bath.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss44_mod_fireplace.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss45_mod_sink.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss46_pouf2.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss47_ferns.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss48.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss49.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss50.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss51.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss52.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss53.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss54.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss55.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss56.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss57.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss58.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss59.jpg"
 imgCount += 1;	fadeImages[imgCount] = imgFolder + "ss60.jpg"

//// NO need to edit beyond here /////////////

var ie4			= document.all
var dom			= document.getElementById
var curPos		= 10
var nextImageIndex	= 0
var strPrevCanvas	= "canvas1"
var strCurrCanvas	= "canvas0"
var objPrevCanvas
var objCurrCanvas

var idFadeInterval
var idRotateInterval	
var runSlides		= 'yes'

var leftBlind
var rightBlind
var idBlindInterval

var origCanvasLeft;
var blindSpeed;
var blindWidth
var blindWidthFraction

var preLoadImage = new Image();

//=Functions======================================================

function openBlindsInit(){
	if (ie4 || dom) {
		leftBlind = ie4? eval("document.all.leftBlind") : document.getElementById("leftBlind")
		rightBlind = ie4? eval("document.all.rightBlind") : document.getElementById("rightBlind")

		objCurrCanvas = ie4? eval("document.all." + strCurrCanvas) : document.getElementById(strCurrCanvas);
		objPrevCanvas = ie4? eval("document.all." + strPrevCanvas) : document.getElementById(strPrevCanvas);
		objCurrCanvas.innerHTML = '<img src="' + fadeImages[nextImageIndex] + '">';
		// Uncomment the following 2 lines to remove the blank flash after the initial opening slide.
		//objPrevCanvas.innerHTML = objCurrCanvas.innerHTML;

		origCanvasLeft = objCurrCanvas.offsetLeft;

		//COMMENT: *Uncomment the following lines so that the canvas moves with the blinds when the openBlindsInit is called

		setOpacity(objPrevCanvas, 0);
		setOpacity(objCurrCanvas, 100);

		objCurrCanvas.style.zIndex = objPrevCanvas.style.zIndex + 1;
		objCurrCanvas.style.left = (origCanvasLeft + (slideshow_width / 2)) + 'px';
		objCurrCanvas.style.width = (slideshow_width / 2) + 'px';

		//END COMMENT
		
		resetBlinds();

		idBlindsInterval = setInterval('openBlinds(true)', 50);
	}
}

function openBlinds(callRotate){
	if(preLoadImage.complete){
		if (leftBlind.offsetWidth > blindSpeed){
			leftBlind.style.width	= (leftBlind.offsetWidth - blindSpeed) + 'px';
			rightBlind.style.width	= (rightBlind.offsetWidth - blindSpeed) + 'px';
			rightBlind.style.left	= (rightBlind.offsetLeft + blindSpeed) + 'px';
			
			//COMMENT: *Comment out the if statement so that the canvas moves with the blinds when the openBlindsInit is called
			//if(!callRotate){
				objCurrCanvas.style.left = (origCanvasLeft + leftBlind.offsetWidth) + 'px';
				objCurrCanvas.style.width = (objCurrCanvas.offsetWidth + blindSpeed) + 'px';
			//}
			//END COMMENT
		}else{
			clearInterval(idBlindsInterval); idBlindsInterval = null;
			
			leftBlind.style.visibility = 'hidden';
			rightBlind.style.visibility = 'hidden';
			
			objPrevCanvas.style.left = origCanvasLeft + 'px';
			objPrevCanvas.style.width = slideshow_width + 'px';
			
			objCurrCanvas.style.left = origCanvasLeft + 'px';
			objCurrCanvas.style.width = slideshow_width + 'px';

			if(callRotate){
				
				rotateImageInit();
				setTimeout('menuInit()', 2500)
			}else{
				if(document.getElementById('textPanel').style.visibility!='visible') rotateImage();
			}
		}	

		if ((blindWidth - blindWidthFraction) >= parseInt(leftBlind.style.width)){
			blindWidth -= blindWidthFraction
			blindSpeed -= (blindSpeed > 1)? 1 : 0;
			//blindSpeed = (blindSpeed > 1)? Math.round((blindSpeed - (blindSpeed / blindWidthFraction))) : 1;
		}
	}
}

function resetBlinds() {
	leftBlind.style.visibility = 'visible';
	leftBlind.style.backgroundColor	='#FFFFFF'
	leftBlind.style.width = (slideshow_width / 2) + 'px';
	leftBlind.style.zIndex = objCurrCanvas.style.zIndex;
	
	rightBlind.style.visibility = 'visible';
	rightBlind.style.backgroundColor ='#FFFFFF'
	rightBlind.style.width = (slideshow_width / 2) + 'px';
	rightBlind.style.left = (origCanvasLeft + (slideshow_width / 2)) + 'px';
	rightBlind.style.zIndex = objCurrCanvas.style.zIndex + 1;
	
	blindSpeed = openBlindSpeed;
	blindWidth = leftBlind.offsetWidth;
	blindWidthFraction = (leftBlind.offsetWidth / blindSpeed);
}

if (document.layers){alert('layers')
	document.captureEvents(Event.MOUSEDOWN);}

function rotateImageInit() {
	if (ie4 || dom) {
		objCurrCanvas = ie4? eval("document.all." + strCurrCanvas) : document.getElementById(strCurrCanvas);
		try {objCurrCanvas.filters.alpha.opacity = 100}
		catch(e){try {objCurrCanvas.style.opacity = 1}
			catch(e2) {try {objCurrCanvas.style.MozOpacity = 1} catch(e3){}}
			}

		objPrevCanvas = ie4? eval("document.all." + strPrevCanvas) : document.getElementById(strPrevCanvas)
		try {objPrevCanvas.filters.alpha.opacity = 100}
		catch(e){try {objPrevCanvas.style.opacity = 1}
			catch(e2) {try {objPrevCanvas.style.MozOpacity = 1} catch(e3){}}
			}
		}
	// SET EVENTS TO ALLOW PAUSE/FORWARD/BACKWARD OF SLIDES
	// (DOES NOT WORK PROPERLY: -when mouseover, then left-click = first left-click doesn't work, subsequent onces do)
	//                          -when mouseout, then mouseover, then mouseout = multiple rotate/fadeins start running)

/*	objCurrCanvas.onmousedown = function(e) {
		var rightMousePressed = false;
		if(document.all){if(event.button==1)rightMousePressed = true}
		else{if(e.which==1)rightMousePressed = true}
		if(rightMousePressed){
			nextImageIndex = (nextImageIndex > 0)? nextImageIndex - 1 : (fadeImages.length-1)
			objCurrCanvas.innerHTML='<img src="' + fadeImages[nextImageIndex] + '">'
			}
		}
	objCurrCanvas.oncontextmenu=function(){
			nextImageIndex = (nextImageIndex < fadeImages.length - 1)? nextImageIndex + 1 : 0
			objCurrCanvas.innerHTML='<img src="' + fadeImages[nextImageIndex] + '">'
			return false
			}

	objCurrCanvas.onmouseover = function() {runSlides='no';objCurrCanvas.style.borderWidth='1px';objCurrCanvas.style.borderColor='#848282'}
	objCurrCanvas.onmouseout = function() {if(runSlides=='no'){runSlides='yes'; clearInterval(idFadeInterval); rotateImage();}}
*/
	rotateImage()
}

function rotateImage(){
	if (runSlides == 'yes') {
		if (ie4 || dom)	{
			
			objCurrCanvas = ie4? eval("document.all." + strCurrCanvas) : document.getElementById(strCurrCanvas);
			objPrevCanvas = ie4? eval("document.all." + strPrevCanvas) : document.getElementById(strPrevCanvas);
						
			objCurrCanvas.style.left = origCanvasLeft + 'px';
			objCurrCanvas.style.width = slideshow_width + 'px';
			objCurrCanvas.innerHTML = '<img src="' + preLoadImage.src + '">';

			//UPDATE: 19/04/06
			if (objPrevCanvas.innerHTML==''){
				setOpacity(objPrevCanvas, 100);
				objPrevCanvas.innerHTML = objCurrCanvas.innerHTML;
				_FirstFade = true
			}
			/// UPDATE
			setOpacity(objCurrCanvas, 0);
			
			objCurrCanvas.style.zIndex = 1;			
			objPrevCanvas.style.zIndex = 0;

			idFadeInterval = eval('setInterval("fadeImage()", 50)');
			
			strPrevCanvas = strCurrCanvas;
			strCurrCanvas = (strCurrCanvas == "canvas0")? "canvas1" : "canvas0";
			
		}else document.images.defaultSlide.src = fadeImages[nextImageIndex];
	
		nextImageIndex = (nextImageIndex < fadeImages.length - 1)? nextImageIndex + 1 : 0;
		preLoadImage.src = fadeImages[nextImageIndex];
	}
}

//UPDATE: 19/04/06
var _FirstFade = false
function fadeImage(){

	if (curPos < 100)
	{
		curPos += fadeTime;
		setOpacity(objCurrCanvas, curPos);
		if (_FirstFade){setOpacity(objPrevCanvas, (100 - curPos));}
	}else
	{
		clearInterval(idFadeInterval); idFadeInterval=0;
		curPos = 10;
		
		var timeout = (_FirstFade)? pause*2 : pause;
		idRotateInterval = eval('setTimeout("rotateImage()", ' + timeout + ')');
		_FirstFade = false;
	}
}
/// UPDATE

function setOpacity(objCanvas, opacity){
	if (objCanvas.filters){
		objCanvas.filters.alpha.opacity = opacity;
	}else{
		if (objCanvas.style.opacity){
			objCanvas.style.opacity = (opacity / 100);
		}else{
			if (objCanvas.style.MozOpacity){
				objCanvas.style.MozOpacity = (opacity / 100);
			}else{
				//objCanvas.filters.alpha.opacity = opacity;
				objCanvas.style.opacity = (opacity / 100);
				objCanvas.style.MozOpacity = (opacity / 100);
			}
		}
	}
}

/***********************************************
* Menus script
* © Cote Business Systems (www.cotesystems.com)
* This notice MUST stay intact for legal use
***********************************************/

var colorOrange = '#ef9b4F'
var colorDarkGrey = '#4e4b4a'
var colorLightGrey = '#848282'
var colorWhite = '#ffffff'
var markerLeft='<font color='+colorOrange+'>[<\/font>';
var markerRight='<font color='+colorOrange+'>]<\/font>';

var currMenuSel		
var currSubMenuSel
var currMenuHover

function menuInit(){
	var menuItems = document.getElementById("menu").getElementsByTagName("div");
	document.getElementById("menu").style.visibility = 'visible';
	for (var i=0;i<menuItems.length;i++) {
		if (menuItems[i].className == "mainMenu" || menuItems[i].className == "mainMenu2") {
			initDecryptEffect(menuItems[i], iIttMenu , iItvMenu, "if(currMenuHover){currMenuHover.onmouseover();}currMenuHover=null;");
			menuItems[i].onmouseover = function () {
				if (_DecryptText.length == 0){
					var highlightDiv = document.getElementById("menuHighlight");
					highlightDiv.innerHTML = markerLeft + this.innerHTML + markerRight;
					highlightDiv.tag = this.className;

					highlightDiv.style.top		= (this.offsetTop+this.parentNode.offsetTop)+ 'px';
					highlightDiv.style.left		= (this.offsetLeft) + 'px';
					highlightDiv.style.width	= (this.offsetWidth) + 'px';
					highlightDiv.style.lineHeight	= '';	//RESET TO DEFAULT
					highlightDiv.style.background	= colorWhite;
					highlightDiv.style.color	= this.style.color;
					highlightDiv.style.visibility	= 'visible';
					highlightDiv.style.textAlign	= 'center';
				}else{
					currMenuHover = this;
				}
			}
		}
	
		if (menuItems[i].className == "subMenuItem") {
			menuItems[i].onmouseover = function (){
				if (_DecryptText.length == 0){
					var highlightDiv	= document.getElementById("menuHighlight");
					highlightDiv.innerHTML		= markerLeft + this.innerHTML + markerRight;
					if (ie4){
						highlightDiv.style.top		= (this.offsetTop+this.parentNode.offsetTop)+ 'px';
						highlightDiv.style.left		= (this.parentNode.parentNode.offsetLeft +0) + 'px';
					}else{
						highlightDiv.style.top		= (this.offsetTop+this.parentNode.offsetTop) + 'px';
						highlightDiv.style.left		= (this.parentNode.offsetLeft + this.offsetLeft) + 'px';
					}
					
					highlightDiv.tag		= this.className;

					highlightDiv.style.lineHeight	= '1.75em';
					highlightDiv.style.width	= (this.offsetWidth)+ 'px';
					highlightDiv.style.color	= this.style.color;
					highlightDiv.style.textAlign	= "left";
					highlightDiv.style.visibility	= 'visible';
				}else{
					currMenuHover = this;
				}
			}
		}

		if (menuItems[i].className == "subMenu") {
			currSubMenu = menuItems[i].id.substring(8,(menuItems[i].id.length));
		}

		if (menuItems[i].id == "menuHighlight") {
			menuItems[i].onmouseout = function () {this.style.visibility = 'hidden';}
			menuItems[i].onclick = function () {
				var innerText = this.innerHTML.replace(new RegExp('"', 'g'), '').substring(markerLeft.length, this.innerHTML.replace(new RegExp('"', 'g'), '').length - markerRight.length);
				if (this.tag=='mainMenu'||this.tag=='mainMenu2') {
					var menuItems = document.getElementById("menu").getElementsByTagName("div");
					for(var j=0; j < menuItems.length; j++) {
						if(menuItems[j].innerHTML == innerText) {
							menuItems[j].style.color = colorDarkGrey;
							menuItems[j].style.fontWeight = 'bold';
							menuItems[j].onmouseover();
						}else{ 
							menuItems[j].style.color = colorLightGrey;
							menuItems[j].style.fontWeight = 'normal';
						}
						if(menuItems[j].className=="subMenu" || menuItems[j].className=="subMenu2") menuItems[j].style.visibility = 'hidden';
					}
					currMenuSel = innerText
					if (this.tag == 'mainMenu') {						
						document.getElementById("subMenu_" + innerText).style.visibility = 'visible';
						var subMenuItems = document.getElementById("subMenu_" + currMenuSel).getElementsByTagName("div");
						if (_DecryptText.length == 0){
							var iIndex = 0
							for(var j=0; j < subMenuItems.length; j++) {
								if (subMenuItems[j].innerHTML != '') {
									preloadArray[iIndex] = subMenuItems[j].innerHTML
									iIndex += 1
									initDecryptEffect(subMenuItems[j], iIttSubMenu, iItvSubMenu, "if(currMenuHover){currMenuHover.onmouseover();}currMenuHover=null;");
								}
							}
							idPreloadImagesInterval = setInterval("preloadImages()", 50)
						}
						if (document.getElementById("textPanel").style.visibility == 'visible') {clearInterval(idSlidePanelInterval); idSlidePanelInterval = null; hideTextPanel();}
					}else{
						showTextPanel(innerText);
					}

				}else{
					var subMenuItems = document.getElementById("subMenu_" + currMenuSel).getElementsByTagName("div");
					for(var j=0; j < subMenuItems.length; j++) {
						var subMenuItem = subMenuItems[j]
						if(subMenuItems[j].innerHTML == innerText) {
							subMenuItems[j].style.color = colorDarkGrey;
							subMenuItems[j].style.fontWeight = 'bold';
							subMenuItems[j].onmouseover();
						}else{
							subMenuItems[j].style.color	= colorLightGrey;
							subMenuItems[j].style.fontWeight = 'normal';
						}
					}
					showTextPanel(innerText);
				}
			}
		}
	}

	document.getElementById("content").onmouseover = function () {document.getElementById("menuHighlight").style.visibility = 'hidden';}

	document.getElementById("textHide").onmouseover	= function () {document.getElementById("textHide").style.borderWidth = '1px'}
	document.getElementById("textHide").onmouseout	= function () {document.getElementById("textHide").style.borderWidth = '0px'}
	document.getElementById("textHide").onclick	= function () {hideTextPanel()}
															
	document.getElementById("scrollUp").onmousedown	=function(){idScrollInterval = setInterval("scroll(-4)", 10);}
	document.getElementById("scrollUp").onmouseup	=function(){clearInterval(idScrollInterval);}
	document.getElementById("scrollUp").onmouseover	=function(){document.getElementById("scrollUp").style.borderColor=colorDarkGrey;}
	document.getElementById("scrollUp").onmouseout	=function(){document.getElementById("scrollUp").style.borderColor=colorLightGrey;if(idScrollInterval>0)clearInterval(idScrollInterval);}

	document.getElementById("scrollDn").onmousedown	=function(){idScrollInterval = setInterval("scroll(+4)", 10);}
	document.getElementById("scrollDn").onmouseup	=function(){clearInterval(idScrollInterval);}
	document.getElementById("scrollDn").onmouseover	=function(){document.getElementById("scrollDn").style.borderColor=colorDarkGrey;}
	document.getElementById("scrollDn").onmouseout	=function(){document.getElementById("scrollDn").style.borderColor=colorLightGrey;if(idScrollInterval>0)clearInterval(idScrollInterval);}
}


var bPreload = true;
var preloadArray = new Array();
var preloadImage_2 = new Image();
var preloadIndex = 0;
var imageIndex = 1;
var idPreloadImagesInterval = null;

function preloadImages() {
	if (bPreload) {
		bPreload = false;
		if (preloadIndex < preloadArray.length){
			preloadImage_2.onload = function() {
				preloadImage_2.onload = null;
				preloadImage_2.onerror = null;
				
				//alert('loaded... ' + preloadImage_2.src);
				
				bPreload = true;
				preloadIndex += 1;
			}
			preloadImage_2.onerror = function() {
				//preloadImage_2.onload = null;
				preloadImage_2.onerror = null;
				
				//alert('error... ' + preloadImage_2.src);
				
				preloadImage_2.src = imagePath + currMenuSel + '.' + preloadArray[preloadIndex] + 1 + ".jpg";
				
				//bPreload = true;
				//preloadIndex += 1;
			}
			
			if (readCookie(currMenuSel + '.' + preloadArray[preloadIndex])) {
				imageIndex = parseInt(readCookie(currMenuSel + '.' + preloadArray[preloadIndex])) + 1;
			}else{createCookie(currMenuSel + '.' + preloadArray[preloadIndex], 1, 360);}
			
			//alert('loading... ' + preloadImage_2.src);
			preloadImage_2.src = imagePath + currMenuSel + '.' + preloadArray[preloadIndex] + imageIndex + ".jpg";
		}else{
			bPreload = true;
			preloadArray = new Array();
			preloadIndex = 0;
			imageIndex = 1;
			clearInterval(idPreloadImagesInterval); 
			idPreloadImagesInterval = null;
		}
	}
}


var idSlidePanelInterval
var slidePanelSpeed;
var slidePanelWidth;
var slidePanelWidthFraction;

function showTextPanel(innerText){
	var objTextContent = document.getElementById(currMenuSel + '.' + innerText)
	var textDisplay = document.getElementById('textDisplay');
	
	runSlides = 'no';
	clearInterval(idFadeInterval); idFadeInterval = null;
	clearInterval(idSlidePanelInterval); idSlidePanelInterval = null;
	clearTimeout(idRotateInterval); idRotateInterval = null;
		
	initShiftAppear(innerText);
	
	textDisplay.innerHTML = (objTextContent)?objTextContent.innerHTML:"[...under construction...]";

	textDisplay.scrollTop = 0;
	scroll(-1)
	
	//UPDATE: 10/04/06
	//leftBlind.style.visibility = 'hidden';
	//rightBlind.style.visibility = 'hidden';
	/// UPDATE

	document.getElementById("textPanel").style.left = (textPanel_left + document.getElementById("textPanel").offsetWidth)+'px';
	document.getElementById("textPanel").style.visibility = 'visible';
	document.getElementById("textCover").style.left = '0px';
	document.getElementById("openCover").style.width = (document.getElementById("textPanel").offsetWidth) + 'px';

	slidePanelSpeed = openSlidePanelSpeed;
	slidePanelWidth = document.getElementById("textPanel").offsetWidth;
	slidePanelWidthFraction = (slidePanelWidth / slidePanelSpeed);

	idSlidePanelInterval = setInterval("slidePanel(document.getElementById('textPanel'),(textPanel_left+document.getElementById('textPanel').offsetWidth),textPanel_left)", 50);
}

function hideTextPanel(){
	if(document.getElementById('menuHighlight').tag=="subMenuItem"
	   ||document.getElementById('menuHighlight').tag=="mainMenu2") {
		var MenuItems = document.getElementById('menuHighlight').tag=="subMenuItem"?document.getElementById("subMenu_" + currMenuSel).getElementsByTagName("div"):document.getElementById("mainMenu").getElementsByTagName("div");
		for(var i=0; i < MenuItems.length; i++){
			MenuItems[i].style.color = colorLightGrey;
			MenuItems[i].style.fontWeight = 'normal';
		}
	}
	
	preLoadImage.onload = null;
	preLoadImage.onerror = null;
	
	clearInterval(idSlidePanelInterval); idSlidePanelInterval = null;
	
	document.getElementById("textPanel").style.left = textPanel_left+'px';
	document.getElementById("textCover").style.left = textCover_left+'px';

	//UPDATE: 10/04/06
	preLoadImage.src = fadeImages[nextImageIndex];
	leftBlind.style.visibility = 'hidden';
	rightBlind.style.visibility = 'hidden';
	/// UPDATE

	slidePanelSpeed = openSlidePanelSpeed;
	slidePanelWidth = document.getElementById("textPanel").offsetWidth;
	slidePanelWidthFraction = (slidePanelWidth / slidePanelSpeed);
	
	idSlidePanelInterval = setInterval("slidePanel(document.getElementById('textPanel'),textPanel_left,(textPanel_left+document.getElementById('textPanel').offsetWidth))", 50);
}
	
function slidePanel(objTextPanel, startLeft, endLeft){
	var objTextCover = document.getElementById("textCover");

	if (startLeft > endLeft){  //OPEN PANEL
		if (parseInt(objTextPanel.style.left) > endLeft){
			if ((parseInt(objTextPanel.style.left) - slidePanelSpeed) >= endLeft){
				objTextPanel.style.left = (parseInt(objTextPanel.style.left) - slidePanelSpeed)+'px';
				objTextCover.style.left = (parseInt(objTextCover.offsetLeft) + slidePanelSpeed)+'px';
			}else{
				objTextPanel.style.left = endLeft+'px';
				objTextCover.style.left = (startLeft - endLeft);
			}
		}else{
			clearInterval(idSlidePanelInterval); idSlidePanelInterval = null;
			
			slidePanelSpeed = openSlidePanelSpeed;
			slidePanelWidth = parseInt(document.getElementById("openCover").offsetWidth);
			slidePanelWidthFraction = (slidePanelWidth / slidePanelSpeed);
			
			idSlidePanelInterval = setInterval("slideOpenCover(document.getElementById('openCover'), " + 0 + ", " + (endLeft-startLeft) + ")", 50);
			return;
		}
		if ((slidePanelWidth + slidePanelWidthFraction) <= parseInt(objTextPanel.style.left)){
			slidePanelWidth += slidePanelWidthFraction;
			slidePanelSpeed = (slidePanelSpeed > 1)? Math.round(slidePanelSpeed - (slidePanelSpeed / slidePanelWidthFraction)) : 1;
		}
	}else{                 //CLOSE PANEL
		if (parseInt(objTextPanel.style.left) < endLeft){
			if ((parseInt(objTextPanel.style.left) + slidePanelSpeed) <= endLeft){
				objTextPanel.style.left = (parseInt(objTextPanel.style.left) + slidePanelSpeed)+'px';
				objTextCover.style.left = (parseInt(objTextCover.offsetLeft) - slidePanelSpeed)+'px';
			}else{
				objTextPanel.style.left = endLeft+'px';
				objTextCover.style.left = '0px';
			}
		}else{
			objTextPanel.style.visibility = 'hidden';
			clearInterval(idSlidePanelInterval); idSlidePanelInterval = null;
			clearInterval(idFadeInterval); idFadeInterval = null;
			
			if (idBlindsInterval == null) {runSlides='yes'; rotateImage();}
			return;
		}
		if ((slidePanelWidth - slidePanelWidthFraction) >= (endLeft - parseInt(objTextPanel.style.left))){
			slidePanelWidth -= slidePanelWidthFraction;
			slidePanelSpeed = (slidePanelSpeed > 1)? Math.round(slidePanelSpeed - (slidePanelSpeed / slidePanelWidthFraction)) : 1;
		}
	}
}

function slideOpenCover(objOpenCover, startLeft, endLeft){
	if (parseInt(objOpenCover.offsetWidth) > 0){
		if ((parseInt(objOpenCover.offsetWidth) - slidePanelSpeed) >= 0){
			objOpenCover.style.width = (parseInt(objOpenCover.offsetWidth) - slidePanelSpeed)+'px';
		}else{
			objOpenCover.style.width = '0px';
		}
	}else{
		clearInterval(idSlidePanelInterval); idSlidePanelInterval = null;
		clearInterval(idFadeInterval); idFadeInterval = null;
		runSlides='no';
	}
	if ((slidePanelWidth - slidePanelWidthFraction) >= parseInt(objOpenCover.offsetWidth)){
		slidePanelWidth -= slidePanelWidthFraction;
		slidePanelSpeed = (slidePanelSpeed > 1)? Math.round(slidePanelSpeed - (slidePanelSpeed / slidePanelWidthFraction)) : 1;
	}
}

function initShiftAppear(innerText){
	objPrevCanvas.innerHTML = objCurrCanvas.innerHTML;

	preLoadImage.onload = function(){
		objCurrCanvas.innerHTML = '<img src="' + preLoadImage.src + '">';
		setOpacity(objCurrCanvas, 100);
		imageLoaded = true;
		//alert('1: ' + preLoadImage.src);
		if (ie4 || dom) idBlindsInterval = setInterval('openBlinds(false)', 50);
		preLoadImage.onload = null;
		preLoadImage.onerror =  function() {
			preLoadImage.src = imagePath + currMenuSel + '.' + innerText + "1.jpg";
			preLoadImage.onerror = null;
		}
		preLoadImage.src = imagePath + currMenuSel + '.' + innerText + (parseInt(readCookie(currMenuSel + '.' + innerText)) + 1) + ".jpg";
	}
	
	preLoadImage.onerror = function(){
		if (readCookie(currMenuSel + '.' + innerText)>1){
			createCookie(currMenuSel + '.' + innerText, 1, 360);
			preLoadImage.src = "http://www.thirdstone.ca/new/images/menu_images/" + currMenuSel + '.' + innerText + "1.jpg";
			//alert('3: ' + preLoadImage.src);
		}else{
			setOpacity(objCurrCanvas, 100);
			//alert('2: ' + preLoadImage.src);
			if (ie4 || dom) idBlindsInterval = setInterval('openBlinds(false)', 50);
			preLoadImage.onload = null;
			preLoadImage.onerror = null;
		}		
	}

	if (ie4 || dom){
		clearInterval(idBlindsInterval); idBlindsInterval = null;
		
		setOpacity(objPrevCanvas, 0);
		setOpacity(objCurrCanvas, 0);
		
		objCurrCanvas.style.zIndex = objPrevCanvas.style.zIndex + 1;
		objCurrCanvas.style.left = (origCanvasLeft + (slideshow_width / 2)) + 'px';
		objCurrCanvas.style.width = (slideshow_width / 2) + 'px';
		
		resetBlinds();
	}
	
	var iIndex = 1;
	if (readCookie(currMenuSel + '.' + innerText)!=null){
		iIndex = parseInt(readCookie(currMenuSel + '.' + innerText)) + 1;
	}
	createCookie(currMenuSel + '.' + innerText, iIndex, 360);
	
	preLoadImage.src = "http://www.thirdstone.ca/new/images/menu_images/" + currMenuSel + '.' + innerText + iIndex + ".jpg";
}


var idScrollInterval = 0
function scroll(direction){
	var textDisplay = document.getElementById('textDisplay');
	var maxScroll = (textDisplay.scrollHeight - textDisplay.offsetHeight);
	var scrollUp = document.getElementById("scrollUp");
	var scrollDn = document.getElementById("scrollDn");
	
	document.getElementById("textUp").style.visibility=(textDisplay.scrollTop > 0)?'visible':'hidden'
	document.getElementById("textDn").style.visibility=(textDisplay.scrollTop < maxScroll)?'visible':'hidden'
	document.getElementById("scrollDn").style.visibility=(textDisplay.scrollTop < maxScroll || textDisplay.scrollTop > 0)?'visible':'hidden'
	document.getElementById("scrollUp").style.visibility=(textDisplay.scrollTop < maxScroll || textDisplay.scrollTop > 0)?'visible':'hidden'

	textDisplay.scrollTop += direction;
}

//=ScambleText====================================================
var _Element = new Array();
var _IdDecryptInterval = new Array();
var _OriginalText = new Array();
var _DecryptText = new Array();
var _CurItt = new Array();
var _MaxItt = new Array();
//UPDATE 19/04/06
//var _CharsPerItt = new Array();
//var _ExtraChars = new Array();
/// UPDATE
var _ScriptCallAtEnd;

function initDecryptEffect(element, itterations, interval, scriptCallAtEnd){
	var index = _Element.length;

	_Element[index] = element;
	_OriginalText[index] = _Element[index].innerHTML;
	_DecryptText[index] = '';
	for (i = 0; i < _OriginalText[index].length; i++){_DecryptText[index] += String.fromCharCode(31);}
	
	_CurItt[index] = 1;
	_MaxItt[index] = itterations;
	//UPDATE 19/04/06
	//_CharsPerItt[index] = Math.round(_OriginalText[index].length / itterations);
	//_ExtraChars[index] = _OriginalText[index].length % _MaxItt[index];
	/// UPDATE
	
	if(scriptCallAtEnd!=''&&scriptCallAtEnd!=null) {_ScriptCallAtEnd = scriptCallAtEnd;}
	
	element.style.width = element.offsetWidth + 'px';
	element.innerHTML = "";
	
	_IdDecryptInterval[index] = setInterval("decryptEffect(" + index + ")", interval);
}
//UPDATE 19/04/06
function decryptEffect(index){
	if (_CurItt[index] < _MaxItt[index]){
		if(_CurItt[index] >= (_MaxItt[index] - _OriginalText[index].length)){
			decryptChar(index);
		}
		
		_Element[index].innerHTML = "";
		
		for (i = 0; i < _OriginalText[index].length; i++){
			_Element[index].innerHTML += (_DecryptText[index].charAt(i) != String.fromCharCode(31))?
			_DecryptText[index].charAt(i) : String.fromCharCode(Math.round(Math.random() * 25) + 97);
		}
		
		_CurItt[index] += 1;
		
	}else{
		_Element[index].innerHTML = _OriginalText[index];
		clearInterval(_IdDecryptInterval[index]);
		_IdDecryptInterval[index] = null;
		
		var bContinue = true;
		for (i = 0; i < _IdDecryptInterval.length; i++){
			if (_IdDecryptInterval[i] != null) bContinue = false;
		}
		if(bContinue) {
			var scriptCallAtEnd = _ScriptCallAtEnd
			clearGlobalArrays();
			eval(scriptCallAtEnd);
		}
	}
}
/// UPDATE
function decryptChar(index){
	var bContinue = false;
	var randomNo = Math.round(Math.random() * (_OriginalText[index].length - 1));

	do{
		if (_DecryptText[index].charAt(randomNo) == String.fromCharCode(31)){
			var strTemp = _DecryptText[index];
			
			_DecryptText[index] = "";
			for (i = 0; i < _OriginalText[index].length; i++){
				_DecryptText[index] += (i == randomNo || strTemp.charAt(i) != String.fromCharCode(31))?
				_OriginalText[index].charAt(i) : String.fromCharCode(31);
			}
			bContinue = true;
		}else{
			//UPDATE 19/04/06
			randomNo = (randomNo != _OriginalText[index].length - 1)? randomNo + 1 : 0;
			/// UPDATE
		}
	}while(!bContinue);
}

function clearGlobalArrays(){
		_Element = new Array();
		_IdDecryptInterval = new Array();
		_OriginalText = new Array();
		_DecryptText = new Array();
		_CurItt = new Array();
		_MaxItt = new Array();
		//UPDATE 19/04/06
		//_CharsPerItt = new Array();
		//_ExtraChars = new Array();
		/// UPDATE
		_ScriptCallAtEnd = ""
}

//=Cookies========================================================
function createCookie(name, value, days){
	if (days){
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}else var expires = "";
	var ck = name+"="+escape(value)+expires+"; path=/";
	document.cookie = ck;
}

function readCookie(sName){
	var aCookie = document.cookie.split("; ");
	for (var i=0; i < aCookie.length; i++){
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0]) return unescape(aCrumb[1]);
	}
	return null;
}

function openLink(url) { var newwindow=window.open(url,'name',
	'height=500,width=600,left=100,top=100,resizable=yes,scrollbars=yes,toolbar=yes,status=yes,menubar=no');
	if (window.focus) {newwindow.focus()}
}

function openLink2(url) { var newwindow=window.open(url,'name',
	'height=500,width=700,left=100,top=100,resizable=yes,scrollbars=no,toolbar=no,status=no,menubar=no');
	if (window.focus) {newwindow.focus()}
}
//=Main===========================================================

if (ie4 || dom) window.onload = function (){
	preLoadImage.onload = function(){openBlindsInit();preLoadImage.onload = null;}
	preLoadImage.src = fadeImages[0];
}
else setInterval("rotateImage()", pause)

