var map;var autopan=true;var routePoints=new Array(0);var colour="#cc0000";var total_distance=0;var togglemarkers=1;var lineWidth=3;var lineColor="#ff0000";var opacityVal=0.8;var lines=[];var degreesPerRadian=180/Math.PI;var radiansPerDegree=Math.PI/180;var earthRadiusMeters=6367460;var metersPerDegree=2*Math.PI*earthRadiusMeters/360;var mekahPoints=new GLatLng(21.42252,39.8262);var Icon=new GIcon(G_DEFAULT_ICON);Icon.image="http://labs.google.com/ridefinder/images/mm_20_red.png";Icon.shadow="http://labs.google.com/ridefinder/images/mm_20_shadow.png";Icon.iconSize=new GSize(12,20);Icon.shadowSize=new GSize(22,20);Icon.iconAnchor=new GPoint(6,20);Icon.infoWindowAnchor=new GPoint(5,1);Icon.infoShadowAnchor=new GPoint(5,1);var MILES={label:"miles",f:function(a){return a/1609.344}};var KMS={label:"km",f:function(a){return a/1000}};var unit_handler=MILES;function togglemarkersbtn(){if(togglemarkers==1){togglemarkers=0;redraw()}else{togglemarkers=1;redraw()}}function autopantoggle(a){autopan=a}function Gload(){map=new GMap(document.getElementById("map"));map.addControl(new GLargeMapControl());map.addControl(new GMapTypeControl());map.centerAndZoom(new GPoint(13.360091,52.5430917),3);GEvent.addListener(map,"click",function(b,a){if(a){routePoints.push(a);redraw();if(autopan==true){map.panTo(a)}}});GEvent.addListener(map,"moveend",function(){var a=map.getCenter();document.getElementById("curLat").innerHTML=a.lat().toFixed(5);document.getElementById("curLong").innerHTML=a.lng().toFixed(5)});GEvent.addListener(map,"mouseover",function(){map.showControls()});GEvent.addListener(map,"mouseout",function(){map.hideControls()})}function redraw(){map.clearOverlays();total_distance=0;var a=new GMarker(routePoints[0],Icon);if(togglemarkers==1){map.addOverlay(a)}GEvent.addListener(a,"click",function(){var l=mekahPoints.lat();var k=mekahPoints.lng();var j=routePoints[routePoints.length-1].lat();var i=routePoints[routePoints.length-1].lng();redraw()});for(var b=0;b<routePoints.length;++b){var f=new GMarker(routePoints[b],Icon);if(togglemarkers==1){map.addOverlay(f)}if(routePoints.length>0){var h=mekahPoints.lat();var g=mekahPoints.lng();var e=routePoints[routePoints.length-1-b].lat();var d=routePoints[routePoints.length-1-b].lng();total_distance=((LatLon.distHaversine(h,g,e,d).toPrecision(4))*1000);AddPolylines(lines,GreatCirclePoints(routePoints[routePoints.length-1-b],mekahPoints),lineColor,lineWidth,opacityVal)}}var c=LatLon.bearing(routePoints[routePoints.length-1].lat(),routePoints[routePoints.length-1].lng(),h,g);if(document.getElementById("arahkiblat")){document.getElementById("arahkiblat").innerHTML=c.toFixed(2)}document.controller.Data.value=c.toFixed(2);SendDataToFlashMovie()}function clearLastLeg(){if(routePoints.length<2){return}routePoints.pop();redraw()}function clearMap(){total_distance=0;routePoints=[];map.clearOverlays()}Math.deg2rad=function(a){return a*(Math.PI/180)};var EARTH_RADIUS=6367000;function resizeMap(b,p){var f=999;var e=999;var a=-999;var k=-999;var r=b.getSpanLatLng();var l=r.width;var n=r.height;var d=l;var j=n;if(b.getZoomLevel()>0){d/=Math.pow(2,b.getZoomLevel());j/=Math.pow(2,b.getZoomLevel())}for(var g=0;g<p.length;g++){if(p[g].x<f){f=p[g].x}if(p[g].x>a){a=p[g].x}if(p[g].y<e){e=p[g].y}if(p[g].y>k){k=p[g].y}}var q=0;var o=Math.abs(a-f);for(var g=1;g<16;g++){if(d>o){break}d*=2;q=g}var c=0;var m=Math.abs(k-e);for(var g=1;g<16;g++){if(j>m){break}j*=2;c=g}b.centerAndZoom(new GPoint((f+a)/2,(e+k)/2),(q>c?q:c))}function ZoomOut(){resizeMap(map,routePoints)}function AddPolylines(c,f,e,a,d){var b=new GPolyline(f,e,a,d);c.push(b);map.addOverlay(b)}function GreatCirclePoints(d,b){var p=200000;var q=[];if(d.distanceFrom(b)<=p){q.push(d);q.push(b)}else{var o=d.lng()*radiansPerDegree;var y=(90-d.lat())*radiansPerDegree;var v=earthRadiusMeters*Math.cos(o)*Math.sin(y);var h=earthRadiusMeters*Math.sin(o)*Math.sin(y);var l=earthRadiusMeters*Math.cos(y);var n=b.lng()*radiansPerDegree;var x=(90-b.lat())*radiansPerDegree;var u=earthRadiusMeters*Math.cos(n)*Math.sin(x);var g=earthRadiusMeters*Math.sin(n)*Math.sin(x);var k=earthRadiusMeters*Math.cos(x);var t=(v+u)/2;var f=(h+g)/2;var j=(l+k)/2;var r=Math.sqrt(t*t+f*f+j*j);var m=Math.atan2(f,t);var w=Math.acos(j/r);var a=new GLatLng(90-w*degreesPerRadian,m*degreesPerRadian);var e=GreatCirclePoints(d,a);var c=GreatCirclePoints(a,b);for(var s=0;s<e.length;++s){q.push(e[s])}for(var s=1;s<c.length;++s){q.push(c[s])}}return q}LatLon.distHaversine=function(f,i,e,h){var g=6371;var k=(e-f).toRad();var b=(h-i).toRad();f=f.toRad(),e=e.toRad();var m=Math.sin(k/2)*Math.sin(k/2)+Math.cos(f)*Math.cos(e)*Math.sin(b/2)*Math.sin(b/2);var l=2*Math.atan2(Math.sqrt(m),Math.sqrt(1-m));var j=g*l;return j};LatLon.bearing=function(f,d,e,c){f=f.toRad();e=e.toRad();var b=(c-d).toRad();var g=Math.sin(b)*Math.cos(e);var a=Math.cos(f)*Math.sin(e)-Math.sin(f)*Math.cos(e)*Math.cos(b);return Math.atan2(g,a).toBrng()};function LatLon(a,b){this.lat=a;this.lon=b}LatLon.prototype.toString=function(){return this.lat.toLat()+", "+this.lon.toLon()};String.prototype.parseDeg=function(){if(!isNaN(this)){return Number(this)}var b=this.replace(/^-/,"").replace(/[NSEW]/i,"");var d=b.split(/[^0-9.,]+/);for(var a in d){if(d[a]==""){d.splice(a,1)}}switch(d.length){case 3:var c=d[0]/1+d[1]/60+d[2]/3600;break;case 2:var c=d[0]/1+d[1]/60;break;case 1:if(/[NS]/i.test(this)){b="0"+b}var c=d[0].slice(0,3)/1+d[0].slice(3,5)/60+d[0].slice(5)/3600;break;default:return NaN}if(/^-/.test(this)||/[WS]/i.test(this)){c=-c}return c};Number.prototype.toRad=function(){return this*Math.PI/180};Number.prototype.toDeg=function(){return this*180/Math.PI};Number.prototype.toBrng=function(){return(this.toDeg()+360)%360};Number.prototype.toDMS=function(){var e=Math.abs(this);e+=1/7200;var c=Math.floor(e);var a=Math.floor((e-c)*60);var b=Math.floor((e-c-a/60)*3600);if(c<100){c="0"+c}if(c<10){c="0"+c}if(a<10){a="0"+a}if(b<10){b="0"+b}return c+"\u00B0"+a+"\u2032"+b+"\u2033"};Number.prototype.toLat=function(){return this.toDMS().slice(1)+(this<0?"S":"N")};Number.prototype.toLon=function(){return this.toDMS()+(this>0?"E":"W")};Number.prototype.toPrecision=function(a){if(this==0){return 0}var c=Math.ceil(Math.log(this)*Math.LOG10E);var b=Math.pow(10,a-c);return Math.round(this*b)/b};function showAddress(a){var b=new GClientGeocoder();if(b){b.getLatLng(a,function(c){if(!c){alert(a+" not found")}else{map.setMapType(G_HYBRID_MAP);map.setCenter(c,14);var d=new GMarker(c,Icon);map.addOverlay(d);AddPolylines(lines,GreatCirclePoints(c,mekahPoints),lineColor,lineWidth,opacityVal);var e=LatLon.bearing(c.lat(),c.lng(),mekahPoints.lat(),mekahPoints.lng());if(document.getElementById("arahkiblat")){document.getElementById("arahkiblat").innerHTML=e.toFixed(2)}document.controller.Data.value=e.toFixed(2);SendDataToFlashMovie()}})}}function geserKe(e,d,c){var b=new GPoint(c,d);map.centerAndZoom(b,4);var a=new GMarker(b,Icon);map.addOverlay(a);if(e){a.openInfoWindowHtml(e)}}function getFlashMovieObject(a){if(window.document[a]){return window.document[a]}if(navigator.appName.indexOf("Microsoft Internet")==-1){if(document.embeds&&document.embeds[a]){return document.embeds[a]}}else{return document.getElementById(a)}}function SendDataToFlashMovie(){var a=getFlashMovieObject("myFlashMovie");a.SetVariable("jarum.putar",parseInt(document.controller.Data.value)-90);a.SetVariable("_root.teksKiblat",document.controller.Data.value)};
