//<!--

/* rollover code by jason bonthron */

//================================================================== Rollover

function Rollover()
{
 this.forceArr   = [];
 this.imgDirectory = "";
 this.initSwitch   = false;

 // if an onload already exists grab it and store it
 this.old_onload = null;
 if(window.onload != null){ this.old_onload = window.onload; };	
}
Rollover.prototype.init  = rolloverInit;
Rollover.prototype.forceOverState = rolloverForce;
Rollover.prototype.imageDirectory = function(directory){ this.imgDirectory = directory; };

// ------------------------------------------------------ rolloverInit

function rolloverInit() 
{
    if(this.old_onload != null){ this.old_onload(); };    

    for(imageIterator = 0; imageIterator < document.images.length; imageIterator++)
      {
	var iteratingImgObj = document.images[imageIterator];
        var iteratingImgObjName = iteratingImgObj.name;
	
	// load only images with names
	if (iteratingImgObjName == ''){ continue; };  

	// hack to skip images w/ "_on" state
        if (iteratingImgObj.src.indexOf("_on") != -1){ continue; };  
	
	// find the link whose name matches the current image, then add methods to its mouseover events 
        var linkPathname = false;
	for(jab=0; jab < document.links.length; jab++)
	  {  
	    if(document.links[jab].name != iteratingImgObjName){ continue; }; 
	    
	    linkPathname = document.links[jab].pathname;
	    
	    document.links[jab].onmouseover = imgOn;
	    document.links[jab].onmouseout  = imgOff;
	  };
	
	// if this is still false, a link wasn't found
	if(!linkPathname){ continue; }; 
	
        // get the image extention (.jpg/.gif)
        srcLen = iteratingImgObj.src.length - 3;
        srcExt = iteratingImgObj.src.substring(srcLen);

	// create _overs src
	var tempImgSrcStart = iteratingImgObj.src.lastIndexOf("/") + 1;
	if(tempImgSrcStart == -1){ tempImgSrcStart = 0; };
	tempImgSrcEnd = iteratingImgObj.src.length - 4;
	var tempOverName = iteratingImgObj.src.substring(tempImgSrcStart, tempImgSrcEnd) + "_over";
	
	// set over state if link path matches the current url
	if( location.href.match( linkPathname ) != null )
	  { 
	    document.images[imageIterator].src = (this.imgDirectory + tempOverName + "." + srcExt); 
	  };       
	
	// hack to force an overstate by name
	for(var forceImg = 0; forceImg < this.forceArr.length; forceImg++)
	  {
	    if(iteratingImgObjName == this.forceArr[forceImg])
	      {
		document.images[imageIterator].src = (this.imgDirectory + tempOverName + "." + srcExt); 
	      };
	  };
	
	// create rollover image objects and append them as properties (src1,src2) to the original image
	iteratingImgObj.src1     = new Image(); 
	iteratingImgObj.src1.src = document.images[imageIterator].src;
	iteratingImgObj.src2     = new Image();
	iteratingImgObj.src2.src = (this.imgDirectory + tempOverName + "." + srcExt);
      }; // end image loop
    
    this.initSwitch = true; // turn switch on 
    
    /* if a preloader is present, call it last */
    if(window.preLoad != null){ preLoad(); }; 
    
} //end init()

function rolloverForce( name )
{
  this.forceArr = this.forceArr.concat( name );
};


//================================================================== imgOn()

function imgOn()
{
  if(!rollover.initSwitch){ return; };
  document[this.name].src = document[this.name].src2.src; 
}

//================================================================== imgOff()

function imgOff()
{
  if(!rollover.initSwitch){ return; };
  document[this.name].src = document[this.name].src1.src; 
}


var rollover = new Rollover();
rollover.imageDirectory("images/nav/");
window.onload = function(){ rollover.init(); };

// -->
