var path = "mapTiles/";
var blankImagePath = "mapTiles/blue.png";
var marker;
var marker_html;
var tooltip = document.createElement("div");
var clickEnabled = true;

function pageSpecificInit(){
	
	if (GBrowserIsCompatible()) {
		
		map = new GMap(document.getElementById("mapPanel"));
		map.addControl(new GScaleControl());
		
		var copyright = new GCopyright(1,
	          new GLatLngBounds(new GLatLng(4.168953967399562,73.50003719329834),new GLatLng(4.180585267939715,73.51962804794312) ),
      		    17, "&copy 2008 Male' Maps ");

      	var copyrightCollection = new GCopyrightCollection('Map Data ');
      	copyrightCollection.addCopyright(copyright);
      
      	var tilelayers = [new GTileLayer(copyrightCollection,10,19)];
      	tilelayers[0].getTileUrl = CustomGetTileUrl;
      
     	// ============================================================
     	// === If we know the copyright, return it, otherwise look for the G_NORMAL_MAP copyright =====      
     	tilelayers[0].getCopyright = function(a,b) {
        var c= copyrightCollection.getCopyrightNotice(a,b);
        if (!c) {
          c = G_NORMAL_MAP.getTileLayers()[0].getCopyright(a,b);
        }
        	return c;
	    }
      
     
    	var custommap = new GMapType(tilelayers, G_SATELLITE_MAP.getProjection(), "Old OS");
		map.addMapType(custommap);

	    map.setCenter(new GLatLng(4.175288606914209, 73.50922107696533), 17, custommap);
	 	map.addControl(new GLargeMapControl());
		map.enableScrollWheelZoom();
		
		map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);
		tooltip.style.visibility="hidden";	

		createMarker(new GLatLng(4.175288606914209, 73.50922107696533));
		
		// Listener for user clicks
		GEvent.addListener(map, "click", function(overlay, latlng) {
				  if (latlng) {
					  createMarker(latlng);
				  }
        });

																
		} else {
		document.write('<b>Javascript must be enabled in order to use Alfi Maps.</b>');

	}
	
	
}


function pageSpecificResize() {  
  mapCanvasResize();
}

function mapCanvasResize() {
		var x,y;
		if (self.innerHeight) { // All browsers except Explorer
			x = self.innerWidth - 2;
			y = self.innerHeight - 2;
		}
		else if (document.documentElement && document.documentElement.clientHeight) {	// Strictly Explorer 6
			x = document.documentElement.clientWidth;
			y = (document.documentElement.clientHeight - 12);
		}
		else if (document.body) { // All others
			x = document.body.clientWidth;
			y = (document.body.clientHeight - 12);
		}
		e = document.getElementById("mapPanel");
		
		if(navigator.appName == "Microsoft Internet Explorer")
		{
			x = (x - 322);
			y = (y - 129); // increasing number decreases map size)
		} else {	
			x = (x - 323);
			y = (y - 135); // increasing number decreases map size)
		}
		
		e.style.width = x + 'px';
		e.style.height = y + 'px';
	}

CustomGetTileUrl=function(a,b){
   		if (b==19) {
			if (a.x>=369185 && a.x<=369214 && a.y>=256049 && a.y<= 256067) {
				return path + b + "_" + (a.x) +"_"+(a.y)+".png";
			}	else { return blankImagePath; }
		}
		
		if (b==18) {
			if (a.x>=184592 && a.x<=184607 && a.y>=128024 && a.y<= 128033) {
				return path + b + "_" + (a.x) +"_"+(a.y)+".png";
			} else { return blankImagePath; }
		}
			
		if (b==17 && a.x>=92296 && a.x<=92303 && a.y>=64012 && a.y<= 64016) {
		   		return path + b + "_" + (a.x) +"_"+(a.y)+".png";
        } 
		else { return G_NORMAL_MAP.getTileLayers()[0].getTileUrl(a,b);
		}
}


function saveData() {
  var previewData = "Address Line 1: " + document.getElementById("adddressline1").value;
  previewData += "<br>Address Line 2: " + document.getElementById("adddressline2").value;
  previewData += "<br>Road: " + document.getElementById("RoadDDL").options[document.getElementById("RoadDDL").selectedIndex].text;
  previewData += "<br>Postcode: " + document.getElementById("postcode").value;
  previewData += "<br>Category: " + document.getElementById("CategoryDDL").options[document.getElementById("CategoryDDL").selectedIndex].text;
  previewData += "<br><br>Email: " + document.getElementById("email").value;

  var addressline1 = escape(document.getElementById("adddressline1").value);
  var addressline2 = escape(document.getElementById("adddressline2").value);
  var road = document.getElementById("RoadDDL").value;
  var postcode = document.getElementById("postcode").value;
  var category = document.getElementById("CategoryDDL").value;
  var email = escape(document.getElementById("email").value);
  var latlng = marker.getLatLng();
  var lat = latlng.lat();
  var lng = latlng.lng();
  
  var url = "sys/phpsqlinfo_user_addlocation.php?addressline1=" + addressline1 + "&addressline2=" + addressline2 +
			"&road=" + road + "&postcode=" + postcode + "&category=" + category + "&email=" + email + "&lat=" + lat + "&lng=" + lng;
			
	var thishttp = createRequestObject();
	thishttp.open('get', url);
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById("action_results");
		displayContainer.innerHTML = "  ";
		if(thishttp.readyState == 4){ //Finished loading the response
			if (thishttp.responseText.length <= 1) {
				marker.openInfoWindowHtml("<br>The following data has been submitted successfuly. <br><br>" + previewData + "<br><br>We will verify the correctness of this data and add it to the map as soon as possible. <br>Thank you.<br><br><a href=\"/\">Click here</a> to return to home page");
				displayContainer.innerHTML = "";
				tooltip.style.visibility="hidden";	
			} else {
				marker.tooltip = '<div class="message_error_tooltip"><nobr>' + thishttp.responseText + '</nobr></div>';
				showTooltip(marker);
				
			}
		}
	}
	
	thishttp.send(null);
	
	marker.tooltip = '<div class="message_tooltip"><nobr><img src=\'images/ajax-loader.gif\'> Processing data. Please wait...</nobr></div>';
	showTooltip(marker);

}


// ====== This function displays the tooltip ======
// it can be called from an icon mousover or a side_bar mouseover
function showTooltip(marker) {
    tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var height=tooltip.clientHeight - 20;
	var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
}




