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

AJAX

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



var timer = null;

var delay = 1000; //milliseconds



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



function getxmlhttp()

{

	var xmlHttp;

	try {

		//firefox, opera 8.0+, safari

		xmlHttp = new XMLHttpRequest();

	}

	catch (e) {

		//ie

		try {

			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

		}

		catch (e) {

			try {

				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

			}

			catch (e) {

				alert("Your browser does not support this site");

				return false;

			}

		}

	}

	return xmlHttp;

}



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



function processAjax(serverPage, obj, meth, arg)

{

	//clear timer if set

	window.clearTimeout(timer);

	

	//get the xmlhttp object

	var xmlhttp = getxmlhttp();

	

	xmlhttp.onreadystatechange = function() {

		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

			document.getElementById(obj).innerHTML = xmlhttp.responseText;

		}

	};

	

	//see what the form method is

	if (meth == 'get') {

		xmlhttp.open("GET", serverPage, true);

	} else {

		xmlhttp.open("POST", serverPage, true);

		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset-UTF-8");

	}

	

	//process

	xmlhttp.send(arg);

}



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



function showProgress(obj)

{

	if (document.getElementById(obj).style.display == 'block') {

		document.getElementById(obj).style.display = 'none';

	} else {

		document.getElementById(obj).style.display = 'block';

	}

}



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



function setProgress(obj, im, msg)

{

	var img = '';

	if (im != '') {

		img = "<img src=\"" + im + "\" border=\"0\" alt=\"" + msg + "\" />";

	}

	document.getElementById(obj).innerHTML = img + " " + msg;

}



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



function getDisplay(obj) {

	return document.getElementById(obj).style.display;

}

function setDisplay(obj, display) {

	document.getElementById(obj).style.display = display;

}



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

PAGE LINK SCRIPTS

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



function displayPage(obj, pageURL, pageTitle, bgImg, bannerNav) {

	//set vars

	var object = document.getElementById(obj);

	var outerObject = document.getElementById('outerDiv');

	var bannerNavObj = 'bannerDiv';

	//set the bg image property

	outerObject.style.backgroundImage = bgImg;

	//load the page contents

	processAjax(pageURL, obj, 'get');

	//hide/display bannerNav

	setDisplay(bannerNavObj, bannerNav);

	//turn on correct link in bannerNav

	if (bannerNav == 'block') {

		changeNavOn(bannerNavObj, pageTitle);

	}

}



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



function changeNavOn(obj, pageTitle) {

	var allLinks = document.getElementById(obj).getElementsByTagName('a');

	for (var a = 0; a < allLinks.length; a++) {	

		if (allLinks[a].title == pageTitle) {

			allLinks[a].className = 'on';

		} else {

			allLinks[a].className = '';

		}

	}

}



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

PHOTO GALLERY SCRIPTS

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



var t = 9; //how many thumbnails to display under main image at a time



function displayImg(obj, img) {

	document.getElementById(obj).style.backgroundImage = 'url('+img+')';

}



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



function scrollFwd(obj, scrollObj) {

	/*globally, we have: imgArray, tnArray, t, lastT, arrayLen*/

	//alert('t='+t+', lastT='+lastT+', arrayLen='+arrayLen);

	if (arrayLen > lastT) {

		lastT++;

		var thumbStr = '';

		for (var i = (lastT - t); i < lastT; i++) {

			thumbStr += '<a href="" onclick="displayImg(\'outerImgTD\',\''+imgArray[i]+'\'); return false;"><img src="'+tnArray[i]+'" width="50" height="50" border="0" /></a> ';

		}

		document.getElementById(obj).innerHTML = thumbStr;

	}

	if (arrayLen == lastT) {

		document.getElementById(scrollObj).style.visibility = 'hidden';

	} else {

		document.getElementById(scrollObj).style.visibility = 'visible';

	}

	if (document.getElementById('scrollLeftA').style.visibility == 'hidden') {

		document.getElementById('scrollLeftA').style.visibility = 'visible';

	}

}



function scrollBack(obj, scrollObj) {

	/*globally, we have: imgArray, tnArray, t, lastT, arrayLen*/

	//alert('t='+t+', lastT='+lastT+', arrayLen='+arrayLen);

	if (lastT - t > 0) {

		lastT--;

		var thumbStr = '';

		for (var i = (lastT - t); i < lastT; i++) {

			thumbStr += '<a href="" onclick="displayImg(\'outerImgTD\',\''+imgArray[i]+'\'); return false;"><img src="'+tnArray[i]+'" width="50" height="50" border="0" /></a> ';

		}

		document.getElementById(obj).innerHTML = thumbStr;

	}

	if (lastT == t) {

		document.getElementById(scrollObj).style.visibility = 'hidden';

	} else {

		document.getElementById(scrollObj).style.visibility = 'visible';

	}

	if (document.getElementById('scrollRightA').style.visibility == 'hidden') {

		document.getElementById('scrollRightA').style.visibility = 'visible';

	}

}



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



var b4 = true; //whether we want to show the before image on click



function setB4(TorF) {

	b4 = TorF;

}



function toggleBeforeAfter(obj, bgObj, img) {

	//alert(b4);

	//set the object's onclick events to toggle the correct img\\

	//set up before img

	var imgB = img.substring(0, img.indexOf('.jpg')) + '_before.jpg';

	if (b4) {

		document.getElementById(obj).onclick = function() {

			displayImg(bgObj, img.substring(0, img.indexOf('.jpg')) + '_before.jpg');

			toggleBeforeAfter('outerImgDiv','outerImgTD',img);

		}

		setB4(false);

	} else {

		document.getElementById(obj).onclick = function() {

			displayImg(bgObj, img);

			toggleBeforeAfter('outerImgDiv','outerImgTD',img);

		}

		setB4(true);

	}

}



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

POSITION AWARD BG IMAGE FOR LARGER SCREENS

*****************************************************************************************

function posAward() {

	if (screen.width <= 800) {

		//screen is less than 800px wide, so set bgPosition

		document.getElementById('bannerDiv').style.backgroundPosition = '0 0';

	}

}



window.onload = posAward;

*/

		

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

IN_ARRAY FUNCTION (LIKE THAT OF PHP)

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

function in_array(val, arr) {

	for (var a = 0; a < arr.length; a++) {

		if (arr[a] == val) {

			return true;

		}

	}

	return false;

}



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

ROTATE QUOTES AS IMAGES CHANGE

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

function moreQuotes(qNum) {

	//alert('qNum at first = ' + qNum);

	var qNum = (typeof qNum == 'undefined') ? current : qNum;

	/*alert('now qNum = ' + qNum + ' and current = ' + current);

	if (SQ && qNum == current) {

		alert('SQ && qNum == current');

		if (in_array(current, specQuotes)) {

			alert('in_array(current, specQuotes)');

			current++;

			alert('now current = '+current+' (call moreQuotes again)');

			if (current > size) {

				current = 0;

			}

			alert('moreQuotes('+current+')');

			moreQuotes(current);

		}

	}

	alert('we can display quote #'+qNum);*/

	document.getElementById('quoteDiv').innerHTML = quotes[qNum];

	if (current < size) {

		current ++;

	}

	else if (current >= size) {

		current = 0;

	}

}



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

CREATE ONLOAD FUNCTION EXCEPT FOR CERTAIN PAGES

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

var current = 0;

var size;

var OL = true;

var SQ = false;

var exPages = new Array('index.html','contact.html','transformations.html','sketchbook.html','public_buildings.html','houses.html','details.html','details_inside.html','details_outside.html');

var URL = window.location.href.split("#")[0];

var curPage = URL.substring((URL.lastIndexOf("/") + 1), URL.length);

if (in_array(curPage, exPages)) {

	OL = false;

}

if (OL) {

	window.onload = function() {

		size = quotes.length - 1;  // get actual last element #

		current = 0;

		//see if we have specific quotes

		if (typeof specQuotes != 'undefined') {

			SQ = true;

		}

		if (curPage != 'public_buildings_tbs.html') {

			moreQuotes();

		}

		//position bannerDiv's bg image if screen width is 800 or less

		if (screen.width <= 800) {

			//screen is less than 800px wide, so set bgPosition

			document.getElementById('bannerDiv').style.backgroundPosition = '0 0';

		}

	}

}