var map;
var localSearch = new GlocalSearch();
var tempMarker;
var markerPopupHTML = "<div class='map-popup'><p>Drag the pin below to the exact location.<br /> If this message disappears just click the pin to reopen it.</p><p>When you're happy with the location <a href='javascript:submitIncident();'>click here &#187;</a></div>";
var markerPopupHTML2 = "<div class='map-popup'><p>Drag the pin below to the exact location.<br /> If this message disappears just click the pin to reopen it.</p><p>When you're happy with the location <a href='javascript:submitMarker();'>click here &#187;</a></div>";
var markerIDs = [];


var shicon = new GIcon();
    shicon.image = "/gmap/surreyhills_gmap_icon.png";
    shicon.shadow = "/gmap/shadow-surreyhills_gmap_icon.png";
    shicon.iconSize = new GSize(26.0, 38.0);
    shicon.shadowSize = new GSize(46.0, 38.0);
    shicon.iconAnchor = new GPoint(12.0, 38.0);
    shicon.infoWindowAnchor = new GPoint(12.0, 0.0);


function loadmap(){
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		//map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());
	

		map.addControl(new GMapTypeControl());
		map.enableScrollWheelZoom();
		map.setCenter(new GLatLng(51.236450, -0.570305), 8);
		//map.setMapType(G_HYBRID_MAP);
	}
}

function loadmap2(){
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		//map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GOverviewMapControl());
	

		map.addControl(new GMapTypeControl());
		map.enableScrollWheelZoom();
		map.setCenter(new GLatLng(51.236450, -0.570305), 8);
		map.setMapType(G_HYBRID_MAP);
		try{
			setTimeout('drawMarkers2("")', 1000);
		}catch(err){
			alert(err.description);
		}
	}
}

function createMarker(point,html) {

	//var marker = new GMarker(point, poicon);
	var marker = new GMarker(point, {icon:shicon});
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	return marker;
}

function drawMarkers(){
	//alert('Drawing');
	if(map){
		var mgr = new GMarkerManager(map);
		document.getElementById("results").innerHTML = '';
		map.setCenter(new GLatLng(51.236450, -0.570305), 8);
		var batch = [];
		markerIDs = [];
		//loop thruogh array
		for(i=0;i<arrayMarkers.length;i++) {
			//alert(i);
			lat = arrayMarkers[i][2];
			lng =  arrayMarkers[i][1]
			point = new GLatLng(lat, lng);
			//alert(point);
			marker = createMarker(point,arrayMarkers[i][4]);
			//alert(marker);
			batch.push(marker);
			//alert('markerid=' + id);
			markerIDs[arrayMarkers[i][0]] = marker;
			document.getElementById("results").innerHTML += '<a href="javascript:zoomme(' + lat + ', ' + lng + ', ' + arrayMarkers[i][0] + ')">' + arrayMarkers[i][3] + '</a>';
			//map.addOverlay(marker);
			if(i == 0){
				//map.setCenter(point, 15);
			}
		}
		//document.getElementById("results").innerHTML += '</ul>';
		mgr.addMarkers(batch, 4, 17);
		mgr.refresh();
	
	}
}

function drawMarkers2(town){
	if (!map) {
		alert('Error !');
		return;
	}
	//map.setMapType(G_HYBRID_MAP);
	//alert('this is where the markers would be drawn');
	obj = getHTTPObject();
	var url = 'includes/xmlhttp.asp';
	url += '?town=' + town;
	//alert(town);
	markerIDs = [];
	
	if(obj){
	
	
	obj.onreadystatechange = function() {
		if (obj.readyState == 4)  {
			//stuff to make it work
			
			var xmldoc = obj.responseXML;
			var db_nodes = xmldoc.getElementsByTagName('route'); 
			var n_records = db_nodes.length;
			var p_x, p_y, p_html, p_marker_html;
			//var noItems = GetXMLValue(xmldoc.getElementsByTagName('all_items'));
			map.clearOverlays();
			var mgr = new GMarkerManager(map);
			//clear div
			
			if(document.getElementById('results') != null){
				document.getElementById('results').innerHTML = '';
				if(n_records == 0){
					document.getElementById('results').innerHTML = '<p class="recent-posts-link">Sorry there were no posts found, please select another area.</p>';
				}
			}
			
			//alert('record='+n_records);
			var batch = [];
			for (i=0; i < n_records; i++) {
				posX = GetXMLValue(db_nodes[i].getElementsByTagName('posX'));
				posY = GetXMLValue(db_nodes[i].getElementsByTagName('posY'));
				HTML = GetXMLValue(db_nodes[i].getElementsByTagName('HTML'));
				Title = GetXMLValue(db_nodes[i].getElementsByTagName('Title'));
				id = GetXMLValue(db_nodes[i].getElementsByTagName('id'));
				if(document.getElementById('results') != null){
					document.getElementById('results').innerHTML +='<a href="javascript:zoomme(' + posY + ', ' + posX + ', ' + id + ')">' + Title + '</a>';
				}
				point = new GLatLng(posY, posX);
				marker = createMarker(point,HTML);
				batch.push(marker);
				//alert('markerid=' + id);
				markerIDs[id] = marker;
				map.addOverlay(marker)
				if(i == 0){

				}
			}
			//mgr.addMarkers(batch, 4, 17);
			//mgr.refresh();
			
			//alert(mgr.getMarkerCount(4));
					
		}  
	 }   
	obj.open('GET', url, true);
	obj.send(null);
	
	}
}

function drawMarkers3(town){
	map.clearOverlays();
	switch(town){
		case "1" :
			map.setCenter(new GLatLng(51.23290256062403, -0.32958984375), 10);
			break; 
		case "2" : //(51.214127, -0.795706)
			map.setCenter(new GLatLng(51.214127, -0.795706), 10);
			break; 
		case "3" :
			map.setCenter(new GLatLng(51.23645, -0.570305), 10);
			break; 
		case "4" ://(51.09231054886148, -0.7117080688476562)
			map.setCenter(new GLatLng(51.09231054886148, -0.7117080688476562), 10);
			break; 
		case "5" ://(51.237645, -0.205832)
			map.setCenter(new GLatLng(51.237645, -0.205832), 10);
			break; 
		default :
			map.setCenter(new GLatLng(51.236450, -0.570305), 8);
	}
	drawMarkers2(town);
}

function usePointFromPostcode(postcode) {
	localSearch.setCenterPoint(map);
	//localSearch.setAddressLookupMode(ADDRESS_LOOKUP_DISABLED);
	localSearch.setSearchCompleteCallback(null,
	function() {
	  document.getElementById('admin-results').innerHTML = '';
	  if (localSearch.results[0]) {    
		var resultLat = localSearch.results[0].lat;
		var resultLng = localSearch.results[0].lng;
		var point = new GLatLng(resultLat,resultLng);
		//map.setCenter(point, 10);
		for (x in localSearch.results){
			alertStr = 'title=' +localSearch.results[0].title + '\r\n address=' +localSearch.results[0].streetAddress + '\r\n city=' + localSearch.results[0].city + '\r\n region=' + localSearch.results[0].region + '\r\n country=' + localSearch.results[0].country;
			//alert(alertStr);
			document.getElementById('admin-results').innerHTML +=  '<a href="javascript:searchzoom(' + localSearch.results[x].lat +', ' + localSearch.results[x].lng + ')">' + localSearch.results[x].title + ' : ' + localSearch.results[x].streetAddress +  ' : ' + localSearch.results[x].city + ' : '  + localSearch.results[x].region + ' : ' +  localSearch.results[x].country +'</a><br>'
		}		
		map.setCenter(point, 12);
	  }else{
		alert("location not found!\r\nTry searching All regions");
	  }
	});  
	
	localSearch.execute(postcode);
}

function searchzoom(lat, lng, id){
	var point = new GLatLng(lat,lng);
	map.setCenter(point, 15);
	//GEvent.trigger(markerIDs[id], "click");
}

function zoomme(lat, lng, id){
	var point = new GLatLng(lat,lng);
	map.setCenter(point, 15);
	GEvent.trigger(markerIDs[id], "click");
}

function place_marker(){
	if (map) {

		//map.clearOverlays();
	
		if (tempMarker!=undefined){
			  map.removeOverlay(tempMarker);
		}
	
		//var tmpicon = new GIcon();
    	//tmpicon.image = "images/P_and_O_Ferries_flag_place.png";
    	//tmpicon.shadow = "images/P_and_O_Ferries_flag_place_shadow.png";
    	//tmpicon.iconSize = new GSize(57.0, 48.0);
    	//tmpicon.shadowSize = new GSize(57.0, 48.0);
    	//tmpicon.iconAnchor = new GPoint(22.0, 48.0);
    	//tmpicon.infoWindowAnchor = new GPoint(57.0, 0.0);

		//tempMarker = new GMarker(map.getCenter(), {draggable:true, icon:tmpicon});
		tempMarker = new GMarker(map.getCenter(), {draggable:true, icon:shicon});
  
		GEvent.addListener(tempMarker, 'click', function() {
			tempMarker.openInfoWindowHtml(markerPopupHTML);
		});

		map.addOverlay(tempMarker);
		tempMarker.openInfoWindowHtml(markerPopupHTML);
	}
}

function submitIncident(){
	var coordY = tempMarker.getPoint().lat();
    var coordX = tempMarker.getPoint().lng();
	//alert('x=' + coordX);
	//alert('y=' + coordY);
	window.location = '/gmap/admin/route_new.asp?x=' + coordX + '&y=' + coordY;
	return;
}

function place_marker2(posY, posX){
	if (map) {
		var point = new GLatLng(posY,posX);
		tempMarker = new GMarker(point, {draggable:true, icon:shicon});
		map.setCenter(point, 15);
		map.addOverlay(tempMarker);
		GEvent.addListener(tempMarker, 'click', function() {
			tempMarker.openInfoWindowHtml(markerPopupHTML2);
		});
		tempMarker.openInfoWindowHtml(markerPopupHTML2);
	}
	
}

function submitMarker(){
	var coordY = tempMarker.getPoint().lat();
    var coordX = tempMarker.getPoint().lng();
	var route = document.getElementById('route').value;
	window.location = '/gmap/admin/route_update.asp?id=' + route + '&x=' + coordX + '&y=' + coordY;
	return;
}
