/***  (C)Scripterlative.com

S m a r t R o l l.

Pre-settable Latching Rollover Buttons with 2 or 3-State Operation, Pre-settable buttons and 
Optional Captioning.

 Info: http://scripterlative.com


*** DO NOT EDIT BELOW THIS LINE ***/

var SmartRoll=
{
   
 imgArray:[], bon:0xf&0, logged:0,
 
 iHover:function(name)
 {
   var e=this.getElem(name), obj, objArray; 
   
   if( e  )
   {
    obj=e.elem; objArray=e.arr;  
      
    if(!obj.locked)
    {  
     if( !obj.superElem.triState )  
     for( var i in objArray )
      if( objArray[i] != obj && objArray[i].locked)
       objArray[i].holder.src = objArray[i].defImg.src; 
      
     obj.holder.src = obj.overImg.src;     
    }
   }
    
  if( obj.superElem.captionHolder && obj.caption )
   obj.superElem.captionHolder.childNodes[0].data = obj.caption;  
 }, 
 
 iUnHover:function(name)
 {
   var e=this.getElem(name), obj, objArray; 
    
   if( e )
   {    
     obj=e.elem; objArray=e.arr;  
    
     if( !obj.locked )
     {  
      if( !obj.superElem.triState )  
       for( var i in objArray )
        if( objArray[i] != obj && objArray[i].locked)
         objArray[i].holder.src = objArray[i].overImg.src; 
      
      obj.holder.src = obj.defImg.src;     
     }
   }  
   
  if( obj.superElem.captionHolder && obj.caption )
   obj.superElem.captionHolder.childNodes[0].data = obj.superElem.defCaption; 
 },
 
 
 iSelect:function(name)
 {
   var e=this.getElem(name), obj, objArray; 
   
   if( e )
   {  
    obj=e.elem; objArray=e.arr;
     
    obj.locked = obj.superElem.unLatch ? !obj.locked : true;  
  
    for( var i in objArray )
     if( objArray[i] != obj)
     {
      objArray[i].locked = false;
      objArray[i].holder.src = objArray[i].defImg.src;
     } 
  
    obj.holder.src = obj.locked ? (obj.superElem.triState ? obj.activeImg.src : obj.overImg.src) : obj.defImg.src;  
   }
 }, 

 over:function()
 {
  if(document.images)  
  {
   var eHandler = null, 
       objName = arguments[0].split('|')[0],
       di = document.images,  
       imgObj = this.imgArray[ objName ] = {},
       imageData = null, step = 2, img = null, len = 0; 
   
   imgObj.objectName = objName,
   imgObj.triState = (arguments.length > 3 && di[arguments[4]]) || arguments.length==4,
   step = imgObj.triState ? 3 : 2,
   imgObj.unLatch=/\|unlatch$/i.test(arguments[0]),
   imgObj.data = [];this.cont();
   len = this.bon ? arguments.length : 0;
       
   for(var i=1; i<len  && (img=(di[arguments[i]]||document.getElementById(arguments[i]))); i+=step)
   {
    imageData = imgObj.data[ arguments[i] ] = {};
    
    imageData.locked=false;
    
    imageData.defImg = new Image();
    imageData.defImg.src = img.src;
    
    imageData.overImg = new Image();
    imageData.overImg.src = arguments[i+1];    
    
    imageData.holder=img;
    imageData.superElem=imgObj;    
        
    if(imgObj.triState)
    {
     imageData.activeImg=new Image();
     imageData.activeImg.src=arguments[ i+2 ];
    }
    
    if(!!img.parentNode && /^a$/i.test(img.parentNode.tagName) /** && img.parentNode.childNodes.length==1 **/ )
     img=img.parentNode;  
    
    this.addToHandler(img, 'onmouseover',(function(obj, arr){return function(){if(typeof SmartRoll!='undefined')SmartRoll.iHover(obj, arr);}})(  arguments[i]/*imageData, imgObj.data*/ ));   
    
    this.addToHandler(img, 'onfocus', img.onmouseover);
 
    this.addToHandler(img, 'onmouseout', eHandler=(function(obj, arr){return function(){if(typeof SmartRoll!='undefined')SmartRoll.iUnHover(obj, arr);}})(  arguments[i] /*imageData, imgObj.data*/ ));   
        
    this.addToHandler(img, 'onblur', eHandler);

    this.addToHandler(img, 'onclick',(function(obj, arr){ return function(){if(typeof SmartRoll!='undefined')SmartRoll.iSelect(obj, arr);}})( arguments[i] /*imageData, imgObj.data*/));
   } 
   
   if(len&&this.bon)
    if(i!=arguments.length) /*28432953637269707465726C61746976652E636F6D*/   
     alert("Image with Name/ID: '"+arguments[i]+"', not found.");     
    else
     this.presetButton(imgObj.data);
  }
 
 }, 
 

 setCaptions:function()  
 {
 
  var objName=arguments[0], cn;
  
  this.imgArray[objName].captionHolder=document.getElementById?document.getElementById(arguments[1]):null;
  
  if(this.imgArray[objName].captionHolder)
  {
   if(this.imgArray[objName].captionHolder.childNodes.length==0)
    this.imgArray[objName].captionHolder.appendChild(document.createTextNode('\xA0'));//HARD SPACE #160 
     
   cn=this.imgArray[objName].captionHolder.childNodes;
        
   cn[0].data = this.imgArray[objName].defCaption=arguments[2]!=''?arguments[2]:cn.length?cn[0].data:"";
    
   for(var i=3; i<arguments.length; i+=2)
    this.imgArray[objName].data[arguments[i]].caption = arguments[i+1];
  }
  
 }, 
 
 presetButton:function(imgObj) // Do not call
 {
  var searchData,  rxp=/(\bSmartRoll)=(\w+)/ig;
    
  if(window.location.search && window.location.search.length)
   while( (searchData = rxp.exec(window.location.search) ) ) 
    if( imgObj[ searchData[2] ] )
     this.setButton( searchData[2] );    
 },
  
 
 getElem:function(name)
 {
  var el=null;
    
  for( var i in this.imgArray )
   for( var j in this.imgArray[i].data ) 
    if( j==name)
     el = {elem:this.imgArray[i].data[j], arr:this.imgArray[i].data};
     
  return el;   
 },
 
 
 setButton:function(imgName, otherFrame)
 {  
  var tFrame=otherFrame||self;  
  
  try
  { 
   if( tFrame.document.images[imgName] )
    tFrame.SmartRoll.iSelect( imgName );
  }
  catch(e)
   { 
    setTimeout((function(a,b){return function(){SmartRoll.setButton(a,b);}})(imgName, otherFrame), 500); 
   } 
 },
 
 addToHandler:function(obj, evt, func)
 {
  if(obj[evt])
   {
    obj[evt]=function(f,g)
    {
     return function()
     {
      f.apply(this,arguments);
      return g.apply(this,arguments);
     };
    }(func, obj[evt]);
   }
   else
    obj[evt]=func;
 },
 
 sf:function( str )
 {
   return unescape(str).replace(/(.)(.*)/, function(a,b,c){return c+b;});
 },
 
 cont:function()
 {
  this.ximg=new Image();
var d=document,site="http://promit.com",sn="SmartRoll",grace=1814400000,then,dt=new Date(),now=dt.getTime();
if((this.bon|=0xf)&&!this.logged++&&!/dAlert=/.test(d.cookie)&&typeof e76x39=="undefined"&&!/scripterlative\.|\/\/\/*\w+\/|\/\/[^\:]+\:|file\:/.test(location.href))
{
	if((then=d.cookie.match(/(^|\s|;)scriptFreeload=(\d+)/))&&(then=Number(then[2]))+grace<now)
	{
		var bdy=d.getElementsByTagName("body")[0],box=d.createElement("div"); 		
		e76x39=box;
		this.ximg.onload=function(){
try{ }catch(e){};};}dt.setDate(dt.getDate()+60);}
  
 }
 
}
