var map = null;
//var pt = -1;
//var min = 0;
//var max = 0;
var as_str = "10 Downing Street, London, UK";

function URLDecode2(utftext)
{
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;
	while ( i < utftext.length ) {
		c = utftext.charCodeAt(i);
		var ch = utftext.charAt(i);
		if (ch == "+") {
		   string += " ";
		   i++;
		} else if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}
	}
	return string;
}

function load() {
	if (GBrowserIsCompatible()) {
	  	var publisher_id = "partner-pub-1379345221605809";

		var mapOptions = {
		googleBarOptions : {
		  style : "new",
		  adsOptions: {
			client: publisher_id,
			/*channel: "WhatBus",*/
			adsafe: "high",
			language: "en"
		  }
		}
		}
		map = new GMap2(document.getElementById("map"), mapOptions);		
		map.setCenter(new GLatLng(51.500, -0.126), 13);
		
		map.setUIToDefault();
		
		var adsManagerOptions = {
		  maxAdsOnMap : 1,
		  /*channel: '3469010044',*/
		  style: 'adunit'
		};

		adsManager = new GAdsManager(map, publisher_id, adsManagerOptions);
		adsManager.enable();
		
		map.enableGoogleBar();	 
		
		/*map.setMapType(G_NORMAL_MAP);//(G_HYBRID_MAP);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());*/
		GEvent.addListener(map,"zoomend", function(){showUser();});
	}
}
/*function searchIt() {
var ptField = document.getElementById('pt');
var minField = document.getElementById('min');
var maxField = document.getElementById('max');
pt = ptField.value;
min = minField.value;
max = maxField.value;
if (pkgField.checked) {
pkg = 1;
} else {
pkg = 0;
}
//alert(pt+min+max+bms+gdn+pkg);
showUser();
}*/

//fix
function createMarker2(point, index) {
// Create a lettered icon for this point using our icon class
var letter = String.fromCharCode("A".charCodeAt(0) + index);
var letteredIcon = new GIcon(baseIcon);
letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";

// Set up our GMarkerOptions object
markerOptions = { icon:letteredIcon };
var marker = new GMarker(point, markerOptions);

GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml("Marker <b>" + letter + "</b>");
});
return marker;
}

function createMarker(point,html,tooltip) {
var myIcon = new GIcon(G_DEFAULT_ICON);
myIcon.image = "http://wifi.omani.ac/images/hotspot.png";//fix type
//var marker = new GMarker(point,{icon:myIcon,title:tooltip});
var marker = new GMarker(point,{title:tooltip});//,{ icon:letteredIcon });
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
function showAddress() {
if (map == null) {
load();
}
//initUser();
 GEvent.addListener(map,"dragend", function(){showUser();});
showUser();
}
var xmlHttp

function showUser()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
alert ("Browser does not support HTTP Request")
return
}
var url="getspots.php"
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
url=url+"?x="+Math.round(southWest.lng() * 10000) / 10000+","+Math.round(northEast.lng() * 10000) / 10000+"&y="+Math.round(southWest.lat()*10000) / 10000+","+Math.round(northEast.lat()*10000) / 10000;
url=url+"&r="+new Date().getTime();
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
if(xmlHttp.responseXML == null) {
load();
return;
}
map.clearOverlays();//fix was causing info window to disappear
//var bc = xmlHttp.responseXML.getElementsByTagName("bx");
//if (bc.length > 0) {
 //var bx = (xmlHttp.responseXML.getElementsByTagName("bx")[0].firstChild.nodeValue);
 //var by = (xmlHttp.responseXML.getElementsByTagName("by")[0].firstChild.nodeValue);
 //var center = new GLatLng(0, 51);
 //map.setCenter(center, 13);
/*} else {
alert("hello2");//fix
}*/
//return;
var li = xmlHttp.responseXML.getElementsByTagName("p");
var listw = "";
var cumu = 0;
/*var listn = 0;
var maxlist = 15;
var pick = Math.floor(numps / maxlist);
if (pick == 0) {
	pick = 1;
}*/
for (var i = 0; i < li.length; i++) {
var pa = (li[i].getElementsByTagName("a")[0].firstChild.nodeValue);//fix more error checking required
var po = (li[i].getElementsByTagName("o")[0].firstChild.nodeValue);
var pt = (li[i].getElementsByTagName("t")[0].firstChild.nodeValue);
//var img = "img";//URLDecode2(unescape(li[i].getElementsByTagName("i")[0].firstChild.nodeValue).toString());
var cur = (li[i].getElementsByTagName("c")[0].firstChild.nodeValue).toString();
var enq = (li[i].getElementsByTagName("q")[0].firstChild.nodeValue);
var tag = li[i].getElementsByTagName("v")[0].firstChild.nodeValue;
var tagstr = tag.toString();
//var lk = URLDecode2(unescape((li[i].getElementsByTagName("l")[0].firstChild.nodeValue).toString()));
//var des = "des";//(li[i].getElementsByTagName("d")[0].firstChild.nodeValue).toString();
//var html = "<div style=\"width: 210px; padding-right: 10px\"><img width=\"50\" height=\"50\" src=\""+img+"\" alt=\""+enq+"\" align=\"left\" style=\"border:1px solid #000;\"/><table>";
var html = "<div style=\"width: 210px; padding-right: 10px\"><table>";
var tooltip = cur;//fix
if (pt > 1) {
	tooltip = tagstr;
}
//if ((listn < maxlist) && (i % pick == 0)) {
	/*switch(Int(enq) ){
	 case 1:
	 listv = listv + "<li>McDonalds - " + tag + "</li>";
	 break;
	 case 2:
	 listv = listv + "<li>Coffee Republic - " + tag + "</li>";
	 break;
	 default:
		listv = listv + "<li>" + tag + "</li>";
	 break;
	}*/
	if (enq == 0) {
		var pit = parseInt(tag);
		cumu = cumu+pit;
		if (pit == 1) {
			html = html + "<tr><td>"+tagstr+" hotspot<\/td><\/tr><tr><td>Zoom in for more details.<\/td><\/tr><\/table><\/div>";
		} else {
			html = html + "<tr><td>"+tagstr+" hotspots<\/td><\/tr><tr><td>[zoom in]<\/td><\/tr><\/table><\/div>";
		}
	} else {
		if (enq == 1) {
			listw = "<li>McDonalds: "+tagstr+"</li>"+listw;
		} else if (enq == 2) {
			listw = "<li>Coffee Republic: "+tagstr+"</li>"+listw;
		} else if (enq == 3) {
			listw = "<li>J D Wetherspoon: "+cur+", "+tagstr+"</li>"+listw;
		} else if (enq == 4) {
			listw = "<li>Pret a Manger: "+tagstr+"</li>"+listw;
		} else {
			listw = "<li>"+tagstr+"</li>"+listw;
		}
		html = html + "<tr><td>"+cur+"<\/td><\/tr><tr><td>"+tagstr+"<\/td><\/tr><\/table><\/div>";
	}
	//listn++;
//}

//fix "[edit]" html = html + "<tr><td>"+cur+"<\/td><\/tr><tr><td>"+tag+"<\/td><\/tr><tr><td>[<a href=\"/edit/"+pt+"\">edit</a>]<\/td><\/tr><\/table><\/div>";
//html = html + "<tr><td>111<\/td><\/tr><tr><td>222<\/td><\/tr><\/table><\/div>";

/*<div style="position: absolute; left: 16px; top: 16px; width: 217px; height: 163px; z-index: 10;"></div>*/

var dest = new GLatLng(pa,po);
var marker = createMarker(dest,html,tooltip);//fix may not keep as pt
map.addOverlay(marker);
}
var numps = li.length;
if (enq == 0) {
	numps = cumu;
}
var listv = "<h2>"+numps+" hotspot";//+" hotspots found.</h2><ul>";
if (numps != 1) {
listv = listv + "s";
}
listv = listv + " found.</h2><div id=\"lresults\" class=\"scroll\"><ul>";
listv = listv + listw+"</ul></div>";
document.getElementById("listview").innerHTML=listv;
}
}
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;
    //document.getElementById("debug").innerHTML = "error " + error;//fix
	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);
		//marker.setPoint(dest);
		map.setCenter(dest, 14);
		//fix openInf(dest);
	}
	catch(e) {
	}
  }
 }
}
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,'')+",UK";	//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;
}