var trafficXmlHttp=null;
var trafficZoomListener = null;
var trafficDragListener = null;
function ShowTraffic()
{
    if(document.getElementById("btnShowTraffic").innerHTML == "Show Traffic Incidents")
    {
        document.getElementById("btnTraffic").innerHTML = "Traffic <img  border='0' src='images/Tick3.gif'/>";
    }
    else
    {
        document.getElementById("btnTraffic").innerHTML = "Traffic";
        document.getElementById("TrafficInformer").style.visibility = 'hidden';
    }
    TrafficClick()
   // document.getElementById("Traffic").style.display = '';
}
function CloseTraffic()
{
    document.getElementById("Traffic").style.display = 'none';
}
function TrafficClick()
{
    if(document.getElementById("btnShowTraffic").innerHTML == "Show Traffic Incidents")
    {
        document.getElementById("btnShowTraffic").innerHTML = "Hide Traffic Incidents";
        GetTraffic();
        //g_map.AddExecutingFunction("GetTrafficOnPan");
        if(trafficDragListener == null && trafficZoomListener == null)
        {
            trafficZoomListener = new AGEvent.addListener(g_map, "onzoomend", function(prevZoomLvl, curZoomLvl){GetTraffic();});
            trafficDragListener = new AGEvent.addListener(g_map, "ondragend", function(){GetTraffic();});
        }
    }
    else
    {
        document.getElementById("btnShowTraffic").innerHTML = "Show Traffic Incidents";
        RemoveTraffic();
    }
}
function trafficListen()
{
	if(document.getElementById("btnShowTraffic").innerHTML == "Show Traffic Incidents")
		GetTraffic();
}
function GetTrafficOnPan()
{
    if(document.getElementById("btnShowTraffic").innerHTML == "Hide Traffic Incidents")
    {
        GetTraffic();
    }
}
function RemoveTraffic()
{
 //g_map.RemoveAllObjects();
 g_map.removeGroupOverlay("Traffic");
  if (trafficZoomListener != null && trafficDragListener != null)
 {
    AGEvent.removeListener(trafficZoomListener);
    AGEvent.removeListener(trafficDragListener);
    trafficZoomListener = null;
    trafficDragListener = null;
 }
 CloseTraffic();
}
function GetTraffic()
{
    document.getElementById("tiLoader").style.display = 'none';
    document.getElementById("tiContentResults").style.display = 'none';
    //document.getElementById("tiContentNoResults").style.display = 'none';

    var scaleIndex =  g_map.getZoomLevel();
    //window.alert(scaleIndex);
        if(scaleIndex < 11)
        {
            g_map.removeGroupOverlay("Traffic");
            ShowTrafficInformer(true, 11 - scaleIndex);
            return false;
        }
    document.getElementById("tiLoader").style.display = '';        
    trafficXmlHttp=GetXmlHttpObject()
    if (trafficXmlHttp==null)
    {
        alert ("Your browser does not support AJAX!");
        return;
    } 
    
    var oBoundingBox = g_map.getBoundingBox();
    var oSouthWestCoords = oBoundingBox.getSouthWest();
    var oNorthEastCoords = oBoundingBox.getNorthEast();
    var boundingBox = oSouthWestCoords.longitude() + "," + oSouthWestCoords.latitude() + "," + oNorthEastCoords.longitude() + "," + oNorthEastCoords.latitude();
    var url = "AjaxTraffic.aspx?bb="+boundingBox+"&num="+Math.random();
    trafficXmlHttp.onreadystatechange=RecieveTraffic;
    trafficXmlHttp.open("GET",url,true);
    trafficXmlHttp.send(null);
}
function WriteLog()
{
    writecookie();
    var oBoundingBox = g_map.getBoundingBox();
    var oSouthWestCoords = oBoundingBox.getSouthWest();
    var oNorthEastCoords = oBoundingBox.getNorthEast();
    var boundingBox = oSouthWestCoords.longitude() + "," + oSouthWestCoords.latitude() + "," + oNorthEastCoords.longitude() + "," + oNorthEastCoords.latitude();
    var url = "http://196.35.70.12/MarbilServer/MapLog?ClientID=18&Source=MAIN_MAP&Version=1.0.0&MapServerIdentifier=http://maps.afrigis.co.za/mapserver/im.aspx&BoundingBox="+boundingBox+"&MapWidthPx="+document.getElementById("MapPanel").style.width+"&MapHeightPx="+document.getElementById("MapPanel").style.height+"&UserIdentifier=&UserLocationLon=&UserLocationLat=";
    query = "Call";
    jsonp(url,"RecieveLog","RecieveLog",query);
}
function writecookie()
{
       var COOKIE_NAME = 'Afrigis_LocalSearch';
       var options = { path: '/', expires: 10 };
       var sCookie = "";
        // get cookie
        sCookie = $.cookie(COOKIE_NAME);
        if(sCookie !=null)
         {   
            $.cookie(COOKIE_NAME, null, options);
         }       
         var _center = g_map.getCentre();
         var _scale = g_map.getZoomLevel();
         var value  = _center.latitude()+"|"+_center.longitude()+"|"+_scale;
         $.cookie(COOKIE_NAME, value, options);



}
function RecieveLog()
{
return null;
}
function RecieveTraffic()
{
    if (trafficXmlHttp.readyState==4)
        {
           Result =trafficXmlHttp.responseText;
           var scaleIndex =  g_map.getZoomLevel();
           if (scaleIndex >= 11)
           {
               if(Result == "")
               {
                //g_map.zoomOut();
                //GetTraffic();
                ShowTrafficInformer(false, 0);
               }
               else
               {
                   sResult = Result.split(";");
                   ShowTrafficInformer(false, sResult.length - 1);
                   for(var i = 0;i<sResult.length;i++)
                   {
                        sTraffic = sResult[i].split("|");
                        if(sTraffic[0] != "")
                        {
                              imgObj=document.createElement("div");
                              imgObj.innerHTML = "<img src ='images/3Dpin_traffic32.png' onclick='ShowTrafficDiv(\""+sResult[i]+"\");return false;'/>";
                              //g_map.AddObject(imgObj,parseFloat(sTraffic[5]),parseFloat(sTraffic[6]),-5,-32);
                              var myHTMLOptions = new AGHTMLOverlayOptions(new AGPoint(-5, -32));
                              var myHTMLOverlay = new AGHTMLOverlay(imgObj, new AGCoord(parseFloat(sTraffic[5]), parseFloat(parseFloat(sTraffic[6]))), myHTMLOptions);
                              g_map.addOverlay(myHTMLOverlay, "Traffic");                      
                              //str = "<strong>Province :</strong>"+sTraffic[0]+"<br/><strong>Suburb :</strong>"+sTraffic[1]+"<br/><strong>Road :</strong>"+sTraffic[2]+"<br/><strong>Direction :</strong>"+sTraffic[4]+"<br/><strong>Description :</strong>"+sTraffic[3];
                              //g_map.AddPoint("images/3Dpin_traffic32.png", "img1", sTraffic[5], sTraffic[6], -5,-32,"<strong style='color:Brown;'>Traffic Incident</strong>", str)
                        }
                   }
                }
            }
        }
}
function HideTrafficDiv()
{
    document.getElementById("divTraffic").style.display = 'none';
}
function ShowTrafficDiv(Result)
{
    document.getElementById("divTraffic").innerHTML = "";
    document.getElementById("divTraffic").style.display = '';
    sResult =  Result.split("|");
    var oTraffic;
    if(document.all)
    {
        oTraffic = document.createElement('<div class ="WeatherPopup"></div>');
    }
    else
    {
        oTraffic = document.createElement('div');
        oTraffic.setAttribute('class','WeatherPopup');
    }
    sRes =  "<h1>Traffic<img src='images/close.gif' style='margin-left:185px;cursor:pointer;' onclick='HideTrafficDiv();return false;' title='Close' alt='Close' /></h1>"
    //sRes += "<img src='images/3Dpin_traffic32.png'/><br/>";
    sRes +="<br/><strong>Province: </strong>"+sResult[0];
    sRes +="<br/><strong>Suburb: </strong>"+sResult[1];
    sRes +="<br/><strong>Road: </strong>"+sResult[2];
    sRes +="<br/><strong>Direction: </strong>"+sResult[4];
    sRes +="<br/><strong>Description: </strong>"+sResult[3];
    sRes +="<br/>";
    sRes +="<a href=\"http://yellowpages.ivo3.com/registration/register.jsp\" target=_blank style=\"position:absolute;bottom:5px;left:5px;color:White;font-weight:bold;\">Subscribe to daily mobile updates</a>";
    oTraffic.innerHTML = sRes;
    document.getElementById("divTraffic").appendChild(oTraffic);
}

function InitCurvyCorners()
{
    var divObj = document.getElementById("TrafficInformer");
    document.getElementById("MapPanel").appendChild(divObj);

    var settings = {
      tl: { radius: 10 },
      tr: { radius: 10 },
      bl: { radius: 10 },
      br: { radius: 10 },
      antiAlias: true
    }

    curvyCorners(settings, divObj);
}

function ShowTrafficInformer(zoomIn, numResults)
{
    document.getElementById("TrafficInformer").style.visibility = 'visible';
    document.getElementById("tiLoader").style.display = 'none';
    document.getElementById("tiContentResults").style.display = 'none';
    //document.getElementById("tiContentNoResults").style.display = 'none';

    var _numIncidentsText = document.getElementById("numIncidents");
    if(zoomIn)
    {
        var levels = "1 more level";
        if (numResults != 1)
        {
            levels = numResults.toString() + " more levels";
        }
        //document.getElementById("tiContentNoResults").style.display = '';
        _numIncidentsText.innerHTML = 'Zoom in to view traffic (' + levels + ')';
    }
    else
    {
        _numIncidentsText.innerHTML = numResults.toString() + " Incidents in this area";
        //document.getElementById("tiContentResults").style.display = '';
    }    
    document.getElementById("tiContentResults").style.display = '';
}

function HideTrafficInformer()
{
    ShowTraffic();
}