	/*
	var aPhotos = [["listimg_mmain" , "landscape" , "images/listing/id/10000/IMGP6706.JPG" , "Front of Home","","Commanding Curb Appeal!",[1],[]],
															["listimg_men" , "portrait" , "images/listing/id/10000/osp_frontdoor.jpg"	, "Front Entry" , "11 x 7","Formal Entrance Features Double Solid Wood Doors",[0],[]],
															["listimg_mde" , "landscape" , "images/listing/id/10000/mlp_den.jpg"		, "Den" , "14 x 12","Extensive Builtin Cabinetry creates an executive office atmosphere",[],["Flooring","Hardwood"]],
															["listimg_mbd2" , "landscape" , "images/listing/id/10000/mlp_bdrm2.jpg"		, "Guest Bedroom" , "11 x 12","The Guest Bedroom is conveniently located on the main floor",[],[]],
															["listimg_mba" , "landscape" , "images/listing/id/10000/mlp_bath.jpg"		, "Main Bath" , "4 piece","The 4 Piece Main bath is centrally located with separate shower and bath. Flat Screen TV included!",[],[]],
															["listimg_mlv" , "landscape" , "images/listing/id/10000/mlp_greatroom.jpg"	, "Great Room" , "17 x 28","",[6],[]],
															["listimg_mfa" , "landscape" , "images/listing/id/10000/mlp_greatroom1.jpg" , "Great Room - Alternate Angle" , "17 x 28","",[5],[]],
															["listimg_mki" , "landscape" , "images/listing/id/10000/mlp_kitchen.jpg"	, "Kitchen" , "13 x 13","",[8],[]],
															["listimg_mkiB" , "landscape" , "images/listing/id/10000/mlp_kitchen1.jpg"	 , "Kitchen" , "13 x 13","",[7],[]],
															["listimg_mnk" , "landscape" , "images/listing/id/10000/mlp_nook.jpg"		 , "Nook" , "9 x 13","",[],[]],
															["listimg_mmb1" , "landscape" , "images/listing/id/10000/mlp_master1.jpg"	, "Master Bedoom" , "15 x 17","",[],[]],
															["listimg_mmb" , "landscape" , "images/listing/id/10000/mlp_master.jpg"		, "Master Bedoom - Alternate Angle" , "15 x 17","",[],[]],
															["listimg_mmbens" , "landscape" , "images/listing/id/10000/mlp_ensuite.jpg"				, "Master Ensuite" , "5 Piece","",[],[]],
															["listimg_mmbensB" , "portrait" , "images/listing/id/10000/mlp_ensuiteshower.jpg"		, "Master Ensuite Shower" , "","",[],[]],
															["listimg_mla" , "portrait" , "images/listing/id/10000/mlp_laundry.jpg"					 , "Laundry Area" , "8 x 8","",[],[]],
															["listimg_ure" , "landscape" , "images/listing/id/10000/ulp_theatreroom.jpg"			, "Theatre room" , "20 x 15","",[],[]],
															["listimg_usauna" , "portrait" , "images/listing/id/10000/ulp_sauna.jpg"				, "Sauna" , "","",[],[]],
															["listimg_uhall" , "landscape" , "images/listing/id/10000/ulp_hallway.jpg"					, "Hallway" , "","",[],[]],
															["listimg_ubd4wic" , "portrait" , "images/listing/id/10000/ulp_bdrm4walkincloset.jpg" , "Back Bedroom Walkin" , "","",[],[]],
															["listimg_ubd4ens" , "landscape" , "images/listing/id/10000/ulp_bdrm4ensuite.jpg"		, "Back Bedroom Ensuite" , "4 Piece","",[],[]],
															["listimg_ubd4" , "landscape" , "images/listing/id/10000/ulp_bdrm4.jpg"					, "Back Bedroom" , "12 x 14","",[],[]],
															["listimg_ubd3wic" , "portrait" , "images/listing/id/10000/ulp_bdrm3walkincloset.jpg"	, "Front Bedroom Walkin" , "","",[],[]],
															["listimg_ubd3ens" , "portrait" , "images/listing/id/10000/ulp_bdrm3ensuite.jpg"			 , "Front Bedroom Ensuite" , "3 Piece","",[],[]],
															["listimg_ubd3" , "landscape" , "images/listing/id/10000/ulp_bdrm3.jpg"					 , "Front Bedroom" , "12 x 13","",[],[]],
															["listimg_ubar" , "portrait" , "images/listing/id/10000/ulp_bar.jpg"					, "Bar" , "","",[],[]],
															["listimg_ory" , "landscape" , "images/listing/id/10000/osp_rearyard.jpg"				, "Rear Yard" , "","",[],[]],
															["listimg_oryB" , "landscape" , "images/listing/id/10000/osp_rearyard1.jpg"				, "Rear Yard - Alternate Angle" , "","",[],[]],
															["listimg_orp" , "landscape" , "images/listing/id/10000/osp_rearpatio.jpg"				, "Patio" , "","",[],[]],
															["listimg_opergola" , "landscape" , "images/listing/id/10000/osp_pergola.jpg"			, "Pergola" , "","",[],[]],
															["listimg_orh" , "landscape" , "images/listing/id/10000/osp_backofhome.jpg"				, "Rear of Home" , "","",[],[]],
															["listimg_opond" , "landscape" , "images/listing/id/10000/osp_frontpond.jpg"			, "Front Yard Pond" , "","",[],[]],
															["listimg_mmbwic" , "portrait" , "images/listing/id/10000/mlp_masterwalkincloset.jpg"	, "Master Walkin Closet" , "","",[],[]]

					];

	var iMaxPhoto = aPhotos.length;
	*/

var aPhotos = new Array();
var aPhotosMap = new Array();
var iMaxPhoto = 0;
var currVR = null;
var currPhotoNum = 0;

function fnTogglePhotoDetails()
{

	oA = document.getElementById('aShowDetails');
	oTbl = document.getElementById('divtblPhotoDetails');

	if(oTbl && oA)
	{
		if(oTbl.className == 'visible')
		{
			oTbl.className = 'hidden';
			oA.innerHTML = "Show Details";
		} else {
			oTbl.className = 'visible';
			oA.innerHTML = "Hide Details";
		}
	}


}

function fnNextPic()
{

	oStrip = document.getElementById('divPhotoStrip');

	var iWindowRight = 0 - (parseInt(oStrip.offsetLeft)) + 405;	
	var i,o,iScrollTo;

	i = 0;
	o = document.getElementById(aPhotos[i][0]);

	while((i < aPhotos.length)  && (parseInt(o.offsetLeft) < iWindowRight))
	{
		i++;
		if(i < aPhotos.length) {	o = document.getElementById(aPhotos[i][0]);		}
	}

	iScrollTo = i;
	
	fnScrollToPhoto(iScrollTo);

}

function fnLastPic()
{
	fnScrollToPhoto(iMaxPhoto);
}


function fnPrevPic()
{

	oStrip = document.getElementById('divPhotoStrip');

	var iWindowLeft = 0 - (parseInt(oStrip.offsetLeft)) - 405;	
	var i,o,iScrollTo;

	i = 0;
	o = document.getElementById(aPhotos[i][0]);

	while((i < aPhotos.length)  && (parseInt(o.offsetLeft) < iWindowLeft))
	{
		i++;
		if(i < aPhotos.length) {	o = document.getElementById(aPhotos[i][0]);		}
	}

	iScrollTo = i;
	
	fnScrollToPhoto(iScrollTo);

}

function fnFirstPic()
{
	fnScrollToPhoto(0);
}

function fnMaxPhoto()
{
	var iWindowWidth = 405;

	var iWindowLeft;

	var i,o;

	i = aPhotos.length - 1;
	o = document.getElementById(aPhotos[i][0]);

	iWindowLeft = (o.offsetLeft + o.offsetWidth) - iWindowWidth;	//constant for window width

	while((i > -1)  && ((parseInt(o.offsetLeft)) > iWindowLeft ))
	{
		iMaxPhoto = i;
		i--;
		o = document.getElementById(aPhotos[i][0]);
	}

	return iMaxPhoto;

}

function fnCenterPhoto(in_no)
{

	//this is like Max Photo but with a closer left
	//calculate the appropriate left
	//appropriate left will be 405 - photo.w / 2 subtracted from photo.l

	var iPhotoToScrollTo = 0;

	var iWindowWidth = 405;
	var iWindowLeft;

	var i,o;

	i = in_no;
	o = document.getElementById(aPhotos[i][0]);

	iWindowLeft = o.offsetLeft - ((iWindowWidth - o.offsetWidth) / 2);

	while((i > -1)  && ((parseInt(o.offsetLeft)) > iWindowLeft ))
	{

		iPhotoToScrollTo = i;
		i--;
		if(i > -1) o = document.getElementById(aPhotos[i][0]);
	}

	iPhotoToScrollTo = fnPhotoBounds(iPhotoToScrollTo);

	return iPhotoToScrollTo;

}

function fnPhotoBounds(in_no)
{

	if	(in_no < 0)				{	return 0;			}
	if	(in_no > iMaxPhoto)		{	return iMaxPhoto;	}
									return in_no;
}

function fnAdjustStrip(in_no)
{

	var oSplit;
	var iSplit;

	var bAdjustmentNeeded = false;
	var iAdjustmentNeeded = 0;

	var iWindowRight = (parseInt(document.getElementById(aPhotos[in_no][0]).offsetLeft) + 405);	
	var iLeft = document.getElementById(aPhotos[in_no][0]).offsetLeft;

	i = in_no;
	o = document.getElementById(aPhotos[i][0]);

	while((i < aPhotos.length)  && (parseInt(o.offsetLeft) < iWindowRight))
	{

		if((o.offsetLeft + o.offsetWidth) > iWindowRight)
		{
			//shit, this is a halfy!
			bAdjustmentNeeded = true;
			iAdjustmentNeeded = iWindowRight - o.offsetLeft;
			oSplit = o;
			iSplit = i;
		}

		i++;
		if(i < aPhotos.length) {	o = document.getElementById(aPhotos[i][0]);		}
	}

	if(bAdjustmentNeeded)
	{
		
		//assume no limit! (Wow that's stupid... but wait.. look at the logic...)
		var iMax = 1000;

		//max adjustment is space to previous photo!
		if(in_no != 0)
		{
			o = document.getElementById(aPhotos[in_no-1][0]);			
			iMax = iLeft - (o.offsetLeft + o.offsetWidth);
		}

		if(iAdjustmentNeeded < iMax)
		{
	
			return (0 - iLeft) + iAdjustmentNeeded;

		} else {  // now what?

		}
	}

	return (0 - iLeft);
}


function fnActivatePreview(in_no)
{
	if (in_no >= aPhotos.length) {
		return;
	}

	o = document.getElementById('divRoomPreview');
	oImg = document.getElementById('imgPreview');

	if(o.style.visibility != 'visible') {
		o.style.visibility = 'visible';
		oImg.style.visibility = 'visible';
	}

	if(oImg.src != aPhotos[in_no][8] /*aPhotos[in_no][2]*/)
	{
		oRoom = document.getElementById('tdrpRoom');
		oSize = document.getElementById('tdrpSize');
		oNotes = document.getElementById('tdrpNotes');

		//oImg.src = aPhotos[in_no][2];
		oImg.src = aPhotos[in_no][8]; // added large thumbnail
		oRoom.innerHTML = aPhotos[in_no][3];
		oSize.innerHTML = aPhotos[in_no][4];
		oNotes.innerHTML = aPhotos[in_no][5];
	}
}

function fnDeactivatePreview()
{
	o = document.getElementById('divRoomPreview');
	oImg = document.getElementById('imgPreview');
	
	o.style.visibility = 'hidden';
	oImg.style.visibility = 'hidden';
}


function fnChangeOpac(in_opacity, in_id)
{

	var o = document.getElementById(in_id).style;

	oImg.style.visibility = 'visible';

	o.opacity = (in_opacity / 100);
	o.MozOpacity = (in_opacity / 100);
	o.KhtmlOpacity = (in_opacity / 100);
	o.filter = "alpha(opacity=" + in_opacity + ")";

}

function fnDisplayPhotoNo(in_no)
{

	var sDetails = "";

	var reDimensions = / x /;

	oImg = document.getElementById('imglistDisplayPhoto');
	oFlsh = document.getElementById('imglistDisplayFlash');
	oTitle = document.getElementById('spnPhotoTitle');
	
	//Adjust for Orientation
	if((aPhotos[in_no][1] == 'landscape') && ( 1 == 1))
	{
		oImg.style.width = '550px';
		oImg.style.height = '367px';
		oImg.style.left = 0;
	} else if(1 == 1)
	{
		oImg.style.width = '274px';
		oImg.style.height = '413px';
		oImg.style.left = '138px';
	}

	fnChangeOpac(100,'imglistDisplayFlash');

	oFlsh.src = oImg.src;
	oFlsh.style.left = oImg.offsetLeft +'px';
	oFlsh.style.top = oImg.offsetTop +'px';
	oFlsh.style.width = oImg.offsetWidth +'px';
	oFlsh.style.height = oImg.offsetHeight +'px';
	oFlsh.style.display = 'block';

	oImg.style.visibility = 'hidden';
	oImg.src = aPhotos[in_no][2];

	oTitle.innerHTML = aPhotos[in_no][3];

	oDetails = document.getElementById('tblPhotoDetails');
	if(oDetails)
	{

		if(aPhotos[in_no][4].search(reDimensions) >= 1)
		{		sDetails = '												<table id="tblPhotoDetails" cellspacing="5"><tr><th>Dimensions:</th><td>' + aPhotos[in_no][4] + '</td></tr>';
		} else if(parseInt(aPhotos[in_no][4]))
		{		sDetails = '												<table id="tblPhotoDetails" cellspacing="5"><tr><th>Pieces:</th><td>' + parseInt(aPhotos[in_no][4]) + '</td></tr>';
		} else
		{		sDetails = '												<table id="tblPhotoDetails" cellspacing="5">';
		}
		
		if(aPhotos[in_no][7].length || aPhotos[in_no][5] != '')
		{
			i = 0
			while(i < aPhotos[in_no][7].length)
			{
				sDetails = sDetails + '								<tr><th>' + aPhotos[in_no][7][i] + ':</th><td>' + aPhotos[in_no][7][i+1] + '</td></tr>';
				i++; i++;
			}

			if(aPhotos[in_no][5] != '')
			{		sDetails = sDetails + '													<tr><td colspan="2" style="border-top:1px solid white;">' + aPhotos[in_no][5] + '</td></tr>';	}

		}
		sDetails = sDetails + "</table>";

		

		oldDiv = document.getElementById('divtblPhotoDetails');

		newDiv = document.createElement(oldDiv.tagName);

		newDiv.id = oldDiv.id;
		newDiv.className = oldDiv.className;
		newDiv.innerHTML = sDetails;

		oldDiv.parentNode.replaceChild(newDiv, oldDiv);		
	}

	for(i=0; i<=10; i ++)
	{	setTimeout("fnChangeOpac(" + (100 - (i * 10)) + ",'imglistDisplayFlash')",(i * 100));	}
	
	setTimeout("fnHideFlash()",(i*70));
	setTimeout("fnScrollToPhoto("+in_no+",true)",500);
	//setTimeout("fnFlashSFX()",10);

	// check if vr tour exists for image
	if (aPhotos[in_no][9] != "") {
		document.getElementById('divVRImageLrg').onclick = function() {
			document.getElementById('vrTour_' + aPhotos[in_no][9]).style.display = 'block';
			currVR = document.getElementById('vrTour_' + aPhotos[in_no][9]);
		}
		document.getElementById('divVRImageLrg').style.display = 'block';
	} else {
		document.getElementById('divVRImageLrg').style.display = 'none';
	}

	currPhotoNum = in_no;
}

function fnFlashSFX()
{
	soundManager.setVolume('flash',17);
	soundManager.play('flash');
}

function fnDisplayPhoto(in_src,in_orient,in_name)
{
	oImg = document.getElementById('imglistDisplayPhoto');
	oFlsh = document.getElementById('imglistDisplayFlash');
	
	oFlsh.style.left = oImg.offsetLeft +'px';
	oFlsh.style.top = oImg.offsetTop +'px';
	oFlsh.style.width = oImg.offsetWidth +'px';
	oFlsh.style.height = oImg.offsetHeight +'px';
	oFlsh.style.display = 'block';

	oImg.style.visibility = 'hidden';
	oImg.src = in_src;
	
	for(i=0; i<=20; i ++)
	{	setTimeout("fnChangeOpac(" + (100 - (i * 5)) + ",'imglistDisplayFlash')",i * 10);	}

	oImg.style.visibility = 'visible';
	
	//setTimeout("fnHideFlash()",i*14);

}

function fnHideFlash()
{
	document.getElementById('imglistDisplayFlash').style.display = 'none';
}


function fnScrollToPhoto(in_no,in_center)
{

	var xPos;

	if(in_center)
	{	xPos = fnAdjustStrip(fnCenterPhoto(in_no));

	} else
	{	xPos = fnAdjustStrip(fnPhotoBounds(in_no));

	}
	fnScrollTo(xPos);

	return false;

}

function fnScrollTo(in_x,in_ox)
{

	var oStrip;

	var iDest = fnScrollTo.x;
	var iSrc = fnScrollTo.ox;

	//alert('??' + document.getElementById("divPhotoStrip").style.left);

	oStrip = document.getElementById("divPhotoStrip");

	if(!document.layers) oStrip = oStrip.style;

	if (undefined != in_ox)
	{	

		if(parseInt(oStrip.left) != iDest)
		{

			var cx = parseInt(oStrip.left);
			var cxp = Math.abs(cx - iSrc) / Math.abs(iSrc - iDest);
			var max = Math.abs(iDest - iSrc) / 30;

			in_s = ((Math.sin(cxp * 3.14)) * max) + 1;

			if(iDest > iSrc)
			{
				if((cx + in_s) > iDest) in_s = iDest - cx;
			} else {
				in_s = 0 - in_s;
				if((cx - in_s) < iDest) in_s = iDest + cx;
			}
//alert(oStrip.left);
//alert(parseInt(oStrip.left));
//alert(in_s);
			oStrip.left = (parseInt(oStrip.left) + in_s) + 'px';
			if(parseInt(oStrip.left) != iDest)
			{	setTimeout("fnScrollTo("+iDest+","+iSrc+")",20);	}
			else 
			{	fnScrollTo.Moving = false;	}
		} else {
			fnScrollTo.Moving = false;	
		}

	} else { //new call to scroll to

		if(!fnScrollTo.Moving)
		{
			fnScrollTo.Moving = true
			fnScrollTo.x = in_x;
			fnScrollTo.ox = parseInt(oStrip.left);

			setTimeout("fnScrollTo("+in_x+","+parseInt(oStrip.left)+")",100);
		
		} else {	//ok, we're already moving...

			//don't call the timer, we just need to change the destination!
			fnScrollTo.x = in_x;
			fnScrollTo.ox = parseInt(oStrip.left);

		}


	}

}

function getPreviousPhoto()
{
	if (currPhotoNum <= 0)
		return;

	fnDisplayPhotoNo(currPhotoNum - 1);
	fnScrollToPhoto(currPhotoNum);
}

function getNextPhoto()
{
	if (currPhotoNum >= (aPhotos.length - 1))
		return;

	fnDisplayPhotoNo(currPhotoNum + 1);
	fnScrollToPhoto(currPhotoNum);
}

function getPrevious(id)
{
  var secondObj = document.getElementById(id);
  var firstObj = secondObj.previousSibling;

  while (firstObj.previousSibling && firstObj.nodeName == "#text")
  {
    firstObj = firstObj.previousSibling;
  }

  return firstObj;
}

function getNext(id)
{
  var secondObj = document.getElementById(id);
  var firstObj = secondObj.nextSibling;

  while (firstObj.nextSibling && firstObj.nodeName == "#text")
  {
    firstObj = firstObj.nextSibling;
  }

  return firstObj;
}


function fnScrollToPhotoID(id)
{
	
	fnDisplayPhotoNo(aPhotosMap[id]);
	fnScrollToPhoto(aPhotosMap[id]);
}

function setVRImage()
{
	for (var i = 0; i < aPhotos.length; i++) {
		if (aPhotos[i][9] != "") {
			document.getElementById('vrImage_' + i).style.display = 'block';
		}
	}
}

function fnInitPage()
{
	aPhotosInit();
	setVRImage();
	soundManagerInit();
	fnMaxPhoto();
	fnScrollToPhoto(0);
}

function showFloorplan(id)
{
	var divs = document.getElementById('fp_main').childNodes;

	for (var i = 0; i < divs.length; i++) {
		divs[i].style.display = 'none';
	}

	document.getElementById('floorplan_' + id).style.display = 'block';
}

function hideVRTour()
{
	if (currVR != null)
		currVR.style.display='none';

	currVR = null;
}
