﻿
    var xBump=3;
    var yBump=3; 
    var MSIE=document.all; 
    var NS6=document.getElementById && !document.all; 
    var ToolTipObj=null;
    var ttipClassName="PopupDataBox";
    var tipLayerId="EOttip";
    var tipLayer= "<div id=\""+tipLayerId+"\" style=\"display:none;position:absolute;z-index:1000; \" onclick=\"ZoomInToMap();\" class='"+ttipClassName+"'><\/div>";
    var parentLayer=null;
    var ToolTipObj=null;
    var mouseXX=0;
	var mouseYY =20;
	var windowEvent=null;
	var timerRunning = false
    var startTimerID=null;
    var stopTimerID=null;
    var stopTimerID1=null;
    var htmlContent="";
    
    var secs;
    var timerID = null;
    var timerRunning = false;
    var delay = 500;
    var IE = document.all?true:false

   //---------------------------
   function ChangeMapImage(imgId,srcValue,usemapAttValue)
   {
       var myElem=null;
        // try{
       if(imgId)
         myElem = EoGetElementById(imgId);
       
        //Check if the Image exists and the new srcValue passed is not null
        if(myElem && (srcValue.indexOf('null')<0))
        { 
         myElem.src='GetImage.ashx?url=' + srcValue;
         myElem.useMap = usemapAttValue;
         } 
        
       //  }catch(e){}  
      // return;
   }
   
   function BackButtonClick()
   {
    var imgBtn;
    
     if (RealTimeImageJsObj )
        {
       imgBtn = EoGetElementById(RealTimeImageJsObj.BackButtonId);
     //  alert(imgBtn.src.indexOf(RealTimeImageJsObj.BackButtonImageUrl));
      if(imgBtn.src.indexOf(RealTimeImageJsObj.BackButtonDisabledImageUrl)<0)
      {
        //get The parentId to go back One level
         var parentid=EoGetElementById(RealTimeImageJsObj.CurrentImageMapId).getAttribute('PARENTID');
         // Temporary fix until map generation service starts writing the PARENTID attribute for the IMG_MAPS node of the imagemap.xml file
         if (parentid == null)
            parentid = "ON";
         MapImageOnClick(parentid,RealTimeImageJsObj.CurrentImageId,'#'+parentid,null,RealTimeImageJsObj.CurrentChildNodeId);
      
        if(EoGetElementById(RealTimeImageJsObj.CurrentImageMapId).getAttribute('LEVEL')!=null && EoGetElementById(RealTimeImageJsObj.CurrentImageMapId).getAttribute('LEVEL')=="0" )
        {
            //hide back button
           // HideElement(RealTimeImageJsObj.BackButtonId);
             ChangeImageSrc(RealTimeImageJsObj.BackButtonId, RealTimeImageJsObj.BackButtonDisabledImageUrl);
         }
         else
         {
         //show back button
        ChangeImageSrc(RealTimeImageJsObj.BackButtonId, RealTimeImageJsObj.BackButtonImageUrl);
       //  ShowElement(RealTimeImageJsObj.BackButtonId);
       
         }
    
       }
      }
    }
  

  //-------------------------
  function MapImageOnClick(elemId,imageId,UseMapAttValue,nodeLevel,currentChildNodeId)
   {
      
      var RealTimeImageControlObj = EO.EMS.WebControls.Common.RealTimeImageControl;
        
     if(nodeLevel!=RealTimeImageJsObj.MaxDepthLevel)
     {
        if(RealTimeImageControlObj != null)
        {
           var response=RealTimeImageControlObj.GetMapAreaTags(elemId);
               EoGetElementById('map_pan').innerHTML=response.value;
        }
     } 
        //Store this for back button
        if (RealTimeImageJsObj)
        {        
        if(imageId!=null && imageId !="")
        RealTimeImageJsObj.CurrentImageId=imageId;
        
        if(elemId!=null && elemId !="")
        RealTimeImageJsObj.CurrentImageMapId=elemId;
        
        if(currentChildNodeId!=null && currentChildNodeId !="")
         RealTimeImageJsObj.CurrentChildNodeId=currentChildNodeId;
        
        }
        
         if(EoGetElementById(RealTimeImageJsObj.CurrentImageId).useMap==UseMapAttValue && (nodeLevel==RealTimeImageJsObj.MaxDepthLevel))
         {
            DoSubmit(null);
          }
         else
         {
          ChangeMapImage(RealTimeImageJsObj.CurrentImageId,RealTimeImageJsObj.ImagesFolderUrl +'/'+ GetAttributeValue(RealTimeImageJsObj.CurrentImageMapId,'file'),UseMapAttValue);
         // ShowElement(RealTimeImageJsObj.BackButtonId);a
          ChangeImageSrc(RealTimeImageJsObj.BackButtonId, RealTimeImageJsObj.BackButtonImageUrl)
          HideElement(tipLayerId);
         // clearTimeout(startTimerID);
         //clearTimeout(stopTimerID);
        } 
         
   }
  //--------------------------------------- 
   function ChangeImageSrc(imgId, srcValue)
   {
   var myElem
    if(imgId)
         myElem = EoGetElementById(imgId);
       
        //Check if the Image exists and the new srcValue passed is not null
        if(myElem && (srcValue.indexOf('null')<0))
         {        
          myElem.src=srcValue;
         }
   }
   
  //--------------------------------------- 
  function DoSubmit(elmId)
  {
        var hdnSelID = EoGetElementById('HdnSelID');
        if (hdnSelID != null)
        {
            if(elmId==null)
                hdnSelID.value = RealTimeImageJsObj.CurrentChildNodeId;
            else
            hdnSelID.value = RealTimeImageJsObj.CurrentChildNodeId=elmId;
        }
            document.forms[0].submit();
        return true;
  }

  //---------------------------------------
       
EoToolTips= function()
{ 
 document.write(tipLayer); 
    if(MSIE||NS6){ 
        ToolTipObj=EoGetElementById(tipLayerId); 
    }
    
   this.CurrentImageId=null;
   this.CurrentImageMapId=null;
   this.CurrentChildNodeId=null;
   this.ImagesFolderUrl=null;
   this.BackButtonId=null;
   this.BackButtonImageUrl=null;
   this.BackButtonDisabledImageUrl=null;
   this.MaxDepthLevel=null;
   this.NoDataAvailable=null;
   this.HelpBox=null;
   //this.ShowDetialsText="Show Details";

       //----------------
       EoToolTips.prototype.ShowTip = function (tipElementId, EdId, htmlStr)
         {
         
          
           //alert(tipElementId)
           clearTimeout(startTimerID);
           clearTimeout(stopTimerID);
           clearTimeout(stopTimerID1);
            var tipLayer=null;
            var tipElement=null;
            var innerHtmlStr="";     
            InitializeTimer();
            if (tipElementId!=null)
	            {
	             tipElement= EoGetElementById(tipElementId);
	            }
	            
                if(ToolTipObj==null)
                { 
                   ToolTipObj=EoGetElementById(tipLayerId); 
                } 
               
               //Close the Help Box
               //alert(this.HelpBox);
               HideElement(this.HelpBox)
	           if (tipElement !=null)
	            {
                   innerHtmlStr=tipElement.innerHTML;
                   
                   ToolTipObj.className=tipElement.className;
                   
                   htmlContent=innerHtmlStr;
                   DisplayTip(EdId,htmlStr);
                   RealTimeImageJsObj.CurrentChildNodeId=EdId; 
                 }
                else
                {
                if(ToolTipObj==null)
                  ToolTipObj=EoGetElementById(tipLayerId); 

                    innerHtmlStr=RealTimeImageJsObj.NoDataAvailable;
                   
                   ToolTipObj.className=ttipClassName;
                   htmlContent=innerHtmlStr;
                  
                   DisplayTip(EdId,htmlStr);
                   RealTimeImageJsObj.CurrentChildNodeId=EdId; 

                //ToolTipObj.style.display="none"; 
                //ToolTipObj.innerText="";
                //EoGetElementById('ResultPlaceHolder').innerHTML=htmlContent;
                //EoGetElementById('ResultPlaceHolder').style.display='none';
               }

                //RealTimeImageJsObj.CurrentChildNodeId=EdId;  
        } 
     
      
       //----------------
       EoToolTips.prototype.HideTip=function ()
       { 
            if(ToolTipObj==null)
            { 

              ToolTipObj=EoGetElementById(tipLayerId); 
            } 
              //ToolTipObj.style.display="none"; ToolTipObj.innerText="";
              stopTimerID= setTimeout('ToolTipObj.style.display="none"; ToolTipObj.innerText="";',1500);
              stopTimerID1= setTimeout('EoGetElementById("ResultPlaceHolder").style.display="none";EoGetElementById("ResultPlaceHolder").innerHTML=htmlContent;',1500);
              //EoGetElementById('ResultPlaceHolder').innerHTML=htmlContent;
              //EoGetElementById('ResultPlaceHolder').style.display='none';
       } 

       //----------------
       EoToolTips.prototype.MoveToolTip=function (e)
       {    
             MoveTip(e);
       }
   }
   
   //---------------------------
    function MoveTip(e)
     {
        if(ToolTipObj==null)
            { 
             ToolTipObj=EoGetElementById(tipLayerId); 
            }
           
           clearTimeout(stopTimerID);
           //clearTimeout(stopTimerID1);
           getmouseXXY(e);
         }
      
	 
	//---------------------------
	 function DisplayTip(theElmId, innerHtmlStr)
      {
       if(ttObj==null)
          { 
          var ttObj=EoGetElementById(tipLayerId); 
          }
         
          
            // If NS -- that is, !IE -- then set up for mouse capture
            if (!IE) document.captureEvents(Event.MOUSEMOVE)
            // Set-up to use getmouseXXY function onMouseMove          
            document.onmousemove = getmouseXXY;
            
            if (IE)
               { 
               if (secs==0)
                {
                StopTheClock();  

                ttObj.style.top=mouseYY + 'px';
                ttObj.style.left=mouseXX + 'px';
                ttObj.style.display="block";
                
                ttObj.innerHTML=innerHtmlStr;
                EoGetElementById('ResultPlaceHolder').innerHTML=htmlContent;
                EoGetElementById('ResultPlaceHolder').style.display='block';
                
                
                
              }
              else 
               {
                //self.status = secs;
                secs = secs - 1;
                timerRunning = true;
                timerID = self.setTimeout("DisplayTip('"+theElmId+"','"+innerHtmlStr+"')", delay);
               }
             }
             else
             {   
                ttObj.style.top=mouseYY + 'px';
                ttObj.style.left=mouseXX + 'px';
                ttObj.style.display="block";
                
                ttObj.innerHTML=innerHtmlStr;
                EoGetElementById('ResultPlaceHolder').innerHTML=htmlContent;
                EoGetElementById('ResultPlaceHolder').style.display='block';
                PositionResultBox('ResultPlaceHolder');
             }
      }
      
      
//------------------------
 function ZoomInToMap()
 {  
 //eval(EoGetElementById(RealTimeImageJsObj.CurrentChildNodeId+'_link').innerHTML); 
 RealTimeImageJsObj.CurrentChildNodeId = RealTimeImageJsObj.CurrentChildNodeId.toString();
window.status=EoGetElementById(RealTimeImageJsObj.CurrentChildNodeId).getAttribute('parentid');
  MapImageOnClick(EoGetElementById(RealTimeImageJsObj.CurrentChildNodeId).getAttribute('parentid'),RealTimeImageJsObj.CurrentImageId,'#'+  EoGetElementById(RealTimeImageJsObj.CurrentChildNodeId).getAttribute('parentid'),GetAttributeValue(EoGetElementById(RealTimeImageJsObj.CurrentChildNodeId).getAttribute('parentid'),'level'),RealTimeImageJsObj.CurrentChildNodeId);
 }
 
 
 //-----------------------------------------------------------------------------------------
 

function InitializeTimer()
{
    // Set the length of the timer, in seconds
    secs = 1;
    StopTheClock();
    //StartTheTimer();
}

function StopTheClock()
{
    if(timerRunning)
        clearTimeout(timerID);
    timerRunning = false;
}

function PositionResultBox(elmId)
{
//alert(elmId)

    if (EoGetElementById(elmId))
    {
        if(!IE)
        {
         EoGetElementById(elmId).style.position='absolute';
         EoGetElementById(elmId).style.left= EoGetElementById(RealTimeImageJsObj.CurrentImageId).x + 3 + 'px' ;
         EoGetElementById(elmId).style.top= (EoGetElementById(RealTimeImageJsObj.CurrentImageId).height-120)+ EoGetElementById(RealTimeImageJsObj.CurrentImageId).y +'px';
         }
    }

}

function PositionLegendBox(elmId)
{
    //alert(elmId)
    if (EoGetElementById(elmId))
    {
         EoGetElementById(elmId).style.position='absolute';
    
        if(!IE)
        {
         //EoGetElementById(elmId).style.left=EoGetElementById(RealTimeImageJsObj.CurrentImageId).x +  EoGetElementById(RealTimeImageJsObj.CurrentImageId).width - 183 + 'px';
         EoGetElementById(elmId).style.top= (EoGetElementById(RealTimeImageJsObj.CurrentImageId).height-EoGetElementById(RealTimeImageJsObj.CurrentImageId).height +EoGetElementById(RealTimeImageJsObj.CurrentImageId).y)+ 'px';
         }
    }
}
if (!IE) document.captureEvents(Event.MOUSEDOWN)

document.onmousedown = getXY;
var mosX = 0 ;
var mosY = 0 ;

function PositionHelpBox(elmId)
{
    //alert(EoGetElementById(RealTimeImageJsObj.CurrentImageId).height)
    if (EoGetElementById(elmId))
    {
   
   if(IE)
    {
     EoGetElementById(elmId).style.top=mosY-69 + 'px';
    }
    else
    {
     EoGetElementById(elmId).style.top=mosY-65 + 'px';
    }
    
     EoGetElementById(elmId).style.left=mosX-10 + 'px';        
    
    }
}


function getXY(e)
{
if(!e)   
   e=window.event;
   
if(IE)
{
 mosX = event.clientX + MSIEBodyReturn().scrollLeft ;
 mosY = event.clientY + MSIEBodyReturn().scrollTop;
 }
 else
 {
     mosX=e.pageX; 	          
     mosY=e.pageY;
 }
   
          
 return true;
}


 
 
 
 
 


//---------------------------
   function GetAttributeValue(elemId,attName)
   {
   var myElem=null;
   var attValue=null;
   
       try{
          myElem = EoGetElementById(elemId);
          if(myElem)
          {
          attValue=myElem.getAttribute(attName);
          }
          else
          {
          attValue=null;
          }
        }catch(e){}
        return attValue;
   } 
	
	
    //---------------------------
    function EoGetElementById(e){

	if(typeof(e)!='string') 
	    return e;
    	
	    if(document.getElementById) 
	        e=document.getElementById(e);
	    else if(document.all) 
	        e=document.all[e];
	    else 
	        e=null;
	
	return e;
	}
	
	
	//-------------------------
    function ToggleElement(elementID){
  		if(EoGetElementById(elementID).style.display==" " ||  EoGetElementById(elementID).style.display=="block")
		  {
		   HideElement(elementID,null,null); 
		  }
   		else
   		  {
		   ShowElement(elementID,null,null); 
          }	
     return;
    }
    
  
  //---------------------------
  function ShowElement(elemId)
  {
  try{
     var myElem=EoGetElementById(elemId);
     
     if(myElem)
       myElem.style.display='block';
     
     }catch(e){} 
   
  }
  
  
  //--------------------------
  function HideElement(elemId)
  {
    try{
     var myElem=EoGetElementById(elemId);
     if(myElem)
     myElem.style.display='none';
     }catch(e){}
  }
  
    function xreplace(s, r, w){
       return s.split(r).join(w);
    }
 


    //---------------------------       
      function getmouseXXY(e) 
       { 
       
       if(!e)   
        e=window.event;
    	
        if(e)
        {			
          mouseXX=(NS6)?e.pageX:event.x+MSIEBodyReturn().scrollLeft; 	          
          mouseYY=(NS6)?e.pageY:event.y+MSIEBodyReturn().scrollTop; 
        }
      }
  
    //----------------------
    function MSIEBodyReturn()
    { 
      return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body; 
    }
        
        
  function toggleSlide(objname)
  {
      if(document.getElementById(objname).style.display == "none")
      {
        // div is hidden, so let's slide down
        slidedown(objname);
       }else{
        // div is not hidden, so slide up
        slideup(objname);
      }
 }
        
   
    //-------------------------------------------------------------------------------------------
    var timerlen = 5;
    var slideAniLen = 950;
    var timerID = new Array();
    var startTime = new Array();
    var obj = new Array();
    var endHeight = new Array();
    var moving = new Array();
    var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}
//-------------------------------------------------------------------------------------------