var map = null;
var as_str = "10 Downing Street, London, UK";

function sortfunction(a, b){		
	if (a[3] > b[3]) {
		return 1;
	} else {
		return -1;
	}	
}

function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
var center = new GLatLng(51.5148052,-0.0818503);
//-0.126236,51.500152
map.setCenter(center, 12);
map.setMapType(G_NORMAL_MAP);//(G_HYBRID_MAP);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
GEvent.addListener(map,"zoomend", function(){showUser();});
}
}

function createMarker(point, html, tooltip, index) {
//var myIcon = new GIcon(G_DEFAULT_ICON);
//myIcon.image = "http://wifi.omani.ac/images/hotspot.png";//fix type
var letter = String.fromCharCode("A".charCodeAt(0) + index);
var letteredIcon = new GIcon(G_DEFAULT_ICON);
letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
//var marker = new GMarker(point,{icon:myIcon,title:tooltip});
var marker = new GMarker(point,{title:tooltip, icon:letteredIcon});//,{ icon:letteredIcon });
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
return marker;
}

function showAddress() {
if (map == null) {
load();
}
 showTalks();
}
var xmlHttp

function state2Changed()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		if(xmlHttp.responseXML == null) {
			return;
		}
		document.getElementById("loading").innerHTML="";
		var si = xmlHttp.responseXML.getElementsByTagName("stat");
		var ei = si[0].getElementsByTagName("err");
		if(ei.length > 0) {
			error = 123;			
			alert("Search returned error " + error + " " + (ei[0].firstChild.nodeValue).toString());//fix
			return;
		} else { 
			try {
				var pa = (si[0].getElementsByTagName("lat")[0].firstChild.nodeValue);
				var po = (si[0].getElementsByTagName("long")[0].firstChild.nodeValue);
				var dest = new GLatLng(pa,po);			
				map.setCenter(dest, 14);			
			} catch(e) {
			}
		}
		var len = talks.length;
		var stre = [];		
		//fix create marker? and replace
		for (var i = 0; i < len; i++) {
			talks[i][3] = dest.distanceFrom(talks[i][2]);	
		}
		talks.sort(sortfunction);
		var dists = "<h2>Talks</h2><ul>";
		for (var i = 0; i < len; i++) {
			var letter = String.fromCharCode("A".charCodeAt(0) + talks[i][0]);	
			dists += "<li><img src=\"http://www.google.com/mapfiles/marker"+letter+".png\" alt=\"\" height=\"14\" width=\"14\"/> " + " " + talks[i][1] +" "+(talks[i][3] / 1609.344).toFixed(1)+"mi</li>";
		}
		dists += "</ul>";
		document.getElementById("listview").innerHTML=dists;
	}
}

function getMethod() {
var geturl="getadd.php";
geturl=geturl+"?a="+as_str+"&r="+new Date().getTime();
delete xmlHttp;
try {xmlHttp = GetXmlHttpObject();
xmlHttp.onreadystatechange=state2Changed
xmlHttp.open("GET",geturl,true)
xmlHttp.send(null)}
catch (e) {}
}

function notEmpty(){
var myTextField = document.getElementById('myText');
if(myTextField.value != ""){
//as_str = myTextField.value;
as_str = (myTextField.value.toLowerCase()).replace(/\s/g,'')+",London";	//fix
document.getElementById("loading").innerHTML="<img src=\"/images/loading.gif\" alt=\"\" height=\"16\"/ width=\"16\"/>";
getMethod();
}
}

function GetXmlHttpObject()
{
if(xmlHttp!=null) {
delete xmlHttp;
xmlHttp = null;
}
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
//Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
