/*
* Availible Maps
*	WXMapType: (default - G_NORMAL_MAP)
*		G_NORMAL_MAP		vector map with roads and road names
*		G_SATELLITE_MAP		satalite map
*		G_HYBRID_MAP		combined satalite map with vector overlay
*
*	WXMapZoom: (default - 12)
*		0					furtherst
*		17					closest
*
*	WXMapTypeControl: (default false)
*		true : false		display Satalite, Hybrid, Roads option
*
*	WXMapZoomControl: (default 'small')
*		'small' : 'large' : false		displays zoom functionality in differing formats -false displays nothing
*
* WXMapZoomScrollControl: (defaults true)
*		true : false		allows user to zoom using mouse scroller
*
*	WXMapInfoText: (defaults false)
*		'string' : false	displays an information box if specified	
*
*	WXMapBlowUpMap: (defaults false)
*		true : false		displays a map close up in the information box
*
*	icon
*	icon.image = url.png
*	icon.shadow = url.png
*
* example php

	$points = array();
	$points[] = array('marker'=>'B44 0LJ','info'=>'WAA!');
	$points[] = array('marker'=>'Birmingham','info'=>'<strong>Birmingham</strong><br />woohoo');
	$param = array('WXMapPoints'=>$points,'WXMapZoom'=>10);

*
* http://www.google.com/apis/maps/documentation/
* @package PHP-WAX WXGoogleMap
*/

var map;
var localSearch = new GlocalSearch();

var WXMapPoints = new Array();
var WXMapType = G_NORMAL_MAP;
var WXMapZoom = 12;
var WXMapTypeControl = false;
var WXMapZoomControl = 'small';
var WXMapZoomScrollControl = true;
var WXMapInfoText = false
var WXMapBlowUpMap = false;

var baseIcon = new GIcon();
baseIcon.image = "http://www.google.com/mapfiles/marker.png";
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);


function placeMarkers(){
	mapElement = document.getElementById('map');
	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);
				map.setCenter(point, WXMapZoom);
				
				tmpPoint = WXMapPoints[count];
				if(tmpPoint['pin']) {
				  shadow_array = tmpPoint['pin']['image'].split(".png");
				  shadow =  shadow_array[0]+"-shadow.png";
				  tmpPoint['pin']['shadow'] = shadow;
				} else {
				  tmpPoint['pin'] = null;
				}
				map.addOverlay(createMarker(point, tmpPoint['info'], tmpPoint['pin']));

				if(WXMapZoomScrollControl == false){ map.disableScrollWheelZoom(); }
				else{ map.enableScrollWheelZoom(); }
				
				if(WXMapBlowUpMap == true){ map.showMapBlowup(point); }
				count++;							
			}else{
			  count++;
				//alert("Area not found! " + tmpPoint['marker']);
			}
		});	
	var count = 0;
	for(i=0; i<WXMapPoints.length;i++) {
		localSearch.execute(WXMapPoints[i]['marker'] + ", UK");
	}
}

function createMarker(point, info, pin) {
  if(pin==null) {
    aPin = baseIcon;
  } else {
    var aPin = new GIcon(baseIcon);
    aPin.image = pin['image'];
    aPin.shadow = pin['shadow'];
    aPin.iconSize = new GSize(pin['size_x'], pin['size_y']);
    aPin.shadowSize = new GSize(pin['shadow_x'], pin['shadow_y']);
  }
  
  markerOptions = { icon:aPin };
  var marker = new GMarker(point, markerOptions);
	//var marker = new GMarker(point);
  	if(info != ''){
  		GEvent.addListener(marker, "click", function() {
    		marker.openInfoWindowHtml(info);
  		});
	}
  return marker;
}

function mapLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		if(WXMapZoomControl == 'large') { map.addControl(new GLargeMapControl()); }
		else if(WXMapZoomControl == 'small'){ map.addControl(new GSmallMapControl()); }

		if(WXMapTypeControl == true){
			map.addControl(new GMapTypeControl());
		}
		map.setCenter(new GLatLng(54.622978,-2.592773), 5, WXMapType);
	}
}

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();
	  }
	}
}

addLoadEvent(mapLoad);
addLoadEvent(placeMarkers);
addUnLoadEvent(GUnload);