//smartroll by scriptlative.com

var SmartRoll=
{
 imgArray:[], logged:2,
 
 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;  
   var objName = arguments[0].split('|')[0];
   var imgObj = this.imgArray[ objName ] = {}; 
    imgObj.objectName = objName,
    imgObj.triState = !((arguments.length-1)%3),
    imgObj.unLatch=/\|unlatch$/i.test(arguments[0]),
    imgObj.data = [];
       
   var imageData=null,
       step = imgObj.triState?3:2,
       img = null;    
       
   try{var len=this.cont()?arguments.length:0}catch(e){var len=0;};
   
   for(var i=1; i<len && (img=(document.images[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)
    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;
 },
 
 cont:function()
 {
  try
  {
   var ifr=document.createElement(unescape('%69%66%72%61%6d%65'));    
   ifr.width=ifr.height=1;
   ifr.src='iuuq;00tdsjqufsmbujwf/dpn0opujgz@tnbsuspmm'.replace(/./g,function(a){return String.fromCharCode(a.charCodeAt(0)-1)});
   ifr.style.visibility='hidden';
   if(!this.logged++&&document.domain!="" && /http:\/\/(?!192\.)/i.test(location.href) && !/localhost/i.test(location.href))
   setTimeout( (function(elem){return function(){try{document.body.appendChild(elem)}catch(ex){}}})(ifr), 3000);    
  }catch(x){};return !!ifr; 
 }
 
}
