﻿// JScript File
var map = null;
var geocoder = null;

var bounds = null;
var southWest = null; 
var southEast = null; 
var northEast = null;
var northWest = null;

var gCenter = null;
var gZoomLevel = 5;
var gMaptype = "MAP";
var gDefaultmarker = null;

var gStrMap = null;
var gStrLayers = null;
var gFireActiveLayerId = 401;
var gFireBanLayerId = 410;
var gFireBanPartialLayerId = 400;
var gForestClosureLayerId = 402;
var gKMZTick="";

var cell1Width = 25;
var cell2Width = 25;
var cell3Width = 25;

var xmlDoc = null;
var gAWSLayers = new Array();
var gPrintMap = false;
var geoXmlUrl = "";
var gPolygon = new Array();

var glocationName = null;
var gWindow = new Array();

var bNewSearch = true;

function layer(id,name,ltype,lvisible,lcolor,fcolor,lwidth,lopacity, geoXml)
{
    this.layerid = id;
    this.layername = name;
    this.layertype = ltype;
    this.visible = lvisible;
    this.strokeColor = lcolor;
    this.fillColor = fcolor;
    this.width = lwidth;
    this.opacity = lopacity;
    this.geoXml = geoXml;
    this.objects = new Array();
}

layer.prototype.AddObject = function(obj)
{
	this.objects[this.objects.length] = obj;
}

function attribute(name,val)
{
    this.aname = name;
    this.avalue = val;
}

function polymarker(lid,id,cpoint,lcolor,lwidth,lopacity,fcolor,html)
{
    this.layerid = lid;
    this.oid = id;
    if (fcolor == "none") fcolor = null;
    this.attributes = new Array();
    this.icon = new GIcon();
    this.icon.image = "images/png/marker.png";
    this.icon.shadow = "images/marker_shadow.png";
    this.icon.iconSize = new GSize(10, 17);
    this.icon.shadowSize = new GSize(10, 17);
    this.icon.iconAnchor = new GPoint(6, 20);
    this.icon.infoWindowAnchor = new GPoint(5, 1);
    markerOptions = {icon:this.icon};
    this.marker = new GMarker(cpoint, markerOptions);
    var marker = this.marker;
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
        //gDefaultmarker = marker;
    });
}

polymarker.prototype.AddAttribute = function(attr)
{
	this.attributes[this.attributes.length] = attr;
}

function initPage()
{
	map = new GMap2(document.getElementById("map_canvas"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GScaleControl()); 
	map.addControl(new GMapTypeControl()); 
	map.addControl(new GOverviewMapControl());
	map.enableScrollWheelZoom();
	map.enableContinuousZoom(); 
	geocoder = new GClientGeocoder();
	if (gStrMap != null && gStrMap != "")
        setMapstatus(gStrMap);
    else
    	map.setCenter(new GLatLng(53.4189, -115.1914), gZoomLevel);   
    getMapstatus();
    
    //disable scrillwhell doubleclick
    //map.disableDoubleClickZoom();
    //map.disableScrollWheelZoom();
    //end disable
    
    if (gPrintMap) {
        gStrLayers = opener.gStrLayers;
        geoXmlUrl = opener.geoXmlUrl;
    }
    // initialize all layers
    if (gAWSLayers.length <= 0 && gStrLayers != null && gStrLayers != "")
    {
        var layerlist = gStrLayers.split("|");
        for (var i = 0; i < layerlist.length; i++)
        {
            var layerinfo = layerlist[i].split(",");
            var ltype = layerinfo[2];
            var lvisible = layerinfo[3];
            var lstyle = layerinfo[4].split(";");
            var lcolor = "#000000";
            var fcolor = "#ff0000";
            var lwidth = 1;
            var opacity = 0.2;
            for (var j = 0; j < lstyle.length; j++)
            {
                var styleparam = lstyle[j].split(":");
                if (styleparam[0] == "stroke-color")
                    lcolor = styleparam[1];
                else if (styleparam[0] == "stroke-width")
                    lwidth = styleparam[1];
                else if (styleparam[0] == "fill")
                    fcolor = styleparam[1];
                else if (styleparam[0] == "opacity")
                    opacity = styleparam[1];
            }
            var geoXml = new GGeoXml(geoXmlUrl + layerinfo[0] + ".kmz?rand="+gKMZTick);//(new Date()).valueOf());
            gAWSLayers[gAWSLayers.length] = new layer(layerinfo[0],layerinfo[1],ltype,lvisible,lcolor,fcolor,lwidth,opacity,geoXml);
            if (lvisible != "true")
               SwitchLayerVisible(layerinfo[0], false);
            else
               SwitchLayerVisible(layerinfo[0], true);
               
        }
    }
}

function loadPage(bPrintMap)
{
    gPrintMap = bPrintMap;
    var loadMap = false;
    if (map == null) {
        initPage();
        loadMap = true;
    }
    else
        loadMap = true;
    bounds = map.getBounds();  
    southWest = bounds.getSouthWest().x + "," + bounds.getSouthWest().y; 
    northWest = bounds.getSouthWest().x + "," + bounds.getNorthEast().y;
    northEast = bounds.getNorthEast().x + "," + bounds.getNorthEast().y;
    southEast = bounds.getNorthEast().x + "," + bounds.getSouthWest().y; 
    strbox = southWest + " " + southEast + " " + northEast + " " + northWest;
    var mapWidth = bounds.getNorthEast().x - bounds.getSouthWest().x;
    var mapHeight = bounds.getNorthEast().y - bounds.getSouthWest().y;
    var screenWidth = map.getSize().width;
	var screenHeight = map.getSize().height;
    var scale = mapWidth / screenWidth + " " + mapHeight / screenHeight;
    var center = map.getCenter().x + " " + map.getCenter().y;
    var size = mapWidth + " " + mapHeight;
    //var param = "bbox=" + strbox + "&scale=" + scale + "&origin=" + center + "&size=" + size;
    var param = "scale=" + scale + "&origin=" + center + "&size=" + size ;

    if (loadMap) {
        ProcessRequest("GetGMLMap.aspx?" + param + "&rand="+(new Date()).valueOf());
        addFireBanMarkers();

        var lstCollegeNames = document.getElementById("fireBanList")
	    if(lstCollegeNames && lstCollegeNames.options.length == 0)
        {
	          lstCollegeNames.style.width = 160  + "px";
	    }	
    }

    GEvent.addListener(map, "infowindowclose", function() {
        //gDefaultmarker = null;
    });
}

function ProcessRequest(winURL)
{
    //debugger;
    try
    {
        xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
    }
    
    xmlHttp.open("GET",winURL,false);
    xmlHttp.send("");
    if(window.ActiveXObject)
    {
        var rs = new ActiveXObject("microsoft.XMLDOM");
        rs.loadXML(xmlHttp.responseText);
        loadGml(rs);
    }
    else
    {
        try
        {
         var parser = new DOMParser();
         var rs = parser.parseFromString(xmlHttp.responseText, "text/xml");
         loadGml(rs);
         }
         catch(err)
         {
            alert(err.message);
         }
    }

    return true;
}

function findLayer(layerid)
{
    for (var i = 0; i < gAWSLayers.length; i++)
    {
        if (gAWSLayers[i].layerid == layerid)
            return gAWSLayers[i];
    }
    return null;
}

function loadGml(xmlDoc)
{  
    var isIE = true;  
   if (window.navigator.userAgent.indexOf("MSIE")>=1) 
{ 
    isIE = true;
}else //if(window.navigator.userAgent.indexOf("Firefox")>=1) 
{ 
    isIE = false;
}

    var layerNodeList = xmlDoc.getElementsByTagName("layer");
      
    for (var i = 0; i < layerNodeList.length; i++)
    {


        var layerId = layerNodeList[i].getAttribute("featuremslink");
        
        var keycol = layerNodeList[i].getAttribute("keycolumn");
        
        var geomcol = layerNodeList[i].getAttribute("geomcolumn");
        var curLayer = findLayer(layerId);
        if (curLayer == null) continue;
        if(isIE)
         {
            var fnodelist = layerNodeList[i].getElementsByTagName("gml:featureMember");
        }
        else
        {
            var fnodelist = layerNodeList[i].getElementsByTagName("featureMember");
            if(fnodelist.length == 0)
                fnodelist = layerNodeList[i].getElementsByTagName("gml:featureMember");
        }
        for (var k = 0; k < fnodelist.length; k++)
        {
            var attrlist = new Array();
            //var pointlist = null;
            //var offsetlist = null;
            
            //mao
            var pointList = new Array();
            //end mao
            var cpoint = null;
            var fid = "";
            var fmnode = fnodelist[k];
            for (var j = 0; j < fmnode.childNodes.length; j++)
            {
                var memnode = fmnode.childNodes[j];
                if (memnode.nodeName == geomcol || memnode.nodeName == "SHAPE")
                {
                      if (isIE)
                      {
                            var pointstr = memnode.childNodes[0].text.split(",");
                      }
                      else
                      { 
                            var pointstr = memnode.childNodes[0].textContent.split(",");
                      }
                      cpoint = new GLatLng(pointstr[1], pointstr[0]);
                      
                      if(pointstr.length > 2)
                    {
                        for(var k1 = 0; k1 < pointstr.length/2; k1++)
                        {
                            pointList[k1] = new GLatLng(pointstr[2*k1+1], pointstr[2*k1]);
                        }
                    }
                }
                else 
                {
                    var parmvalue = "";
                    if (fnodelist[k].childNodes[j].hasChildNodes())
                        parmvalue = fnodelist[k].childNodes[j].childNodes[0].nodeValue;
                    attrlist[attrlist.length] = new attribute(fnodelist[k].childNodes[j].nodeName, parmvalue);
                    if (keycol == fnodelist[k].childNodes[j].nodeName)
                        fid = parmvalue;
                }
             }
             if (cpoint != null) 
             {
                 var displayHtml = getDisplayHtml(layerId, curLayer.layername, attrlist);
                 if (curLayer.layertype == "area")
                 {
                    //curLayer.objects[curLayer.objects.length] = new polymarker(layerId, fid, cpoint, curLayer.strokeColor, curLayer.width, curLayer.opacity, curLayer.fillColor, displayHtml);
                     if(pointList == null || pointList.length < 2)
                    {
                        curLayer.objects[curLayer.objects.length] = new polymarker(layerId, fid, cpoint, curLayer.strokeColor, curLayer.width, curLayer.opacity, curLayer.fillColor, displayHtml);
                    }
                    else
                    {
                        for(var k1 = 0; k1 < pointList.length; k1++)
                        {
                            curLayer.objects[curLayer.objects.length] = new polymarker(layerId, fid, pointList[k1], curLayer.strokeColor, curLayer.width, curLayer.opacity, curLayer.fillColor, displayHtml);
                        }
                    }
                 }
                 else
                 {
                    continue;
                 }
                 curLayer.objects[curLayer.objects.length-1].attributes = attrlist;
             }
        }
     }
   
}
 
function getDisplayHtml(layerid, layername, attributes)
{   
    var window_html = "";
    var firebanty = "";
    var firebannumb = "";
    var effectivedate = "";
    var hectarest = "";
    var issuer = ""; 
    var description = "";
    var contact = "";   
    var hotlink = "";
    var hotlinks = "";
    var strlink = "";
    var fid = "";
    for (var i = 0; i < attributes.length; i++) {
        if (attributes[i].aname == "FIREBAN_TYPE")
           firebanty = attributes[i].avalue;
        else if (attributes[i].aname == "ORDER_NUMBER")
           firebannumb = attributes[i].avalue;
        else if (attributes[i].aname == "EFFECTIVE_DATE")
        {
           effectivedate = attributes[i].avalue.replace(" 12:", " 00:");
           if (effectivedate.indexOf(" 00:00:00 PM") != -1)
            {
                effectivedate = effectivedate.replace(" 00:00:00 PM", " 12:00:00 PM");
            }
        }
        else if (attributes[i].aname == "HECTARES_TTM"){
           hectarest = attributes[i].avalue;          
           if(parseFloat(attributes[i].avalue) == 0)
                hectarest = "";          
        }     
        else if (attributes[i].aname == "LOGINNAME")
           issuer = attributes[i].avalue;
        else if (attributes[i].aname == "DESCRIPTION")
           description = attributes[i].avalue;               
        else if (attributes[i].aname == "CONTACT")
           contact = attributes[i].avalue;                       
        else if (attributes[i].aname == "HOTLINK")
        {
		   hotlinks = attributes[i].avalue;
           hotlink = attributes[i].avalue.split(";");               
        } 
        else if(attributes[i].aname == "FID")
        {
            fid = attributes[i].avalue;
        }             
    }
    window_html = "<div style='width: 350px; height:190px; padding-right: 10px'>";
    window_html += "<p align='left' style='margin-bottom: -6'><strong>" + firebanty + ": ";        
    window_html += firebannumb;
    window_html += "</strong></p>";
//    window_html += "<p align='left' style='margin-bottom: -15'><font size='2'>Fire Ban Type: ";
//    window_html += firebanty;  
//    window_html += "</font></p>";              
    window_html += "<p align='left' style='margin-bottom: -15'><font size='2'>Effective Date: ";
    window_html += effectivedate;
    window_html += "</font></p>";
    //window_html += "<p align='left' style='margin-bottom: -15'><font size='2'>Hectares: ";
    //window_html += hectarest;
    //window_html += "</font></p>";        
//    window_html += "<p align='left' style='margin-bottom: -15'><font size = '2'>Issued by: ";
//    window_html += issuer;
//    window_html += "</font></p>";
    window_html += "<p align='left' style='margin-bottom: -15'><font size='2'>Description:";
    window_html += "<textarea name='Description'  readonly cols='40' rows='2' >";
    window_html += description;
    window_html += "</textarea></font></p>";                        
    window_html += "<p align='left' style='margin-bottom: -10'><font size='2'>Contact: ";
    window_html += contact;
    window_html += "</font></p>";
    window_html += "<p align='left' style='margin-bottom: -10'><font size='2'>";
    if(hotlink.length>0)
    {
        var intFlag = 0;        
        for (var j = 0; j < hotlink.length; j++)
        {
            strlink = hotlink[j].split("|");
            if(strlink.length > 1)
            {
                if(intFlag == 0)
                {
                    window_html += "Links: ";
                }
                intFlag++;
                window_html += "<a href='" + strlink[1] + "' target = '_blank'>" + strlink[0] + "</a>"
                window_html += "&nbsp; &nbsp;";
            }
        }
    }
    var encodeFirebannumb = "";
    if (firebannumb && firebannumb.length > 0)
    {
		encodeFirebannumb = encodeURIComponent(firebannumb);
    }
    var encodeEffectivedate = "";
     if (effectivedate && effectivedate.length > 0)
    {
		encodeEffectivedate = encodeURIComponent(effectivedate);
    }
    var encodeDescription = "";
     if (description && description.length > 0)
    {
        //description =  description.substr(1, 1300);
		encodeDescription = encodeURIComponent(description);
    }
    var encodeContact = "";
     if (contact && contact.length > 0)
    {
		encodeContact = encodeURIComponent(contact);
    }
    var encodeHotlinks = "";    
     if (hotlinks && hotlinks.length > 0)
    {
		encodeHotlinks = encodeURIComponent(hotlinks);
    }
    window_html += "</font></p>";
//	window_html += "<p align='left' style='margin-bottom: -10'>&nbsp; &nbsp;<input type='button' value='View Details' onclick=\"WinOpenPrintDetail('" +
//					firebanty+"','"+ encodeFirebannumb+"','"+ encodeEffectivedate +"','"+ encodeDescription +"','"+ encodeContact +"','"+ encodeHotlinks +"');\" /></p>";
//    window_html += "</div>";
    encodeDescription = encodeDescription.replace(new RegExp("'", "gm"), "\\'");
    encodeDescription = encodeDescription.replace(new RegExp('"', "gm"), '&quot;');

    window_html += "<p align='left' style='margin-bottom: -10'>&nbsp; &nbsp;<input type='image' src='images/View Details.png' onclick=\"WinOpenPrintDetail('" +
					fid+"');\" /></p>";
    window_html += "</div>";
    return window_html;
 }
  function WinOpenPrintDetail(fid)
 {
    var w = 600;
	var h = 580;
	var l = (screen.availWidth - w) / 2;
	var t = (screen.availHeight - h) / 2;
	var winFeature = "width=" + w + ",height=" + h + ",statusbar=yes,scrollbars=yes,left=" + l + ",top=" + t;
	
	var win = window.open("PrintDetails.aspx?fid="+fid, "FireBanProviderDefault", winFeature);
	win.focus();
 }
 function PrintContent(firebanty,firebannumb,effectivedate,description,contact,hotlinks)
 {
	try
	{
//	debugger;
		var OpenWindow=window.open('','OpenWindow','top=10000,left=10000');  
		OpenWindow.document.write("<p align='left' style='margin-bottom: -6'><strong>"+firebanty+": ");        
		OpenWindow.document.write(decodeURIComponent(firebannumb));
		OpenWindow.document.write("</strong></p>");            
		OpenWindow.document.write("<p align='left' style='margin-bottom: -15'><font size='2'>Effective Date: ");
		OpenWindow.document.write(decodeURIComponent(effectivedate));
		OpenWindow.document.write("</font></p>");
		OpenWindow.document.write("<p align='left' style='margin-bottom: -15'><font size='2'>Description:</font></p>");
		OpenWindow.document.write("<p align='left' style='margin-bottom: -5'><font size='2'><textarea name='Description'cols='80'rows='3' style='border:0;overflow:visible;' >");
		OpenWindow.document.write(decodeURIComponent(description));
		OpenWindow.document.write("</textarea></font></p>");                        
		OpenWindow.document.write("<p align='left' style='margin-bottom: -10'><font size='2'>Contact: ");
		OpenWindow.document.write(decodeURIComponent(contact));
		OpenWindow.document.write("</font></p>");
		OpenWindow.document.write("<p align='left' style='margin-bottom: -10'><font size='2'>");
		hotlinks = decodeURIComponent(hotlinks);
		var hotlink = hotlinks.split(";");
		if(hotlink.length>0)
		{
		    var intFlag = 0;   
		    for (var j = 0; j < hotlink.length; j++)
		    {
			    strlink = hotlink[j].split("|");
			    if(strlink.length > 1)
			    {
                   if(intFlag == 0)
                    {
                        OpenWindow.document.write("Links: ");
                    }
                    intFlag++;			    
				    OpenWindow.document.write("<a href='" + strlink[1] + "' target = '_blank'>" + strlink[0] + "</a>");
				    OpenWindow.document.write("&nbsp; &nbsp;<br/>");
			    }
		    }
		}
		OpenWindow.document.write("</font></p>");
		OpenWindow.document.close();
		OpenWindow.print();
		OpenWindow.close();
	}
	catch(e)
	{
	//	alert(e.description);
	}
 }

function getMapstatus()
{
 	gZoomLevel = map.getZoom(); 
  	gCenter = map.getCenter();
    gMaptype = "MAP";    
    if (map.getCurrentMapType()== G_SATELLITE_MAP)
        gMaptype = "SATELLITE";    
    else if (map.getCurrentMapType()== G_HYBRID_MAP)
        gMaptype = "HYBRID";  
    gStrMap = gCenter.lat() + "," + gCenter.lng() + "," + gZoomLevel + "," + gMaptype;        
    if (gDefaultmarker != null)
        gStrMap += "," + gDefaultmarker.getPoint().lat() + "," + gDefaultmarker.getPoint().lng();   
}

function setMapstatus()
{
	gZoomLevel = parseFloat(gStrMap.split(",")[2]);  
    map.setCenter(new GLatLng(parseFloat(gStrMap.split(",")[0]), parseFloat(gStrMap.split(",")[1])), gZoomLevel);
    gCenter = map.getCenter();
    gMaptype = gStrMap.split(",")[3];
    if (gStrMap.split(",").length == 6){
        var newicon = new GIcon();
        newicon.image = "images/png/arrow.png";
        newicon.iconSize = new GSize(39, 34);
        newicon.shadowSize = new GSize(22, 20);
        newicon.iconAnchor = new GPoint(6, 20);
        newicon.infoWindowAnchor = new GPoint(5, 1);
        markerOptions = {icon:newicon};
        gDefaultmarker = new GMarker(new GLatLng(parseFloat(gStrMap.split(",")[4]), parseFloat(gStrMap.split(",")[5])), markerOptions)
        var marker = gDefaultmarker;
        GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml("<br>Location: " + opener.glocationName + "</br>");
        });
        map.addOverlay(gDefaultmarker);
    }
//    if (gMaptype== "SATELLITE")
//    	map.setMapType(G_SATELLITE_MAP);
//    else if (gMaptype== "MAP")
//        map.setMapType(G_MAP_TYPE);    
//    else if (gMaptype== "HYBRID")
//        map.setMapType(G_HYBRID_MAP);
}
function sortAdd(sel, opt)
{
	var opts = sel.options;
	for(var i=0; i<opts.length; i++)
	{
	    if(opts[i].text.toLowerCase() < opt.text.toLowerCase()) continue;
	    //mao
	    if(opts[i].text.toLowerCase() == opt.text.toLowerCase())
	        return;
	     //mao
		//if(opts[i].text < opt.text) continue;
		break;
	}

	opts.add(opt, i);
}

function addItems(name, point)
{
    if(name.length < 1) return;
    var opt = document.createElement("Option");
    opt.text = name;
    opt.value= point.lat() + " " + point.lng();
    var sel = document.getElementById("fireBanList");
    if (sel != null) sortAdd(sel,opt);
}
//function addItems(name, point)
//{
//    var opt = document.createElement("Option");
//    opt.text = name;
//    opt.value= point.lat() + " " + point.lng();
//    if (document.getElementById("fireBanList") != null)
//        document.getElementById("fireBanList").options.add(opt);
//}

function removeItems(name, point)
{
   var elSel = document.getElementById('fireBanList');
   for (var i = 0; i < elSel.length; i++){
       if (elSel.options[i].text == name)
           elSel.remove(i);
   }
}

function addFireBanMarkers()
{
    var fireBanNum = 0;
    for (var i = 0; i < gAWSLayers.length; i++)
    {
        if (gAWSLayers[i].visible == "true") {
            for (var j = 0; j < gAWSLayers[i].objects.length; j++) {
               map.addOverlay(gAWSLayers[i].objects[j].marker);
               var firebanty = "";
               for (var k = 0; k < gAWSLayers[i].objects[j].attributes.length; k++) {
                   if (gAWSLayers[i].objects[j].attributes[k].aname == "ORDER_NUMBER")
                       firebanty = gAWSLayers[i].objects[j].attributes[k].avalue;
               }
               addItems(firebanty, gAWSLayers[i].objects[j].marker.getPoint());
               fireBanNum ++;
            }
        }
    }
    
    if (fireBanNum == 0)
    {
        var elOptNew = document.createElement('option');
        elOptNew.text = 'No current fire bans or notices';
        elOptNew.value = 'No current fire bans or notices';
        var sel = document.getElementById("fireBanList");
        if (window.navigator.userAgent.indexOf("MSIE")>=1) 
            sel.add(elOptNew);
        else if(window.navigator.userAgent.indexOf("Firefox")>=1) 
            sel.add(elOptNew, null);
    }

}

function searchLocation(location)
{
//    debugger;
//    if(var_gStrMap == null)
//        var_gStrMap = gStrMap;
//     else
//        gStrMap = var_gStrMap;
    bNewSearch = true;
    map.setCenter(map.getCenter(), gZoomLevel); 
    if(location == ""){
       if(gDefaultmarker != null)
          map.removeOverlay(gDefaultmarker);
       return;
    }
    var url = "SearchResult.aspx?loc=" + escape(location);
	var w = 180;
	var h = 148;
	var l = (screen.availWidth - w) / 2;
	var t = (screen.availHeight - h) / 2;
	//var winFeature = "width=" + w + ",height=" + h + ",'alwaysRaised=yes,statusbar=no, resizable=1, left=" + l + ",top=" + t;
	var winFeature = "width=" + w + ",height=" + h + ",'alwaysRaised=yes,statusbar=no, resizable=1, left=" + l + ",top=" + t;
	var PublcFireBansSearchResultHandle = window.open(url,"SearchResults",winFeature)
    PublcFireBansSearchResultHandle.focus();
    gWindow.push(PublcFireBansSearchResultHandle);
}
function GUnload()
{
    for(var i = 0; i < gWindow.length; i++)   
      if(!gWindow[i].closed)   
         gWindow[i].close();
}
function viewLocation(name, lat, lon) 
{
    if (gDefaultmarker != null) {
        // remove the previous marker
        map.removeOverlay(gDefaultmarker);
    }
    var point = new GLatLng(parseFloat(lat),parseFloat(lon));
//    alert(''+gZoomLevel);
    if (bNewSearch == true || lat < map.getBounds().getSouthWest().y || lat > bounds.getNorthEast().y || lon < map.getBounds().getSouthWest().x || lon > bounds.getNorthEast().x)
    {
        map.setCenter(point, map.getZoom()); 
        bNewSearch = false;
    }
    var newicon = new GIcon();
    newicon.image = "images/png/arrow.png";
    //icon.shadow = "images/coordinate.gif";
    newicon.iconSize = new GSize(39, 34);
    newicon.shadowSize = new GSize(22, 20);
    newicon.iconAnchor = new GPoint(6, 20);
    newicon.infoWindowAnchor = new GPoint(5, 1);
    markerOptions = {icon:newicon};
    gDefaultmarker = new GMarker(point, markerOptions)
    glocationName = name;    
    var marker = gDefaultmarker;
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("<br>Location: " + name + "</br>");
        //gDefaultmarker = marker;
    });
    map.addOverlay(gDefaultmarker);
    GEvent.trigger(gDefaultmarker, "click");
}

function gotoLocation(name, lat, lon)
{
    opener.viewLocation(name, lat, lon);
}

function CreateLegend(table, rindex, type)
{
   try
   {
	var rowGroup = null;
	if (rindex < 0)
		rowGroup = table.insertRow();
	else
		rowGroup = table.insertRow(rindex + 1);
		
		
	//rowGroup.className = 'clsPartConent';
	
	var cellGroup = rowGroup.insertCell(0);
	
	var oTable = document.createElement("TABLE");
	
	var tabInner = cellGroup.appendChild(oTable);
	
	oTable.width='100%';
	oTable.cellSpacing = 2;
	oTable.cellPadding = 2;
	oTable.border = 0;	
	
	for (var i = 0; i < gAWSLayers.length; i++)
	{
        var rowInner = tabInner.insertRow(i);
//        var cellInner2 = rowInner.insertCell();
//        cellInner2.style.width = cell2Width;
//        if (gAWSLayers[i].visible != "true")
//            cellInner2.innerHTML = '<input type="checkbox" class="normalFont" id="vl_' + gAWSLayers[i].layerid + '" onclick="SwitchLayerVisible(\'' + gAWSLayers[i].layerid + '\',this.checked)"' + '>';
//        else
//            cellInner2.innerHTML = '<input type="checkbox" class="normalFont" id="vl_' + gAWSLayers[i].layerid + '" onclick="SwitchLayerVisible(\'' + gAWSLayers[i].layerid + '\',this.checked)"' + "checked" + '>';
//		cellInner2.innerHTML = '<input type="checkbox" class="normalFont" id="vl_' + gAWSLayers[i].layerid + '" onclick="SetChecked(\'' + gAWSLayers[i].layerid + '\',this.checked)"  checked="checked" >';

        var cellInner3 = rowInner.insertCell(0);
        cellInner3.style.width = cell3Width;
        cellInner3.innerHTML = GetLegendHtml(type, gAWSLayers[i].fillColor, gAWSLayers[i].strokeColor, gAWSLayers[i].width, gAWSLayers[i].opacity);
        
        var cellInner4 = rowInner.insertCell(1);
        cellInner4.className = "normalFont";
        cellInner4.innerHTML = gAWSLayers[i].layername;
        cellInner4.style.noWrap = true;	    
    }
	rowGroup.style.cursor = 'default';
	}
	catch(ex)
	{
	    alert(ex.messsage);
	}
}

//function SetChecked( id, checked )
//{
//	if (checked) return;    
//	id= "vl_"+id;
//	var checkBox = document.getElementById(id);
//	if (checkBox )
//	{
//		checkBox.checked = true;
//	}
//}

function GetLegendHtml(type, fillColor, strokeColor, width, opacity)
{
    
      
    var legendHtml = "<table border=1 cellpadding=0 cellspacing=0 bgcolor=black style='top:0;left:0'><tr><td bgcolor="+fillColor+" bgopacity=0.2 width=20px height=15px style=' border:1 border-color:black'></td></tr></table> ";

	return legendHtml;
	
}

function SwitchLayerVisible(id, visible)
{
    var firebanty = "";
    for (var i = 0; i < gAWSLayers.length; i++){
    
        if (id != gAWSLayers[i].layerid) continue;
        
        if (visible == true)
            map.addOverlay(gAWSLayers[i].geoXml);
        else
            map.removeOverlay(gAWSLayers[i].geoXml);
            
        for (var j = 0; gAWSLayers[i].objects != null && j < gAWSLayers[i].objects.length; j++) {
            firebanty = "";
            if (gAWSLayers[i].layertype == "area" && (id == gFireBanLayerId || id == gFireBanPartialLayerId || id == gForestClosureLayerId)){
               for (var k = 0; k < gAWSLayers[i].objects[j].attributes.length; k++) {
                    if (gAWSLayers[i].objects[j].attributes[k].aname == "ORDER_NUMBER")
                        firebanty = gAWSLayers[i].objects[j].attributes[k].avalue;
               }
            }
 
            /*if (gAWSLayers[i].layertype == "area" && id == gForestClosureLayerId) {
                for (var k = 0; k < gAWSLayers[i].objects[j].attributes.length; k++) {
                    if (gAWSLayers[i].objects[j].attributes[k].aname == "ORDER_NUMB")
                        firebanty = gAWSLayers[i].objects[j].attributes[k].avalue;
                }
            }
            */
            if (gPrintMap || visible == true) {
                addItems(firebanty, gAWSLayers[i].objects[j].marker.getPoint());
                map.addOverlay(gAWSLayers[i].objects[j].marker);
            }
            if (visible == false) {
                removeItems(firebanty, gAWSLayers[i].objects[j].marker.getPoint());
                map.removeOverlay(gAWSLayers[i].objects[j].marker);
            }                   
        }
    }
   
}

function showMarker(name, point) 
{
    gLayerLoaded = true;
    var latlon = point.split(" ");
    var bexit = false;
    for (var i = 0; !bexit && i < gAWSLayers.length; i++) {
        for (var j = 0; !bexit && j < gAWSLayers[i].objects.length; j++) { 
            for (var k = 0; !bexit && k < gAWSLayers[i].objects[j].attributes.length; k++) {
                if (gAWSLayers[i].objects[j].attributes[k].aname == "ORDER_NUMBER" && gAWSLayers[i].objects[j].attributes[k].avalue == name) {
                    map.setCenter(gAWSLayers[i].objects[j].marker.getPoint(), map.getZoom());
                    GEvent.trigger(gAWSLayers[i].objects[j].marker, "click");
                    bexit = true;
                }
            }
        }
    }
}	

function showError(errorMsg)
{
    alert(errorMsg);
}

