﻿
/* -------------------------------------------------------------- */
/* KC SCOUT                                                       */
/* Javascript: Client Side Mapping Code                           */
/* Version: 0.5                                                   */
/* Creator: rzd1bm                                                */
/*                                                                */
/* Notes:                                                         */
/* Scout Burgundy: #9F1D35                                          */
/* ============================================================== */
/* ================================================ */
/* Elements                                         */
/* ================================================ */

/*****************************Global Varialbles***********************************************************/

var StateMapView = 'City';
var StateCCTV = 'off';
var StateDMS = 'off';
var StateIncident = 'on';
var StateSpecial = 'off';
var StateScheduled = 'off';
var StateStreamingVideoTours = 'off';
var StateDetectorStation = 'off';

 ////Added by TCore 
var _CityLatCenter=39.101749;
var _CityLngCenter=-94.582587;
var _CityZoomLevel=10;
var StateLatCenter=_CityLatCenter;
var StateLngCenter=_CityLngCenter;
var StateZoomLevel=_CityZoomLevel;

var popCCTVID = '';
var popCCTVDirection = '';
var popCCTVLocTxt = '';
var popDMSID = '';
var winCCTV = '';
var winDMS = '';

var currentTime;

areaNames = new Array('Reg310','Reg320','Reg330','Reg340','Reg321','Reg322','Reg323','Reg331','Reg342','Reg332','Reg341','City');
icons = new Array("CCTV","DMS","Incident","Special","Scheduled", "StreamingVideoTours", "DetectorStation" );

var refreshInterval = 30000;
var bDebug = false;
if(location.search == "?kbug") bDebug = true;

/********************************Global Functions********************************************************/

/*Called on Page Load Event******************************/
/*  This function will perform the following tasks:     */
/*      1. Grab Session Variables                       */
/*      2. Update CheckBoxes                            */
/*      4. Update Map                                   */
/********************************************************/
function client_PageLoad(currTime,defMapView)
{
     currentTime = currTime;
     getSessionView();          // GetSessionView
     if(defMapView != "default"){
        StateMapView = defMapView;
        setCookie('sessionStateMapView', StateMapView);
     }
     initCheckBox();            // Initialize checkboxes
    hilight("images/MapSubSystem/ZoomControlMaps/inset" + StateMapView + ".png");  // initialize zoom control
     //updateMap();               // Initialize map
     //window.setTimeout("RefreshPage()",refreshInterval);
     
     ///TCORE     
      _xCn=StateLngCenter;
      _yCn=StateLatCenter;
      _zZm=StateZoomLevel;
}

/*Called on Page Refresh Event***************************/
/*  This function will perform the following tasks:     */
/*      2. Update Map                                   */
/********************************************************/
function client_PageRefresh(currTime,msg)
{
    currentTime = currTime;
    updateMap();
}

function getSessionView()
{
   if (getCookie('sessionStateMapView')) 
   {
        StateMapView = getCookie('sessionStateMapView');
        StateCCTV = getCookie('sessionStateCCTV');
        StateDMS = getCookie('sessionStateDMS');
        StateIncident = getCookie('sessionStateIncident');
        StateSpecial = getCookie('sessionStateSpecial');
        StateScheduled = getCookie('sessionStateScheduled');
       ////Added by TCore 
        StateLatCenter = getCookie('sessionStateLatCenter')/1;//dividing by 1 converts string to number
        StateLngCenter = getCookie('sessionStateLngCenter')/1;//dividing by 1 converts string to number
        StateZoomLevel = getCookie('sessionStateZoomLevel') / 1; //dividing by 1 converts string to number

        StateStreamingVideoTours = getCookie('sessionStateStreamingVideoTours');
        StateDetectorStation = getCookie('sessionStateDetectorStation');
    }
    else setSessionView()
}

function setSessionView()
{
    setCookie('sessionStateMapView', StateMapView);  
    setCookie('sessionStateCCTV', StateCCTV);  
    setCookie('sessionStateDMS', StateDMS);  
    setCookie('sessionStateIncident', StateIncident);  
    setCookie('sessionStateSpecial', StateSpecial);  
    setCookie('sessionStateScheduled', StateScheduled);  
    ////Added by TCore 
    setCookie('sessionStateLngCenter', StateLngCenter);
    setCookie('sessionStateLatCenter', StateLatCenter);
    setCookie('sessionStateZoomLevel', StateZoomLevel);
    setCookie('sessionStateStreamingVideoTours', StateStreamingVideoTours);
    setCookie('sessionStateDetectorStation', StateDetectorStation);
}

function initCheckBox()
{
    for (i=0;i<icons.length;i++) 
    {
        var stateBuffer = eval("State"+icons[i]);
        if (stateBuffer == 'on') document.getElementById("chk" + icons[i]).checked = true;
        else document.getElementById("chk" + icons[i]).checked = false;
    } 
}

/****************Begin Event Handlers*******************************/
/* The following functions are handlers for the various controls   */
/* on the page.                                                    */

function hilight(newImage) { document.getElementById("inset").src=newImage; }

function outhiLight() {document.getElementById("inset").src="images/MapSubSystem/ZoomControlMaps/inset" + StateMapView + ".png"; }

function layerControl(thisType) 
{
    if(thisType != "MapView")
    {
        var stateBuf = eval("State"+thisType);
        if (stateBuf == 'on') eval("State"+thisType+" = 'off';");
        else eval("State"+thisType+" = 'on';");
    }
    else
    {
       hilight("images/MapSubSystem/ZoomControlMaps/inset" + StateMapView + ".png");
        //updateMap();
    }
    
    setCookie('sessionState' + thisType, eval("State"+thisType));
  
  //tcore
  var st=0; 
  var dv="";
  var ti;
  switch(thisType)
  {
        case "CCTV":
            dv="Camera"; 
            break;
        case "DMS":
            dv="Message Sign"; 
            break;
        case "DMSblank":
            dv="Blank Sign"; 
            break;
        case "Incident":
            dv="Incident"; 
            break;    
        case "Scheduled":
            dv="Scheduled Closure"; 
            break;
        case "Emergency":
            dv="Emergency Closure"; 
            break;
        case "Special":
            dv="Special Event";
            break;
        case "StreamingVideoTours":
            dv = "Streaming Video Tours";
        case "DetectorStation":
            dv = "Detector Station";
        default:
            break;    
  } 
    if(dv!="")
    {        
        st=_tc$("chk" + thisType).checked?2:3;
        ShowLoader(st,dv);
        eval("Tg" + thisType + "()"); 
    }     
    
    dropDown = document.getElementById("RegionList")
    for(i=0;i<dropDown.options.length;i++)
    {
        if(dropDown.options[i].value == StateMapView )
            dropDown.selectedIndex = i;         
    }
    self.setTimeout('HideLoader()',1000);
}


/****************End Event Handlers******************************/

function updateMap() 
{
  divMTop = document.getElementById("DivMapTopRight")
  if(StateMapView == "City") divMTop.style.display="none";
  else divMTop.style.display = "block";
}


function checkDialogs() 
{
    // This function is called by the map to refresh the popup windows (camera and sign)
    if (winCCTV == '') {} 
    else if (winCCTV.closed) {} 
    else {winCCTV.location.reload();}
   
    if (winDMS == '') {} 
    else if (winDMS.closed) {} 
    else {winDMS.location.reload();}
}

function RegionList_OnChange(reg)
{
    if(reg != -1)
    {
        StateMapView = reg;
        layerControl('MapView');
       var opts=_rgnList[reg].toString()
       opts=opts.split(',');
       var yCn=opts[0]/1;
       var xCn=opts[1]/1;
       var zZm=opts[2]/1;
       ShowLoader(4,"");
       // map.setCenter(new GLatLng(yCn, xCn), zZm);
        self.setTimeout('map.setCenter(new GLatLng(' + yCn + ',' +  xCn +'),' +  zZm + ')',500); //to give loader a chance to show up
    }
}
//TCORE
function SetRegionList(reg)
{
    dropDown = document.getElementById("RegionList");
    for(i=0;i<dropDown.options.length;i++)
    {
        //if(dropDown.options[i].value == qryStringArray[1] )
        if(dropDown.options[i].value == reg) {
            dropDown.selectedIndex = i;     
            RegionList_OnChange(reg);
            }    
    } 
}
function UpdateRegionList()
{
    dropDown = document.getElementById("RegionList")
   // var qryString = location.search;
    //var qryStringArray = qryString.split("=");
      var loc=map.getCenter().toString();
     loc=loc.replace('(','');
     loc=loc.replace(')','');
     loc=loc + ',' + map.getZoom().toString();
     loc=loc.replace(' ',''); 
    for(i=0;i<dropDown.options.length;i++)
    {
        try
        {
            if(_rgnList[_tc$('RegionList').options[i].value]==loc)
                dropDown.selectedIndex = i;   
        }  
       catch(e){} 
    }
}


// Timeout Functions 
// The timeout will update map

function RefreshPage()
{
   var strMethod = "GET";
   if(_SARISSA_IS_IE) strMethod = "POST"
   var now = new Date();
   var pageURL = "GetMapTimeStamp.aspx?rnd=" + now.getTime()/Math.random()
   var xmlhttp =  new XMLHttpRequest();
   xmlhttp.open('GET', pageURL , false);
   xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
   xmlhttp.setRequestHeader('Content-length', '0');
   xmlhttp.setRequestHeader("If-Modified-Since", "Wed, 15 Nov 1995 04:58:08 GMT")
   xmlhttp.send(null);
   if(bDebug) alert(xmlhttp.responseText);
   client_PageLoad(xmlhttp.responseText,StateMapView)
   xmlhttp = null;
}

function changeRefresh(val)
{
    if(val) refreshInterval = 300000;
    else refreshInterval = 30000;
}