<!--

var PanNum         = 0;
var StillNum       = 0;
var zeroOrOne      = 1;
var delay          = 500; // time delay between Slides in milliseconds, multiplied by delayCt
var delayMax       = 8;   //  "     "      8 * 500 = 4000 milliseconds, or 4 seconds
var delayCt        = 0;   // 
var currentDisplay = "pano";
var run            = null;
var rotateFinished = null;
var boldBorderId   = "thPnId0";
var stillImages    = null;
var mouseDown      = false;
var mouseActive    = false;
var panViewed      = false;
var loading        = true;

stillLoaded  = new Array(stillCt);

var viewerInit     = true;
var stillInit      = false;

var borderSoft     = 'solid medium #006666';
var borderRed      = 'solid medium red';

var slideShowRunning = false;

scrollerObjs = {};
scrollerObj.speed=100;

//document.getElementById("f1").innerHTML = "scrollByDx done";

document.onmouseup = function(event)
{
	mouseDown = false;
}
function makeClickable(object, viewPortId)
{
	object.onmousedown = function(event)
	{	
  		var mousePos = mouseCoords(event);
  		var scObj    = scrollerObjs[viewPortId];
  
  		if (scObj)
  		{
  		    mouseDown   = true;
  		    mouseActive = true;
  		    
    		scObj.mouseStart  = mousePos.x;
    		return false;
		}
	}
	object.onmousemove = function(event)
	{
  		if (mouseDown && mouseActive) 
  		{
  	 	    var scObj = scrollerObjs[viewPortId];
  			if (scObj)
  			{
  				var mousePos = mouseCoords(event);
    			var delta    = mousePos.x - scObj.mouseStart;
    		
    			scObj.manualScroll(delta);
    			scObj.mouseStart = mousePos.x; 		
  			}
  		} 
	}
	object.onmouseout = function(event)
	{
		mouseActive = false;
	}
	object.onmouseover = function(event)
	{
		mouseActive = true;
	}
}

function mouseCoords(ev)
{
	ev = ev || window.event;
	
	if (ev.pageX || ev.pageY) return {x:ev.pageX, y:ev.pageY};
	
	return {x:(ev.clientX + document.body.scrollLeft - document.body.clientLeft),
		    y:(ev.clientY + document.body.scrollTop  - document.body.clientTop)};
}

// initScript() contains initialization logic that requires the
// window to be fully loaded before it will run successfully, so
// is called from the body onLoad event handler.

function initScript(flashMovie)
{ 
  var myWidth    = 0, myHeight    = 0;
  var goalWidth  = 0, goalHeight  = 0;
  var deltaWidth = 0, deltaHeight = 0;

  var gotDimensions = false;

  new scrollerObj('thSt1', 'thSt2', sSlider, stillScrollComplete);
  new scrollerObj('thPn1', 'thPn2', pSlider, panScrollComplete);

  boldBorderId = "thStId0";
  var thisDiv = document.getElementById(boldBorderId);
  thisDiv.style.border = borderRed;
  
  if (typeof(window.innerWidth) == 'number')
  { //Non-IE
    myWidth    = window.innerWidth;
    myHeight   = window.innerHeight;
    goalWidth  = 830;
    goalHeight = 760;
    gotDimensions = true;
  }
  else
  {
    goalWidth  = 810;
    goalHeight = 780;
    if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
    { //IE 6+ in 'standards compliant mode'
      myWidth  = document.documentElement.clientWidth;
      myHeight = document.documentElement.clientHeight;
      gotDimensions = true;
    }
    else if (document.body && ( document.body.clientWidth || document.body.clientHeight ) )
    { //IE 4 compatible
      myWidth  = document.body.clientWidth;
      myHeight = document.body.clientHeight;
      gotDimensions = true;
    }
  }

  if (!gotDimensions)
    return;

  if (myWidth < goalWidth)
     deltaWidth = goalWidth - myWidth;

  if (myHeight < goalHeight)
     deltaHeight = goalHeight - myHeight;

  if (deltaWidth > 0 || deltaHeight > 0)
     window.resizeBy(deltaWidth, deltaHeight);
}

// callback functions when thumbnail scroll is complete

function panScrollComplete()
{
  panStart();
}
function stillScrollComplete() {}

// hide and show agent tabs

function agtClick(tabId)
{
  if (tabId == "la1")
  {
    if (clTab3)
    {
      hideDiv("listingAgent2");
      hideDiv("listingAgent3");
      hideDiv("navHelp");
      showDiv("listingAgent1");
    }
    else
    if (clTab2)
    {
      hideDiv("listingAgent2");
      hideDiv("navHelp");
      showDiv("listingAgent1");
    }
    else
    {
      hideDiv("navHelp");
      showDiv("listingAgent1");
    }
  }
  else
  if (tabId == "la2")
  {
    if (clTab3)
    {
      hideDiv("listingAgent1");
      hideDiv("listingAgent3");
      hideDiv("navHelp");
      showDiv("listingAgent2");
    }
    else
    {
      hideDiv("listingAgent1");
      hideDiv("navHelp");
      showDiv("listingAgent2");
    }
  }
  else
  if (tabId == "la3")
  {
    hideDiv("listingAgent1");
    hideDiv("listingAgent2");
    hideDiv("navHelp");
    showDiv("listingAgent3");
  }
  else
  if (tabId == "nav")
  {
    if (clTab3)
    {
      hideDiv("listingAgent1");
      hideDiv("listingAgent2");
      hideDiv("listingAgent3");
      showDiv("navHelp");
    }
    else
    if (clTab2)
    {
      hideDiv("listingAgent1");
      hideDiv("listingAgent2");
      showDiv("navHelp");
    }
    else
    {
      hideDiv("listingAgent1");
      showDiv("navHelp");
    }
  }
}

var currentListingTab = 1;

function cycleListingTabs()
{
  var thisListingTab = currentListingTab;
  currentListingTab++;
  if (currentListingTab > listingTabs)
  {
    currentListingTab = 1;
  }
  if (currentListingTab != thisListingTab)
  {
    var tabId = "la" + currentListingTab;
    agtClick(tabId);
  }
}

// hide and show bottom tabs

function tabClick(tabId)
{
  //alert("tablClick:  " + tabId);

  if (tabId == "still")
  {
    stopSlideShow();
    hideDiv("panTab");
    hideDiv("descTab");
    hideDiv("listDTab");
    showDiv("stillTab");
    gotoStill(StillNum);
    setBorders();
  }
  else
  if (tabId == "pan")
  {
    stopSlideShow();
    hideDiv("stillTab");
    hideDiv("descTab");
    hideDiv("listDTab");
    showDiv("panTab");
    gotoPan(PanNum);
    setBorders();
  }
  else
  if (tabId == "desc")
  {
    hideDiv("stillTab");
    hideDiv("panTab");
    hideDiv("listDTab");
    showDiv("descTab");
  }
  else
  if (tabId == "listDet")
  {
    hideDiv("stillTab");
    hideDiv("panTab");
    hideDiv("descTab");
    showDiv("listDTab");
  }
}

function hideDiv(divId)
{
  if (document.getElementById) // DOM3 = IE5, NS6
  {
    var thisDiv = document.getElementById(divId);
    thisDiv.style.visibility = 'hidden';
  }
  else
  if (document.layers)         // Netscape 4
    eval("document."+divId+".visibility = 'hidden'");
  else                         // IE 4
    eval("document.all."+divId+".style.visibility = 'hidden'");
}

function showDiv(divId)
{
  if (document.getElementById)   // DOM3 = IE5, NS6
  {
    var thisDiv = document.getElementById(divId);
    thisDiv.style.visibility = 'visible';
  }
  else  
  if (document.layers)           // Netscape 4
    eval("document."+divId+".visibility = 'visible'");
  else                           // IE 4
    eval("document.all."+divId+".style.visibility = 'visible'");
} 

// calls to flash

var panStopped = false;

function panStop()
{
  	if (viewerInit) document.FlexViewer.jsStopPan(); 
  	panStopped = true;
}
function panStart()
{
	if (viewerInit) document.FlexViewer.jsStartPan(); 
  	panStopped = false;
}

// functions triggered from flash

function mouseClickInViewer(parm)
{
  //alert("mouseClickInViewer");
  stopSlideShow();
}

function viewerInitComplete(parm)
{
  //alert("viewerInitComplete");
  viewerInit = true;
  checkLoadStatus();
}

function viewerInitProgress(parm)
{
  //document.getElementById("f1").innerHTML = '<img src="images/loading.gif" style="position:absolute; left:0px; top:0px;" alt="">' +
  //'<span style="position:absolute; left:240px; top:0px; color:#33FF99; z-index:3000"> ' + parm + '</span>';
  document.getElementById("f1load").innerHTML = '<span> ' + parm + '</span>';
}

// ====== panorama functions

function gotoPan(imgNo, fromThumbNailClick)
{
  stopSlideShow();
  
  if (imgNo > (panCt -1)) imgNo = 0;
  
  PanNum = imgNo;
 
  document.FlexViewer.jsChangeFlashImage("pano", PanNum);
  panStart();
  document.getElementById("f1").innerHTML = panName[PanNum];
  currentDisplay = "pano";
  
  setBorders();
}

function autoChgPan()
{
  PanNum += 1;

  if (PanNum >= panCt)
  {
    PanNum = 0;
    nextStill(true);
    return; 
  }
  
  document.FlexViewer.jsChangeFlashImage("pano", PanNum);
  document.getElementById("f1").innerHTML = panName[PanNum];
  
  setBorders();
  positionFilmStrip();
  cycleListingTabs();

  if (slideShowRunning) rotateFinished = window.setTimeout("rotatePanFinished()", jsTime[PanNum]);
}

function rotatePanFinished() 
{
  if (rotateFinished != null)
  {
    window.clearTimeout(rotateFinished);
    rotateFinished = null;
  }

  if (slideShowRunning) autoChgPan();
}

function nextPanorama(resetToZero)
{
  //alert("nextPanorama, resetToZero = " + resetToZero);
  var slideShowState = slideShowRunning;

  stopSlideShow();

  if (resetToZero)
  {
    tabClick('pan');
    PanNum = 0;
    
    var scObj = scrollerObjs["thPn1"];
  	if (scObj) scObj.manualScrollTo(0);
  }
  else
  {
    PanNum += 1;

    if (PanNum >= panCt)
    {
      PanNum = 0;
      slideShowRunning = slideShowState;
      nextStill(true);
      return;
    }
  }

  gotoPan(PanNum, false);
  slideShowRunning = slideShowState;

  if (slideShowRunning)
  {
    setSlideShowRunningFields();
    rotateFinished = window.setTimeout("rotatePanFinished()", jsTime[PanNum]);
  }
}



// ====== still functions

function gotoStill(imgNo, fromThumbNailClick)
{
  stopSlideShow();

  if (imgNo > (stillCt - 1)) imgNo = 0;
  
  StillNum = imgNo;
 
  document.FlexViewer.jsChangeFlashImage("still", StillNum);
  document.getElementById("f1").innerHTML = stillName[StillNum];
  currentDisplay = "still";
  
  setBorders();
}

function autoChgStill()
{
  //alert("autoChgStill, StillNum = " + StillNum);
  var proceedToPan = false;

  var imgTst = StillNum + 1;

  if (imgTst >= stillCt)
  {
    proceedToPan = true;
    imgTst = 0;
  }

  delayCt += 1;

  if (delayCt < delayMax) return;

  delayCt = 0;

  if (proceedToPan)
  {
    nextPanorama(true);
    return;
  }
  StillNum = imgTst;
  
  document.FlexViewer.jsChangeFlashImage("still", StillNum);
  document.getElementById("f1").innerHTML = stillName[StillNum];
  currentDisplay = "still";
  
  setBorders();
  positionFilmStrip();
  cycleListingTabs();
}

function nextStill(resetToZero)
{
  var slideShowState = slideShowRunning;

  stopSlideShow();

  if (resetToZero)
  {
    tabClick('still');
    StillNum = 0;
    
    var scObj = scrollerObjs["thSt1"];
  	if (scObj) scObj.manualScrollTo(0);
  }
  else
  {
    StillNum += 1;

    if (StillNum >= stillCt)
    {
      StillNum = 0;
      slideShowRunning = slideShowState;
      nextPanorama(true);
      return;
    }
  }

  gotoStill(StillNum, false);
  slideShowRunning = slideShowState;

  if (slideShowRunning)
  {
    setSlideShowRunningFields();
    delayCt = 0;
    run = window.setInterval("autoChgStill()", delay);
  }
}

function setBorders()
{
  var softBorderId = boldBorderId;

  if (currentDisplay == "still")
    boldBorderId = "thStId" + StillNum;
  else
    boldBorderId = "thPnId" + PanNum;
    
  var thisDiv;
  
  try 
  {
  	thisDiv = document.getElementById(softBorderId);
  	thisDiv.style.border = borderSoft;
  }
  catch(e)
  {
  	alert("softBorderId = " + softBorderId + ", stillCt = " + stillCt + ", panCt = " + panCt);
  }
  
  try 
  {
  	thisDiv = document.getElementById(boldBorderId);
  	thisDiv.style.border = borderRed;
  }
  catch(e)
  {
  	alert("boldBorderId = " + boldBorderId + ", stillCt = " + stillCt + ", panCt = " + panCt);
  }
}

function nextImage()
{
  stopSlideShow();

  if (currentDisplay == "still")
    nextStill(false);
  else
    nextPanorama(false);
}

// start and stop slideShow

function startSlideShow()
{
  //alert("startSlideShow(), currentDisplay = " + currentDisplay);
  if (currentDisplay == "still")
  { 
    StillNum += 1;
    if (StillNum >= stillCt) StillNum = 0;
    gotoStill(StillNum, false);
    delayCt = 0;
    run = window.setInterval("autoChgStill()", delay);
  }
  else
  {
    gotoPan(PanNum, false);
    rotateFinished = window.setTimeout("rotatePanFinished()", jsTime[PanNum]);
  }
  setSlideShowRunningFields();
}

function setSlideShowRunningFields()
{
  slideShowRunning = true;
  showDiv("stopBtn");
  hideDiv("playBtn");
}

function stopSlideShow()
{
  //alert("stopSlideShow(), currentDisplay = " + currentDisplay);
  panStop();
 
  slideShowRunning = false;

  if (run != null)
  {
    window.clearInterval(run);
    run = null;
  }

  if (rotateFinished != null)
  {
    window.clearTimeout(rotateFinished);
    rotateFinished = null;
  }
  showDiv("playBtn");
  hideDiv("stopBtn");
}

// set opacity depending on browser

function setOpacity(obj, opacity)
{
  opacity = (opacity == 100) ? 99.999 : opacity;

  // IE/Win
  try {
    obj.style.filter = "alpha(opacity:"+opacity+")";
  } catch(e)
  {
    try {
    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity = opacity/100;
    } catch(e)
    {
      try {
  	  // Older Mozilla and Firefox
  	  obj.style.MozOpacity = opacity/100;
  	  } catch(e)
  	  {
		try {
  		// Safari 1.2, newer Firefox and Mozilla, CSS3
  		obj.style.opacity = opacity/100;
  		} catch(e) {}
  	  }
  	}
 }
}
function checkLoadStatus()
{
  if (viewerInit)
  {
    loading = false;
    document.getElementById("panelMask").style.display='none';
    document.getElementById("f1").innerHTML = stillName[StillNum];
    setSlideShowRunningFields();
    nextPanorama(true);
    //run = window.setInterval("autoChgStill()", delay);
  }
}

// position film strip

function positionFilmStrip()
{
  if (currentDisplay == "still")
  {
    var dx = -160 * StillNum;
        dx -= parseInt(document.getElementById("thSt2").style.left);
    //alert("dx = " + dx);
    if (dx != 0) scrollBy('thSt1', dx);
  }
  else
  {
    var dx = -160 * PanNum;
        dx -= parseInt(document.getElementById("thPn2").style.left);
    if (dx != 0)
    {
      panStop();
      scrollBy('thPn1', dx);
    }
  }
}

function scrollBy(viewPortId, dx)
{
  var scObj = scrollerObjs[viewPortId];

  if (scObj == null || dx == 0) return;

  scObj.dx   = dx;
  scObj.totx = 0;
  scObj.dir = (dx < 0) ? -1 : 1;

  if (scObj.dir < 0)
    scObj.endX = -scObj.maxX;
  else
    scObj.endX = 0;

  scObj.scrollByDx();
}
// -->
