var angle;var fldLng;var fldLat;var flag=0;var direction;var decimals=5;var converter=1000;var map=new GMap2(document.getElementById("map"));map.addControl(new GLargeMapControl());map.addControl(new GMapTypeControl());map.addControl(new GScaleControl());map.addControl(new GOverviewMapControl());map.setCenter(new GLatLng(49.26402, -123.13850), 15);geocoder=new GClientGeocoder();GEvent.addListener(map, 'move', function(){center=map.getCenter();qibladir(center.lngRadians(), center.latRadians());draw(center.lng(), center.lat(), direction);if(angle){map.clearOverlays();}map.addOverlay(angle);var mecca=new GLatLng(21.422230103309218, 39.82621192932129 );var distance=center.distanceFrom(mecca)/converter; var lng=center.lng();var lat=center.lat();document.getElementById("x").innerHTML=lng.toFixed(decimals);document.getElementById("y").innerHTML=lat.toFixed(decimals);document.getElementById("direction").innerHTML=direction;document.getElementById("distance").innerHTML=distance.toFixed(decimals);});function qibladir(X, Y){if (Y==0) Y= 0.00000000000001;if (X < 0 && Y > 0) X=-1*X;else if (X > 0 && Y > 0) X=-1*X;if (X > 0 && Y < 0) X=-1*X;else if(X < 0 && Y < 0) X=-1*X;var radlongitude=X;var radlatitude=Y ;var qibLat=0.373894206; /*21.422230103309218*/var qibLng=-0.695096922; /*-39.82612 degrees=-0.695096922 radians*/var dflong;dflong=radlongitude-qibLng;direction=((180/Math.PI) * Math.atan2( Math.sin(dflong), Math.cos(radlatitude) * Math.tan(qibLat) - Math.sin(radlatitude) * Math.cos(dflong)));if (direction < 0) {direction=360 + direction;}direction=direction.toFixed(decimals);}function draw(x,y,z){g=-z*(Math.PI/180); /*angle in radians*/r=2; /*thickness of line*/var zoom=map.getZoom();if (zoom == 0) zoom=1;if (zoom >= 18) {val=.008; r=6;}if (zoom >= 17 && zoom <= 18) {val=.012; r=4;}if (zoom >= 12 && zoom <= 16) {val=.025; r=4;}if (zoom >= 9 && zoom <= 11) {val=1.25; r=4;}if (zoom <= 8) {val=5.3; r=4;}angle=new GPolyline([new GPoint(x, y), new GPoint( x-((val)*Math.sin(g)), y+((val)*Math.cos(g)) ) ], "#ff0000", r);}function updateMap() {center=map.getCenter();var lng=center.lng();var lat=center.lat();qibladir(center.lngRadians(), center.latRadians());draw(center.lng(), center.lat(), direction);if(angle){map.clearOverlays();}map.addOverlay(angle);var mecca=new GLatLng(21.422230103309218, 39.82621192932129 );var distance=center.distanceFrom(mecca)/converter; var lng=center.lng();var lat=center.lat();document.getElementById("x").innerHTML=lng.toFixed(decimals);document.getElementById("y").innerHTML=lat.toFixed(decimals);document.getElementById("direction").innerHTML=direction;document.getElementById("distance").innerHTML=distance.toFixed(decimals);}function showAddress(address) {if (geocoder) { geocoder.getLatLng(address,function(point) { if (!point) {alert(address + " was not found.\n\n Please check the address and resubmit."); } else {map.setCenter(point, 15);var marker=new GMarker(point);map.addOverlay(marker);marker.openInfoWindowHtml(address); }} ); updateMap();}}updateMap();