//----------------------------------------
// LOAD
//----------------------------------------
var gIE=false; if(navigator.userAgent.toLowerCase().indexOf("msie")>-1)gIE=true;
var debug=false; if(location.host=="mickey:81")debug=true;
                 if(location.host=="mickey.isds.com:81")debug=true;

//---------------------------------------------------------
// AnyPageLoader
//---------------------------------------------------------
var ThisPageLoader=function(){loader();}
window.setTimeout("AnyPageLoader()",200);
var AnyPageLoader=function(){
   try{if((!document)||(!document.body)||(!vt4IsLoaded)){window.setTimeout("AnyPageLoader()",200);return;}}
   catch(e){window.setTimeout("AnyPageLoader()",200);return;}
   ThisPageLoader();
}//AnyPageLoader
//---------------------------------------------------------
// END AnyPageLoader
//---------------------------------------------------------
function loader(){
   try{if(!vt4IsLoaded){window.setTimeout("loader()",200);return;}}
   catch(e){window.setTimeout("loader()",200);return;}
   if(!gIE)setListener(document.body,"click",closeMenu,true);
   setListener($("report"),"mouseover",mover,true);
   setListener($("txt_pop"),"mouseover",mover,true);
   writeMap("report");
   var imgs="chart,clipboarddata,clipboardimage,commentary,control"
           +",legend,menu,print,scale,series,table,zoomhelp";
       imgs=imgs.split(",");
       for(i=0;i<imgs.length;i++){dog=new Image();dog.src="images/"+imgs[i]+".gif";}
}//loader

//----------------------------------------
// POPPERS
//----------------------------------------
function popText(area){
   if(typeof area=="string"){
      if(area.indexOf(".live")>-1)area=area.slice(0,-5);
      area=$$(area);
   }//if
   var id=area.getAttribute("id");
   if(id.indexOf(".live")>-1){
      id=id.slice(0,-5);
      area=$$(id);
   }//if

   var mvr=area.getElementsByTagName("mover");
       if(!mvr)return; if(mvr.length==0)return; mvr=mvr[0];

   var txt=mvr.firstChild.data;
       if(!txt)return; if(txt.length==0)return;
   var t=getTextSize()*12;

   var u=Math.sqrt(txt.length*t*t/12);
       //u=Math.ceil(Math.sqrt(txt.length*14));
       var w=4*u; var h=3*u;

   var xywh=area.parentNode.getAttribute("coords");
       xywh=xywh.split(",");
   var x0=parseInt(xywh[0]);
       var y0=parseInt(xywh[1]);

   xywh=mvr.getAttribute("coords");
       xywh=xywh.split(",");
   var tx=parseInt(xywh[0]);
       var ty=parseInt(xywh[1]);
       var tw=parseInt(xywh[2]);
       var th=parseInt(xywh[3]);

   var mx=$("report").offsetLeft;
   var my=$("report").offsetTop;

   var x=tx+x0+(w*tw)+mx; if(tw>0){x=tx+x0+mx; w=tw;}
   var y=ty+y0+(h*th)+my; if(th>0){y=ty+y0+my; h=th;}

   $("txt_pop").style.left=x+"px";
      $("txt_pop").style.top=y+"px";
      $("txt_pop").style.width=w+"px";
      $("txt_pop").style.height=h+"px";
      $("txt_pop").style.display="block";
   txt=vtSwap(txt,"%lt;","<");
      txt=vtSwap(txt,"%gt;",">");
   $("txt_txt").innerHTML=txt;
}//popText

//----------------------------------------
function popImage(area){
   if(typeof area=="string"){
      if(area.indexOf(".live")>-1)area=area.slice(0,-5);
      area=$$(area);
   }//if
   var id=area.getAttribute("id");
   if(id.indexOf(".live")>-1){
      id=id.slice(0,-5);
      area=$$(id);
   }//if

   var url=area.getElementsByTagName("url");
   if(url){if(url.length==1){
       url=url[0].firstChild;
       if(url)url=url.data;
       if(url){if(url.length>0){
         win2=window.open(url,"","");
         win2.focus();
         return;
       }}//if if
   }}//if if

   var imgnam=area.getElementsByTagName("click");
       if(!imgnam)return;           if(imgnam.length==0)return;
       imgnam=imgnam[0].firstChild; if(!imgnam)return;
       imgnam=imgnam.data;          if(!imgnam)return;
       if(closePopImage(area))return;

   var mx=$("report").offsetLeft;
   var my=$("report").offsetTop;

   var img=$$(imgnam);
   var src="images/"+imgnam+".gif";
   var xywh=img.getAttribute("coords");
       xywh=xywh.split(",");
   var x=parseInt(xywh[0])+mx;
       var y=parseInt(xywh[1])+my;
       var w=parseInt(xywh[2]);
       var h=parseInt(xywh[3]);

   var map=img.getAttribute("map");
   $(map).style.left=x+"px";
      $(map).style.top=y+"px";
      $(map).style.width=w+"px";
      $(map).style.height=h+"px";
   $("img_"+map).src=src;
      $("img_"+map).style.width=w+"px";
      $("img_"+map).style.height=h+"px";
   closePopText();
   $(map).style.display="block";
   $("img_"+map).style.display="block";
   writeMap(img);
   if((imgnam=="menu")&&(gIE))window.setTimeout("setMenuClosers(true)",800);
}//popImage

//----------------------------------------
var gArea="<area id=\"%id%.live\" shape=\"rect\" coords=\"%coords%\" "
         +"onmouseover=\"mover(e)\" onmouseout=\"mout(e)\" onclick=\"mclick(e)\""
         +"></area>";
function writeMap(img){
   if(typeof img=="string")img=$$(img);
   var map=$("map_"+img.getAttribute("map"));
       map.innerHTML="";
   var areas=img.getElementsByTagName("area");
   var id,xywh,area,line;
   for(var i=0;i<areas.length;i++){
      area=areas[i];
      id=area.getAttribute("id");
      xywh=area.getAttribute("coords");
      area=document.createElement("area");
      area.setAttribute("id",id+".live");
      area.setAttribute("shape","rect");
      area.setAttribute("coords",xywh);
      area=map.appendChild(area);
      setListener(area,"mouseover",mover,true);
      setListener(area,"mouseout",mout,true);
      setListener(area,"click",mclick,true);
      setListener(area,"dblclick",mdblclick,true);
      setListener(area,"contextmenu",mrtclick,true);
   }//for
}//writeMap

//----------------------------------------
// CLOSERS
//----------------------------------------
function setMenuClosers(tf){
   if(!gIE)return;
   if(tf){
      setListener(document.body,"click",closeMenu,true);
      setListener($("report"),"click",closeMenu,true);
      setListener($("img_pop"),"click",closeMenu,true);
      setListener($("img_ctrl"),"click",closeMenu,true);
   }//if
   if(!tf){
      stopListener(document.body,"click",closeMenu,true);
      stopListener($("report"),"click",closeMenu,true);
      stopListener($("img_pop"),"click",closeMenu,true);
      stopListener($("img_ctrl"),"click",closeMenu,true);
   }//if
}//setMenuClosers
//----------------------------------------
function closeMenu(){
   setMenuClosers(false);
   if($("img_pop").src.indexOf("images/menu.gif")<0)return;
   $("pop").style.display="none";
   $("img_pop").style.display="none";
   $("map_pop").innerHTML="";
   $("img_pop").src="";
}//closeMenu
//----------------------------------------
function closePopText(){$("txt_pop").style.display="none";}
//----------------------------------------
function closePopImage(area){
   var map=null;
   if(area){
      var imgnam=area.getElementsByTagName("click");
          if(!imgnam)return; if(imgnam.length==0)return false;
          imgnam=imgnam[0].firstChild.data;
          if(!imgnam)imgnam="close";
          if(imgnam=="")imgnam="close";
          if(imgnam=="null")imgnam="close";
      if(imgnam!="close")return false;
          map=area.parentNode;
          map=map.getAttribute("map");
   }//if
   if(!map)map="pop";
   $(map).style.display="none";
   $("img_"+map).style.display="none";
   $("img_"+map).src="";
   $("map_"+map).innerHTML="";
   closePopText();
   return true;
}//closePopImage

//---------------------------------------------------------
// LISTENERS
//---------------------------------------------------------
var mdelay=null;
//---------------------------------------------------------
function mover(e){
   estop(e);
   var nd=getTarget(e);
   if(!nd)return;
   var id=nd.getAttribute("id");

   // if over report, un-disable closePopText()
   if(id=="report"){doClosePopText=true;closePopText();return false;}

   // set cursor
   var clk=null;
   var area=id;
   if(area.indexOf(".live")>-1)area=area.slice(0,-5);
   area=$$(area);
   if(area){
      clk=area.getElementsByTagName("click");
      if(clk){if(clk.length==0)clk=null;}
      if(!clk)clk=area.getElementsByTagName("url");
      if(clk){if(clk.length==0)clk=null;}
      if(clk)clk=clk[0];
      if(clk)clk=clk.firstChild;
      if(clk)clk=clk.data;
      if(clk){if(clk.length==0)clk=null;}
      if(clk)nd.style.cursor="pointer";
   }//if
   if(id.indexOf("_resize")>-1)nd.style.cursor="n-resize";

   // if menu is up, ignore over grid
   if($("img_pop").src.indexOf("/menu.gif")>-1){
      if($("pop").style.display="block"){
         if($("img_pop").style.display="block"){
            if(id.indexOf("r_grid")==0)return false;
   }}}//if if if

   // if over grid, disable closePopText()
   // and set IE to catch right-click for menu
   if(id.indexOf("r_grid")==0){
      doClosePopText=false;
      if((gIE)&&(!ieRtClick)){
         setListener($("report"),"contextmenu",mrtclick,true);
         ieRtClick=true;
      }//if
   }//if

   // display help text
   popText(nd);
   return false;
}//mover
//---------------------------------------------------------
//over r_grid, out r_grid, over txt_pop
var doClosePopText=true;
var ieRtClick=false;
//---------------------------------------------------------
function mout(e){
   estop(e);
   if(doClosePopText)closePopText();
   var nd=getTarget(e);
   if(!nd)return false;
   nd.style.cursor="default";

   // if leaving grid, set IE to ignore right-click
   var id=nd.getAttribute("id");
   if((id.indexOf("r_grid")==0)&&(gIE)&&(ieRtClick)){
      stopListener($("report"),"contextmenu",mrtclick,true);
      $("report").oncontextmenu=function(){estop();return false;};
      ieRtClick=false;
   }//if
   return false;
}//mout
//---------------------------------------------------------
function mclick(e){
   estop(e);
   var nd=getTarget(e);
   if(!nd)return false;
   var id=nd.getAttribute("id");
   if(id.indexOf("r_grid")==0)return false;
   mout();
   popImage(nd);
   return false;
}//mclick
//---------------------------------------------------------
function mrtclick(e){
   estop(e);
   var nd=getTarget(e);
   if(!nd)return false;
   var id=nd.getAttribute("id");
   if((!gIE)&&(id.indexOf("r_grid")!=0))return false;
   if((gIE)&&(id!="report"))return false;
   mout();
   if(!gIE)popImage(nd);
   if(gIE)popImage("r_grida");
   return false;
}//mrtclick
//---------------------------------------------------------
function mdblclick(e){
   estop(e);
   var nd=getTarget(e);
   if(!nd)return false;
   var id=nd.getAttribute("id");
   if(id.indexOf("r_grid")!=0)return false;
   mout();
   popImage("m_table");
   return false;
}//mdblclick

//---------------------------------------------------------
// UTILITIES
//---------------------------------------------------------
var gDoc, gA, gI;
var gAreas=new Array();
var gImgs=new Array();
function $$(id){
   if(!gDoc){
      gDoc=vtFetch("report.xml","xml");
      gA=gDoc.getElementsByTagName("area");
      for(var i=0;i<gA.length;i++){gAreas[gA[i].getAttribute("id")]=gA[i];}
      gI=gDoc.getElementsByTagName("img");
      for(var i=0;i<gI.length;i++){gImgs[gI[i].getAttribute("id")]=gI[i];}
   }//if
   if(gAreas[id])return gAreas[id];
   if(gImgs[id]) return gImgs[id];
   return null;
}//$$

//---------------------------------------------------------
function estop(e){
   if(!e)e=window.event;
   if(!e)return false;
   if(e.stopPropagation)e.stopPropagation();
   if(e.cancelBubble)e.cancelBubble=true;
   if(e.preventDefault)e.preventDefault();
   if(e.returnValue)e.returnValue=false;
   return false;
}//estop
//---------------------------------------------------------
function setListener(elm,act,fun,cap){
   if(document.addEventListener)
      elm.addEventListener(act,fun,cap);
   else if (document.attachEvent)
      elm.attachEvent("on"+act,fun);
   else eval("elm.on"+act+"="+fun);
}//setListener
//-------------------------------------------------------
function stopListener(elm,act,fun,cap){
   if(document.removeEventListener)
      elm.removeEventListener(act,fun,cap);
   else if (document.detachEvent)
      elm.detachEvent("on"+act,fun);
   else eval("elm.on"+act+"=null");
}//stopListener
//---------------------------------------------------------
function getTarget(e){
   if(!e)e=window.event;
   if(!e)return null;
   if(e.srcElement)return e.srcElement;
   if(e.target)return e.target;
}//getTarget

//---------------------------------------------------------
var logcnt=0;
var logmsg="";
function log(e,append){
   if(!debug)return;
   //if(!$("bugshow"))return;
   if(!e)e=window.event;
   if(typeof e!="string"){
      try{
         var act=e.type;
         var nd=getTarget(e);
         var tag=nd.nodeName;
         var id=nd.getAttribute("id");
         var b=e.button;
         e=act+" "+b+" "+tag+" "+id;
      }//try
      catch(er){e=e.toString();}
   }//if
   //e=e+"<br/>"+$("bugshow").innerHTML;
   //e=$("bugshow").innerHTML+"<br/>"+e;
   //$("bugshow").innerHTML=e;
   if(!append)defaultStatus=e;
   if(append)defaultStatus+="; "+e;
   logmsg+=e+"\n"; logcnt++;
   //if(logcnt==8)alert(logmsg);
}//log
//---------------------------------------------------------
function getTextSize(){
   var mut=$("mut");
   if(!mut){
      mut=document.createElement("p");
      mut.style.fontSize="12px";
      mut.style.lineHeight="100%";
      mut.style.padding="0";
      mut.style.margin="0";
      if(!debug)mut.style.visibility="hidden";
      mut.innerHTML="12 on 12";
      mut.setAttribute("id","mut");
      mut.id="mut";
      mut=document.body.appendChild(mut);
   }//if
   var t=(parseInt(mut.offsetHeight))/12;
   log("textSize="+t+"*"+12);
   mut.innerHTML="12 on 12, ht="+mut.offsetHeight+", t="+t;
   return t;
}//getTextSize
//----------------------------------------------------------------------

