﻿	var geocoder = null;
	var map = null;
	var markers = new Array();
	var del = null;
	
	var icon = new GIcon();
	icon.image = "http://www.cyesa.com/images/zonapublica/maps_icon.png";
	icon.shadow = "http://www.cyesa.com/images/zonapublica/maps_shadow.png";
	icon.iconSize = new GSize(59, 51);
	icon.shadowSize = new GSize(59, 51);
	icon.iconAnchor = new GPoint(18, 51);
	icon.infoWindowAnchor = new GPoint(18, 0);

	function Counter() {
		this.c = 1;
		this.get = function () {
			return this.c++;	
		}	
	}

	var q = new Counter();
	
	function out(s) {
		$('log').innerHTML += s + "<br/>";	
	}

	function Marker() {
		this.map = map;
		this.id = q.get();
		this.info = "";
		this.name = "";
		this.marker = "";
		
		this.hola = function () {
			out("soy marker " + this.id);	
		}
		
		this.infoWin = function () {
				this.marker.openInfoWindowHtml(this.info);
		}
		
		this.attach = function( aPoint, principal ) {
			var aMarker = new GMarker ( aPoint, (principal ? icon : icon), false );
			this.marker = aMarker;
			GEvent.addListener(aMarker, "click", this.infoWin.bind(this) );
			map.addOverlay( aMarker );
			/*
			if (principal)
				this.infoWin();
			*/
		}
		
		this.setGooglePos = function( anAddress, principal ) {
			geocoder.getLatLng( anAddress, this.attach.bind(this) );
		}
		 
		this.setInfo = function( name, info  ) {
			this.info = "<div class='delInfo'>";
			this.info += "<h6>" + name + "</h6>";
			this.info += info + "</div>";
			this.name = name;
		}
		
		this.setCoords = function ( aLat, aLng, principal ) {
			var aPoint = new GLatLng ( aLat, aLng );
			this.attach( aPoint, principal );
		}

	}
	
    function getDelegaciones() {
	    GDownloadUrl("http://www.cyesa.com/xml/delegaciones.xml?refresh=true", 
	    	function(data, responseCode) {
	    		var xml = GXml.parse(data);
	    		
	    		var delegaciones = xml.documentElement.getElementsByTagName("delegacion");
				var onmap = 0;
				
				active = -1;
				
	    		for (var i = 0; i < delegaciones.length; i++) {
	    			var id = delegaciones[i].getElementsByTagName("id");
	    			if (id.length > 0) {
							if (id[0].firstChild.nodeValue == del) {
								active = i;
								map.addControl(new GSmallMapControl()); 
								newZoom = delegaciones[i].getElementsByTagName("zoom")[0].firstChild.nodeValue;
								map.setCenter ( new GLatLng( delegaciones[i].getElementsByTagName("mapa_latitud")[0].firstChild.nodeValue, delegaciones[i].getElementsByTagName("mapa_longitud")[0].firstChild.nodeValue ), newZoom * 1  );
							}
						}
	    		}
	    		
	    		for (var i = 0; i < delegaciones.length; i++) {
	    				
				    	var lat = delegaciones[i].getElementsByTagName("mapa_latitud");
				    	var long= delegaciones[i].getElementsByTagName("mapa_longitud");
				    			
				  		var name = delegaciones[i].getElementsByTagName("nome")[0].firstChild.nodeValue;
				  		var infoDireccion = delegaciones[i].getElementsByTagName("info_direccion")[0].firstChild.nodeValue;

						markers.push ( new Marker() );
	
						markers[i].setInfo( name, infoDireccion );
							    
						if ( lat.length * long.length > 0) {
							markers[i].setCoords ( lat[0].firstChild.nodeValue, long[0].firstChild.nodeValue, (i == active) );
						}
		    		
	    		}

	    	});
    }
    
    
    
    function mapaLoad( ) {
      if (GBrowserIsCompatible()) {
		del = $('delegacion').value;
		map = new GMap2( $("mapa") );
    	geocoder = new GClientGeocoder();
       getDelegaciones();  
      }

    }
    
    function myUnload() {
    	GUnload();
    }
    
addLoadEvent( mapaLoad );
addUnloadEvent( myUnload );
    
    
