// Stage Presentation Library
// Originally designed for the Amenities page, display format used on Virtual Tours and Photo Galleries as well.
// The Stage Refers to the main image display area, Staging contains Items refers to the thumbnail view of selectable 'Stages' so to speak...
// Each Item in that staging area can have up to 10 subitems...
// Main Function which launches stage presentation - StagePresentation(JSONobj, DOM.Elem)

//Global Variables to maintain current states
var gCurrentNumber;
var gCurrentItemNumber;
var gCurrentObj;
var gAutoPlayStatus;
var gInterval;
var gTextButtons;
var gEnableAutoPlay;
gEnableAutoPlay=false;
gAutoPlayStatus = 0;
gCurrentNumber=0;
gCurrentItemNumber=0;
gTextButtons = false;





function AutoPlay()
{
gEnableAutoPlay=true;
BuildAutoPlayIcon();
gInterval = setInterval("AutoNext()",'3000')

}


//Moves stage presentation to the next subitem within the Item
function AutoNext()
{
if (gAutoPlayStatus==0)
{
	document.getElementById('StageTourIcon').innerHTML=BuildAutoPlayIcon();
	if(gCurrentItemNumber<gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length-1)
	{
		gCurrentItemNumber=gCurrentItemNumber+1;
		PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
	}
	else
	{
		if(gCurrentNumber<gCurrentObj.StagePresentation.arrItems.length-1)	
		{
			gCurrentNumber=gCurrentNumber+1;
			gCurrentItemNumber=0;
			PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
		}
		else
		{
			gCurrentNumber=0;
			gCurrentItemNumber=0;
			PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
		}
	}
}
else
{
		document.getElementById('StageTourIcon').innerHTML=BuildAutoPlayIcon();
}

}


//Create Base DOM Elements for Stage Presentation
function CreateStage(elem)
{
	elem.innerHTML="<div style=\"padding-top:5px; padding-bottom:5px; background-color:#fff;\"><div id=\"InnerStageWrapper\"><div id=\"Stage\"><div id=\"StageStatus\"></div><div id=\"StageMenu\"><div id=\"StagePrevious\"></div><div id=\"StageTourIcon\"></div><div id=\"StageNext\"></div></div><div id=\"StageImage\"></div><div id=\"StageVideoMenu\"></div><div id=\"StageCaption\"></div></div><div id=\"Staging\"></div></div></div>";
}

//Creates the HTML for the Stage Status Area
function BuildStageStatus(sStageTitle,nCurrent,nCount)
{
nCurrent=nCurrent+1;

	if(nCount>1)
	{
		return sStageTitle+' '+nCurrent+' of '+nCount;
	}
	else
	{
		return sStageTitle;
	}
}

//Moves stage presentation to the next subitem within the Item
function MoveNext()
{

	gCurrentItemNumber=gCurrentItemNumber+1;
	PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
}

//Moves stage presentation to the previous subitem within the Item
function MovePrevious()
{
	gCurrentItemNumber=gCurrentItemNumber-1;
	PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
}

//Creates HTML for the Next Button
function BuildNextButton(nCurrent, nCount)
{
	if(nCurrent<nCount-1)
	{	
		if(gTextButtons)
		{
			return '<a href="javascript:void(0);" onclick="javascript:MoveNext();"><img src="/img/colorscheme/'+getColorScheme()+'/but.next.gif"/></a>';
		}
		else
		{
			return '<div style=\"text-align:right; \"><a title="Next" href="javascript:void(0);" onclick="javascript:MoveNext();gAutoPlayStatus=1;"><img src="/img/colorscheme/'+getColorScheme()+'/icon.rightarrow.gif"/></a></div>';
		}
	}
	else
	{
		return '<img src="http://www.khov.com/img/spacer.gif" width="78" height="20">';
	}
	document.getElementById("StageVideoMenu").innerHTML="";
}

//Creates HTML for the Previous Button
function BuildPreviousButton(nCurrent, nCount)
{
	if(nCurrent+1>1)
	{	
		if(gTextButtons)
		{
			return '<a href="javascript:void(0);" onclick="javascript:MovePrevious();"><img src="/img/colorscheme/'+getColorScheme()+'/but.previous.gif"/></a>';
		}
		else
		{
			return '<div style=\"text-align:left; padding-left:15px; \"><a title="Previous" href="javascript:void(0);" onclick="javascript:MovePrevious();gAutoPlayStatus=1;"><img src="/img/colorscheme/'+getColorScheme()+'/icon.leftarrow.gif"/></a></div>';
		}
	}
	else
	{
		return '<img src="http://www.khov.com/img/spacer.gif" width="100" height="20">';
	}
	document.getElementById("StageVideoMenu").innerHTML="";
}

//Creates HTML for the Virtual Tour Icon/Link
function BuildAutoPlayIcon()
{
		if(gAutoPlayStatus==0)
		{
			return "<div style=\"text-align:center; \"><a title=\"Pause Slideshow\" href=\"javascript:void(0);\" onclick=\"javascript:gAutoPlayStatus=1;\"><img alt=\"Pause Slideshow\" src=\"/img/colorscheme/"+getColorScheme()+"/icon.autoplay.pause.gif\"/></div></a></div>";		
		}
		else
		{
			return "<div style=\"text-align:center; \"><a  title=\"Play Slideshow\" href=\"javascript:void(0);\" onclick=\"javascript:gAutoPlayStatus=0;\"><img  alt=\"Play Slideshow\" src=\"/img/colorscheme/"+getColorScheme()+"/icon.autoplay.play.gif\"/></div></a></div>";		
		}
}




//Creates HTML for the Virtual Tour Icon/Link
function BuildStageTourIcon()
{
	if(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sVirtualTourURL!='')
	{
		if(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].blnExternalTour)
		{
			return "<div style=\"float:left; \"><a href=\"javascript:void(0);\" onclick=\"window.open(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sVirtualTourURL,null, 'height=550,width=700,status=yes,toolbar=no,menubar=no,location=no');\"><img src=\"/img/colorscheme/"+getColorScheme()+"/icon.videocamera.gif\"/></div>Virtual Tour Available<br/> Click On Camera to View</a></div>";		
		}
		else
		{
			return "<div style=\"float:left; \"><a href=\"javascript:void(0);\" onclick=\"launchTour(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sVirtualTourURL);\"><img src=\"/img/colorscheme/"+getColorScheme()+"/icon.videocamera.gif\"/></div>Virtual Tour Available<br/> Click On Camera to View</a></div>";		
		}
	}
	else
	{
		return '<div><img src="/img/spacer.gif" width="200" height="1"></div>';
	}
}


//Stop Virtual Tour
function stopTour()
{
document.getElementById("StageVideoMenu").innerHTML="";
PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
}

//Play Virtual Tour
function playTour() 
{
document.getElementById('StageMenu').innerHTML='<div class="VideoButton"><a onclick="stopTour();"><img src="/img/common/videocontrols.stop.gif"></a></div><div class="VideoButton"><a onclick="flashProxy2.call(\'PauseVideo\');"><img src="/img/common/videocontrols.pause.gif"></a></div>';launchTour();
}

//Resume,UnPause Virtual Tour
function resumeTour() 
{
flashProxy2.call('PauseVideo');document.getElementById('StageVideoMenu').innerHTML='<div class="VideoButton"><a onclick="stopTour();"><img src="/img/common/videocontrols.stop.gif"></a></div><div class="VideoButton"><a onclick="pauseTour();"><img src="/img/common/videocontrols.pause.gif"></a></div>';
}

//Pause Virtual Tour
function pauseTour() 
{
flashProxy2.call('PauseVideo');document.getElementById('StageVideoMenu').innerHTML='<div class="VideoButton"><a onclick="stopTour();"><img src="/img/common/videocontrols.stop.gif"></a></div><div class="VideoButton"><a onclick="resumeTour();"><img src="/img/common/videocontrols.play.gif"></a></div>';
}

//Build HTML and Start Playing Virtual Tour
function launchTour(sURL)
{
uid2 = new Date().getTime();flashProxy2 = new FlashProxy(uid2, '/Flash/FlashJavascriptIntegrationKit/KhovJavaScriptFlashGateway.swf');

document.getElementById('StageVideoMenu').innerHTML='<div class="VideoButton"><a onclick="stopTour();"><img src="/img/common/videocontrols.stop.gif"></a></div><div class="VideoButton"><a onclick="pauseTour();"><img src="/img/common/videocontrols.pause.gif"></a></div>';
document.getElementById('StageImage').innerHTML='<div id="MediaContent"></div>'+gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle+' Virtual Tour';

if ((flash8Installed) && (265 != 0)) {
	var tag = new FlashTag('/Flash/Shells/VideoPlayer-400by300-RemoteControlled.swf?FLVFileName='+sURL, 400, 300);
	tag.setFlashvars('lcId='+uid2);
}
else
{
	if (384 != 0)
	{
		var tag = '<div id=\"StageTitle\">Flash Player Required</div><div id=\"StageImage\"><div style=\"text-align:center; height:300px; padding-top:100px;\"><p>To view the Virtual Tours, you will need to download Flash.</p><p><a style=\"color:#fff;\" target=_blank href=http://adobe.com/go/getflash>Click Here to Download.</a></p></div>';document.getElementById('StageImage').innerHTML=tag;
	}
}
	try
	{
		echoToElement('MediaContent',tag);
		flashProxy2.call('recieveJavascriptStop','stopTour');
	}
	catch(err)
	{
	document.getElementById('StageMenu').innerHTML='';
	}

	document.getElementById('StageCaption').innerHTML="";
}


//Insert Content Into Stage Area
function PopulateStage(sStageTitle,sImageURL, sImageTitle, sDescription, nCurrent, nCount)
{
	gCurrentItemNumber=nCurrent;
	document.getElementById('StageStatus').innerHTML=BuildStageStatus(sStageTitle,nCurrent,nCount);
	document.getElementById('StageImage').innerHTML="<img src=\"" + sImageURL + "\" width=\"400\" />\n"+sImageTitle;
	document.getElementById('StageCaption').innerHTML=sDescription;
	document.getElementById('StagePrevious').innerHTML=BuildPreviousButton(nCurrent,nCount);
	document.getElementById('StageTourIcon').innerHTML=BuildStageTourIcon();
	if(gEnableAutoPlay)
	{
		document.getElementById('StageTourIcon').innerHTML=BuildAutoPlayIcon();
	}

	document.getElementById('StageNext').innerHTML=BuildNextButton(nCurrent,nCount);
	document.getElementById("StageVideoMenu").innerHTML="";

	PopulateStaging(gCurrentObj.StagePresentation.arrItems, gCurrentNumber)
}


//Insert Content Into Staging Area
function PopulateStaging(arrItems, nFocusItem)
{
	var strTmp;

	strTmp='';
	for(i=0; i<arrItems.length; i++)
	{
		strTmp=strTmp+'<div id="StagingItem"><div class="StagingImage">';
		strTmp=strTmp+'<a ';
		//if(i==nFocusItem)
		//{
		//	strTmp=strTmp+'style="border: 5px #ff0 solid;" ';
		//}

		try
		{
			strTmp=strTmp+'href="javascript:void(0);" onclick="javascript:gCurrentItemNumber=1;gCurrentNumber='+i+';PopulateStage(gCurrentObj.StagePresentation.arrItems['+i+'].sTitle, gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems[0].sImageURL, gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems[0].sTitle,  gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems[0].sDescription,0,gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems.length);"><img src="'+unescape(arrItems[i].arrSubItems[0].sImageURL)+'" width="115"'
			if(i==nFocusItem)
			{
				strTmp=strTmp+' style="border: 5px #ffff00 solid;" ';
			}
			
			strTmp=strTmp+'/></a></div><div class="StagingText"><a href="javascript:void(0);" onclick="javascript:gCurrentItemNumber=1;gCurrentNumber='+i+';PopulateStage(gCurrentObj.StagePresentation.arrItems['+i+'].sTitle, gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems[0].sImageURL, gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems[0].sTitle,  gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems[0].sDescription,0,gCurrentObj.StagePresentation.arrItems['+i+'].arrSubItems.length);">'+arrItems[i].sTitle+'</a>';
			if(gCurrentObj.StagePresentation.arrItems[i].arrSubItems.length>1)
			{
				strTmp=strTmp+'<br/><div style="font-size:8pt; text-align:center;">('+gCurrentObj.StagePresentation.arrItems[i].arrSubItems.length+' Images)';

				if(gCurrentObj.StagePresentation.arrItems[i].sVirtualTourURL!='')
				{
					strTmp=strTmp+'&nbsp;<img src="/img/common/icon.virtual-tour.gif" alt="Virtual Tour Available - '+gCurrentObj.StagePresentation.arrItems[i].sTitle+'">';
				}

			strTmp=strTmp+'</div>';
			}
			else
			{
				if(gCurrentObj.StagePresentation.arrItems[i].sVirtualTourURL!='')
				{
					strTmp=strTmp+'&nbsp;<img src="/img/common/icon.virtual-tour.gif" alt="Virtual Tour Available - '+gCurrentObj.StagePresentation.arrItems[i].sTitle+'">';
				}
			}
			strTmp=strTmp+'</div>';
		}
		catch(err)
		{
			strTmp=strTmp+'><img src="/img/common/no.photo.medium.gif" width="115"></a></div><div class="StagingText"><a href="javascript:void(0);">'+arrItems[i].sTitle+'</a></div>';
		}

		if(gCurrentObj.StagePresentation.arrItems[i].Browsing)
		{
		}
		else
		{
			if(gCurrentObj.StagePresentation.arrItems[i].sPostingURL.replace("&amp;","&").indexOf(window.location)>-1)
			{
				strTmp=strTmp+'<a style="font-size:8pt; color:#f00;" href="'+gCurrentObj.StagePresentation.arrItems[i].sPostingURL+'">(Now Viewing This Item)</a>';	
			}
			else
			{
				strTmp=strTmp+'<a style="font-size:8pt; color:#f00;" href="'+gCurrentObj.StagePresentation.arrItems[i].sPostingURL+'">(Click Here to Edit)</a>';	
			}
		}
		strTmp=strTmp+'</div>';

	}
	document.getElementById('Staging').innerHTML=strTmp;
}

//Main Function which launches stage presentation
function StagePresentation(obj, elem)
{
	var nItemNum;

	nItemNum=0;
	gCurrentObj=obj;
	CreateStage(elem);

	for(i=0; i<gCurrentObj.StagePresentation.arrItems.length; i++)
	{
		if( gCurrentObj.StagePresentation.arrItems[i].blnForceFocus==true)
		{
			gCurrentNumber=i;
		}
	}

	try
	{
	// If the json object contains a sIntroText element, then tack it on.
	//if(obj.StagePresentation.sIntroText.length != 0){
	//	document.getElementById('StageWrapper').innerHTML = obj.StagePresentation.sIntroText + document.getElementById('StageWrapper').innerHTML;		
	//	}
	//else{
		PopulateStage(gCurrentObj.StagePresentation.arrItems[gCurrentNumber].sTitle, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sImageURL, gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sTitle,  gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems[gCurrentItemNumber].sDescription,gCurrentItemNumber,gCurrentObj.StagePresentation.arrItems[gCurrentNumber].arrSubItems.length);
	//	}
	}
	catch(err)
	{
	}

	PopulateStaging(gCurrentObj.StagePresentation.arrItems,gCurrentNumber);
}

//Get Colorscheme from stylesheet LINK tag in HTML
function getColorScheme()
{
var tmpArr;
var sColor;

for(i=0; i<document.getElementsByTagName('link').length; i++)
{
	if(document.getElementsByTagName('link')[i].href.indexOf('color')>0)
	{
		tmpArr=Right(document.getElementsByTagName('link')[i].href, document.getElementsByTagName('link')[i].href.length-document.getElementsByTagName('link')[i].href.indexOf('color')).split('.');
		sColor=tmpArr[1];
	}
}
return sColor;
}


function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}


