/*
	Lightbox JS: Fullsize Image Overlays 
	by Lokesh Dhakar - http://www.huddletogether.com

	For more information on this script, visit:
	http://huddletogether.com/projects/lightbox/

	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
	(basically, do anything you want, just leave my name and link)
	
	Table of Contents
	-----------------
	Configuration
	
	Functions
	- getPageScroll()
	- getPageSize()
	- pause()
	- getKey()
	- listenKey()
	- showLightbox()
	- hideLightbox()
	- initLightbox()
	- addLoadEvent()
	
	Function Calls
	- addLoadEvent(initLightbox)

*/



//
// Configuration
//

// If you would like to use a custom loading image or close button reference them in the next two lines.
var loadingImage = '/common/images/loading.gif';
var closeButton = '/common/images/gallery/close.gif';	
var closeButtonHover = '/common/images/gallery/closeHover.gif';	
var title = "";
var description = "";
var image = "";




//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){
	var yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}
	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}


// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}


// getKey(key)
// Gets keycode. If 'x' is pressed then it hides the lightbox.
function getKey(e){
	if (e == null) { // ie
		keycode = event.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	key = String.fromCharCode(keycode).toLowerCase();
	
	if(key == 'x'){ hideLightbox(); }
}


// listenKey()
//
function listenKey () {	document.onkeypress = getKey; }



// hideLightbox()
//
function hideLightbox()
{
	// get objects
	objOverlay = document.getElementById('overlay');
	objLightbox = document.getElementById('lightbox');
	
		objLightboxMap = document.getElementById('lightboxMap');
		objLightboxLocation = document.getElementById('lightboxLocation');
	
	objLightboxNav = document.getElementById('lightboxnav');
	objLoading = document.getElementById('loading');
	objImage = document.getElementById('lightboxImage');
	
		objImageMap = document.getElementById('lightboxImageMap');
		objImageLocation = document.getElementById('lightboxImageLocation');
	
	objLightboxDetails = document.getElementById('lightboxDetails');
	objLightboxBG = document.getElementById('lightboxBG');
		
		objLightboxBGMap = document.getElementById('lightboxBGMap');
		objLightboxBGLocation = document.getElementById('lightboxBGLocation');
	
	new Effect.Fade(objOverlay, { from: .5, duration:.25 });
	new Effect.Fade(objLightbox);
	
		new Effect.Fade(objLightboxMap);
		new Effect.Fade(objLightboxLocation);
	
	//new Effect.Fade(objImage);
	//new Effect.Fade(objLightboxDetails);
	new Effect.Fade(objLightboxBG);
	
		new Effect.Fade(objLightboxBGMap);
		new Effect.Fade(objLightboxBGLocation);
	
	delayHideImg();
	delayHideImgMap();
	delayHideImgLocation();

	// disable keypress listener
	document.onkeypress = '';
}

//
// initLightbox()
// Function runs on window load, going through link tags looking for rel="lightbox".
// These links receive  events that enable the lightbox display for their targets.
// The function also inserts html markup at the top of the page which will be used as a
// container for the overlay pattern and the inline image.
//
function initLightbox()
{
	if (!document.getElementsByTagName){ return; }
	//var anchors = document.getElementsByTagName("a");

	// loop through all anchor tags
/*	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];

		//if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lb2")){
		if ((anchor.getAttribute("rel") == "lb2")){
			param = "portfolio_id=" +  anchors[i].getAttribute("id");
			//alert(param);
			//anchors[i].setAttribute("", "showLightbox(this); return false;")
		}
	}*/
	var objBody = document.getElementsByTagName("body").item(0);
	
	// create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.onclick = function () {hideLightbox(); return false;}
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '90';
	objOverlay.style.opacity = '1';
 	objOverlay.style.width = '100%';
	//objOverlay.style.backgroundImage='/common/images/interface/overlay.png';
	objBody.insertBefore(objOverlay, objBody.firstChild);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	
	//create lightbox background div
	var objLightboxBG = document.createElement("div");
	objLightboxBG.setAttribute('id','lightboxBG');
	objLightboxBG.style.display = 'none';
	objLightboxBG.style.position = 'absolute';
	objLightboxBG.style.zIndex = '95';
	objBody.insertBefore(objLightboxBG, objOverlay.nextSibling);
     
	 
	 //create lightbox background for Map div
	var objLightboxBGMap = document.createElement("div");
	objLightboxBGMap.setAttribute('id','lightboxBGMap');
	objLightboxBGMap.style.display = 'none';
	objLightboxBGMap.style.position = 'absolute';
	objLightboxBGMap.style.zIndex = '95';
	objLightboxBGMap.style.width = '792px';
	objLightboxBGMap.style.height = '591px';
	objBody.insertBefore(objLightboxBGMap, objOverlay.nextSibling);
	 
	//create lightbox background for Map div
	var objLightboxBGLocation = document.createElement("div");
	objLightboxBGLocation.setAttribute('id','lightboxBGLocation');
	objLightboxBGLocation.style.display = 'none';
	objLightboxBGLocation.style.position = 'absolute';
	objLightboxBGLocation.style.zIndex = '95';
	//objLightboxBGLocation.style.width = '610px';
	//objLightboxBGLocation.style.height = '585px';
	objBody.insertBefore(objLightboxBGLocation, objOverlay.nextSibling);
	  

	// create lightbox div, same note about styles as above
	var objLightbox = document.createElement("div");
	objLightbox.setAttribute('id','lightbox');
	objLightbox.style.display = 'none';
	objLightbox.style.position = 'absolute';
	objLightbox.style.zIndex = '100';
	objLightbox.style.top = '0px';
	objLightbox.style.left = '0px';
	objLightbox.style.width = '799px';
	objLightbox.style.height = '400px';
	objLightboxBG.appendChild(objLightbox);
	
	
	// create lightbox map div, same note about styles as above
	var objLightboxMap = document.createElement("div");
	objLightboxMap.setAttribute('id','lightboxMap');
	objLightboxMap.style.display = 'none';
	objLightboxMap.style.position = 'absolute';
	objLightboxMap.style.zIndex = '100';
	objLightboxMap.style.top = '0px';
	objLightboxMap.style.left = '0px';
	objLightboxBGMap.appendChild(objLightboxMap);
	
	// create lightbox map div, same note about styles as above
	var objLightboxLocation = document.createElement("div");
	objLightboxLocation.setAttribute('id','lightboxLocation');
	objLightboxLocation.style.display = 'none';
	objLightboxLocation.style.position = 'absolute';
	objLightboxLocation.style.zIndex = '100';
	objLightboxLocation.style.top = '0px';
	objLightboxLocation.style.left = '55px';
	//objLightboxLocation.style.width = '619px';
	//objLightboxLocation.style.height = '553px';
	
	objLightboxBGLocation.appendChild(objLightboxLocation);
	
	

	// create loading img
	var objLoading = document.createElement("img");
	objLoading.src = loadingImage;
	objLoading.setAttribute('id','loading');
	objLoading.style.zIndex = '96';
	objLoading.style.position = 'absolute';
	objLoading.style.top = '170px';
	objLoading.style.left = '329px';
	objLightboxBG.appendChild(objLoading);

	
	// create loading img
	var objLoadingMap = document.createElement("img");
	objLoadingMap.src = loadingImage;
	objLoadingMap.setAttribute('id','loadingMap');
	objLoadingMap.style.zIndex = '96';
	objLoadingMap.style.position = 'absolute';
	objLoadingMap.style.top = '180px';
	objLoadingMap.style.left = '330px';
	objLightboxBGMap.appendChild(objLoadingMap);
	
	// create loading img
	var objLoadingLocation = document.createElement("img");
	objLoadingLocation.src = loadingImage;
	objLoadingLocation.setAttribute('id','loadingLocation');
	objLoadingLocation.style.zIndex = '96';
	objLoadingLocation.style.position = 'absolute';
	objLoadingLocation.style.top = '180px';
	objLoadingLocation.style.left = '230px';
	objLightboxBGLocation.appendChild(objLoadingLocation);
	

	// create link
	var objLink = document.createElement("a");
	objLink.setAttribute('href','#');
	objLink.setAttribute('title','Click to close');
	objLink.onclick = function () {hideLightbox(); return false;}
	objLightbox.appendChild(objLink);

	var objLinkMap = document.createElement("a");
	objLinkMap.setAttribute('href','#');
	objLinkMap.setAttribute('title','Click to close');

	objLinkMap.onclick = function () {hideLightbox(); return false;}
	objLightboxMap.appendChild(objLinkMap);

	var objLinkLocation = document.createElement("a");
	objLinkLocation.setAttribute('href','#');
	objLinkLocation.setAttribute('border','0px solid #000000');
	objLinkLocation.setAttribute('title','Click to close');
	objLinkLocation.onclick = function () {hideLightbox(); return false;}
	//objLinkLocation.onmouseover = function () {hoverCloseButton(); return false;}
	objLightboxLocation.appendChild(objLinkLocation);


	// preload and create close button image
	var imgPreloadCloseButton = new Image();
	var imgPreloadCloseButtonMap = new Image();
	var imgPreloadCloseButtonLocation = new Image();

	// if close button image found, 
	imgPreloadCloseButton.onload=function(){

		var objCloseButton = document.createElement("img");
		objCloseButton.src = closeButton;
		objCloseButton.setAttribute('id','closeButton');
		objCloseButton.style.position = 'absolute';
		objCloseButton.style.zIndex = '200';
		objLink.appendChild(objCloseButton);
		return false;
	}
	
	imgPreloadCloseButtonMap.onload=function(){

		var objCloseButtonMap = document.createElement("img");
		objCloseButtonMap.src = closeButton;
		objCloseButtonMap.setAttribute('id','closeButtonMap');
		objCloseButtonMap.style.position = 'absolute';
		objCloseButtonMap.style.zIndex = '200';
		objLinkMap.appendChild(objCloseButtonMap);

		return false;
	}
	
		imgPreloadCloseButtonLocation.onload=function(){

		var objCloseButtonLocation = document.createElement("img");
		objCloseButtonLocation.src = closeButton;
		objCloseButtonLocation.setAttribute('id','closeButtonLocation');
		objCloseButtonLocation.style.position = 'absolute';
		objCloseButtonLocation.style.zIndex = '200';
		objCloseButtonLocation.style.left = '493px';
		objCloseButtonLocation.style.top = '10px';
		
		objCloseButtonLocation.style.border='0px solid black';
		objLinkLocation.appendChild(objCloseButtonLocation);

		return false;
	}

	imgPreloadCloseButton.src = closeButton;	
	imgPreloadCloseButtonMap.src = closeButton;	
	imgPreloadCloseButtonLocation.src = closeButton;	

	// create image
	var objImage = document.createElement("img");
	objImage.setAttribute('id','lightboxImage');
	objImage.className = "lightBoxImage";
	objImage.style.display = 'block';
	objLightbox.appendChild(objImage);
	
	
	// create image map
	var objImageMap = document.createElement("img");
	objImageMap.setAttribute('id','lightboxImageMap');
	objImageMap.className = "lightBoxImageMap";
	objImageMap.style.display = 'block';
	objLightboxMap.appendChild(objImageMap);
	
		// create image map
	var objImageLocation = document.createElement("img");
	objImageLocation.setAttribute('id','lightboxImageLocation');
	//objImageLocation.className = "lightBoxImageLocation";
	objImageLocation.style.display = 'block';
	objImageLocation.style.borderWidth ='10px';
	objImageLocation.style.borderStyle= 'solid';
	objImageLocation.style.borderColor='#5496E6';
	objLightboxLocation.appendChild(objImageLocation);
	

	var objLightboxNav = document.createElement("div");
	objLightboxNav.setAttribute('id','lightboxnav');
	objLightboxNav.style.display = 'block';
	objLightbox.appendChild(objLightboxNav);
	
	// create details div, a container for the caption and keyboard message
	var objLightboxDetails = document.createElement("div");
	objLightboxDetails.setAttribute('id','lightboxDetails');
	objLightboxDetails.style.display = 'block';
	objLightbox.appendChild(objLightboxDetails);
	

}
//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func)
{	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}

}

addLoadEvent(initLightbox);	// run initLightbox onLoad


/*START AJAX OBJECT*/

function ZuAjax (onload,onerror){
	this.req=null;
	this.onload=onload;
	this.onerror = this.defaultError;
	this.READY_STATE_UNINITIALIZED=0;
	this.READY_STATE_LOADING=1;
	this.READY_STATE_LOADED=2;
	this.READY_STATE_INTERACTIVE=3;
	this.READY_STATE_COMPLETE=4;

	this.onReadyState = function () {
		var ready=this.req.readyState;
		if (ready==this.READY_STATE_COMPLETE){
			var httpStatus=this.req.status;
			if (httpStatus==200 || httpStatus==0){ // status okay, or client aborted
				this.onload.call(this);
			}else{
				this.onerror.call(this);
			}
		}
	}

	this.initXMLHTTPRequest = function () {
		if (window.XMLHttpRequest){
			this.req=new XMLHttpRequest();
		} else if (window.ActiveXObject){
			this.req=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	// initialize this object
	this.initXMLHTTPRequest();

	this.sendRequest = function (url, params, httpMethod) {
	//this.sendRequest = function (url, params) {
		if (this.req){
			try{
				var loader=this;
				
				this.req.onreadystatechange=function(){
					loader.onReadyState.call(loader);
				}
				this.req.open(httpMethod, url);
				this.req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				this.req.send(params);
			}catch (err){
				this.onerror.call(this);
			}
		}
	}

	this.defaultError = function () {
		alert("error fetching data!" +"\n\nreadyState:"+this.req.readyState +"\nstatus: "+this.req.status +"\nheaders: "+this.req.getAllResponseHeaders());
	}

	this.setHandler = function(handler) {
		this.onload	= handler;
	}


	/*
	 * Define Accessor Methods
	 */
	this.getResponseXMLDocumentElement = function () {
		return this.req.responseXML.documentElement;
	}

	this.getResponseXML = function () {
		return this.req.responseXML;
	}

	this.getResponseText = function () {
		return this.req.responseText;
	}
}

/*END AJAX OBJECT*/

/*START AJAX HANDLER*/


function handleXMLResponse () {
	data = ajo.getResponseXMLDocumentElement();
	document.getElementById('lightboxDetails').innerHTML = "\n";

		if(data.getElementsByTagName('url1')[0]){
			handlePortfolioResponse(data);
	
		}
}


function handleMapXMLResponse () {
	data = map.getResponseXMLDocumentElement();

		if(data.getElementsByTagName('largemap')[0]){
			handleMapResponse(data);
		}
}

function handleLocationXMLResponse () {
	data = loc.getResponseXMLDocumentElement();
		if(data.getElementsByTagName('jhlocation')[0]){
			handleLocationResponse(data);
		}
}


function handleLocationResponse (data){
	
	loca = data.getElementsByTagName('jhlocation')[0].firstChild.nodeValue;
	objLightboxLocation = document.getElementById('lightboxLocation');

	
	document.getElementById('lightboxImageLocation').src = loca;
	
	var objImageLocation = document.getElementById('lightboxImageLocation');
	var objLoadingImage = document.getElementById('loadingImageLocation');
	var objLoadingLocation = document.getElementById('loadingLocation');
	new Effect.Fade(objLoadingLocation);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	objOverlay = document.getElementById('overlay');
	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';	
	
	loc = null;
	loc = new ZuAjax(handleLocationXMLResponse, false);
	
	delayLightboxLocation();
	
}

	
function handleMapResponse (data){
	
	lg_map = data.getElementsByTagName('largemap')[0].firstChild.nodeValue;
	objLightboxMap = document.getElementById('lightboxMap');
	
	
	document.getElementById('lightboxImageMap').src = lg_map;
	
	var objImageMap = document.getElementById('lightboxImageMap');
	var objLoadingImage = document.getElementById('loadingImageMap');
	var objLoadingMap = document.getElementById('loadingMap');
	new Effect.Fade(objLoadingMap);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	objOverlay = document.getElementById('overlay');
	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';	
	
	map = null;
	map = new ZuAjax(handleMapXMLResponse, false);
	
	delayLightboxMap();
	
	
}




function handlePortfolioResponse (data) {

	//document.getElementById('lightboxDetails').innerHTML = "\n";
	
	
	url = data.getElementsByTagName('url1')[0].firstChild.nodeValue;
	image = data.getElementsByTagName('src1')[0].firstChild.nodeValue;
	title = data.getElementsByTagName('title1')[0].firstChild.nodeValue;
	details = data.getElementsByTagName('details1')[0].firstChild.nodeValue;
	
	objLightbox = document.getElementById('lightbox');
	
	var objImage = document.getElementById('lightboxImage');
	var objLoadingImage = document.getElementById('loadingImage');
	var objLightboxDetails = document.getElementById('lightboxDetails');
	var objLoading = document.getElementById('loading');
	new Effect.Fade(objLoading);
	
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	objOverlay = document.getElementById('overlay');
	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';	
	
	
	
	var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 400) / 2);
	
	var lightboxLeft = ((arrayPageSize[0] - 20 - 548) / 2);

	
	document.getElementById('lightboxImage').src = url;
	
	if(details != "none" || title != "none")
		document.getElementById('lightboxDetails').innerHTML = "<span class=\"portfolio-title\">" + " " + title + "</span><p>" + details + "</p>";
	else
		document.getElementById('lightboxDetails').innerHTML = "<span class=\"portfolio-title\"></span>";		
	objLightbox.style.display = "block";
	
	
	
	numImages = data.getElementsByTagName('numimages')[0].firstChild.nodeValue;
	
	homeType = data.getElementsByTagName('hometype')[0].firstChild.nodeValue;
	
	objLightboxnav = document.getElementById('lightboxnav');
	
	

	
	nav = "<div id=\"gallery_title\">"+homeType+"</div>";
	
	if(numImages > 1) {	
	
		titles = new Array(numImages);
	
		if(numImages>4)
			limit=4;
		else
			limit=numImages;

	
	nav += "<table style=\"border:0px solid red;margin-top:8px;\"><tr>";
	
	//if ( numImages < 5 ){
	for(i=1; i<=limit; i++) {
		
			title = data.getElementsByTagName('title' + i)[0].firstChild.nodeValue;
			image = data.getElementsByTagName('src' + i)[0].firstChild.nodeValue;
			details = data.getElementsByTagName('details' + i)[0].firstChild.nodeValue;
			url = data.getElementsByTagName('url' + i)[0].firstChild.nodeValue; 
			style = "moreImages";
			
			if(i == 1)
				style+= "-selected";
						
			id = 'moreImages' + i;
				
			nav += "<td><a href=\"#\" class=\"" + style + "\" id=\"" + id + "\" onclick=\"adjustPortfolioNav('" + id + "', '" + image + "', '" + title + "', '" + details + "', numImages, '" + url + "'); return false; \" /><img style=\"border:1px solid white;\" src='" + image + "'/></a></td>";
			
			id="";
			title = "";
			image="";
			details="";
			url = "";
			
			
		}
	
	nav += "</tr>";
	
	
	if ( numImages > 4 ){	
		nav += "<tr>";	
		
		if(numImages>8)
			limit=8;
		else
			limit=numImages;
		
	
		for(i=5; i<=limit; i++) {
			title = data.getElementsByTagName('title' + i)[0].firstChild.nodeValue;
			image = data.getElementsByTagName('src' + i)[0].firstChild.nodeValue;
			details = data.getElementsByTagName('details' + i)[0].firstChild.nodeValue;
			url = data.getElementsByTagName('url' + i)[0].firstChild.nodeValue; 
			style = "moreImages";
			
			if(i == 1)
				style+= "-selected";
						
			id = 'moreImages' + i;
				
			nav += "<td><a href=\"#\" class=\"" + style + "\" id=\"" + id + "\" onclick=\"adjustPortfolioNav('" + id + "', '" + image + "', '" + title + "', '" + details + "', numImages, '" + url + "'); return false; \" /><img style=\"border:1px solid white;\" src='" + image + "'/></a></td>";
			
			id="";
			title = "";
			image="";
			details="";
			url = "";
			
		}
		nav += "</tr>";
	}
	
	
	if ( numImages > 8 ){
		
		if(numImages>12)
			limit=12;
		else
			limit=numImages;
		
		nav +="<tr>";	
		for(i=9; i<=limit; i++) {
			title = data.getElementsByTagName('title' + i)[0].firstChild.nodeValue;
			image = data.getElementsByTagName('src' + i)[0].firstChild.nodeValue;
			details = data.getElementsByTagName('details' + i)[0].firstChild.nodeValue;
			url = data.getElementsByTagName('url' + i)[0].firstChild.nodeValue; 
			style = "moreImages";
			
			if(i == 1)
				style+= "-selected";
						
			id = 'moreImages' + i;
				
			nav += "<td><a href=\"#\" class=\"" + style + "\" id=\"" + id + "\" onclick=\"adjustPortfolioNav('" + id + "', '" + image + "', '" + title + "', '" + details + "', numImages, '" + url + "'); return false; \" /><img style=\"border:1px solid white;\" src='" + image + "'/></a></td>";
			
			id="";
			title = "";
			image="";
			details="";
			url = "";
			
		}
		nav += "</tr>";
	} 
	/*	nav += "<tr><td colspan=\"4\" align=\"center\">";
		
		nav += "<a href=\"\">Previous</a> <a href=\"\">Next</a>";
		nav += "</td></tr>";*/	
		nav += "</table>";	
		
	} //end of if numImages > 1		
		

	
	objLightboxnav.innerHTML = nav;
	objLightboxnav.style.display = 'block';
	
	
	ajo = null;
	ajo = new ZuAjax(handleXMLResponse, false);
	
	delayLightbox();
	
}

function delayLightbox(){
	// don't show lightbox until bio image is loaded
	var objLightbox = document.getElementById('lightbox');
	var objImage = document.getElementById('lightboxImage');
	var objLoading = document.getElementById('loading');
	//var objLightboxDetails = document.getElementById('lightboxDetails');
	
	var cpyImg = new Image();
	cpyImg.src = objImage.src;

	if(objImage.complete || cpyImg.width){
		objLoading.style.visibility = 'hidden';
		new Effect.Appear(objLightbox);
		new Effect.Appear(objImage);
		//new Effect.Appear(objLightboxDetails);
		
	}else{
		setTimeout("delayLightbox()", 100);
	}
}


function delayLightboxMap(){
	// don't show lightbox until bio image is loaded
	var objLightboxMap = document.getElementById('lightboxMap');
	var objImageMap = document.getElementById('lightboxImageMap');
	var objLoading = document.getElementById('loading');
	//var objLightboxDetails = document.getElementById('lightboxDetails');
	
	var cpyImg = new Image();
	cpyImg.src = objImageMap.src;

	if(objImageMap.complete || cpyImg.width){
		objLoading.style.visibility = 'hidden';
		new Effect.Appear(objLightboxMap);
		//new Effect.Appear(objImage);
		//new Effect.Appear(objLightboxDetails);
		
	}else{
		setTimeout("delayLightboxMap()", 100);
	}
}

function delayLightboxLocation(){
	// don't show lightbox until bio image is loaded
	var objLightboxLocation = document.getElementById('lightboxLocation');
	var objImageLocation = document.getElementById('lightboxImageLocation');
	var objLoading = document.getElementById('loading');
	//var objLightboxDetails = document.getElementById('lightboxDetails');
	
	var cpyImg = new Image();
	cpyImg.src = objImageLocation.src;

	if(objImageLocation.complete || cpyImg.width){
		objLoading.style.visibility = 'hidden';
		new Effect.Appear(objLightboxLocation);
		new Effect.Appear(objImageLocation);
		//new Effect.Appear(objLightboxDetails);
		
	}else{
		setTimeout("delayLightboxLocation()", 100);
	}
}




function delayHideImg(){
	var objImage = document.getElementById('lightboxImage');
	var objLightboxBG = document.getElementById('lightboxBG');
	
	if(objImage.style.opacity == 0){
		objImage.src = '';	
	}else{
		setTimeout("delayHideImg()", 100);	
	}
}

function delayHideImgMap(){
	var objImageMap = document.getElementById('lightboxImageMap');
	var objLightboxBGMap = document.getElementById('lightboxBGMap');
	
	if(objImageMap.style.opacity == 0){
		objImageMap.src = '';	
	}else{
		setTimeout("delayHideImgMap()", 100);	
	}
}

function delayHideImgLocation(){
	var objImageLocation = document.getElementById('lightboxImageLocation');
	var objLightboxBGLocation = document.getElementById('lightboxBGLocation');
	
	if(objImageLocation.style.opacity == 0){
		objImageLocation.src = '';	
	}else{
		setTimeout("delayHideImgLocation()", 100);	
	}
}



function formatRequest () {
	// ready page elements
	urchinTracker('/gallery/view_'+arguments[2]);
	var objLightboxBG = document.getElementById('lightboxBG');
	var objOverlay = document.getElementById('overlay');
	var objLightbox = document.getElementById('lightbox');
	var objImage = document.getElementById('lightboxImage');
	var objLoading = document.getElementById('loading');
	
	objImage.src = '';	
	objOverlay.style.height = (arrayPageSize[1] + 'px');

	var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 400) / 2);
	var lightboxLeft = ((arrayPageSize[0] -799) / 2);
	
				var userAgent=navigator.appCodeName;
				var platform=navigator.platform;
				var appName=navigator.appName;
			
				if ( (userAgent == "Mozilla") ){
					lightboxLeft=lightboxLeft-9;
				}						 
				if(appName=="Microsoft Internet Explorer" || platform=="MacPPC"){
					lightboxLeft=lightboxLeft+9;
				}
				objLightboxBG.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
				objLightboxBG.style.top = 117 + "px";
	
	objLoading.style.visibility = 'visible';
	new Effect.Appear(objLightboxBG, { from: .5, duration:.25 });
	new Effect.Appear(objOverlay, {from:.1, to:.9, duration:.75});

	ajo.sendRequest(arguments[0], 'portfolio_id=' + arguments[2], arguments[1]);

}

function formatMapRequest () {
	// ready page elements
	urchinTracker('/map/view_'+arguments[2]);
	var objLightboxBGMap = document.getElementById('lightboxBGMap');
	var objOverlay = document.getElementById('overlay');
	var objLightboxMap = document.getElementById('lightboxMap');
	var objImageMap = document.getElementById('lightboxImageMap');
	var objLoading = document.getElementById('loading');
	
	objImageMap.src = '';	
	objOverlay.style.height = (arrayPageSize[1] + 'px');

	var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 594) / 2);
	var lightboxLeft = (((arrayPageSize[0] -792) / 2)+0  );
				var userAgent=navigator.appCodeName;
				var platform=navigator.platform;
				var appName=navigator.appName;
				
				if ( (userAgent == "Mozilla") ){
					lightboxLeft=lightboxLeft-9;
				}						 
				if(appName=="Microsoft Internet Explorer" || platform=="MacPPC"){
					lightboxLeft=lightboxLeft+9;
				}
	objLightboxBGMap.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
	objLightboxBGMap.style.top = 111 + "px";
	
	objLoading.style.visibility = 'visible';
	new Effect.Appear(objLightboxBGMap, { from: .5, duration:.25 });
	new Effect.Appear(objOverlay, {from:.1, to:.9, duration:.75});

	map.sendRequest(arguments[0], 'portfolio_id=' + arguments[2], arguments[1]);

}


function formatRequestLocation () {
	// ready page elements
	urchinTracker('/contact_us/'+arguments[2]);
	var objLightboxBGLocation = document.getElementById('lightboxBGLocation');
	var objOverlay = document.getElementById('overlay');
	var objLightboxLocation = document.getElementById('lightboxLocation');
	var objImageLocation = document.getElementById('lightboxImageLocation');
	var objLoading = document.getElementById('loading');
	
	
	objImageLocation.src = '';	
	objOverlay.style.height = (arrayPageSize[1] + 'px');

	var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 546) / 2);
	var lightboxLeft = (((arrayPageSize[0] -595) / 2)+77  );
	
				var userAgent=navigator.appCodeName;
				var platform=navigator.platform;
				var appName=navigator.appName;
				
				if ( (userAgent == "Mozilla") ){
					lightboxLeft=lightboxLeft-9;
				}						 
				if(appName=="Microsoft Internet Explorer" || platform=="MacPPC"){
					lightboxLeft=lightboxLeft+9;
				}
	objLightboxBGLocation.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";
	//objLightboxBGLocation.style.left = 280+"px";
	objLightboxBGLocation.style.top = 135 + "px";
	//objOverlay.style.display='block';
	//alert(objOverlay.style.display);
	
	objLoading.style.visibility = 'visible';
	new Effect.Appear(objLightboxBGLocation, { from: .5, duration:.25 });
	new Effect.Appear(objOverlay, {from:.1, to:.9, duration:.75});

	loc.sendRequest(arguments[0], 'loca=' + arguments[2], arguments[1]);

}

function adjustPortfolioNav (id, image, title, details, numImages, url) {
	//document.getElementById('linkto').href = url;
	for(i=1; i<numImages; i++) {
		document.getElementById('moreImages' + i).className = "moreImages";
	}
	document.getElementById(id).className = "moreImages-selected";
	document.getElementById('lightboxImage').src = url;
	if(details != "none" || title != "none")
		document.getElementById('lightboxDetails').innerHTML = "<span class=\"portfolio-title\">"+ title + "</span><p>" + details + "</p>";
	else
		document.getElementById('lightboxDetails').innerHTML = "<span class=\"portfolio-title\"></span>";

}
/*function adjustPrevious(currentIndex, numImages){
	newIndex=currentIndex-1;
	if (newIndex==0)
			newIndex=numImages;
	
	for(i=1; i<numImages; i++) {
		document.getElementById('moreImages' + i).className = "moreImages";
	}
	document.getElementById('moreImages'+ newIndex).className = "moreImages-selected";
	document.getElementById('lightboxImage').src = url;
	if(details != "none" || title != "none")
		document.getElementById('lightboxDetails').innerHTML = "<span class=\"portfolio-title\">"+ title + "</span><p>" + details + "</p>";
	else
		document.getElementById('lightboxDetails').innerHTML = "<span class=\"portfolio-title\"></span>";
	
}*/


ajo=new ZuAjax(handleXMLResponse, false);
map=new ZuAjax(handleMapXMLResponse, false);
loc=new ZuAjax(handleLocationXMLResponse, false);

/*END AJAX HANDLER*/