var ngFunctionsPresent=true;var UNDEFINED_STR="undefined";var UTMEasting;var UTMNorthing;var UTMZone;var zoneNumber;var FOURTHPI=Math.PI/4;var DEG_2_RAD=Math.PI/180;var RAD_2_DEG=180/Math.PI;var BLOCK_SIZE=100000;var GRIDSQUARE_SET_COL_SIZE=8;var GRIDSQUARE_SET_ROW_SIZE=20;var EASTING_OFFSET=500000;var NORTHING_OFFSET=10000000;var k0=0.9996;var EQUATORIAL_RADIUS=6378137;var ECC_SQUARED=0.006694379;var ECCENTRICTY_SQUARED;var ECC_PRIME_SQUARED=ECC_SQUARED/(1-ECC_SQUARED);function getZoneNumber(b,d){b=parseFloat(b);d=parseFloat(d);if(d>360||d<-180||b>90||b<-90){alert("Bad input. lat: "+b+" lon: "+d)}var c=(d+180)-parseInt((d+180)/360)*360-180;var a=parseInt((c+180)/6)+1;if(b>=56&&b<64&&c>=3&&c<12){a=32}if(b>=72&&b<84){if(c>=0&&c<9){a=31}else{if(c>=9&&c<21){a=33}else{if(c>=21&&c<33){a=35}else{if(c>=33&&c<42){a=37}}}}}return a}function LLtoUTM(c,d,b,a){c=parseFloat(c);d=parseFloat(d);if(c>84||c<-80){return(UNDEFINED_STR)}if(d>360||d<-180||c>90||c<-90){alert("Bad input. lat: "+c+" lon: "+d)}lonTemp=(d+180)-parseInt((d+180)/360)*360-180;latRad=c*DEG_2_RAD;lonRad=lonTemp*DEG_2_RAD;if(!a){zoneNumber=getZoneNumber(c,d)}else{zoneNumber=a}lonOrigin=(zoneNumber-1)*6-180+3;lonOriginRad=lonOrigin*DEG_2_RAD;UTMZone=zoneNumber+""+UTMLetterDesignator(c)+" ";N=EQUATORIAL_RADIUS/Math.sqrt(1-ECC_SQUARED*Math.sin(latRad)*Math.sin(latRad));T=Math.tan(latRad)*Math.tan(latRad);C=ECC_PRIME_SQUARED*Math.cos(latRad)*Math.cos(latRad);A=Math.cos(latRad)*(lonRad-lonOriginRad);M=EQUATORIAL_RADIUS*((1-ECC_SQUARED/4-3*(ECC_SQUARED*ECC_SQUARED)/64-5*(ECC_SQUARED*ECC_SQUARED*ECC_SQUARED)/256)*latRad-(3*ECC_SQUARED/8+3*ECC_SQUARED*ECC_SQUARED/32+45*ECC_SQUARED*ECC_SQUARED*ECC_SQUARED/1024)*Math.sin(2*latRad)+(15*ECC_SQUARED*ECC_SQUARED/256+45*ECC_SQUARED*ECC_SQUARED*ECC_SQUARED/1024)*Math.sin(4*latRad)-(35*ECC_SQUARED*ECC_SQUARED*ECC_SQUARED/3072)*Math.sin(6*latRad));UTMEasting=(k0*N*(A+(1-T+C)*(A*A*A)/6+(5-18*T+T*T+72*C-58*ECC_PRIME_SQUARED)*(A*A*A*A*A)/120)+EASTING_OFFSET);UTMNorthing=(k0*(M+N*Math.tan(latRad)*((A*A)/2+(5-T+9*C+4*C*C)*(A*A*A*A)/24+(61-58*T+T*T+600*C-330*ECC_PRIME_SQUARED)*(A*A*A*A*A*A)/720)));b[0]=UTMEasting;b[1]=UTMNorthing;b[2]=zoneNumber}function LLtoUSNG(d,e,a){d=parseFloat(d);e=parseFloat(e);var c=[];LLtoUTM(d,e,c);var f=c[0];var b=c[1];if(d<0){b+=NORTHING_OFFSET}USNGLetters=findGridLetters(zoneNumber,b,f);USNGNorthing=Math.round(b)%BLOCK_SIZE;USNGEasting=Math.round(f)%BLOCK_SIZE;USNGNorthing=Math.floor(USNGNorthing/Math.pow(10,(5-a)));USNGEasting=Math.floor(USNGEasting/Math.pow(10,(5-a)));USNG=getZoneNumber(d,e)+UTMLetterDesignator(d)+" "+USNGLetters+" ";for(i=String(USNGEasting).length;i<a;i++){USNG+="0"}USNG+=USNGEasting+" ";for(i=String(USNGNorthing).length;i<a;i++){USNG+="0"}USNG+=USNGNorthing;return(USNG)}function UTMLetterDesignator(a){a=parseFloat(a);if((84>=a)&&(a>=72)){letterDesignator="X"}else{if((72>a)&&(a>=64)){letterDesignator="W"}else{if((64>a)&&(a>=56)){letterDesignator="V"}else{if((56>a)&&(a>=48)){letterDesignator="U"}else{if((48>a)&&(a>=40)){letterDesignator="T"}else{if((40>a)&&(a>=32)){letterDesignator="S"}else{if((32>a)&&(a>=24)){letterDesignator="R"}else{if((24>a)&&(a>=16)){letterDesignator="Q"}else{if((16>a)&&(a>=8)){letterDesignator="P"}else{if((8>a)&&(a>=0)){letterDesignator="N"}else{if((0>a)&&(a>=-8)){letterDesignator="M"}else{if((-8>a)&&(a>=-16)){letterDesignator="L"}else{if((-16>a)&&(a>=-24)){letterDesignator="K"}else{if((-24>a)&&(a>=-32)){letterDesignator="J"}else{if((-32>a)&&(a>=-40)){letterDesignator="H"}else{if((-40>a)&&(a>=-48)){letterDesignator="G"}else{if((-48>a)&&(a>=-56)){letterDesignator="F"}else{if((-56>a)&&(a>=-64)){letterDesignator="E"}else{if((-64>a)&&(a>=-72)){letterDesignator="D"}else{if((-72>a)&&(a>=-80)){letterDesignator="C"}else{letterDesignator="Z"}}}}}}}}}}}}}}}}}}}}return letterDesignator}function findSet(a){a=parseInt(a);a=a%6;switch(a){case 0:return 6;break;case 1:return 1;break;case 2:return 2;break;case 3:return 3;break;case 4:return 4;break;case 5:return 5;break;default:return -1;break}}function findGridLetters(a,c,b){a=parseInt(a);c=parseFloat(c);b=parseFloat(b);row=1;north_1m=Math.round(c);while(north_1m>=BLOCK_SIZE){north_1m=north_1m-BLOCK_SIZE;row++}row=row%GRIDSQUARE_SET_ROW_SIZE;col=0;east_1m=Math.round(b);while(east_1m>=BLOCK_SIZE){east_1m=east_1m-BLOCK_SIZE;col++}col=col%GRIDSQUARE_SET_COL_SIZE;return lettersHelper(findSet(a),row,col)}function lettersHelper(c,b,a){if(b==0){b=GRIDSQUARE_SET_ROW_SIZE-1}else{b--}if(a==0){a=GRIDSQUARE_SET_COL_SIZE-1}else{a--}switch(c){case 1:l1="ABCDEFGH";l2="ABCDEFGHJKLMNPQRSTUV";return l1.charAt(a)+l2.charAt(b);break;case 2:l1="JKLMNPQR";l2="FGHJKLMNPQRSTUVABCDE";return l1.charAt(a)+l2.charAt(b);break;case 3:l1="STUVWXYZ";l2="ABCDEFGHJKLMNPQRSTUV";return l1.charAt(a)+l2.charAt(b);break;case 4:l1="ABCDEFGH";l2="FGHJKLMNPQRSTUVABCDE";return l1.charAt(a)+l2.charAt(b);break;case 5:l1="JKLMNPQR";l2="ABCDEFGHJKLMNPQRSTUV";return l1.charAt(a)+l2.charAt(b);break;case 6:l1="STUVWXYZ";l2="FGHJKLMNPQRSTUVABCDE";return l1.charAt(a)+l2.charAt(b);break}}function LLtoMGRS(e,f,a){var b="";var d=LLtoUSNG(e,f,a);var c=/ /g;b=d.replace(c,"");return(b.substring(3))};