﻿function doClick(buttonName,e)
{    
    var keyunicode=e.charCode || e.keyCode    
    //the purpose of this function is to allow the enter key to 
    //point to the correct button to click.
    var key;					
    if(e.which){//firefox
        if (keyunicode == 13)
        {
            //Get the button the user wants to have clicked
            var btn = document.getElementById(buttonName);
            if (btn != null)
            { //If we find the button click it
                btn.click(); e.charCode = 0 ; //firefox
            }
        }                                              
    }
    else {
        key = e.keyCode; //IE    
        if (key == 13)
        {
            //Get the button the user wants to have clicked
            var btn = document.getElementById(buttonName);
            if (btn != null)
            { //If we find the button click it
                btn.click(); e.keyCode = 0 ; //IE
            }
        }                        
    }
}


        var key1 = 'ABQIAAAAGbe15MnqXib6_AaXgHErgxRsROQRoIwy6oyws6FuiOM8dwVGcxT4PV59tKtGC1JTW4yxbegtlyBwQw';
        var key2 = 'ABQIAAAAGbe15MnqXib6_AaXgHErgxSwjfvWQ-isB4Rz4D7GZAmS-xEErxQEqveaiCBNZdetB1hDaqHBggK21Q';
        var key3 = 'ABQIAAAAGbe15MnqXib6_AaXgHErgxSxP2gMFZucbIYmqY50V8dsxV1CTRQePXHzntSxf21pTIgC0NqEglcZLA';
        var key4 = 'ABQIAAAAGbe15MnqXib6_AaXgHErgxTJ74Wi3YWuJXfjwWSoFbM9vqzGNRSV4DedkASgCS39wFskJFR-Nfb8Lg';
        var myKey = key2;
        if (window.location.host == 'www.gmapplus.com' || window.location.host== 'gmapplus.com') {
          myKey = key1;
        }
        else if (window.location.host == 'www.schooldistrictdata.com' || window.location.host== 'schooldistrictdata.com') {
          myKey = key3;
        }
        else if (window.location.host == 'www.schooldistrictmap.com' || window.location.host== 'schooldistrictmap.com') {
          myKey = key4;
        }
        else {
          myKey = key2;
        }
        var scriptTag = '<' + 'script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=' + myKey + '">'+'<'+'/script>';
        document.write(scriptTag); 

        var map ;   
        var lastpoint;
        var lastclick = "" ;				// Last Clicked Point        
        function initialize() {
          if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map_canvas"));
            var latlng = new GLatLng(40.036040,-98.977512) ; // Memphis Airport
            map.setCenter(latlng,4);
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());            
            map.enableScrollWheelZoom();
       }     
       function checkclick (point)
       {
        if ( lastclick != point )
        {
         lastclick = point ;
        var inputtext1 = document.getElementById("inputtext1");
        inputtext1.value = point.toString();
        }
       }
               
        var inputtext1 = document.getElementById("inputtext1");
        inputtext1.focus();
        }
        function ButtonClientSubmit_onclick() {            
            window.status = "Getting georesult values ...";
            var inputtext1 = document.getElementById("inputtext1");
            var SelectBndyType = document.getElementById("SelectBndyType");
            var TDDetail = document.getElementById("TDDetail");
            TDDetail.innerHTML="<table style='width: 90%; background-color: #FFFFFF;'> <tr valign='middle'> <td> <img src='images/loadinfo_net.gif' alt='processing...' /> </td> <td> Processing... </td> </tr> </table>";
            RS.Execute("Address.aspx","ServerSideReturn",inputtext1.value,SelectBndyType.options[SelectBndyType.selectedIndex].text,updateMap);
            window.status = "";
        }
        
        function updateMap(result){
            var TDDetail = document.getElementById("TDDetail");
            var TDMsg = document.getElementById("TDMsg");
            if(result==""){
                var inputtext1 = document.getElementById("inputtext1");
                TDMsg.innerHTML="No data found for "+inputtext1.value +"!";
                TDDetail.innerHTML="";           
                return;
            }            
            TDMsg.innerHTML="";
            var inputtext1 = document.getElementById("inputtext1");
            var returnAry = new Array();
            returnAry = result.split("+");
            if (returnAry.length<7){
                //TDMsg.innerHTML="No Bounday found!";
                var SelectBndyType = document.getElementById("SelectBndyType");
                var addressStreet = returnAry[0];      
                var addressCity = returnAry[1];      
                var addressState = returnAry[2];      
                var addressZipcode = returnAry[3];
                var addressX = returnAry[4];
                var addressY = returnAry[5];                
                var htmlStr="";
                htmlStr+="<table style='width: 95%; border-top-style: ridge; border-right-style: ridge; border-left-style: ridge; border-bottom-style: ridge;'>";
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>"+SelectBndyType.options[SelectBndyType.selectedIndex].text+" Polygon</td></tr><tr><td align='center'><a href='#'>No Polygon was found!</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>You gave</td></tr><tr><td align='center'><a href='#'>"+inputtext1.value+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>We found</td></tr><tr><td align='center'><a href='#'>"+addressStreet+", "+addressCity+", "+addressState+" "+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Longitude, Latitude</td></tr><tr><td align='center'><a href='#'>"+addressX+", "+addressY+"</a></td></tr>"
                htmlStr+="</table>";                              
                TDDetail.innerHTML=htmlStr;
                inputtext1.value="";    
                inputtext1.focus();  
                map.clearOverlays();   
                var blueIcon = new GIcon(G_DEFAULT_ICON);
                blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";            
                blueIcon.iconSize = new GSize(35, 35);
                var point_center = new GLatLng(parseFloat(addressY),parseFloat(addressX));
                //var marker_center = new GMarker(point_center, { icon:blueIcon });
                var marker_center = new GMarker(point_center);
                GEvent.addListener(marker_center, "click", function() {
                    marker_center.openInfoWindowHtml('<table style="color: #4D85C5; "><tr><TD>'+ addressStreet+","+addressCity+","+addressState+" "+addressZipcode+'</TD></TR></TABLE>');
                    });
                map.addOverlay(marker_center);
                map.setCenter(new GLatLng(parseFloat(addressY),parseFloat(addressX)),15);                                  
                return;
            }
            var addressStreet = returnAry[0];      
            var addressCity = returnAry[1];      
            var addressState = returnAry[2];      
            var addressZipcode = returnAry[3];
            var addressX = returnAry[4];
            var addressY = returnAry[5];
            var SelectBndyType = document.getElementById("SelectBndyType");                
            if (SelectBndyType.value=="City"){
                var returnCityName = returnAry[6];
                var returnState = returnAry[7];
                var returnCityFips = returnAry[8];
                var returnAreaMi = returnAry[9];  
                var htmlStr=""; 
                htmlStr+="<table style='width: 95%; border-top-style: ridge; border-right-style: ridge; border-left-style: ridge; border-bottom-style: ridge;'>";
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>You gave</td></tr><tr><td align='center'><a href='#'>"+inputtext1.value+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>We found</td></tr><tr><td align='center'><a href='#'>"+addressStreet+", "+addressCity+", "+addressState+" "+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Longitude, Latitude</td></tr><tr><td align='center'><a href='#'>"+addressX+", "+addressY+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>City Name</td></tr><tr><td align='center'><a href='#'>"+returnCityName+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>State</td></tr><tr><td align='center'><a href='#'>"+returnState+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Zip</td></tr><tr><td align='center'><a href='#'>"+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Area (Mile)</td></tr><tr><td align='center'><a href='#'>"+returnAreaMi+"</a></td></tr>"
                htmlStr+="</table>";                
                TDDetail.innerHTML = htmlStr;     
            }
            else if(SelectBndyType.value=="Zip") {
                var returnZipcode = returnAry[6];
                var returnState = returnAry[7];
                var returnCity = returnAry[8];
                var returnAreaMi = returnAry[9]; 
                var htmlStr="";
                htmlStr+="<table style='width: 95%; border-top-style: ridge; border-right-style: ridge; border-left-style: ridge; border-bottom-style: ridge;'>";
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>You gave</td></tr><tr><td align='center'><a href='#'>"+inputtext1.value+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>We found</td></tr><tr><td align='center'><a href='#'>"+addressStreet+", "+addressCity+", "+addressState+" "+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Longitude, Latitude</td></tr><tr><td align='center'><a href='#'>"+addressX+", "+addressY+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Zip Code</td></tr><tr><td align='center'><a href='#'>"+returnZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>State</td></tr><tr><td align='center'><a href='#'>"+returnState+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>City</td></tr><tr><td align='center'><a href='#'>"+returnCity+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Area (Mile)</td></tr><tr><td align='center'><a href='#'>"+returnAreaMi+"</a></td></tr>"
                htmlStr+="</table>";
                TDDetail.innerHTML = htmlStr;
            }
            else if(SelectBndyType.value=="County") {
                var returnCountyName = returnAry[6];
                var returnState = returnAry[7];
                var returnFips = returnAry[8];
                var returnAreaMi = returnAry[9]; 
                var htmlStr="";
                htmlStr+="<table style='width: 95%; border-top-style: ridge; border-right-style: ridge; border-left-style: ridge; border-bottom-style: ridge;'>";
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>You gave</td></tr><tr><td align='center'><a href='#'>"+inputtext1.value+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>We found</td></tr><tr><td align='center'><a href='#'>"+addressStreet+", "+addressCity+", "+addressState+" "+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Longitude, Latitude</td></tr><tr><td align='center'><a href='#'>"+addressX+", "+addressY+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>County Name</td></tr><tr><td align='center'><a href='#'>"+returnCountyName+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>State</td></tr><tr><td align='center'><a href='#'>"+returnState+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Fips</td></tr><tr><td align='center'><a href='#'>"+returnFips+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Area (Mile)</td></tr><tr><td align='center'><a href='#'>"+returnAreaMi+"</a></td></tr>"
                htmlStr+="</table>";
                
                TDDetail.innerHTML = htmlStr;
            }
            else if(SelectBndyType.value=="SchoolDistrict") {
                var returnDistrictName = returnAry[6];
                var returnState = returnAry[7];
                var returnFips = returnAry[8];
                var returnAreaMi = returnAry[9]; 
                var htmlStr="";
                htmlStr+="<table style='width: 95%; border-top-style: ridge; border-right-style: ridge; border-left-style: ridge; border-bottom-style: ridge;'>";
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>You gave</td></tr><tr><td align='center'><a href='#'>"+inputtext1.value+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>We found</td></tr><tr><td align='center'><a href='#'>"+addressStreet+", "+addressCity+", "+addressState+" "+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Longitude, Latitude</td></tr><tr><td align='center'><a href='#'>"+addressX+", "+addressY+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>District</td></tr><tr><td align='center'><a href='#'>"+returnDistrictName+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>State</td></tr><tr><td align='center'><a href='#'>"+returnState+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Fips</td></tr><tr><td align='center'><a href='#'>"+returnFips+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Area (Mile)</td></tr><tr><td align='center'><a href='#'>"+returnAreaMi+"</a></td></tr>"
                htmlStr+="</table>";
                TDDetail.innerHTML = htmlStr;
            }
            else if(SelectBndyType.value=="CensusTract") {
                var returnCensusTrackName = returnAry[6];
                var returnState = returnAry[7];
                var returnFips = returnAry[8];
                var returnAreaMi = returnAry[9]; 
                var htmlStr="";
                htmlStr+="<table style='width: 95%; border-top-style: ridge; border-right-style: ridge; border-left-style: ridge; border-bottom-style: ridge;'>";
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>You gave</td></tr><tr><td align='center'><a href='#'>"+inputtext1.value+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>We found</td></tr><tr><td align='center'><a href='#'>"+addressStreet+", "+addressCity+", "+addressState+" "+addressZipcode+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Longitude, Latitude</td></tr><tr><td align='center'><a href='#'>"+addressX+", "+addressY+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>State</td></tr><tr><td align='center'><a href='#'>"+returnState+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Fips</td></tr><tr><td align='center'><a href='#'>"+returnFips+"</a></td></tr>"
                htmlStr+="<tr style='background-color: #aaaaaa;'><td>Area (Mile)</td></tr><tr><td align='center'><a href='#'>"+returnAreaMi+"</a></td></tr>"
                htmlStr+="</table>";
                TDDetail.innerHTML = htmlStr;
            }            
            var returnCenterX = returnAry[10];
            var returnCenterY = returnAry[11];
            var returnRecommendGmapLevel = returnAry[12];
            var returnGeom = returnAry[13];            

            map.clearOverlays();            
//            var geomAry = new Array();
//            geomAry = returnGeom.split("|");
//            if(geomAry.length==1){
//                  var point_center = new GLatLng(parseFloat(addressY),parseFloat(addressX));
//                  var marker_center = new GMarker(point_center);
//                  map.addOverlay(marker_center);                      
//            }
//            else{
//                var XY = new Array();
//                var points = [] ;
//                for (var i = 0; i < geomAry.length; i++)
//                {
//                    XY = geomAry[i].split(",");
//                    points.push( new GLatLng(parseFloat(XY[1]),parseFloat(XY[0])) ) ;
//                }                
//                map.addOverlay( new GPolygon(points,"#f33f00", 1, 1, "#ff0000", 0.2) ) ;   
//            }

            var polylineEncoder = new PolylineEncoder();
            var geom = new String();
            geom = returnAry[13];
            if(geom!=""){
                var polys = new Array();            
                polys = geom.split("))|((");            
                for (var j = 0; j < polys.length; j++) //polygons
                {            
                    var lines = [];
                    var returnGeomAry = new Array();
                    returnGeomAry = polys[j].split(")|(")//one polygon may contains holes
                    for (var k = 0; k < returnGeomAry.length; k++){                    
                        var returnGeom = returnGeomAry[k];
                        var geomAry = new Array();
                        geomAry = returnGeom.split("|");
                        var XY = new Array();
                        var points = [] ;
                        for (var i = 0; i < geomAry.length; i++)
                        {
                            XY = geomAry[i].split(",");
                            points.push( new GLatLng(parseFloat(XY[1]),parseFloat(XY[0])) ) ;
                        }
                        var result = polylineEncoder.dpEncode(points); 
                        lines.push({color: "#ff0000", weight: 2, opacity: 0.8, points: result.encodedPoints, levels: "PNONP", zoomFactor: 2, numLevels: 18 });
                    }
                    var poly1 = new GPolygon.fromEncoded({ polylines: lines, fill: true, color: "#ff0000", opacity: 0.4, outline: true});
                    map.addOverlay(poly1);                
                }//end of overlay polygons loop            
            }            

            var blueIcon = new GIcon(G_DEFAULT_ICON);
            blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";            
            blueIcon.iconSize = new GSize(35, 35);
            var point_center = new GLatLng(parseFloat(addressY),parseFloat(addressX));
            //var marker_center = new GMarker(point_center, { icon:blueIcon });
            var marker_center = new GMarker(point_center);//            
//            GEvent.addListener(marker_center, "click", function() {
//                marker_center.openInfoWindowHtml('<table style="color: #4D85C5; "><tr><TD>'+ addressStreet+","+addressCity+","+addressState+" "+addressZipcode+'</TD></TR></TABLE>');
//                });
//            map.addOverlay(marker_center);

			var label = "XYInfo";
			var tabInfo = new Array();
			tabInfo="Address|CensusInfo|SchoolDist|AreaCode|Other".split("|");
			tabs = new Array();
			var tabsStr=returnAry[14];
			for (var j = 0; j < tabInfo.length; j++) {
				var tabLabel = tabInfo[j];
				var tabHtml = getTagValue(tabInfo[j],tabsStr);
				if ((j==0) && (tabInfo.length > 2)){
					tabHtml = '<div style="width:'+tabInfo.length*88+'px">' + tabHtml + '</div>';
				}
				tabs.push(new GInfoWindowTab(tabLabel,tabHtml));
			}
			var marker = createTabbedMarker(point_center,label,tabs);

			map.addOverlay(marker);
			marker.openInfoWindowTabsHtml(marker.tabs);

            map.setCenter(new GLatLng(parseFloat(addressY),parseFloat(addressX)), parseInt(returnRecommendGmapLevel));            
            inputtext1.value="";    
            inputtext1.focus();                    
        }

    function getTagValue(tagName,infos){
        var tagValue="";
        var mytagName=new String;
        mytagName=tagName;
        var myInfos=new String;
        myInfos=infos;
        var startIndex;
        var endIndex;
        var length;
        startIndex=myInfos.indexOf("<"+mytagName+">");
        endIndex=myInfos.indexOf("</"+mytagName+">");
        length=mytagName.length+2;
        if (startIndex < endIndex)
        {
            tagValue = myInfos.substring(startIndex + length, endIndex);
        }
        return tagValue;
    }
    
    function createTabbedMarker(point,label,tabs) {
	    var marker = new GMarker(point);
	    marker.tabs = tabs;        
	    GEvent.addListener(marker, "click", function() {
		    marker.openInfoWindowTabsHtml(marker.tabs);
	    });
	    return marker;
    }
    
