	// <![CDATA[
	
	// -----------------------------------------------------------------------------------
	// 
	// This page coded by Scott Upton
	// http://www.uptonic.com | http://www.couloir.org
	//
	// This work is licensed under a Creative Commons License
	// Attribution-ShareAlike 2.0
	// http://creativecommons.org/licenses/by-sa/2.0/
	//
	// Associated API copyright 2002, Travis Beckham (www.squidfingers.com)
	//
	// -----------------------------------------------------------------------------------
	// --- version date: 04/30/05 ------------------------------------------------------
	
	var photoDir = "images/"; // Location of photos for gallery
	var borderSize = 6;	 // = 2x CSS border size
	
	// get current photo id from URL
	var thisURL = document.location.href;
	var splitURL = thisURL.split("#");
	var photoId = splitURL[1] - 1;
	
	// if no id in query string then set to 0
	photoId = (!photoId)? 0:photoId;
		
	// Define each photo's name, height, width, and caption
	var photoArray = new Array(
		// Source, Width, Height, Captionnew Array("3.jpg", "500", "280", "Door 3 - Click on the image to view previous or next image"),
new Array("housedelivery01.jpg", "740", "492", "Durairaj & Family - Happy Customer's Group 1 home delivery"),             
new Array("housedelivery02.jpg", "740", "492", "Muthuveeranan & Family - Happy Customer's Group 1 home delivery"),             
new Array("housedelivery03.jpg", "740", "492", "Chandrasekaran & Family - Happy Customer's Group 1 home delivery"),
new Array("frontGallery01.jpg", "740", "492", "House front"),             
new Array("frontGallery02.jpg", "740", "492", "House front"),             
new Array("frontGallery03.jpg", "740", "492", "House front"),             
new Array("frontGallery04.jpg", "740", "492", "House front"),             
new Array("frontGallery05.jpg", "740", "492", "House front"),             
new Array("02n.jpg", "740", "492", "Entrance door"),
new Array("03n.jpg", "740", "1112", "Near entrance door"),
new Array("05n.jpg", "740", "1112", "Hall door"),
new Array("06n.jpg", "740", "1112", "Entrance hall with lighting"),
new Array("07n.jpg", "740", "1112", "Main hall with lighting"),
new Array("08n.jpg", "740", "1112", "Main hall with lighting from other view"),
new Array("09n.jpg", "740", "1112", "Main hall with lighting from other view"),
new Array("10n.jpg", "740", "1112", "First floor steps"),
new Array("11n.jpg", "740", "1112", "First floor steps with lighting"),
new Array("12n.jpg", "740", "1112", "First floor steps"),
new Array("13n.jpg", "740", "1112", "Master bedroom"),
new Array("14n.jpg", "740", "1112", ""),
new Array("15n.jpg", "740", "492", ""),
new Array("16n.jpg", "740", "1112", ""),
new Array("17n.jpg", "740", "492", "Master Bedroom"),
new Array("18n.jpg", "740", "492", "Master Bedroom from other angle"),
new Array("19n.jpg", "740", "1112", ""),
new Array("20n.jpg", "740", "1112", "Dressing cupboards"),
new Array("21n.jpg", "740", "1112", "Toilets"),
new Array("22n.jpg", "740", "1112", "1st floor hall"),
new Array("23n.jpg", "740", "492", "Shining steps"),
new Array("24n.jpg", "740", "1112", "1st floor hall"),
new Array("25n.jpg", "740", "1112", "1st floor hall"),
new Array("26n.jpg", "740", "1112", "1st floor Bedroom"),
new Array("27n.jpg", "740", "1112", "Balcony"),
new Array("28n.jpg", "740", "1112", "Balcony view")
);
	
	// Number of photos in this gallery
	var photoNum = photoArray.length;
	
	// Create access to 'Detect' object and a place to put instances of 'HTMLobj'
	API = new Detect();
	
	// CREATE INSTANCES & LOAD
	loadAPI = function(){
		// Instantiate HTMLobj
		API.Container		= new HTMLobj('Container');
		API.Photo			= new HTMLobj('Photo');
		API.PhotoContainer	= new HTMLobj('PhotoContainer');
		API.LinkContainer	= new HTMLobj('LinkContainer');
		API.PrevLink		= new HTMLobj('PrevLink');
		API.NextLink		= new HTMLobj('NextLink');
		API.CaptionBlock	= new HTMLobj('CaptionBlock');
		API.Counter			= new HTMLobj('Counter');
		API.Caption			= new HTMLobj('Caption');
		API.LoadImg			= new HTMLobj('LoadImg');
		
		// Show initial photo
		cyclePhoto(photoId);
	}
	onload = loadAPI;
	
	// Fade in photo when it is loaded from the server
	initFade = function(){
		// Show PhotoContainer again
		API.PhotoContainer.show();
		
		// Be certain the tween is complete before fading, too
		var fade_timer = setInterval('startFade()', 1000);
						
		// Fade photo in when ready and clear listener
		startFade = function(){
			if(API.Container._tweenRunning == false){
				clearInterval(fade_timer);
				
				// Be certain fade is done running before allowing next/previous links to work
				// This avoids rapid fade-in when users click next/previous links in quick succession
				var adv_timer = setInterval('permitNextPrev()', 500);
				
				// Permit next/previous links to function normally when fade is completed
				permitNextPrev = function(){
					if(API.Photo._fadeRunning == false){
						clearInterval(adv_timer);
						
						// Only show links if there is more than one photo in array
						if(photoNum > 1){
							API.LinkContainer.displayShow();
							document.getElementById('NextLink').onclick = nextPhoto;
							document.getElementById('PrevLink').onclick = prevPhoto;
						}
					} else {
						return;
					}
				}
				// Swap out loading animation to spare CPU cycles when hidden anyway
				API.LoadImg.setSrc("images/slideshow/start.gif");
				
				// Show caption again
				API.CaptionBlock.show();
				
				// Fade photo in
				API.Photo.fadeIn(0,15,33);
			} else {
				return;
			}
		}
	}
	
	// Prevent next/previous
	falsify = function(){
		return false;
	}
	
	// Go to next photo
	nextPhoto = function(){
		// Go to next photo
		if(photoId == (photoArray.length - 1)){
			photoId = 0;
		} else {
			photoId++;
		}
		cyclePhoto(photoId);
	}
	
	// Go to previous photo
	prevPhoto = function(){
		// If at start, go back to end
		if(photoId == 0){
			photoId = photoArray.length - 1;
		} else {
			photoId--;
		}
		cyclePhoto(photoId);
	}
	
	// Alter class of elements
	changeElementClass = function(objId,setClass) {
		document.getElementById(objId).className = setClass;
	}
	
	// Function to load subsequent photos in gallery
	cyclePhoto = function(photoId){
				
		// Swap in loading animation
		API.LoadImg.setSrc("images/slideshow/loading_ani2.gif");
		
		// Hide link container if it is not already hidden
		API.LinkContainer.displayHide();
		
		// Hide photo container and caption temporarily
		API.Photo.hide();
		API.Photo.setOpacity(0);
		API.CaptionBlock.hide();
		
		// Get dimensions of photo
		var wNew = photoArray[photoId][1];
		var hNew = photoArray[photoId][2];
		
		// Start tween on a delay
		var wCur = API.Container.getWidth() - borderSize;
		var hCur = API.Container.getHeight() - borderSize;
		
		// Begin tweening on a short timer
		setTimeout('API.Container.tweenTo(easeInQuad, ['+wCur+', '+hCur+'], ['+wNew+','+hNew+'], 7)',500);
		setTimeout('API.LinkContainer.sizeTo('+wNew+','+hNew+')',500);
		setTimeout('API.PrevLink.sizeTo('+wNew/2+','+hNew+')',500);
		setTimeout('API.NextLink.sizeTo('+wNew/2+','+hNew+')',500);
		setTimeout('API.CaptionBlock.sizeTo('+wNew+',18)',500);
		
		// Get new photo source
		var newPhoto = photoDir + photoArray[photoId][0];
		
		// Set source, width, and height of new photo
		API.Photo.setSrc(newPhoto);		
		API.Photo.sizeTo(wNew,hNew);
		
		// Set links to new targets based on photoId
		API.NextLink.setHref("#" + (photoId+1));
		API.PrevLink.setHref("#" + (photoId+1));
		API.Counter.setInnerHtml((photoId+1)+" of "+photoNum+" |");
		API.Caption.setInnerHtml(photoArray[photoId][3]);
		
		// Event listeners for onload and onclick events
		document.getElementById('Photo').onload = initFade;
		
		// Block next/previous links until permitNextPrev() has fired
		document.getElementById('NextLink').onclick = falsify;
		document.getElementById('PrevLink').onclick = falsify;
	}
	// ]]>
