﻿var clickPoint;
var contextmenu
var zoomPointNode
var featureNode
var textMessage
var prevZoomLevel
var prevMapCenter


function zoomIn(){
    textMessage.style.visibility='visible';
    prevZoomLevel=map.getZoom();
    prevMapCenter=map.getCenter();
    setTimeout("removePointsAndLines();removePolygons();if (bRadar){hideRadar()};setTimeout('map.zoomIn();',10);",10);
    contextmenu.style.visibility="hidden";
}

function zoomOut(){
    textMessage.style.visibility='visible';
    prevZoomLevel=map.getZoom();
    prevMapCenter=map.getCenter();
    setTimeout("removePointsAndLines();removePolygons();if (bRadar){hideRadar()};setTimeout('map.zoomOut();',10);",10);
    contextmenu.style.visibility="hidden";
}

function zoomToPoint(){
    textMessage.style.visibility='visible';
    prevZoomLevel=map.getZoom();
    prevMapCenter=map.getCenter();
    setTimeout("removePointsAndLines();removePolygons();if (bRadar){hideRadar()};setTimeout('var myPoint = map.fromContainerPixelToLatLng(clickPoint);map.setCenter(myPoint,map.getZoom()+2);',10);",10);
    contextmenu.style.visibility="hidden";
}

function zoomToState(){
    textMessage.style.visibility='visible';
    prevZoomLevel=map.getZoom();
    prevMapCenter=map.getCenter();
    setTimeout("removePointsAndLines();removePolygons();if (bRadar){hideRadar()};setTimeout('map.setCenter(new GLatLng(38.4, -92.4), 7);',10);",10);
    contextmenu.style.visibility="hidden";
}

function zoomPrevious(){
    textMessage.style.visibility='visible';
    var holdLat,holdLng
    if (prevMapCenter){
        holdLat=prevMapCenter.lat();
        holdLng=prevMapCenter.lng();
    }
    else {
        holdLat=38.4;
        holdLng=-92.4;
        prevZoomLevel=7;
    }
    var zoomscript="setTimeout('map.setCenter(new GLatLng(" + holdLat + "," + holdLng + ")," + prevZoomLevel + ");',10);";
    prevZoomLevel=map.getZoom();
    prevMapCenter=map.getCenter();
    setTimeout("removePointsAndLines();removePolygons();if (bRadar){hideRadar()};" + zoomscript,10);
    contextmenu.style.visibility="hidden";
}

function zoomToFeature(x,y,x1,x2,y1,y2){
    toolTip2.style.visibility='hidden';
    textMessage.innerHTML='Zooming...';
    textMessage.style.visibility='visible';
    
    prevZoomLevel=map.getZoom();
    prevMapCenter=map.getCenter();
    
    var newZoom=map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(y1,x1),new GLatLng(y2,x2)));
    var zoomscript="setTimeout('map.setCenter(new GLatLng(" + y + "," + x + ")," + newZoom + ")',10);";
    setTimeout("removePointsAndLines();removePolygons();if (bRadar){hideRadar()};" + zoomscript,10);
    contextmenu.style.visibility="hidden";
}

function goToFeatures(id){
    var featureWindow
    
    if (id){
        featureWindow=window.open("http://featureprod/feature/tf1100cw?clearScreenInputs=id=" + id);
    }
    else
    {
        featureWindow=window.open("http://featureprod/feature/tf1100cw");
    }
    contextmenu.style.visibility="hidden";
}

function appendZoomLink(x,y,x1,x2,y1,y2){
    if (contextmenu){
        if (zoomPointNode&&document.getElementById('zoompointnode')){
            contextmenu.removeChild(document.getElementById('zoompointnode'));
        }
        if (x1){
            zoomPointNode=document.createElement("A");
            zoomPointNode.id="zoompointnode";
            zoomPointNode.innerHTML="Zoom to Point<br/>";
            zoomPointNode.href="javascript:zoomToFeature(" + x + "," + y + "," + x1 + "," + x2 + "," + y1 + "," + y2 + ");";
            contextmenu.appendChild(zoomPointNode);
        }
    }
}

function appendFeatureLink(id){
    if (isIntranet){
        if (contextmenu){
            if(featureNode){
                contextmenu.removeChild(document.getElementById('featurenode'));
            }
            featureNode=document.createElement("A");
            featureNode.id="featurenode";
            featureNode.innerHTML="Go To Travelway Features<br/>";
            if (id){
                featureNode.href="javascript:goToFeatures(" + id + ");";
            }
            else {
                featureNode.href="javascript:goToFeatures();";
            }
            contextmenu.appendChild(featureNode);
        }
    }
}

function clearDropDowns(e){
    if (e!=document.getElementById('ddlCity'))document.getElementById('ddlCity').selectedIndex=0;
    if (e!=document.getElementById('ddlCounty'))document.getElementById('ddlCounty').selectedIndex=0;
    if (e!=document.getElementById('ddlDistrict'))document.getElementById('ddlDistrict').selectedIndex=0;
    if (e!=document.getElementById('ddlIS'))document.getElementById('ddlIS').selectedIndex=0;
    if (e!=document.getElementById('ddlUS'))document.getElementById('ddlUS').selectedIndex=0;
    if (e!=document.getElementById('ddlMO'))document.getElementById('ddlMO').selectedIndex=0;
}

function resizeMap() {
    if (window.innerHeight){
        document.getElementById('tblMap').style.width=(window.innerWidth-7)+'px';
        document.getElementById('map1').style.height=(window.innerHeight-document.getElementById('modot').clientHeight-5)+'px';
        document.getElementById('chkDiv').style.height=(window.innerHeight-document.getElementById('modot').clientHeight-5)+'px';
    }
    else {
        document.getElementById('tblMap').style.width=(document.documentElement.clientWidth-7)+'px';
        document.getElementById('chkDiv').style.height=(document.documentElement.clientHeight-document.getElementById('modot').clientHeight-5)+'px';
        document.getElementById('map1').style.height=(document.documentElement.clientHeight-document.getElementById('modot').clientHeight-5)+'px';
    }
    document.getElementById('chkDiv').scrollTop=0;
    window.scrollTo(0,0);
    if (map) map.checkResize();
    
}

function checkchange(e){

    chkDisable();
    showLoading();
    
    switch (e.id){
    //ADD CASE 'chkWorkzones_Future'
     case 'chkWorkzones_Future':
            setTimeout("if(document.getElementById('chkWorkzones_Future').checked){addPointsToMap('workzones_future');if(map.getZoom()>=11){createLines('workzones_future');drawLines();}}else{clearPoints('workzones_future');clearLines('workzones_future');}",10);
            break;
        case 'chkWorkzones':
            setTimeout("if(document.getElementById('chkWorkzones').checked){addPointsToMap('workzones');if(map.getZoom()>=11){createLines('workzones');drawLines();}}else{clearPoints('workzones');clearLines('workzones');}",10);
            break;
        case 'chkIncidents':
            setTimeout("if(document.getElementById('chkIncidents').checked){addPointsToMap('incidents');if(map.getZoom()>=11){createLines('incidents');drawLines();}}else{clearPoints('incidents');clearLines('incidents');}",10);
            break;
        case 'chkConditions':
            setTimeout("if(document.getElementById('chkConditions').checked){if(map.getZoom()<11){createLines('state_conditions')}else{createLines('conditions')};drawLines();}else{clearLines('conditions');clearLines('state_conditions');}",10);
            break;
        default:
            chkEnable();
            hideLoading();
    }
}

function addToFavorites(type,layer,title){
    window.external.AddFavorite('http://maps.modot.mo.gov/travelerinformation?'+type+'='+layer,'MoDOT Traveler Information - ' + title);
}

function busy(){
    return;
}

function chkDisable(){
  document.getElementById('chkWorkzones_Future').disabled=true;
    document.getElementById('chkWorkzones').disabled=true;
    document.getElementById('chkConditions').disabled=true;
    document.getElementById('ddlCity').disabled=true;
    document.getElementById('ddlCounty').disabled=true;
    document.getElementById('ddlDistrict').disabled=true;
    document.getElementById('ddlIS').disabled=true;
    document.getElementById('ddlUS').disabled=true;
    document.getElementById('ddlMO').disabled=true;
    document.getElementById('lnkRefresh').href='javascript:busy();';
    document.getElementById('lnkRefresh').style.color='gray';
    document.getElementById('lnkRefresh').style.cursor='wait';
    document.getElementById('lnkZoomState').href='javascript:busy();';
    document.getElementById('lnkZoomState').style.color='gray';
    document.getElementById('lnkZoomState').style.cursor='wait';
}

function chkEnable(){
  document.getElementById('chkWorkzones_Future').disabled=false;
    document.getElementById('chkWorkzones').disabled=false;
    document.getElementById('chkConditions').disabled=false;
    document.getElementById('ddlCity').disabled=false;
    document.getElementById('ddlCounty').disabled=false;
    document.getElementById('ddlDistrict').disabled=false;
    document.getElementById('ddlIS').disabled=false;
    document.getElementById('ddlUS').disabled=false;
    document.getElementById('ddlMO').disabled=false;
    document.getElementById('lnkRefresh').href='javascript:refresh();';
    document.getElementById('lnkRefresh').style.cursor='';
    document.getElementById('lnkRefresh').style.color='';
    document.getElementById('lnkZoomState').href='javascript:zoomToState();';
    document.getElementById('lnkZoomState').style.color='';
    document.getElementById('lnkZoomState').style.cursor='';
}

function showLoading(){
    textMessage.innerHTML="Loading..."
    textMessage.style.visibility='visible';
}

function hideLoading(){
    textMessage.style.visibility='hidden';

    document.getElementById('imgCity').style.visibility='hidden';
    document.getElementById('imgCounty').style.visibility='hidden';
    document.getElementById('imgDistrict').style.visibility='hidden';
    document.getElementById('imgIS').style.visibility='hidden';
    document.getElementById('imgUS').style.visibility='hidden';
    document.getElementById('imgMO').style.visibility='hidden';
}

function showPopup(){
    loadingMessage=window.createPopup();
    loadingMessage.document.body.innerHTML=document.getElementById('popupdiv').innerHTML;

    var width=parseFloat(document.getElementById('popupdiv').style.width);
    var height=parseFloat(document.getElementById('popupdiv').style.height);

    loadingMessage.show(400,400,width,height,document.body);
}

function show_toolTip(marker) {
    toolTip2.innerHTML = marker.toolTip;
    var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromContainerPixelToLatLng(new GPoint(0,0),true),map.getZoom());
    var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
    var anchor=marker.getIcon().iconAnchor;
    var width=marker.getIcon().iconSize.width;
    var height=toolTip2.clientHeight;

    var divX=offset.x - point.x - anchor.x + width;
    var divY=offset.y - point.y -anchor.y -height;
    if (divY<0)divY=0;
    var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(divX, divY)); 
    pos.apply(toolTip2);
    toolTip2.style.visibility='visible';
}

