// JavaScript Document
// DW scripts
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
// Custom scripts
function getRegistry(whichTopic){
		if (whichTopic=="All"){
			var seriesList = new Array();
			seriesList[0]="capabilities.html";
			seriesList[1]="clients.html";
			seriesList[2]="portfolio00.html";
			seriesList[3]="portfolio01.html";
			seriesList[4]="portfolio02.html";
			seriesList[5]="portfolio03.html";
			seriesList[6]="portfolio04.html";
			seriesList[7]="portfolio05.html";
			seriesList[8]="portfolio06.html";
			seriesList[9]="portfolio07.html";
			seriesList[10]="portfolio08.html";
			seriesList[11]="portfolio09.html";
			seriesList[12]="portfolio10.html";
			seriesList[13]="portfolio11.html";
			seriesList[14]="portfolio12.html";
			seriesList[15]="portfolio13.html";
			seriesList[16]="portfolio14.html";
			seriesList[17]="portfolio15.html";
			seriesList[18]="portfolio16.html";
			seriesList[19]="portfolio17.html";
			seriesList[20]="portfolio18.html";
			seriesList[21]="portfolio19.html";
			seriesList[22]="portfolio20.html";
			seriesList[23]="portfolio21.html";
			seriesList[24]="portfolio22.html";
			seriesList[25]="portfolio23.html";
			seriesList[26]="about.html";
			seriesList[27]="contact.html";
			return seriesList;
		}
	}
	
function getTitle(whichPage){
	switch (whichPage){
		case "samples_3d01.html":
			return "Making It Real";
		case "samples_3d02.html":
			return "Visualizing an Entire Event Space";
		case "samples_3d03.html":
			return "Creating an Atmosphere";
		case "samples_3d04.html":
			return "Visualizing Large Event Sites";
		case "samples_3d05.html":
			return "Working With Smaller Spaces";
		case "samples_3d06.html":
			return "Building Virtual Sets";
		case "samples_3d07.html":
			return "Comping Vehicles and Props";
		case "samples_illo01.html":
			return "General Illustrations";
		case "samples_illo02.html":
			return "Spot Illustrations and Icons";
		case "samples_illo03.html":
			return "Children's Illustrations";
		case "samples_illo04.html":
			return "Technical Illustrations";
		default:
			return "";		
	}
}

function goNewPage(whichDirection) {
	var currentPage = getShortLocation();
	var seriesList = getRegistry(getCurrentTopic());
		for (var i = 0; i < seriesList.length; i++) {
			if (seriesList[i]==currentPage) {
				break;
			}
		}
		if (whichDirection=="next") {
			if (i==(seriesList.length)-1) {
				i=0;
			} else {
				i=i+1
			}
		} else {
			if (i==0) {
				i=(seriesList.length-1)
			} else {
				i=i-1;
			}
		}
		//alert(seriesList[i]);
		self.document.location.href=seriesList[i];
	}
	
function getShortLocation(){
		var myString = self.document.location + "";
		var myArray = myString.split("/");
		var myResult = myArray[myArray.length-1];
		if (myResult == ""){
			return "index.html";
		} else {
			myArray = myResult.split("#");
			return myArray[0];
		}
	}
	
function getCurrentTopic(){
		//var myLocation=getShortLocation();
		//var myResult="none"
		//if (myLocation.substring(0,8) != "samples_"){
			//return myResult;
		//} else {
			//myResult = myLocation.substring(8,myLocation.indexOf("0"));
			//return myResult;
		//}
		return "All";
	}
	
function createNavThumbs(){
	    var x=document.getElementById('thumbbtns');
		var seriesList = getRegistry(getCurrentTopic());
		var newHTML = "";
		for (var i = 0; i < seriesList.length; i++) {
			newHTML=newHTML+getThumbCode(seriesList[i])+getSpacerCode();
		}
	    x.innerHTML=newHTML;
	}

function getSpacerCode(){
		var myCode = "<img src='images/spacer.gif' width='5' height='30' />";
		return myCode;
	}

function getThumbCode(whichPage){
		var whichThumb = whichPage.substring(0,whichPage.length-5); //eliminate the file suffix
		var myCode = "<a class='navthumb' href='"+whichPage+"'><img src='images/"+whichThumb+"_t.gif' width='30' height='30' border='0' /><span>"+getTitle(whichPage)+"</span></a>";
		return myCode;
	}
	
function showPoster(imageURL,leftOffset,topOffset,captionText){
		var thePoster = document.getElementById("posterBox");
		var theImage = document.getElementById("imageBox");
		var theCaption = document.getElementById("posterCaption");
		theImage.src = "images/spacer.gif"; //attempting to clear the previous image, if present
		theImage.src = imageURL;
		thePoster.style.left = leftOffset;
		thePoster.style.top = topOffset;
		if (captionText != null){
			theCaption.innerHTML = captionText;
		}
		theImage.onLoad = fade("posterBox","in");
	}

function hidePoster(){
		fade("posterBox","out");
		//document.getElementById("imageBox").src = "images/spacer.gif";
	}
	
function setLoc(eid,whichTop,whichLeft){
		var element = document.getElementById(eid);
		eid.style.left = whichLeft;
		eid.style.top = whichTop;
	}
//
//Scripts for running the fade-in/fade-out. Adapted from switchonthecode.com.
var TimeToFade = 500.0;

function fade(eid,whichDirection){
	//FadeState key: -2 means fully transparent, 2 means fully opaque, -1 means fading to transparent, 1 means fading to opaque
 var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
	  //we're initializing the fade for the first time on this element. Its opacity should be set to 0, even though it is also currently hidden.
      element.FadeState = -2;
	  element.style.opacity = "0";
	  element.style.filter = 'alpha(opacity = 0)';
  }
  
  if(whichDirection == "in" && element.FadeState == -2)
  {
	element.style.visibility = "visible";
  }
  
  if(whichDirection == "in" && element.FadeState > 0)
  {
	return;
  }
  if(whichDirection == "out" && element.FadeState < 0)
  {
	return;
  }
   
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  }  
}
function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element = document.getElementById(eid);
  
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
if(element.FadeState == 1)
	{
		element.FadeState = 2;
	}
	else
	{
		element.FadeState = -2;
		element.style.visibility = "hidden";
	}
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}
