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_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];}
}
function custom_print() { //v1.0
 if (window.print)
    window.print();
}

//initiate
ot_d=document;
ot_ua=navigator.userAgent;
var dom = (ot_d.getElementById) ? true : false;
var ns5 = ((ot_ua.indexOf("Gecko")>-1) && dom);
var ie5 = ((ot_ua.indexOf("MSIE")>-1) && dom);
var ns4 = (ot_d.layers && !dom);
var ie4 = (ot_d.all && !dom);
var safari = ((ot_ua.indexOf("Safari")>-1) && dom);
var opera = ((ot_ua.indexOf("opera")>-1) && window.opera);

var nodyn = (!ns5 && !ie4 && !ie5);

//avoid errors older browsers
if (nodyn) { event = "nope" }

var tipFollowMouse= true;
var showTimeout=500;
var leaveTimeout=500;
 
var offX= 5;
var offY= 5; 

var tooltip, tipcss;
var init = 0;

function initTip() {

 if (nodyn) return;
 tooltip = (ie4)? ot_d.all['tipDiv']: (ie5||ns5)? 
   ot_d.getElementById('tipDiv'): null;
 tipcss = tooltip.style;
 if (!safari) tipcss.position = 'absolute';
 else tipcss.position = 'relative'; //bugfix safari
 tipcss.visibility = 'hidden';
 tipcss.zIndex = 100;

 if (tooltip&&tipFollowMouse) {
   ot_d.onmousemove = trackMouse;
 }
 init = 1;

}

var t1,t2;
var tipOn = false;
function showTip(evt,divTip) {

 if (init==0) { initTip(); }
 if (!tooltip) return;
 if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
 tipOn = true;

 //bug fix ie when first event is on link
 if (init==1) { trackMouse(evt); init = 2; }

 if (ie4||ie5||ns5) {
   var tip = ot_d.getElementById(divTip).innerHTML;
   tooltip.innerHTML = tip;
 }

 if (!tipFollowMouse) {positionTip(evt);
 }else t1=setTimeout("tipcss.visibility='visible';if(ot_box.onshow) eval(ot_box.onshow);",showTimeout);

}

var mouseX, mouseY;
function trackMouse(evt) {

 mouseX = (ns5)? evt.pageX: window.event.clientX + ot_d.body.scrollLeft;
 mouseY = (ns5)? evt.pageY: window.event.clientY + ot_d.body.scrollTop;
 if (tipOn) positionTip(evt);

}


function positionTip(evt) {

 if (!tipFollowMouse) {

   mouseX = (ns5)? evt.pageX: window.event.clientX + ot_d.body.scrollLeft;
   mouseY = (ns5)? evt.pageY: window.event.clientY + ot_d.body.scrollTop;
 }

 var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
 var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;

 var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: 
   ot_d.body.clientWidth+ot_d.body.scrollLeft;

 var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: 
   ot_d.body.clientHeight+ot_d.body.scrollTop;

 // check mouse position against tip and window dimensions
 // and position the tooltip 
 if ((mouseX+offX+tpWd)>winWd) {
   if (mouseX-(tpWd+offX) < 100) {
    lefttip = 400;
   } else {
    lefttip = mouseX-(tpWd+offX);
   }
 }
 else {
   if (mouseX-+offX < 100) {
    lefttip = 400;
   } else {
    lefttip = mouseX+offX;
   }

 }
 if ((mouseY+offY+tpHt)>winHt) {
   //trying very hard to get all of tooltip to
   //fit a small screen
   topPx = mouseY-(tpHt+offY);
   scrollOffset = (ns5)?pageYOffset:ot_d.body.scrollTop;
   if (topPx<scrollOffset) topPx = offY+scrollOffset;
   toptip = topPx;
 }
 else {
   toptip = mouseY+offY;
 }

 ot_box.x=lefttip;
 ot_box.y=toptip;
 ot_box.w=tpWd;
 ot_box.h=tpHt;
 ot_box.l=0;

 tipcss.left=lefttip+"px";
 tipcss.top=toptip+"px";

 if (safari) tipcss.position = 'absolute';

 if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible';if(ot_box.onshow) eval(ot_box.onshow);",showTimeout);
 else if(ot_box.onshow&&(tipcss.visibility=='visible')) eval(ot_box.onshow);

}

function hideTip() {

 if (!tooltip) return;
 if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
 t2=setTimeout("tipcss.visibility='hidden';"+
   "if(ot_box.onhide) eval(ot_box.onhide);",leaveTimeout);
 tipOn = false;

}


/* ot_box data encapsulator */
function ot_box(){
 var innerToolbox=this;
 return this
}
ot_box.x=0;
ot_box.y=0;
ot_box.w=0;
ot_box.h=0;
ot_box.l=0;
ot_box.onshow=""; 
ot_box.onhide="";
ot_box.onconstruct="";

if(dom&&!opera){ 
 ot_box.sel=0;
 //add onshow method
 ot_box.onshow+=
   "ot_box.hideSelect(ot_box.x, ot_box.y, ot_box.w, ot_box.h, ot_box.l);";

 //add onhide method
 ot_box.onhide+=
   "ot_box.showSelect(ot_box.x, ot_box.y, ot_box.w, ot_box.h, ot_box.l);";

 //implement
 ot_box.hideSelect=function(x,y,w,h,l)
 {
  var selx,sely,selw,selh,i;
  if(!ot_box.sel){
   ot_box.sel=ot_d.getElementsByTagName("SELECT");
   ot_box.sel.level=0;
  }
  var sel=ot_box.sel;
  for(i=0;i<sel.length;i++){
   selx=0; sely=0; var selp;
   if(sel[i].offsetParent){
   selp=sel[i]; 
   while(selp.offsetParent){
    selp=selp.offsetParent; selx+=selp.offsetLeft; sely+=selp.offsetTop;}
   }
   selx+=sel[i].offsetLeft; sely+=sel[i].offsetTop
   selw=sel[i].offsetWidth; selh=sel[i].offsetHeight
   if(selx+selw>x && selx<x+w && sely+selh>y && sely<y+h){
   if(sel[i].style.visibility!="hidden"){
     sel[i].level=l; 
     sel[i].style.visibility="hidden";
   }
   } else if(l<=sel[i].level) sel[i].style.visibility="visible";
  }
 }//function

 ot_box.showSelect=function(){
  var sel=ot_box.sel;
  for(i=0;i<sel.length;i++){
   if(sel[i].style.visibility=="hidden"){
     sel[i].level=1; 
     sel[i].style.visibility="visible";
   }
  }
 }//function

}//if ns6+ or ie5+

