﻿var dP=[G_NORMAL_MAP,G_SATELLITE_MAP,G_HYBRID_MAP];var map=null;var fG=null;var mapZoom=6;var mapType=0;var marker=null;var dI=null;var examplePage=0;function e(id){return document.getElementById(id);};function aY(pFloat,pDp){var m=Math.pow(10,pDp);return parseInt(pFloat*m,10)/m;};function HJ(a){GLog.write(a);};function loadLatLongMap(){lF();map=new GMap2(e("mapDiv"));map.addControl(new GScaleControl());map.addControl(new GMapTypeControl());map.addControl(new GLargeMapControl());var x=parseFloat(e("ctl00_CH1_XTextBox").value);var y=parseFloat(e("ctl00_CH1_YTextBox").value);fG=new GLatLng(y,x);mapZoom=parseInt(e("ctl00_CH1_ZTextBox").value);mapType=parseInt(e("ctl00_CH1_TTextBox").value);if(map){map.setCenter(fG,mapZoom);map.checkResize();map.enableDoubleClickZoom();var aE=new GIcon();var eH="http://mcmarkers.googlepages.com/iimm2-green.png";aE.image=eH;aE.iconSize=new GSize(32,32);aE.shadow="http://mcmarkers.googlepages.com/iimm2-shadow.png";aE.shadowSize=new GSize(59,32);aE.printImage=eH;aE.mozPrintImage=eH;aE.iconAnchor=new GPoint(16,31);aE.infoWindowAnchor=new GPoint(16,0);aE.infoShadowAnchor=new GPoint(0,31);marker=new GMarker(fG,{draggable:true,icon:aE});map.addOverlay(marker);map.setMapType(dP[mapType]);GEvent.addListener(map,"moveend",function(){sX();fG=marker.getPoint();qA();});GEvent.addListener(marker,"drag",function(){fG=marker.getPoint();hU();});GEvent.addListener(marker,"dragend",function(){map.setCenter(fG);});var yQ=new GAdsManager(map,"ca-pub-5408854154696215");yQ.enable();hU();var publisherId=46;var iePngFixUrl="http://www.mapchannels.com/iepngfix.htc";Lat49.initAds(publisherId,iePngFixUrl);sX();}};function sX(){var bU=map.getCenter();var jZ=map.getZoom();Lat49.updateAdByLatLon("adcontainer",bU.lat(),bU.lng(),jZ);};function hU(){var displayDiv=e("statDiv");var aR=marker.getPoint();var CI=aR.lng().toString();var CJ=aR.lat().toString();var LS=new GLatLng(aR.lat(),aR.lng());var EI="";var DZ="";var BX="";var BY="";var tQ="E";var tL="N";if(aR.x<0){tQ="W";aR.x= -aR.x;}if(aR.y<0){tL="S";aR.y= -aR.y;}var uN=aY(CI,6);var vC=aY(CJ,6);var LI=CI.indexOf(".");var KT=CJ.indexOf(".");if(LI>=0){var iT=parseFloat(CI.substr(0,LI));}else{var iT=parseFloat(CI);}if(KT>=0){var iS=parseFloat(CJ.substr(0,KT));}else{var iS=parseFloat(CJ);}if(tQ=="W"){iT= -iT;}if(tL=="S"){iS= -iS;}var GF=aR.x-iT;var pD=parseInt(GF*60);var KM=aR.x-parseFloat(iT)-(pD/60);var rP=parseInt(KM*3600);var GE=aR.y-parseFloat(iS);var oW=parseInt(GE*60);var KQ=aR.y-parseFloat(iS)-(oW/60);var rR=parseInt(KQ*3600);var JW=aY(GF*60,3)+"'";var JJ=aY(GE*60,3)+"'";iT=iT.toString()+" ";pD=pD.toString()+"' ";rP=rP.toString()+"'' ";while(iT.length<3)iT="0"+iT.toString();while(pD.length<3)pD="0"+pD.toString();while(rP.length<3)rP="0"+rP.toString();iS=iS.toString()+" ";oW=oW.toString()+"' ";rR=rR.toString()+"'' ";while(iS.length<3)iS="0"+iS.toString();while(oW.length<3)oW="0"+oW.toString();while(rR.length<3)rR="0"+rR.toString();DZ=tQ+" "+iT+pD+rP;EI=tL+" "+iS+oW+rR;BY=tQ+" "+iT+JW;BX=tL+" "+iS+JJ;e("statDiv").innerHTML="<table cellspacing=0 style='border:solid 1px black;width:278px;font-size:12px;background-color:yellow'><tr style='background-color:orange'><td>Format</td><td>Latitude</td><td>Longitude</td></tr>"+"<tr><td><i>Decimal</i></td><td><b>"+vC+"</b></td><td><b>"+uN+"</b></td></tr><tr><td>"+"<i>Deg/Min/Sec</i></td><td><b>"+EI+"</b></td><td><b>"+DZ+"</b></td></tr><tr><td>"+"<i>Deg/Min.min</i></td><td><b>"+BX+"</b></td><td><b>"+BY+"</b></td></tr></table>";e("LatText").value=vC;e("LngText").value=uN;qA();};function qA(){var aR=marker.getPoint();var HE=map.getCurrentMapType();if(HE==dP[0]){mapType=0;}else if(HE==dP[1]){mapType=1;}else if(HE==dP[2]){mapType=2;}var CQ="<a href='geocodersimple.aspx?x="+aY(aR.lng(),6)+"&y="+aY(aR.lat(),6)+"&z="+map.getZoom()+"&t="+mapType+"' title='Permalink' style='color:green;text-decoration:underline' >Permalink</a>";e("linkDiv").innerHTML=CQ;};function findLatLong(){var CD=e("LatText").value;var yN=e("LngText").value;CD=parseFloat(CD);yN=parseFloat(yN);if(CD>= -90&&CD<=90&&yN>= -180&&yN<=180){var gI=new GLatLng(CD,yN);map.setCenter(gI);marker.setPoint(gI);hU();}else{alert("Please enter the Y (latitude) value between -90 and 90. Enter the X (longitude) value between -180 and 180");}};var cN=0;var bE=0;function fK(){var isIE=true;if(typeof(window.innerHeight)=='number'){isIE=false;}if(isIE){cN=parseInt(document.documentElement.clientWidth);bE=parseInt(document.documentElement.clientHeight);}else{cN=parseInt(window.innerWidth);bE=parseInt(window.innerHeight);}};function lF(){fK();var bY=e("mapDiv");if(bY){var cE=cN-320;var iC=bE;bY.style.width=cE+"px";bY.style.height=iC+"px";}var bZ=e("sideDiv");if(bZ){var lO=bE;bZ.style.height=iC+"px";}};function resizePage(){lF();};var hB=[];hB[G_GEO_SUCCESS]="Success";hB[G_GEO_MISSING_ADDRESS]="Missing Address: The address was either missing or had no value.";hB[G_GEO_UNKNOWN_ADDRESS]="Unknown Address:  No corresponding geographic location could be found for the specified address.";hB[G_GEO_UNAVAILABLE_ADDRESS]="Unavailable Address:  The geocode for the given address cannot be returned due to legal or contractual reasons.";hB[G_GEO_BAD_KEY]="Bad Key: The API key is either invalid or does not match the domain for which it was given";hB[G_GEO_TOO_MANY_QUERIES]="Too Many Queries: The daily geocoding quota for this site has been exceeded.";hB[G_GEO_SERVER_ERROR]="Server error: The geocoding request could not be successfully processed.";function findAddress(){var nM=e("addressText").value;var oM=new GClientGeocoder(new GGeocodeCache());oM.getLatLng(nM,function(nI){if(nI){map.setCenter(nI);marker.setPoint(nI);hU();e("searchDiv").innerHTML="Address Found";e("searchDiv").style.color="green";}else{var bI=oM.getCache().get(nM);var AQ="";if(bI){var AQ="<b>Error "+bI.Status.code+"</b><br />";if(hB[bI.Status.code]){AQ+=" "+hB[bI.Status.code];}}e("searchDiv").innerHTML=AQ;e("searchDiv").style.color="red";}});};var eF=[];var rH=false;var DF=0;var aS=null;var fQ=null;var gC=null;function DQ(){this.tK=1;this.lY=0;this.pM=0;this.mB=0;this.nY=0;};function KA(){this.nN=0;this.gT="";this.aI="";this.hO=null;this.iD=null;this.GI="";this.dQ="";this.aZ=0;this.pO=0;this.CY="";this.gQ=0;this.wO=0;this.vV="";this.cH=null;this.kH=true;};function findBatchAddress(hP){var IT=e("mk"+hP);var jV=e("a"+hP);var PO=e("x"+hP);var PP=e("y"+hP);var IO=e("id"+hP);var nG=e("n"+hP);var DV=e("lk"+hP);var BN=e("im"+hP);var BG=e("ox"+hP);var CF=e("oy"+hP);var qT=e("d"+hP);var OB=e("w"+hP);if(jV==null){tG();return;}var nM=jV.innerHTML;var oM=new GClientGeocoder(new GGeocodeCache());oM.getLatLng(nM,function(nI){var bI=oM.getCache().get(nM);var aD=new KA();aD.nN=aS.tK;aD.eV=nM;if(IO){aD.gT=IO.innerHTML;}if(nG){aD.aI=nG.innerHTML;}if(BN){aD.dQ=BN.innerHTML;}if(DV){aD.GI=DV.innerHTML;}if(BG&&CF){var PM=BG.innerHTML;var PJ=CF.innerHTML;aD.iD=new GLatLng(PJ,PM);}if(nI){aD.hO=nI;if(qT&&aD.iD){aD.aZ=parseInt(aD.hO.distanceFrom(aD.iD)+0.5);qT.innerHTML=aD.aZ;}var mV=false;if((geoWarningLevel>0)&&qT&&(aD.aZ>=geoWarningLevel)){mV=true;}if(mV){jV.style.color="orange";aD.gQ="http://mcmarkers.googlepages.com/iimm2-orange.png";aS.mB++;}else{jV.style.color="green";aD.gQ="http://mcmarkers.googlepages.com/iimm2-green.png";aS.pM++;}aD.wO="http://mcmarkers.googlepages.com/iimm2-shadow.png";var aE=new GIcon();aE.image=aD.gQ;aE.iconSize=new GSize(32,32);aE.shadow=aD.wO;aE.shadowSize=new GSize(59,32);aE.printImage=aD.gQ;aE.mozPrintImage=aD.gQ;aE.iconAnchor=new GPoint(16,31);aE.infoWindowAnchor=new GPoint(16,0);aE.infoShadowAnchor=new GPoint(0,31);var aP=new GMarker(nI,{icon:aE,title:aD.aI});map.addOverlay(aP);aD.cH=aP;var dW="";if(aD.gT.length>0){dW+="<span style='color:white;background-color:black;padding-left:2px;padding-right:2px'> "+aD.gT+" </span>&nbsp;";}if(aD.aI.length>0){dW+="<b>"+aD.aI+"</b><br />";}dW+=aD.eV+"<div style='height:4px'></div>";dW+="<div style='font-size:10px'>";dW+="<b>lat:</b> "+aY(aD.hO.lat(),6)+"</b> ";dW+="<b>lng:</b> "+aY(aD.hO.lng(),6)+"</b></div><div style='height:4px'></div>";if(aD.GI.length>0){dW+="<a target='_blank' href='"+aD.GI+"' style='color:green;text-decoration:underline'>Link</a><br /> ";}if(aD.iD&&aD.aZ>0){dW+="<span style='font-size:10px'>Distance vs <a href='javascript:viewOriginal("+eF.length+")' style='color:red;text-decoration:underline;font-weight:bold'>Original</a>: "+aD.aZ+" metres</span>";dW+="<br /><br />";var yG=aD.kH?"checked='true' ":"";dW+="<input id='uninf"+aD.nN+"' type='checkbox' "+yG+" onchange='useNewInf(this)'/> Use New ";}dW="<div style='width:180px'>"+dW+"</div>";if(aD.dQ.length>0){dW="<table><tr valign='top'><td>"+dW+"</td><td align='right'><div style='width:"+geoImageWidth+"px;height:"+geoImageHeight+"px'>"+"<img src='"+aD.dQ+"' border='0' />"+"</div></td></tr></table>";}aD.vV=dW;GEvent.addListener(aP,'click',function(){dI=aD;aP.openInfoWindowHtml(aD.vV);e("uninf"+dI.nN).checked=aD.kH;if(fQ){map.removeOverlay(fQ);fQ=null;}if(gC){map.removeOverlay(gC);gC=null;}});hQ.extend(nI);geoZoomFit();if(nG){nG.innerHTML="<a href='#' style='color:"+(mV?"orange":"green")+";text-decoration:underline' onclick='javascript:viewGeo("+eF.length+");' title=\"View "+aD.aI+" Marker at "+aY(aD.hO.lng(),6)+","+aY(aD.hO.lat(),6)+"\" />"+aD.aI+"</a>";}else{jV.innerHTML="<a href='#' style='color:"+(mV?"orange":"green")+";text-decoration:underline' onclick='javascript:viewGeo("+eF.length+");' title=\"View Marker at "+aY(aD.hO.lng(),6)+","+aY(aD.hO.lat(),6)+"\" />"+aD.eV+"</a>";}IT.innerHTML="<img src='"+aD.gQ+"' border=0 />";var IR=e("un"+aS.tK);if(IR){IR.style.display="inline";}}else{jV.style.color="red";aD.gQ="http://maps.google.com/mapfiles/ms/micons/caution.png";aD.kH=false;aD.CY=bI.Status.code+" : "+hB[bI.Status.code];aD.pO=bI.Status.code;IT.innerHTML="<img src='"+aD.gQ+"' border='0' title='"+aD.CY+"' />";if(nG){nG.style.color="red";}aS.nY++;}eF.push(aD);tP();aS.tK++;if(aS.tK>aS.lY){tG();}else{setTimeout("loadBatch2();",1);}});};function geoZoomFit(){var eN=map.getBoundsZoomLevel(hQ);var hJ=(hQ.getNorthEast().lat()+hQ.getSouthWest().lat())/2;var hK=(hQ.getNorthEast().lng()+hQ.getSouthWest().lng())/2;var cS=new GLatLng(hJ,hK);map.setCenter(cS,eN);};function useNewInf(){dI.kH=e("uninf"+dI.nN).checked?true:false;e("un"+dI.nN).checked=dI.kH;};function viewGeo(GM){var aD=eF[GM];dI=aD;var aP=aD.cH;if(aD){aP.openInfoWindowHtml(aD.vV);e("uninf"+dI.nN).checked=aD.kH;}};function viewError(GM){var aD=eF[GM];alert("Error "+aD.CY+"\r\n\r\n"+aD.aI+"\r\n"+aD.eV);};function viewOriginal(GM){var aD=eF[GM];if(fQ){map.removeOverlay(fQ);}if(gC){map.removeOverlay(gC);}if(aD.iD!=null){var aE=new GIcon();var eH="http://mcmarkers.googlepages.com/iimm2-red.png";aE.image=eH;aE.iconSize=new GSize(32,32);aE.shadow="http://mcmarkers.googlepages.com/iimm2-shadow.png";aE.shadowSize=new GSize(59,32);aE.printImage=eH;aE.mozPrintImage=eH;aE.iconAnchor=new GPoint(16,31);aE.infoWindowAnchor=new GPoint(16,0);aE.infoShadowAnchor=new GPoint(0,31);fQ=new GMarker(aD.iD,{icon:aE});map.addOverlay(fQ);var PD=[aD.hO,aD.iD];gC=new GPolyline(PD,"#FF0000",2,0.7);map.addOverlay(gC);var aH=new GLatLngBounds();aH.extend(aD.hO);aH.extend(aD.iD);var eN=map.getBoundsZoomLevel(aH);var hJ=(aH.getNorthEast().lat()+aH.getSouthWest().lat())/2;var hK=(aH.getNorthEast().lng()+aH.getSouthWest().lng())/2;var cS=new GLatLng(hJ,hK);map.setCenter(cS,eN);}};function findCentre(){var gI=map.getCenter();marker.setPoint(gI);hU();};function checkNew(a){var uK=parseInt(a.id.substr(2))-1;var aD=eF[uK];aD.kH=a.checked?true:false;if(aD==dI&&e("uninf"+dI.nN)){e("uninf"+dI.nN).checked=dI.kH;}e("downloadDiv").style.display="none";e("generateDiv").style.display="inline";};var GW=1;var hQ=null;function loadBatch(DJ){DF=DJ;rH=true;map=new GMap2(e("mapDiv"));map.addControl(new GScaleControl());map.addControl(new GMapTypeControl());map.addControl(new GLargeMapControl());fG=new GLatLng(51.507705,-0.128874);map.setCenter(fG,2);aS=new DQ();var ix=1;while(e("a"+ix)!=null){ix++;}aS.lY=ix-1;if(aS.lY>500){aS.lY=500;}hQ=new GLatLngBounds();GW=1;loadBatch2();};function loadBatch2(){findBatchAddress(GW++);};function tP(){var mA=aS.pM+aS.mB+aS.nY;var EF=0;if(aS.lY>0){EF=aY(mA*100/aS.lY,1)+"%";}var aC="<table cellspacing='0'><tr><td style='width:100px'>"+(mA>=aS.lY?"Complete":EF)+" ("+mA+" of "+aS.lY+") : ";aC+="</td><td><span style='color:green'>"+aS.pM+" successes </span>";if(aS.mB>0){aC+="<span style='color:orange'>"+aS.mB+" warnings </span>";}if(aS.nY>0){aC+="<span style='color:red'>"+aS.nY+" errors </span>";}aC+="</td></tr></table>";e("resultDiv").innerHTML=aC;if(e("progressbarDiv")){var BB=parseInt(mA*100/aS.lY+0.5);e("progressbarDiv").style.width=BB+"%";}};function tG(){rH=false;tP();if(examplePage==0){var aC="";if(e("ox1")==null){generateDownload();}else{e("generateDiv").style.display="inline";}e("nextDiv").innerHTML="<a href='javascript:geoZoomFit()' style='color:blue;text-decoration:underline' >Zoom Fit</a> &nbsp; "+"<a href='geocoderbatch.aspx' style='color:blue;text-decoration:underline' >Process Another Batch</a>";}else{e("nextDiv").innerHTML="<span style='font-size:10px'>"+"<b>Example Geocoding</b>. Using your own data you can save the geocoded results or create a map channel directly from your results.";"</span>";}};function generateDownload(){var aC="";for(var i=0;i<eF.length;i++){var aD=eF[i];if(aD.kH&&aD.pO==0){var xY=aD.hO.lng()+"\t"+aD.hO.lat()+"\t"+aD.pO+"\t"+aD.aZ;}else{var xY="\t\t"+aD.pO+"\t"+aD.aZ+"\n";}aC+=xY+"\n";}bC="GeocoderBatchGen.aspx";e("generateDiv").style.display="none";e("downloadDiv").innerHTML="Preparing results ...";e("downloadDiv").style.display="inline";GDownloadUrl(bC,zK,aC);function zK(jG){e("generateDiv").style.display="none";e("downloadDiv").innerHTML="<a target'blank' href='"+jG+"' style='color:green;text-decoration:underline' >Download Results</a> &nbsp; "+"<a href='GeocoderBatch3.aspx' title='Create an embeddable Map Channel using this data' style='color:green;text-decoration:underline' >Create Map Channel</a>";}}
