// JavaScript Document
// Common code for Arinsal Andorra Google Maps

//Declare global variables
	var control_html = "";
	var gmarkers = [];
	var htmls = [];
	var labels = [];
	var myIcons = [];
	var ind = 0;
	var map;
	var myMarker;
	var myBasename;
	var editMode;
	var icons = [];

//Declare and define custom icons	
	var gondolaIcon = new GIcon();
		  gondolaIcon.image = "images/map/gondola.png";
		  gondolaIcon.iconSize = new GSize(20, 20);
		  /*gondolaIcon.shadow = "myshadow.png";*/
		  /*gondolaIcon.shadowSize = new GSize(36, 34);*/
		  gondolaIcon.iconAnchor = new GPoint(10, 1);
		  gondolaIcon.infoWindowAnchor = new GPoint(10, 20);
		  gondolaIcon.transparent = "images/map/gondola-trans.png";
		  gondolaIcon.printImage = "images/map/gondola.gif";
		  gondolaIcon.mozPrintImage = "images/map/gondola-trans.gif";
		  /*gondolaIcon.printShadow = "myshadow.gif";
		  gondolaIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
		   19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
		   16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];*/
		  icons["gondolaIcon"]=gondolaIcon;
	
	var chairliftIcon = new GIcon();	
		  chairliftIcon.image = "images/map/chairlift.png";
		  chairliftIcon.iconSize = new GSize(20, 20);
		  /*chairliftIcon.shadow = "myshadow.png";*/
		  /*chairliftIcon.shadowSize = new GSize(36, 34);*/
		  chairliftIcon.iconAnchor = new GPoint(10, 1);
		  chairliftIcon.infoWindowAnchor = new GPoint(10, 20);
		  chairliftIcon.transparent = "images/map/chairlift-trans.png";
		  chairliftIcon.printImage = "images/map/chairlift.gif";
		  chairliftIcon.mozPrintImage = "images/map/chairlift-trans.gif";
		  /*chairliftIcon.printShadow = "myshadow.gif";
		  chairliftIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
		   19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
		   16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];*/
		  icons["chairliftIcon"]=chairliftIcon;
		
		var defaultIcon = new GIcon();
			defaultIcon.image = "images/map/redicon.png";
			defaultIcon.iconSize = new GSize(15, 26);
			defaultIcon.shadow = "images/map/shadow.png";
			defaultIcon.shadowSize = new GSize(24, 26);
			defaultIcon.iconAnchor = new GPoint(7, 26);
			defaultIcon.infoWindowAnchor = new GPoint(10, 0);
			defaultIcon.transparent = "images/map/trans.png";
			defaultIcon.printImage = "images/map/redicon.gif";
			defaultIcon.mozPrintImage = "images/map/redicon.gif";
			defaultIcon.printShadow = "images/map/shadow.gif";
			/*defaultIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
			19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
			16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];*/ 
			icons["defaultIcon"]=defaultIcon;
			
		var redxIcon = new GIcon();
			redxIcon.image = "images/map/redxicon.png";
			redxIcon.iconSize = new GSize(15, 26);
			redxIcon.shadow = "images/map/shadow.png";
			redxIcon.shadowSize = new GSize(24, 26);
			redxIcon.iconAnchor = new GPoint(7, 26);
			redxIcon.infoWindowAnchor = new GPoint(10, 0);
			redxIcon.transparent = "images/map/trans.png";
			redxIcon.printImage = "images/map/redxicon.gif";
			redxIcon.mozPrintImage = "images/map/redxicon.gif";
			redxIcon.printShadow = "images/map/shadow.gif";
			/*redxIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
			19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
			16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];*/ 
			icons["redxIcon"]=redxIcon;

		var derbyIcon = new GIcon();
			derbyIcon.image = "images/map/derbyicon.png";
			derbyIcon.iconSize = new GSize(15, 26);
			derbyIcon.shadow = "images/map/shadow.png";
			derbyIcon.shadowSize = new GSize(24, 26);
			derbyIcon.iconAnchor = new GPoint(7, 26);
			derbyIcon.infoWindowAnchor = new GPoint(10, 0);
			derbyIcon.transparent = "images/map/trans.png";
			derbyIcon.printImage = "images/map/derbyicon.gif";
			derbyIcon.mozPrintImage = "images/map/derbyicon.gif";
			derbyIcon.printShadow = "images/map/shadow.gif";
			/*derbyIcon.imageMap=[9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,
			19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,
			16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0];*/ 
			icons["derbyIcon"]=derbyIcon;

//Adds overlays common to all xml files and defines custom icons
function standardOverlay(){
	
		   	   
	var polyline = new GPolyline([
  		new GLatLng(42.57256705302299, 1.483202576637268),
  		new GLatLng(42.57315962079203, 1.4710575342178344)
		], "#ff0000", 5);
	map.addOverlay(polyline);
	var polyline = new GPolyline([
  		new GLatLng(42.5769124192525, 1.479806900024414),
  		new GLatLng(42.57313196775471, 1.4702582359313964)
		], "#00ff00", 5);
	map.addOverlay(polyline);
	var point = new GLatLng(42.57267766610061, 1.4810514450073242);
	var marker = new GMarker(point,{icon:gondolaIcon,title:"Gondola"});
	map.addOverlay(marker);
	var point = new GLatLng(42.57299370238423, 1.4741849899291992);
	var marker = new GMarker(point,{icon:gondolaIcon,title:"Gondola"});
	map.addOverlay(marker);
	var point = new GLatLng(42.57533232110996, 1.4758586883544922);
	var marker = new GMarker(point,{icon:chairliftIcon,title:"Chairlift"});
	map.addOverlay(marker);
}

function createMarker(point,myIcon,name,html) {
		var marker = new GMarker(point,{title:name,icon:icons[myIcon]});
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml('<span class="iw">'+ html +'</span>');
		});
		// save the info we need to use later for the side_bar
		gmarkers[ind] = marker;
		htmls[ind] = html;
		labels[ind] = name;
		myIcons[ind] = myIcon;
		// add a line to the side_bar html
		control_html += '<a href="javascript:myclick(' + ind + ')">' + name + '</a><br />';
		ind++;
		return marker;
}

// A function to read the data
function readMap(baseurl) {
	var url =  baseurl.toLowerCase()+'.xml?a='+Math.random();
	// reset global index ind
	ind=0;
	// reset the side_bar
	control_html="<strong>"+baseurl+"</strong><hr />";
	myBasename = baseurl;
	if(document.getElementById("basename"))
		document.getElementById("basename").value = myBasename;
	var request = GXmlHttp.create();
	request.open("GET", url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			// obtain the array of markers and loop through it
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			
			// hide the info window, otherwise it still stays open where the removed marker used to be
			map.getInfoWindow().hide();
			
			map.clearOverlays();
			standardOverlay();
			
			// empty the array
			gmarkers = [];
			
			for (var i = 0; i < markers.length; i++) {
			  // obtain the attribues of each marker
			  var lat = parseFloat(markers[i].getAttribute("lat"));
			  var lng = parseFloat(markers[i].getAttribute("lng"));
			  var point = new GLatLng(lat,lng);
			  //var html = markers[i].getAttribute("html");
			  var label = markers[i].getAttribute("label");
			  var myIcon = markers[i].getAttribute("icon");
			  var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]);
			  // create the marker
			  var marker = createMarker(point,myIcon,label,html);
			  map.addOverlay(marker);
			}
		// put the assembled side_bar_html contents into the side_bar div
		document.getElementById("control").innerHTML = control_html;
	  }
	}
	request.send(null);
}


