	
window.onload=beginrefresh


//local  <script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAokFbaJWW1wXHolvMQy-4wRSeWKYTnJsYvXJydhh6dVaLRboYkBR6dm8AfqLUUA40EXwG67U-wine6g" type="text/javascript"></script>
//test   <script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAokFbaJWW1wXHolvMQy-4wRR_2hzfemdrh_FxkD6v5Ke10gUQZRT0FJTkKGrv-UhEcFHEzjmrXk_89w" type="text/javascript"></script>
//devwww.jea.com <script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAokFbaJWW1wXHolvMQy-4wRQUSQ3i3UFlgM_xKGnVYSEeB_EF9BTgd9s0R5zIunMn3DlZR6h2Jru14w" type="text/javascript"></script>
//prod <script src="http://maps.google.com/maps?file=api&v=1&key=ABQIAAAAokFbaJWW1wXHolvMQy-4wRTO1uS4nwaksJGrbr5Ozs8A75TGDxTDHRfxsDlaDv3AEyPb0UdumLhmzA" type="text/javascript"></script>

if (GBrowserIsCompatible()) 
{

    var strImageSource = document.source.strGoogleMapSource.value;

    var baseIcon = new GIcon();
    baseIcon.shadow = strImageSource+"/markers/shadow50.png";
    baseIcon.iconSize = new GSize(20, 34);
    baseIcon.shadowSize = new GSize(22, 20);
    baseIcon.iconAnchor = new GPoint(0, 0);
    baseIcon.infoWindowAnchor = new GPoint(0, 0);
    baseIcon.infoShadowAnchor = new GPoint(18, 25);
    
    var greenicon = new GIcon(baseIcon);
    greenicon.image = strImageSource+"/markers/green_outage.png";
    greenicon.iconSize = new GSize(40, 40);
    var TotalOut = 0;

          
    var Areaicon = new GIcon(baseIcon);
      
    var redicon = new GIcon(baseIcon);
    redicon.image = strImageSource+"/markers/red_outage.png";
    redicon.iconSize = new GSize(70, 70);
        
    var yellowicon = new GIcon(baseIcon);
    yellowicon.image = strImageSource+"/markers/yellow_outage.png";
    yellowicon.iconSize = new GSize(50, 50);
        
    var orangeicon = new GIcon(baseIcon);
    orangeicon.image = strImageSource+"/markers/orange_outage.png";
    orangeicon.iconSize = new GSize(60, 60);
    
    var fontage = "<font size=2 face=Arial>"
    var fontagehref = "<font size=4 face=Arial>"
    var fontagend = "</font>"
    
    var blueicon = new GIcon(baseIcon);
    blueicon.image = strImageSource+"/markers/blue_outage.png";
    blueicon.iconSize = new GSize(30, 30);
    
    var map = new GMap(document.getElementById("map"));
  
    var maptype = "DETAIL";
 
    var GeSmallMapControl = new GSmallMapControl() ; 
    var GeMapTypeControl = new GMapTypeControl() ; 

    var point = new GPoint(-81.6215, 30.2939) ;
   
    // Zoom to initial point on map
    map.centerAndZoom(point,1);
    
    //Overide Zoom event on map to stop zoom levels
    GEvent.addListener(map, "zoom", function(oldZoomLevel, newZoomLevel) {
        if (maptype == "AREA")
           {map.zoomTo(7);}
        else{     
        if(newZoomLevel < 4)
             {
             map.zoomTo(4);} 
        if(newZoomLevel > 7)
	                  {
             map.zoomTo(7);} 
        }
       }); 
      
    //Fire off inital load of area map
    loadMapArea();
 
    }
else
    // The client browser does not support Google maps
    // Redirect to a friendly page
    {window.location="currentoutagesmap.asp";}
    
function clearMap()
 // Clear all markers on map
 {map.clearOverlays();}
 
 function loadHelp()
 	{
 	if (window.showModalDialog) {
            window.showModalDialog("http://externalapps.jea.com/OutageMetrix/GoogleMapHelp.htm","name",  "dialogWidth:450px;dialogHeight:400px");
         } else {
           window.open("http://externalapps.jea.com/OutageMetrix/GoogleMapHelp.htm",'name','height=400 width=450,toolbar=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,modal=yes');
         }
	}

function loadMapDetail(){
    clearMap();
    map.addControl(GeSmallMapControl) ; 
    map.addControl(GeMapTypeControl) ; 
    //map.setMapType(G_MAP_TYPE);
    map.setMapType(G_NORMAL_MAP);
    
    maptype = "DETAIL";
   
    map.centerAndZoom(new GPoint(-81.6215, 30.2939),9);
    
    //Get values from xml
    var request = GXmlHttp.create();
    var url = strImageSource+"outages.xml?RandomKey=" + Math.random() * Date.parse(new Date());
    request.open("GET", url, true);
    request.onreadystatechange = function()
    {if (request.readyState == 4)
    {
         var xmlDoc = request.responseXML;
         var markers = xmlDoc.documentElement.getElementsByTagName("marker");
         markerElementsLen = markers.length; 
         plotpoints = new Array(); 
         plotmarkers = new Array(); 
         var ploti = 0;
         var sumcustout = 0;
      for (var i = 0; i < markers.length; i++)
         {
		 var displayText = "Total Customers affected by this outage: "+markers[i].getAttribute("totalcust");
		 var point = new GPoint(parseFloat(markers[i].getAttribute("long")), parseFloat(markers[i].getAttribute("lat")));
		 var lat = parseFloat(markers[i].getAttribute("lat"))
		 var longitude = parseFloat(markers[i].getAttribute("long"));
		 var gotoMarker = parseFloat(markers[i].getAttribute("long"))+","+ parseFloat(markers[i].getAttribute("lat"));
		 var asof =   markers[i].getAttribute("filedate");
	         var totalcustout = parseFloat(markers[i].getAttribute("totalcust"));
		 sumcustout = sumcustout + totalcustout;
		 plotpoints[ploti] = new GPoint(longitude,lat); 
	         plotmarkers[ploti] = new GMarker(plotpoints[ploti],greenicon);
		 plotmarkers[ploti]  = createMarkerDetail( plotpoints[ploti], asof + "<br>"+ displayText + "<br>"   , totalcustout);
		 map.addOverlay(plotmarkers[ploti] );
         }
	 document.getElementById("message").innerHTML =  fontage + "Data current as of: " + asof + " Total Customers Out: "+TotalOut +fontagend;
	 document.getElementById("mapkey").innerHTML =  fontage +"Click marker for details "+"<img src="+strImageSource+"/markers/blue_outage.png  width=10  height=10 > 1-50 <img src="+strImageSource+"/markers/green_outage.png width=10 height= 10 > 51 - 250 <img src="+strImageSource+"/markers/yellow_outage.png  width= 10  height= 10 > 251 - 1000 <img src="+strImageSource+"/markers/orange_outage.png  width= 10  height= 10 > 1001 -2500 <img src="+strImageSource+"/markers/red_outage.png  width= 10  height= 10 > > 2501";
        }
     }
       request.send(null);
       map.addControl(new GScaleControl());
     }
  
//Meta Refresh
var limit="5:00"
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}

// Load the area map
function loadMapArea(){
     clearMap();   
     maptype = "AREA";
     map.centerAndZoom(new GPoint(-81.6215, 30.2939),7);
     //map.setMapType(G_MAP_TYPE); 
     map.setMapType(G_NORMAL_MAP);
     var request = GXmlHttp.create();
     map.removeControl(GeSmallMapControl) ; 
     map.removeControl(GeMapTypeControl) ; 
                 
      //var url = "http://externalappstest.corp.jea.com/OutageMetrix/outagesarea.xml?RandomKey=" + Math.random() * Date.parse(new Date());
       var url = strImageSource+"outagesarea.xml?RandomKey=" + Math.random() * Date.parse(new Date());
     // var url = "http://externalappstest.corp.jea.com/OutageMetrix/outagesarea.xml?RandomKey=" + Math.random() * Date.parse(new Date());strImageSource
      request.open("GET", url, true);
      request.onreadystatechange = function()
      {if (request.readyState == 4)
      {
           var xmlDoc = request.responseXML;
           var markers = xmlDoc.documentElement.getElementsByTagName("marker");
           markerElementsLen = markers.length; 
           plotpoints = new Array(); 
           plotmarkers = new Array(); 
           var ploti = 0;
           var sumcustout =0;
           var lat = 0;
           var longitude = 0;
           var processflag = 0;
           var manual = 0; 
       for (var i = 0; i < markers.length; i++)
           {
  		 var displayText = "Total Customers in area: "+"<font color=green><b>"+markers[i].getAttribute("totalcust") + "</font></b><br>" + 
  		     "Total Customers Out: "+"<font color=red><b>"+markers[i].getAttribute("totalcustout") +"</font></b><br>" ;
  		 var area = markers[i].getAttribute("area");
  		 var totalcustout = parseFloat(markers[i].getAttribute("totalcustout"));
         	 if(markers[i].getAttribute("source") == "MANUAL"){manual = 1;}
  		         processflag = 1;  //Set flag to process marker
			 if (area == "DOWNTOWN")
			    {var lat="30.39745692744683";var  longitude="-81.6830062866211";}
			 else if (area == "SOUTHSIDE")
			    {var lat="30.259067203213018";var  longitude="-81.51168823242187";}
			 else if (area == "ATLANTIC BEACH")
			    {var lat="30.329027350425924";var  longitude="-81.42105102539062";}
			 else if (area == "WESTSIDE")
			    {var lat="30.34325042354528";var  longitude="-81.81381225585937";}
			 else if (area == "NORTHSIDE")
			    {var lat="30.47589937936957";var  longitude="-81.59408569335937";}
			 else if (area == "ARLINGTON")
			    {var lat="30.35628642525117";var  longitude="-81.58584594726562";}
			 else if (area == "ORANGE PARK")
			    {var lat="30.212794977500614";var  longitude="-81.71768188476562";}
			 else if (area == "MANDARIN/ST.JOHNS")
			    {var lat="30.164126343161097";var  longitude="-81.60232543945312";}
			 else if (area == "RIVERSIDE")
			    {var lat="30.308578063619894";var  longitude="-81.71974182128906";}
			 else if (area == "MANDARIN/ST.JOHNS")
			    {var lat="30.154183003812704";var  longitude="-81.59672739006875";}
			 else if (area == "SAN JOSE")
			    {var lat="30.257881008009875";var  longitude="-81.61537170410156";}
			 else if (area == "OTHER")
			    {processflag = 2;}
  		
  		 if (totalcustout == 0){processflag = 0;Areaicon.image = strImageSource+"/markers/AreaOn.png" ;}
			      else {Areaicon.image = strImageSource+"/markers/AreaOff.png" ;}
  		 if (processflag == 1) { 		 
			 var point = new GPoint(longitude,lat);
			 var asof = markers[i].getAttribute("filedate");
			 sumcustout = sumcustout + totalcustout;
			 plotpoints[ploti] = new GPoint(longitude,lat); 
			 plotmarkers[ploti] = new GMarker(plotpoints[ploti],greenicon);
			 plotmarkers[ploti]  = createMarkerArea( plotpoints[ploti], "<font color=blue><b>"+ area + "</font></b> <br>" + asof + "<br><br>"+ displayText + "<br>" , totalcustout);
			 map.addOverlay(plotmarkers[ploti] );
  	     }

    	   }
    	    var link = "<a href=\"javascript:loadMapArea()\">";
    	    TotalOut = sumcustout;
	    document.getElementById("message").innerHTML =  fontage +"Data current as of: " + asof + " Total Customers Out: "+sumcustout + fontagend;
  	if (manual == 0)
  	        {
  	          document.getElementById("navigation").innerHTML =   fontagehref +"<b><a href=\javascript:window.location.reload()\> Area Summary Map  </a> &nbsp   <a href=\javascript:loadMapDetail()\>    Detail Outage Map</a>&nbsp &nbsp   <a href=\javascript:loadHelp()\>    Help</a>  </b> "+ fontagend;
    document.getElementById("mapkey").innerHTML =  fontage + "<img src="+strImageSource+"/markers/AreaOff.png width=10 height= 15 > - Outages &nbsp&nbsp&nbsp&nbsp"+"Click red <img src="+strImageSource+"/markers/AreaOff.png width=10 height= 15 > marker on map for details. "+ fontagend;}
  //document.getElementById("mapkey").innerHTML =  fontage +"Click marker for details "+"<img src=" + strImageSource+"/markers/AreaOn.png  width=10  height=15 > No outages in area. <img src="+strImageSource+"/markers/AreaOff.png width=10 height= 15 > Outages in area."+ fontagend;}
	else if (manual == 1)
		{
		 document.getElementById("navigation").innerHTML = fontagehref + "<a href=\"javascript:loadMapArea()\"> Area Summary Map"+ fontagend;
		 document.getElementById("mapkey").innerHTML =  fontage +"Click marker for details. We are experiencing large outages in our service area." + fontagend;} 
         }
			
       }
         request.send(null);
         map.addControl(new GScaleControl());
    }
    
    
//Meta Refresh
var limit="5:00"
if (document.images){
var parselimit=limit.split(":")
parselimit=parselimit[0]*60+parselimit[1]*1
}


function createMarkerArea(point, html, totalcustout)
{    
   var marker = new GMarker(point,Areaicon)
   GEvent.addListener(marker, "click", function(overlay, point)
   {marker.openInfoWindowHtml(html);})
    return marker;
} 

function createMarkerDetail(point, html, totalcustout)
{
    if (totalcustout > 2501)
       {var marker = new GMarker(point,redicon);}
    else if (totalcustout < 2500 & totalcustout > 1001)
        {var marker = new GMarker(point,orangeicon);}
    else if (totalcustout < 1000 & totalcustout > 251)
        {var marker = new GMarker(point,yellowicon);}
    else if (totalcustout < 250 & totalcustout > 50)
        {var marker = new GMarker(point,greenicon);}
    else if (totalcustout < 51)
        {var marker = new GMarker(point,blueicon);}
        
  
    GEvent.addListener(marker, "click", function(overlay, point)
            {marker.openInfoWindowHtml(html);})
    return marker;
}

function beginrefresh(){
 if (!document.images)
  return
 if (parselimit==1)
     window.location.reload()
 else{
  parselimit-=1
  curmin=Math.floor(parselimit/60)
  cursec=parselimit%60
  if (curmin!=0)
   curtime=curmin+":"+cursec+ " until page reresh!"
  else
   curtime=cursec+" seconds left until page reresh!"
   window.status=curtime
  setTimeout("beginrefresh()",1000)
}
}
