LoadWebResource("/Script/google.js")
LoadWebResource("/Script/timezone.js")
//Function to Load webResource
function LoadWebResource(resource) {
 var httpRequest = null;
 try {    
if (window.XMLHttpRequest) {  // code for IE7+, Firefox, Chrome, Opera, Safari
httpRequest = new XMLHttpRequest();
}
else {  // code for IE6, IE5
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
var serverUrl= Xrm.Page.context.getServerUrl();
if (serverUrl.match(/\/$/)) {
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
}
httpRequest.open("GET", serverUrl + "/webresources/" + resource, false);
httpRequest.send(null);
eval(httpRequest.responseText);
}
catch (e) {
alert("LoadWebResource >> Error loading " + resource + ":\n" + e.description);
}
}
//The Main Code is Started.
function getCoordinates (address, success, fail)
	{    
		var geocoder = new google.maps.Geocoder ();
		geocoder.geocode ({ 'address': address }, function (results, status)
		{
			if (status == google.maps.GeocoderStatus.OK)
			{
				var latitude = results[0].geometry.location.lat ();
				var longitude = results[0].geometry.location.lng ();
				success ({ latitude: latitude, longitude: longitude });
			}
			else
			{
				fail ("Could not get coordinates for " + address);
			}
		}); 
	}
	//Second code
	function getTimezone (coords, success, fail)
	{
		var tz = new TimeZoneDB ();
		tz.getJSON (
		{ 
			key: "S7QKX1UTA0O0", 
			lat: coords.latitude, 
			lng: coords.longitude
		}, 
		function (data)
		{
			if (data.status == "OK")
			{							
				var date = new Date ();
				date.setTime (data.timestamp * 1000);
				success (date);
			}
			else
			{
				fail (data.message);
			}
		});
	}
	//Third Code
	function displayLocalTimeForAddress ()
	{
		var address = document.getElementById ("new_addres").value;
		function display (date)
		{
		    var s = date.toUTCString();
        	    var day = s.slice(0,3);
                    var t = s.substr(s.length - 12);
                    t = t.slice(0,5);
                    var h = parseInt(t.slice(0,2));
                    var am = "AM"
                    if (h > 12) {
                     h = h - 12;
                    am = "PM"
                    }
                    var m = t.substr(3,5);
                 Xrm.Page.data.entity.attributes.get("new_timezone").setValue  = alert ("Current local time at '" + address + "' is " + day + " " + h.toString() + ":" + m + " " + am );		}
		function fail (message)
		{
			alert ("Failed: " + message);
		}
		getCoordinates (address, function (coords)
		{ 
			getTimezone (coords, display, fail); 
		},
		fail);		
	}