// JavaScript Document
var mapurl = "http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&ie=UTF8&iwloc=A&output=embed&key=ABQIAAAAXO_Kw_lKht5dqI_aquiQoBQS8iIBtb3anpUmgvwbGZJdCW94LRTNcVhbmU3bFvhyw9G2yabBQRGD8w&";

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

function showResult(rs) {
	var zoom = 0;
	var location = "";
	if(rs.Status && rs.CountryCode != "RD") {
	  if(rs.CountryName && rs.RegionName && rs.City) {
		  zoom = 9;
		  location = rs.City + ", " + rs.RegionName + ", " + rs.CountryName
	  } else if(rs.RegionName && rs.CountryName) {
		  zoom = 4;
		  location = rs.RegionName + ", " + rs.CountryName;
	  } else {
		  zoom = 3;
		  if(rs.Latitude && rs.Longitude) { location = rs.Latitude.toFixed(2) + " " + rs.Longitude.toFixed(2); }
		  else { location = rs.CountryName; }
	  }
	  $("#map").attr("src", mapurl+"z="+zoom+"&q="+location);
	  return true;
	}
	return false;
}

$(document).ready(function(){
	// GA
	var pageTracker = _gat._getTracker("UA-10475047-1");

	// widgets and dialogs
	$("#formats").tabs();
	$("#left").corner("10px tl bl");
	$("#apidocs").dialog({autoOpen:false,width:700,height:550,bigframe:true,modal:true,show:'scale',hide:'scale',title:'The RESTful API'});
	$("#download").dialog({autoOpen:false,width:700,height:520,bigframe:true,modal:true,show:'scale',hide:'scale',buttons:{"Ok": function() {$(this).dialog("close");}},title:'Source Code'});
	$("#error").dialog({autoOpen:false,width:600,modal:true,show:'puff',hide:'puff',buttons:{"Ok": function() {$(this).dialog("close");}}, title:'Ooops!'});
	
	// buttons
	$(".menuitem").click(function(){ $(this).effect("pulsate", {times:1}, 1000); });
	$("#apidocs_button").click(function(){ pageTracker._trackPageview("/apidocs"); $("#apidocs").dialog("open"); });
	$("#download_button").click(function(){ pageTracker._trackPageview("/download"); $("#download").dialog("open"); });

	// maps
	$("#geoip").submit(function(){
		var addr = $("input:first").val();
		if(addr && addr != "ip address") {
			$("#searchbutton").effect("pulsate", {times:1}, 1000);
			pageTracker._trackPageview("/json/"+addr);
			$.getJSON("json/"+addr, function(rs){
			    if(!showResult(rs)) {
				$("#error").dialog("open");
			    }
			});
		}
	});
	
	$.getJSON("json/", function(rs) {
		if(rs.Ip) { $("#inputbox").attr("value", rs.Ip); }
		if(!showResult(rs)) {
		    $("#map").attr("src", mapurl+"z=0&q=africa");
		}
	});

	pageTracker._trackPageview();
	return false;
});
