﻿var map;
var localSearch = new GlocalSearch();

var icon = new GIcon();
icon.image = "/Images/Pointer.png";
icon.shadow = "";
icon.iconSize = new GSize(19, 20);
icon.shadowSize = new GSize(37, 34);
icon.iconAnchor = new GPoint(10, 34);


var sParentPanelId = null;
var allAddresses = Array();
var nNumberOfAddresses = 0;

function GM_SetAddress(s1, s2, s3, s4, s5, s6, s7, s8)
{
	allAddresses[nNumberOfAddresses] = Array();
	allAddresses[nNumberOfAddresses][0] = s1;
	allAddresses[nNumberOfAddresses][1] = s2;
	allAddresses[nNumberOfAddresses][2] = s3;
	allAddresses[nNumberOfAddresses][3] = s4;
	allAddresses[nNumberOfAddresses][4] = s5;
	allAddresses[nNumberOfAddresses][5] = s6;
	allAddresses[nNumberOfAddresses][6] = s7;
	allAddresses[nNumberOfAddresses][7] = s8;
	nNumberOfAddresses++;
}

function GM_SetPanel(p)
{
    sParentPanelId = p;
}

var nCurrentIndex = 0;

function usePointFromPostcode(postcode, nIndex2, callbackFunction) {
	localSearch.setSearchCompleteCallback(null, 
		function() {
			
			if (localSearch.results[0])
			{		
				var resultLat = localSearch.results[0].lat;
				var resultLng = localSearch.results[0].lng;
				var point = new GLatLng(resultLat,resultLng);
				callbackFunction(point, nCurrentIndex);
				++nCurrentIndex;
			}else{
				alert("Postcode '" + postcode + "' not found!");
			}
		});	
	localSearch.execute(postcode + ", UK");
}

var xandy = null;
var marker2 = Array();
var html = Array();

var icon_0 = new GIcon();
icon_0.iconSize = new GSize(34,35);
icon_0.shadowSize = new GSize(34,35);
icon_0.iconAnchor = new GPoint(9,33);
icon_0.infoWindowAnchor = new GPoint(19,0);
icon_0.printImage = 'http://google.webassist.com/google/markers/traditionalflat/pacifica.gif';
icon_0.mozPrintImage = 'http://google.webassist.com/google/markers/traditionalflat/pacifica_mozprint.png';
icon_0.printShadow = 'http://google.webassist.com/google/markers/traditionalflat/shadow.gif';
icon_0.transparent = 'http://google.webassist.com/google/markers/traditionalflat/pacifica_transparent.png';

function placeMarkerAtPoint(point, nIndex)
{
	map.setCenter(new GLatLng(point.lat(), point.lng()), 11, G_NORMAL_MAP);
	var marker = new GMarker(point,icon);
	map.addOverlay(marker);
	
	html[nIndex] = '<p><strong>' + allAddresses[nIndex][0] + '</strong><br/>' + allAddresses[nIndex][1] + '<br/>' + allAddresses[nIndex][2] + '<br/>' + allAddresses[nIndex][3] + '<br/>' + allAddresses[nIndex][4] + '<br/>' + allAddresses[nIndex][5] + '<br/><a href="mailto:'+ allAddresses[nIndex][6] +'">' + allAddresses[nIndex][6] + '</a><br/><a href="'+ allAddresses[nIndex][7] +'">' + allAddresses[nIndex][7] +  '</a></p>';
	
	marker2[nIndex] = new GMarker(point, icon_0);
	map.addOverlay(marker2[nIndex]);
	
	GEvent.addListener(marker2[nIndex], "click", function() {
		marker2[nIndex].openInfoWindowHtml(html[nIndex]);
    });	
}

function setCenterToPoint(point)
{
	map.setCenter(point, 17);
}

function showPointLatLng(point)
{
	alert("Latitude: " + point.lat() + "\nLongitude: " + point.lng());
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(sParentPanelId));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		usePointFromPostcode(allAddresses[0][4], 0, placeMarkerAtPoint);
		usePointFromPostcode(allAddresses[1][4], 1, placeMarkerAtPoint);
		usePointFromPostcode(allAddresses[2][4], 2, placeMarkerAtPoint);
		usePointFromPostcode(allAddresses[3][4], 3, placeMarkerAtPoint);
		usePointFromPostcode(allAddresses[4][4], 4, placeMarkerAtPoint);
		usePointFromPostcode(allAddresses[5][4], 5, placeMarkerAtPoint);
		usePointFromPostcode(allAddresses[6][4], 6, placeMarkerAtPoint);
	}
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnLoadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	} else {
	  window.onunload = function() {
	    oldonunload();
	    func();
	  }
	}
}


