//maputils+visualitzacio+functions
MainMap= new Object();
MainMap.msg="hola";
MainMap.map=null;//PPCC map
MainMap.ovmap=null;//overview map
MainMap.markerArea=null;//current GLatLngBounds with markers (bigger than the current viewed area)
MainMap.mgr=null;//marker manager
MainMap.mgrEt=null;//marker manager (foreigners)
MainMap.gmarkers=[];//markers with flag icons
MainMap.gmarkersCom=[];//markers for COMARQUES
MainMap.gmarkersEt=[];//markers with flag icons (foreigners)
MainMap.gmarkersAir=[];//markers for AIRPORTS layer
MainMap.gmarkersFOLC=[];//markers for FOLC layer
MainMap.gmarkersPRES=[];//markers for PRESENTACIONS layer
MainMap.gmarkersTORCH=[];//markers for MARXADETORXES layer
MainMap.layer =0;//initial layer
MainMap.MapaContorn  = null;//overlays for contorn and senyeres
MainMap.MapaSenyeres = null;
MainMap.estelades = null;//new GGeoXml();//overlay for 10 anys d'estelada
MainMap.ajuntaments = null;//new GGeoXml();//overlay for estelades als ajuntaments
MainMap.torxes = null;//new GGeoXml();//overlay for torxes
MainMap.consultes = null;//new GGeoXml();//overlay for consultes
MainMap.MapaSenyeresVisible=false;
MainMap.visEt=0;//state var to display Foreigners 0:don't display/1:display)
MainMap.tilelayers = new Array();//senyeres,contorn

MainMap.icons = new Array();//5 density icons
MainMap.bounds = new GLatLngBounds();
MainMap.contorns = new Array();//contour polylines
MainMap.visModeSM = 1;//state machine to control the contour visibility. 1=zoom 7,no contour
MainMap.poblacions = new Array(2);//sends data from the received xml to the popup info windows
MainMap.senyera2 = new GIcon();
MainMap.transp = new GIcon();
MainMap.avio = new GIcon();
MainMap.caganer = new GIcon();
MainMap.torxa = new GIcon();

MainMap.om = null;//overlaymessage

//visual config for layers (index=layer number for simplicity)
//coordinates MUST DIFFER between layers to force the dragend/zoomend listener
MainMap.config = new Array(6);
MainMap.config[0] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(40.5,1.40), zoom:7,mapStyle:G_SATELLITE_MAP,ctColor:"FFFF00",ctWeight:1,ctOpacity:1};
MainMap.config[1] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(40.5,1.41), zoom:4,mapStyle:G_NORMAL_MAP,ctColor:"808080",ctWeight:1,ctOpacity:1};
MainMap.config[2] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(40.5,3.40), zoom:6,mapStyle:G_SATELLITE_MAP,ctColor:"FFFF00",ctWeight:1,ctOpacity:1};
MainMap.config[3] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(40.4,3.41), zoom:6,mapStyle:G_SATELLITE_MAP,ctColor:"FFFF00",ctWeight:1,ctOpacity:1};
MainMap.config[4] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(40.4,3.41), zoom:6,mapStyle:G_SATELLITE_MAP,ctColor:"FFFF00",ctWeight:1,ctOpacity:1};
MainMap.config[5] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(41.8,1.41), zoom:8,mapStyle:G_SATELLITE_MAP,ctColor:"FFFF00",ctWeight:1,ctOpacity:1};
MainMap.config[6] = {mapWidth:610, mapHeight:610,latlng:new GLatLng(41.8,1.41), zoom:8,mapStyle:G_SATELLITE_MAP,ctColor:"FFFF00",ctWeight:1,ctOpacity:1};

//automatic navigation settings:
//for each zoom (0-13):ov/com/mun|mun range|ct|et
MainMap.navigation = new Array(17);
MainMap.navigation[0]={ visMode: 2, mun: { popMin: 95000, popMax: 100000}, ct: false, et: 1 };
MainMap.navigation[1]={ visMode: 2, mun: { popMin: 95000, popMax: 100000}, ct: false, et: 1 };
MainMap.navigation[2]={ visMode: 2, mun: { popMin: 90000, popMax: 100000}, ct: false, et: 1 };
MainMap.navigation[3]={ visMode: 2, mun: { popMin: 90000, popMax: 100000}, ct: false, et: 1 };
MainMap.navigation[4]={ visMode: 2, mun: { popMin: 75000, popMax: 100000}, ct: true, et: 1 };
MainMap.navigation[5]={ visMode: 1, mun: { popMin: 0, popMax: 100000}, ct: true, et: 1 };
MainMap.navigation[6]={ visMode: 1, mun: { popMin: 0, popMax: 100000}, ct: true, et: 0 };
MainMap.navigation[7]={ visMode: 0, mun: { popMin: 0, popMax: 100000}, ct: true, et: 0 };
MainMap.navigation[8]={ visMode: 2, mun: { popMin: 10000, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[9]={ visMode: 2, mun: { popMin: 5000, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[10]={ visMode: 2, mun: { popMin: 1000, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[11]={ visMode: 2, mun: { popMin: 0, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[12]={ visMode: 2, mun: { popMin: 0, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[13]={ visMode: 2, mun: { popMin: 0, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[14]={ visMode: 2, mun: { popMin: 0, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[15]={ visMode: 2, mun: { popMin: 0, popMax: 100000}, ct: false, et: 0 };
MainMap.navigation[16]={ visMode: 2, mun: { popMin: 0, popMax: 100000}, ct: false, et: 0 };

//TODO: array associatiu d'icones i les passes per nom: senyera,dens1-6,avio...
MainMap.senyera2.image = "/imatges/senyera.gif";//"/imatges/senyera.gif";//banderanegra.png";////"/imatges/senyera.png";
MainMap.senyera2.shadow = null;
MainMap.senyera2.iconSize = new GSize(16,18);//(18, 12);
MainMap.senyera2.iconAnchor = new GPoint(0,17);//(6, 10);
MainMap.senyera2.infoWindowAnchor = new GPoint(7,1);//(5, 1);

MainMap.avio.image = "/imatges/airplane_icon2sm.png";
MainMap.avio.shadow = null;
MainMap.avio.iconSize = new GSize(10,9);//(18, 12);
MainMap.avio.shadowSize = new GSize(10,9);//(18, 12);
MainMap.avio.iconAnchor = new GPoint(5,4);//(6, 10);
MainMap.avio.infoWindowAnchor = new GPoint(5,1);//(5, 1);

MainMap.torxa.image = "/imatges/torch_icon.png";
MainMap.torxa.shadow = null;
MainMap.torxa.iconSize = new GSize(40,46);//(18, 12);
MainMap.torxa.shadowSize = new GSize(40,46);//(18, 12);
MainMap.torxa.iconAnchor = new GPoint(20,46);//(6, 10);
MainMap.torxa.infoWindowAnchor = new GPoint(20,1);//(5, 1);

MainMap.transp.image = "/imatges/32transp.png";
MainMap.transp.transparent = "/imatges/32transp1.png";
MainMap.transp.shadow = null;
MainMap.transp.iconSize = new GSize(32, 32);
MainMap.transp.shadowSize = new GSize(32, 32);
MainMap.transp.iconAnchor = new GPoint(16, 16);
MainMap.transp.infoWindowAnchor = new GPoint(16, 16);

//6 icons loaded, c01.png to c06.png
MainMap.getIcon = function(indx) {
      var icon = null;

		if (indx==-1)
			icon=MainMap.senyera2;
		else if (indx==-2)
			icon=MainMap.transp;
		else if (indx==-3)
			icon=MainMap.avio;
		else if (indx==-4)
			icon=MainMap.senyera2;
		else if (indx==-5)
			icon=MainMap.senyera2;
		else if (indx==-6)
			icon=MainMap.torxa;			
        else if (MainMap.icons[indx]) {
          icon = MainMap.icons[indx];
        } else {
			var icon = new GIcon();
			icon.image = "/imatges/e0"+indx+".png";
			icon.shadow = null;
			icon.iconSize = new GSize(8,8);
			icon.shadowSize = new GSize(18, 12);
			icon.iconAnchor = new GPoint(4,4);
			icon.infoWindowAnchor = new GPoint(4, 4);
          	MainMap.icons[indx] = icon;
        }
      return icon;
    }

MainMap.addMarker_lite = function(ID, lng, lat, icon, marker_type){
   var point = new GLatLng(lat, lng);
   MainMap.bounds.extend(point);
   var icon =MainMap.getIcon(icon);
   var marker = new GMarker(point, icon);
   GEvent.addListener(marker, "click", function () {MainMap.openInfoWindow(marker,"" + ID, "" + marker_type);});
   switch (marker_type){
	case 0:
	MainMap.gmarkers.push(marker);
	break
	case 1:
	MainMap.gmarkersCom.push(marker);
	break
	case 2:
    MainMap.gmarkersEt.push(marker);
	break
	case 3://layer avions: carreguem a gmarkers simplement
	MainMap.gmarkersAir.push(marker);
	break
	case 4://layer folc: carreguem a gmarkers simplement
	MainMap.gmarkersFOLC.push(marker);
	break
	case 5://layer presentacions: carreguem a gmarkers simplement
	MainMap.gmarkersPRES.push(marker);
	break	
	case 6://layer MARXADETORXES: carreguem a gmarkers simplement
	MainMap.gmarkersTORCH.push(marker);
	break		
   }
}

//mostra info d'espera i delega a ajax la info definitiva
MainMap.openInfoWindow = function(marker, id, marker_type) {
           if (marker!=null) marker.openInfoWindowHtml("S'estan carregant els detalls...");
           MainMap.getXmlInfoWindow(id,marker,marker_type);
        }

//obtenim per ajax la info a mostrar al marcador de geo.ID
MainMap.getXmlInfoWindow = function(ID,marker,marker_type){
	//enviem ID del marcador i tipus de marcador (poble,comarca,estranger)
new Ajax.Request("/infoWindow.php?id="+ID+"&mk="+marker_type,   {
	method:'get',     onSuccess: function(transport){
					MainMap.displayDetails(transport.responseText,marker, marker_type);
		   											}
								});
}

//mostrem info de marcador segons el seu tipus
//al popup del marcador amb openInfoWindowHtml()
MainMap.displayDetails = function(data,marker,marker_type) {
	//passem un marker null quan obrim info des d'una cerca (no te per que haver marcador on cerquem)
if (marker==null){
	var offset = new GSize(10,10);
MainMap.map.openInfoWindowHtml(MainMap.map.getCenter(),"<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+"</div></div>",offset);
}
else
{
var text = "";
switch (marker_type){
	case '0':
		if (MainMap.map.getZoom()<15)
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+
	  "<a href='javascript:MainMap.reCenter("+marker.getPoint().y+","+marker.getPoint().x+", 15);MainMap.map.closeInfoWindow()'>Apropa-t&acute;hi</a></div></div>";
		else
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+"</div></div>";
	break
	case '1':
		if (MainMap.map.getZoom()<10)
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+
	  "<a href='javascript:MainMap.reCenter("+marker.getPoint().y+","+marker.getPoint().x+", 10);MainMap.map.closeInfoWindow()'>Apropa-t&acute;hi</a></div></div>";
	  	else
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+"</div></div>";
	break
	case '2':
		text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+
		"</div></div>";
	break
	case '3'://info avions en clickar un aeroport: llista de destinacions
	text="<div style=\"white-space:nowrap;\"><div align=\"left\" class=\"smalltext\">"+data+
		"</div></div>";
	break
	case '4'://info seu FOLC
		if (MainMap.map.getZoom()<15)
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+
	  "<a href='javascript:MainMap.reCenter("+marker.getPoint().y+","+marker.getPoint().x+", 15);MainMap.map.closeInfoWindow()'>Apropa-t&acute;hi</a></div></div>";
		else
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+"</div></div>";
	break
	case '5'://PRESENTACIO estatpropi
	case '6'://MARXADETORXES
		if (MainMap.map.getZoom()<15)
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+
	  "<a href='javascript:MainMap.reCenter("+marker.getPoint().y+","+marker.getPoint().x+", 15);MainMap.map.closeInfoWindow()'>Apropa-t&acute;hi</a></div></div>";
		else
    	text = "<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\">"+data+"</div></div>";
	break	

	        }
            marker.openInfoWindowHtml(text,{maxWidth:200,maxHeight:200,autoScroll:true} );

}
}

//redraws the contour line according to the current zoom and contour button state
//called when zooming or pressing the "contorn" button
MainMap.switchContorns = function(){

	var z=MainMap.map.getZoom();
	var c=document.visOpts.btcontorn.checked;
	var newLayer = MainMap.getRadioButtonSelectedValue(document.layerOpts.rbLayer );
	var	config = MainMap.config[newLayer];


	switch (MainMap.visModeSM) {
		case 0:
			if (z!=7){
				MainMap.OvrlCtLoader(false);
				MainMap.PolyCtLoader(1,config.ctColor,config.ctWeight,config.ctOpacity);
				MainMap.visModeSM=3;
			}
			else {
				if (c==false) {
				MainMap.OvrlCtLoader(false);
				MainMap.visModeSM=1;
				}
				else {//layer change, reload contour, keep state
					MainMap.OvrlCtLoader(false);
					MainMap.PolyCtLoader(-1,null,null,null);
					MainMap.PolyCtLoader(1,config.ctColor,config.ctWeight,config.ctOpacity);
				}
			}
		break;
		case 1:
			if (z!=7){
				MainMap.visModeSM=2;
			}
			else if (c=true) {
				MainMap.OvrlCtLoader(true);
				MainMap.visModeSM=0;
			}
		break;
		case 2:
			if (z==7){
				MainMap.visModeSM=1;
			}
			else if (c==true) {
				MainMap.PolyCtLoader(1,config.ctColor,config.ctWeight,config.ctOpacity);
				MainMap.visModeSM=3;
			}
		break;
		case 3:
			if (z==7){
				MainMap.OvrlCtLoader(true);
				MainMap.PolyCtLoader(0,null,null,null);
				MainMap.visModeSM=0;
			}
			else {
				if (c==false) {
				MainMap.PolyCtLoader(0,null,null,null);
				MainMap.visModeSM=2;
				}
				else {//layer change, reload contour, keep state
					MainMap.OvrlCtLoader(false);
					MainMap.PolyCtLoader(-1,null,null,null);
					MainMap.PolyCtLoader(1,config.ctColor,config.ctWeight,config.ctOpacity);
				}
			}

		break;

	}
}

//loads/unloads the contour polylines
//loader can be -1(kill)0(remove)1(create)
MainMap.PolyCtLoader = function(loader,pcolor,pweight,popacity){
	switch (loader){
		case -1:{
			for (i=0;i<MainMap.contorns.length;i++)
				{
					MainMap.map.removeOverlay(MainMap.contorns[i]);
				}
			MainMap.contorns.splice(0,MainMap.contorns.length);
			MainMap.contorns = null;
			MainMap.contorns = new Array();
			break
		}
		case 0:{
			//if unloaded length=0 so don't proceed
			for (i=0;i<MainMap.contorns.length;i++)
				{
					MainMap.map.removeOverlay(MainMap.contorns[i]);
				}
			break
		}
		case 1:{
			//do only if not IE6 and below
			if ((!((document.all) && !(window.opera))) || (document.documentElement && typeof document.documentElement.style.maxHeight!="undefined"))
			{
				//if not loaded (first time), load it (expensive!)
				if (MainMap.contorns.length<1) MainMap.loadContorn(pcolor,pweight,popacity);
				//overlays added at the callback response (server js eval'd)
			}
			break
		}
	}

}

//loads/unloads the contour overlay
MainMap.OvrlCtLoader = function(loader){
	if (loader){
		//TODO afegeix-lo SI NO HI ES!
		MainMap.map.addOverlay(MainMap.MapaContorn);
	}
	else{
		//TODO treu-lo SI HI ES
		MainMap.map.removeOverlay(MainMap.MapaContorn);
	}
}


MainMap.reCenter = function(x,y,zoom){
	MainMap.map.setCenter(new GLatLng(x,y), zoom);
}

//centra i zoomeja el mapa a la ID d'un municipi si tï¿½ adherits, i obre el popup
//si no tï¿½ adherits no es crida...
MainMap.center = function(nom,comarca,territori,x,y){
	var offset = new GSize(10,10);
MainMap.map.setCenter(new GLatLng(x,y), 14);
MainMap.map.openInfoWindowHtml(MainMap.map.getCenter(),"<div align=\"center\" class=\"smalltext\"><strong>"+nom +"</strong><br /><em>"+ comarca +"</em> ("+territori+")</div>",offset);
//todo:centrar segons ID per mostrar info de marker
//passar ID per parametre a infoWindow.php
//handlemarkers i tota la pesca? [TODO]
}

//centra el mapa en una poblacio i mostrem info de la poblacio
MainMap.centerMapID = function(ID){
}


//tria entre vista d'adherits nacionals i mundials
 MainMap.setZoom = function(zoom) {
switch (zoom)
{
case 'ppcc':
   //ocultem mundials
   MainMap.visEt=0;
   MainMap.map.setCenter(new GLatLng(40.5,1.4), 7);//no cridem a handlemarkers()
  break
case 'world':
   //mostrem mundials
   MainMap.visEt=1;
   MainMap.map.setCenter(new GLatLng(40.5,1.4), 1);
  break
 case 'world_air':
 //no modificar visEt per mantenir estat en retornar a modes d'estatpropi
   MainMap.map.setCenter(new GLatLng(40.5,1.4), 1);
  break
}
}

MainMap.CustomGetTileUrl = function(a,b) {
	var z = b;
	var f ;
	if (a.x>62&&a.x<68&&a.y>45&&a.y<50&&z==7)
	//f = "/imatges/senyeresnegres/Tile_"+a.x+"_"+a.y+"_"+z+".gif";
	f = "/imatges/senyeres/Tile_"+a.x+"_"+a.y+"_"+z+".gif";	
	else f = "/imatges/senyeres/transp.gif"
	return f;
}


MainMap.ContornGetTileUrl = function(a,b) {
	var z = b;
	var f;
	if (a.x>62&&a.x<68&&a.y>45&&a.y<50&&z==7)
	f = "/imatges/contorn/Tile_"+a.x+"_"+a.y+"_"+z+".png";
	else f = "/imatges/contorn/transp.png"
	return f;
}


//opcions de customitzaciÃ³ï¿½ segons el layer
//crida handleMarkers() perquÃ¨ Ã©s a la callback de dragend()?
//tÃ© mÃ©s sentit desde switchcontorns (?) (handleContours() )
MainMap.customize = function(newLayer){
	var newLayer = MainMap.getRadioButtonSelectedValue(document.layerOpts.rbLayer );
	if (newLayer != MainMap.layer)//if layer changes reconfigure the map accordingly
	{
		MainMap.layer = newLayer;
		MainMap.setLayerInfo(MainMap.layer);
		var	config = MainMap.config[newLayer];
		//configurem centre,zoom i estil de mapa
		MainMap.map.setCenter(config.latlng,config.zoom);
		MainMap.map.setMapType(config.mapStyle);
		//mapa d'estelades carrega overlay
		if ((MainMap.layer==3)||(MainMap.layer=='3')){
			if (MainMap.estelades==null) {MainMap.estelades = new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=ca&msa=0&msid=107816984167197435939.0004471305fb8c3fe2774&t=k&output=kml");}
        	MainMap.map.addOverlay(MainMap.estelades);//assÃ­ncron...cal esperar a tenir-lo
		}
		//mapa d'estelades carrega overlay
		if ((MainMap.layer==5)||(MainMap.layer=='5')){
			if (MainMap.ajuntaments==null) {MainMap.ajuntaments = new GGeoXml("http://spreadsheets.google.com/pub?key=p1GTLMfI3g6srcn5jnQ75Hg&output=txt&gid=0&range=kml_output");}
        	MainMap.map.addOverlay(MainMap.ajuntaments);//assÃ­ncron...cal esperar a tenir-lo
		}		
		//mapa de torxes carrega overlay
		if ((MainMap.layer==6)||(MainMap.layer=='6')){
			if (MainMap.torxes==null) {MainMap.torxes = new GGeoXml("http://spreadsheets.google.com/pub?key=t_VcavRbfO2n4eC4LlHN2Bw&output=txt&gid=0&range=kml_output");}
        	MainMap.map.addOverlay(MainMap.torxes);//assÃ­ncron...cal esperar a tenir-lo
		}		
		//crida a switchcontorns per carregar el contorn *si cal*
		MainMap.switchContorns();	}
	}

//ja ho AJAXificarem...
MainMap.setLayerInfo = function(layer){
	var layerInfo=document.getElementById('mapinfo');
	switch(layer){
		case 0:
		case '0':
		layerInfo.innerHTML='La campanya <em>Suma\'t al Mapa per un Estat Propi</em>, es visualitza en aquest mapa amb senyeres sobre cada municipi des d\'on s\'han rebut adhesions. Al men&uacute; de la dreta podreu refinal les opcions de visualitzaci&oacute; i cercar-hi municipis i comarques.';
		break
		case 2:
		case '2':
		layerInfo.innerHTML='La Federaci&oacute; d&rsquo;Organitzacions per la Llengua Catalana (FOLC) &eacute;s una federaci&oacute; d&rsquo;organitzacions que treballen per la llengua d&rsquo;arreu dels Pa&iuml;sos Catalans que es va constituir el passat 16 d&rsquo;abril del 2005. La FOLC t&eacute; seu a Tortosa, ciutat situada estrat&egrave;gicament al bell mig dels territoris de parla catalana. EstatPropi.Cat us ofereix el mapa de les organitzacions adherides o col&middot;laboradores. M&eacute;s informaci&oacute; a <a href="www.folc.cat" target="_blank">www.folc.cat</a>';		
		break
		case 3:
		case '3':
		layerInfo.innerHTML='La <a href="http://www.estelada.cat/main.asp?opc=4" target="_blank">Comissi&oacute; 100 anys d\'Estelada: 1908-2008</a> ofereix el mapa d\'ascencions commemoratives del centenari de l\'Estelada que se celebra enguany. Aquesta comissi&oacute;, oberta i transversal, pret&eacute;n impulsar diverses activitats de divulgaci&oacute; hist&ograve;rica del que suposa cent anys d\'independentisme catal&agrave; al voltant de la seva icona m&eacute;s representativa. M&eacute;s informaci&oacute; <a href="http://www.estelada.cat/main.asp?opc=1" target="_blank">ac&iacute;</a>.';		
		break	
		case 4:
		case '4':
		layerInfo.innerHTML='Mapa de presentacions EstatPropi.Cat';		
		break	
		case 5:
		case '5':
		layerInfo.innerHTML='Ajuntaments amb l\'Estelada';		
		break	
		case 6:
		case '6':
		layerInfo.innerHTML='Marxes de Torxes';		
		break			
	}
}
MainMap.makeMap = function() {
	//el primer: instanciar un overlaymessage
	MainMap.om = new OverlayMessage(document.getElementById('mainmap'));
	//http://www.acme.com/javascript/#OverlayMessage

   MainMap.om.Set("S'est&agrave; carregant el mapa");
   MainMap.map = new GMap2(document.getElementById("mainmap"));


  // caldria obtenir coordenades segons URL
   MainMap.map.setCenter(new GLatLng(40.5,1.40), 7);
   //MainMap.map.setUIToDefault();
   MainMap.map.setMapType(G_SATELLITE_MAP);
   MainMap.map.addControl(new GSmallMapControl());


   //restrict to zoomlevel 16 as the markmanager is buggy from 17 upwards
	var MyMapType = new GMapType(MainMap.map.getCurrentMapType().getTileLayers(),MainMap.map.getCurrentMapType().getProjection(),"Paisos Catalans",{maxResolution:16,minResolution:0});
	MainMap.map.addMapType(MyMapType);
	MainMap.map.setMapType(MyMapType);


//nou tipus per extraccioï¿½ d'overlays:
var copyright = new GCopyright(1,
                              new GLatLngBounds(new GLatLng(-90, -180),
                                                new GLatLng(90, 180)),
                              0,
                              "ï¿½2007 EstatPropi.cat");
var copyrightCollection = new GCopyrightCollection('Overlays');
copyrightCollection.addCopyright(copyright);


 var tilelayers0 = new Array();
 tilelayers0[0] = new GTileLayer(copyrightCollection , 7, 7);
tilelayers0[0].getTileUrl = function(a,b) {
	return "/imatges/BlackTile.png";
	//return "/imatges/WhiteTile.png";
}

var myCopyright = new GCopyrightCollection("© ");
myCopyright.addCopyright(new GCopyright('EstatPropi',
  new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)),
  0,'©2007-2009 EstatPropi.Cat'));

MainMap.tilelayers[0] = new GTileLayer(myCopyright);
MainMap.tilelayers[0].getTileUrl = MainMap.ContornGetTileUrl;
MainMap.tilelayers[0].isPng = function() {return true;};
MainMap.tilelayers[0].getOpacity = function() {return 1.0;};

MainMap.tilelayers[1] = new GTileLayer(myCopyright);
MainMap.tilelayers[1].getTileUrl = MainMap.CustomGetTileUrl;
MainMap.tilelayers[1].isPng = function() {return true;};
MainMap.tilelayers[1].getOpacity = function() {return 1.0;};


var custommap0 = new GMapType(tilelayers0, MainMap.map.getCurrentMapType().getProjection(), "Transp", {maxResolution:16,minResolution:0});
MainMap.map.addMapType(custommap0);

MainMap.MapaContorn  = new GTileLayerOverlay(MainMap.tilelayers[0]);
MainMap.MapaSenyeres = new GTileLayerOverlay(MainMap.tilelayers[1]);

//destaquem Arenys de Munt
/*
var polyPoints = Array();
var mapNormalProj = G_NORMAL_MAP.getProjection();
var mapZoom = MainMap.map.getZoom();
var latlngArenys = new GLatLng(41.6128,2.54028);
var clickedPixel = mapNormalProj.fromLatLngToPixel(latlngArenys, mapZoom);

var polySmallRadius = 10;
var polyNumSides = 50;//4;//20;
var polySideLength = 8;//18;//90;//18;

for (var a = 0; a<(polyNumSides+1); a++) {
var aRad = polySideLength*a*(Math.PI/180);
var polyRadius = polySmallRadius; 
var pixelX = clickedPixel.x + polyRadius * Math.cos(aRad);
var pixelY = clickedPixel.y + polyRadius * Math.sin(aRad);
var polyPixel = new GPoint(pixelX,pixelY);
var polyPoint = mapNormalProj.fromPixelToLatLng(polyPixel,mapZoom);
polyPoints.push(polyPoint);
      }
// Using GPolygon(points,  strokeColor?,  strokeWeight?,  strokeOpacity?,  fillColor?,  fillOpacity?)
polygon = new GPolygon(polyPoints,"#ff0000",1.5,0.5,"#ee0000",.5);
MainMap.map.addOverlay(polygon);	
var offset = new GSize(10,10);
MainMap.map.openInfoWindowHtml(latlngArenys,"<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\"><h2 align=\"center\"><a href=\"javascript:MainMap.getXmlSEM('arenys_de_munt','municipi');\" target=\"_self\">Arenys de Munt</a></h2></div></div><h3 align=\"center\">Consulta per la Independ&egrave;ncia de Catalunya</h3><h4 align=\"center\">Diumenge 13-09-09</h4><p align=\"center\"><a href=\"http://www.coc130909.org/\" target=\"_blank\">anar a la Web de la Comissi&oacute;  Organitzadora</a></p><p align=\"center\"><a href=\"http://www.youtube.com/watch?v=1ZhMxCDj05Q\" target=\"_blank\"><img src=\"/imatges/cartell.gif\" alt=\"Video consulta per la Independ&egrave;ncia\" width=\"66\" height=\"93\" /></a></p><p align=\"center\"><a href=\"http://www.estatpropi.cat/arenys_de_munt_comenca_a_decidir\" target=\"_self\">M&eacute;s informaci&oacute; de la vila</a></p>",offset);
*/
/*
var latlngSeros = new GLatLng(41.4637,0.409256);
MainMap.map.openInfoWindowHtml(latlngSeros,"<div style=\"white-space:nowrap;\"><div align=\"center\" class=\"smalltext\"><h2 align=\"center\"><a href=\"javascript:MainMap.getXmlSEM('seros','municipi');\" target=\"_self\">Ser&ograve;s</a></h2></div></div><h3 align=\"center\">Consulta per la Independ&egrave;ncia de Catalunya</h3><h4 align=\"center\">data a confirmar</h4>",offset);
*/
//per defecte (PROVA!)
//MainMap.torxes = new GGeoXml("http://spreadsheets.google.com/pub?key=t_VcavRbfO2n4eC4LlHN2Bw&output=txt&gid=0&range=kml_output");
//MainMap.map.addOverlay(MainMap.torxes);

//destaquem mapa consultes
MainMap.consultes = new GGeoXml("http://www.estatpropi.cat/mapes/consultes_kml.php");
MainMap.map.addOverlay(MainMap.consultes);
		
		
//MainMap.map.addControl(new GMapTypeControl());

MainMap.map.enableDoubleClickZoom();
MainMap.map.enableContinuousZoom();

   MainMap.mgr= new MarkerManager(MainMap.map, {trackMarkers:false});
   GEvent.addListener(MainMap.map, "dragend", MainMap.handleMarkers);
   GEvent.addListener(MainMap.map, "zoomend", MainMap.handleZoom);

//request contour logic (will display the overlay because zoom=7 and contour is checked)
//ja es crida a customize()
MainMap.switchContorns();
//disables controls (default AUTOMATIC MODE)
MainMap.disableControls();
MainMap.om.Clear();
 }

MainMap.handleZoom = function(oldZoom, newZoom){

MainMap.handleMarkers();

//si un dels zooms era 7 cal tractar contorns
if ((newZoom==7)||(oldZoom==7)){
MainMap.switchContorns();
}
//comprova si pel zoom i/o layer cal modificar la visibilitat de l'overlay de senyeres
MainMap.handleFlagsOverlay();

}

MainMap.handleFlagsOverlay = function(){
	//si cal dibuixem els marcadors com overlay
var rbVisMode = MainMap.getRadioButtonSelectedValue(document.visOpts.rbVisMode );
//sols si layer=0
if ((rbVisMode == 0) && (MainMap.map.getZoom()==7)&&(!MainMap.MapaSenyeresVisible)&&((MainMap.layer==0)||(MainMap.layer=='0'))) {
	MainMap.map.addOverlay(MainMap.MapaSenyeres);
	MainMap.MapaSenyeresVisible=true;
}
//es treuen en la resta de casos
//si visible pero rbVisMode=0 i Zoom=7 (pe.en un drag) no fem res
else if (MainMap.MapaSenyeresVisible&&((rbVisMode != 0) || (MainMap.map.getZoom()!=7))){
	MainMap.map.removeOverlay(MainMap.MapaSenyeres);
	MainMap.MapaSenyeresVisible=false;
}

}

MainMap.handleMarkers = function(){
	var navSettings=MainMap.navigation[MainMap.map.getZoom()];
	document.getElementById('btcontorn').checked=navSettings.ct;
	//don't handle markers in overlay based layers
	if ((MainMap.layer!=3)&&(MainMap.layer!='3')&&(MainMap.layer!=5)&&(MainMap.layer!='5'))
{

	//limit marker request to the map coordinates (greater?)
	var sw_lat = MainMap.map.getBounds().getSouthWest().lat();
	var sw_lng = MainMap.map.getBounds().getSouthWest().lng();
	var ne_lat = MainMap.map.getBounds().getNorthEast().lat();
	var ne_lng = MainMap.map.getBounds().getNorthEast().lng();


switch (MainMap.layer){
	case 0:
	case '0':
	case 2://potser metode apart pq no emprem modes de visualitzacio aqui
	case '2':
	{
		//en MODE AUTOMï¿½TIC:
		//actualitzem els controls per codi i procedim normalment
		var rbVisOpts = MainMap.getRadioButtonSelectedValue(document.visOpts.rbVisOpts );
		//if automatic
		//a "disable controls" podriem cridar handleZoom si volem actualitzar vista automatica
		if (rbVisOpts==1){
			MainMap.visEt=navSettings.et;
			switch (navSettings.visMode){
				case 0:
				 document.getElementById('rbVisMode0').checked=true;
				break;
				case 1:
				 document.getElementById('rbVisMode1').checked=true;
				break;
				case 2:
				 document.getElementById('rbVisMode2').checked=true;
				break;
			}

			//sembla que no funciona? si?

		 document.getElementById('rbIconSet0').checked=true;
		}
			//en mode automï¿½tic ï¿½s possible mostrar maxPop>100000 //but clamp to 100000 in the GUI

		//mode manual I AUTOMATIC: parms al formulari web
		//AUTOMATIC: Array->GUI->local vars
		//vismode 0,1=comarcal, 2=municipal
		var rbVisMode = MainMap.getRadioButtonSelectedValue(document.visOpts.rbVisMode );

		//iconset 0=senyeres,1=num adhesions,2=densitat
		var rbIconSet = MainMap.getRadioButtonSelectedValue(document.visOpts.rbIconSet );
		//restrict municipal markers to a range of population
		var popMin = 0;
		var popMax = 10000000;

		var parms="sw_lat="+sw_lat+"&"+"sw_lng="+sw_lng+"&"+"ne_lat="+ne_lat+"&"+"ne_lng="+ne_lng+"&"+"vm="+rbVisMode+"&"+"popMin="+popMin+"&"+"popMax="+popMax+"&"+"iconSet="+rbIconSet+"&"+"visEt="+MainMap.visEt+"&"+"layer="+MainMap.layer;
		break
	}
	case 1:
	case '1':
	case 4:
	case '4':	
	 {
		 var parms="sw_lat="+sw_lat+"&"+"sw_lng="+sw_lng+"&"+"ne_lat="+ne_lat+"&"+"ne_lng="+ne_lng+"&"+"layer="+MainMap.layer;
		 break
	 }
}

MainMap.getJsonDataMapP('/dataMapETjson3.php?'+parms,'mainmap');
}
else
{
	//layer 3 requires manual removal of old markers (otherwise they're removed when new markers arrive from the server)
	MainMap.mgr.clearMarkers();
	MainMap.mgr.refresh();
}
MainMap.handleFlagsOverlay();

}

MainMap.loadContorn = function(pcolor,pweight,popacity){
	//disable contours for Explorer 6 and below by object detection
if ((!((document.all) && !(window.opera))) || (document.documentElement && typeof document.documentElement.style.maxHeight!="undefined"))
{
MainMap.om.Set("S'estan carregant els contorns");
MainMap.getJavascript();
//MainMap.om cleared at the callback response (within the js received from the server)
  }
  }

//funcio custom per parsejar les dades pel mapa
MainMap.parseJsonMap = function(json){
var poblacions=json.poblacions;
var estrangers=json.estrangers;
var comarques=json.comarques;
var aeroports=json.aeroports;
var FOLC=json.FOLC;
var PRES=json.PRES;

//buidem els arrays de marcadors
MainMap.gmarkers.length = 0;//markers with flag icons
MainMap.gmarkersCom.length = 0;//markers for COMARQUES
MainMap.gmarkersEt.length = 0;//markers with flag icons (foreigners)
MainMap.gmarkersAir.length = 0;//markers for airports
MainMap.gmarkersFOLC.length = 0;//markers for FOLC
MainMap.gmarkersPRES.length = 0;//markers for PRESENTACIONS

if (comarques.length>0){
for (var i = 0 ; i < comarques.length ; i++) {
		var longitude = comarques[i].ln;
		var  latitude = comarques[i].la;
		var ID        = comarques[i].ID;
		var icon      = comarques[i].ic;

		MainMap.addMarker_lite(ID,longitude,latitude, icon,1);
}
MainMap.mgr.addMarkers(MainMap.gmarkersCom, 0,17);
}

if (poblacions.length>0){
for (var i = 0 ; i < poblacions.length ; i++) {
		var longitude = poblacions[i].ln;
		var  latitude = poblacions[i].la;
		var ID        = poblacions[i].ID;
		var icon      = poblacions[i].ic;

		MainMap.addMarker_lite(ID,longitude,latitude, icon,0);
}
MainMap.mgr.addMarkers(MainMap.gmarkers, 0,17);
}

if (estrangers.length>0){
for (var i = 0 ; i < estrangers.length ; i++) {
		var longitude = estrangers[i].ln;
		var  latitude = estrangers[i].la;
		var ID        = estrangers[i].ID;

		MainMap.addMarker_lite(ID,longitude,latitude, -1,2);
}
MainMap.mgr.addMarkers(MainMap.gmarkersEt, 0,17);
}

if (aeroports.length>0){
for (var i = 0 ; i < aeroports.length ; i++) {
		var longitude = aeroports[i].ln;
		var  latitude = aeroports[i].la;
		var ID        = aeroports[i].ID;

		MainMap.addMarker_lite(ID,longitude,latitude, -3,3);
}
MainMap.mgr.addMarkers(MainMap.gmarkersAir, 0,17);
}

if (FOLC.length>0){
for (var i = 0 ; i < FOLC.length ; i++) {
		var longitude = FOLC[i].ln;
		var  latitude = FOLC[i].la;
		var ID        = FOLC[i].ID;

		MainMap.addMarker_lite(ID,longitude,latitude, -4,4);
}
MainMap.mgr.addMarkers(MainMap.gmarkersFOLC, 0,17);
}

if (PRES.length>0){
for (var i = 0 ; i < PRES.length ; i++) {
		var longitude = PRES[i].ln;
		var  latitude = PRES[i].la;
		var ID        = PRES[i].ID;

		MainMap.addMarker_lite(ID,longitude,latitude, -5,5);
}
MainMap.mgr.addMarkers(MainMap.gmarkersPRES, 0,17);
}
//document.getElementById('mapinfo').innerHTML="Mostrant els marcadors..";
MainMap.om.Set("S'estan mostrant els marcadors..");
MainMap.mgr.refresh();

MainMap.om.Clear();
}


//TODO: en json es mÃ©s compacte...!
//funcio per a extreure dades
MainMap.parseXmlID2 = function(doc, type){

	var geo			= doc.documentElement;
	if (type == 'municipi') {

		var municipi	= geo.getElementsByTagName('municipi')[0];
		var nom 		= municipi.getAttribute('nom');
		var comarca 	= municipi.getAttribute('comarca');
		var territori 	= municipi.getAttribute('territori');
		var valor 	    = municipi.getAttribute('valor');
		var sem 	    = municipi.getAttribute('sem');
		var x 			= municipi.getAttribute('x');
		var y 			= municipi.getAttribute('y');



		MainMap.reCenter(x,y,14);
		geolocate(sem, nom, 'municipi');
		MainMap.openInfoWindow(null,"" +valor,"" +0);
	}

	else if (type == 'comarca') {

		var comarca 	= geo.getElementsByTagName('comarca')[0];
		var nom 		= comarca.getAttribute('nom');
		var territori 	= comarca.getAttribute('territori');
		var valor 	    = comarca.getAttribute('valor');
		var sem 	    = comarca.getAttribute('sem');
		var x 			= comarca.getAttribute('x');
		var y 			= comarca.getAttribute('y');


		MainMap.reCenter(x,y,10);
		geolocate(sem, nom, 'comarca');
		MainMap.openInfoWindow(null,"" +valor,"" +1);

	}

	else if (type == 'territori') {

		var territori 	= geo.getElementsByTagName('territori')[0];
		var nom 		= territori.getAttribute('nom');
		var valor 	    = territori.getAttribute('valor');
		var sem 	    = territori.getAttribute('sem');
		var x 			= territori.getAttribute('x');
		var y 			= territori.getAttribute('y');
		var zoom;
		switch (valor){
			case 'AD':
				zoom=13;
				break
			case 'BA':
			case 'CT':
			case 'PV':
				zoom=8;
				break
			case 'CN':
			case 'FJ':
				zoom=9;
				break
			case 'AL':
			case 'CR':
				zoom=11;
				break	
			}
			//console.log("zoom:"+zoom);
		MainMap.reCenter(x,y,zoom);
		geolocate(sem, nom, 'territori');
		MainMap.openInfoWindow(null,"" + valor, "" + 5);

	}

	else {

		var pais	 	= geo.getElementsByTagName('pais')[0];
		var nom 		= pais.getAttribute('nom');
		var valor 	    = pais.getAttribute('valor');
		var sem 	    = pais.getAttribute('sem');
		var x 			= pais.getAttribute('x');
		var y 			= pais.getAttribute('y');


		MainMap.reCenter(x,y,6);
		geolocate(sem, nom, 'pais');
		//MainMap.openInfoWindow(marker,"" + valor, "" + 1);


	}


	//MainMap.center(nom,comarca,territori,x,y);
}


MainMap.getDataP = function(dataSource,divId){
new Ajax.Updater(divId, dataSource);
}

MainMap.getDoc = function(XMLHttpRequestObject) {
var doc;
if (document.implementation && document.implementation.createDocument){
doc = XMLHttpRequestObject.responseXML;
} else if (window.ActiveXObject){
var testandoAppend = document.createElement('xml');
testandoAppend.setAttribute('innerHTML',XMLHttpRequestObject.responseText);
testandoAppend.setAttribute('id','_formjAjaxRetornoXML');
document.body.appendChild(testandoAppend);
document.getElementById('_formjAjaxRetornoXML').innerHTML = XMLHttpRequestObject.responseText;
doc = document.getElementById('_formjAjaxRetornoXML');
document.body.removeChild(document.getElementById('_formjAjaxRetornoXML'));
}
return doc;
}

MainMap.AJAXhandler = function(ID, type) {
//console.log("loading map"+ID+":"+type);
MainMap.makeMap();
	if (type!='mon') MainMap.getXmlSEM(ID, type);
	else {
			//console.log("customizing map"+ID+":"+type);
		var sem_nom = $.cookie('sem_nom');
		if (sem_nom!=null) MainMap.getXmlSEM(sem_nom, 'municipi');
		else
		MainMap.handleMarkers();
	}
}

MainMap.getXmlDataMapP = function(dataSource,divId){
new Ajax.Request(dataSource,   {
	method:'get',     onSuccess: function(transport){

	       var doc = MainMap.getDoc(transport);
					MainMap.parseXmlMap(doc);
		   											}
								});
}



MainMap.getXmlSEM = function(sem, type){
	new Ajax.Request('/getnom.php?type='+type+'&value='+sem,   {
		method:'get',     onSuccess: function(transport){
		    var doc = MainMap.getDoc(transport);
			MainMap.parseXmlID2(doc, type);
			}
		});

}

//avalua codi javascript directament (OJU OJU amb la seguretat...)
MainMap.getJavascript = function(){
	//despres ho parametritzem tot
	var newLayer = MainMap.getRadioButtonSelectedValue(document.layerOpts.rbLayer );
	var	config = MainMap.config[newLayer];
new Ajax.Request('/getcontorn.php?color='+config.ctColor+'&weight='+config.ctWeight+'&opacity='+config.ctOpacity, {
	method:'get',   requestHeaders: {Accept: 'text/javascript'}
								});
}

MainMap.getJsonDataMapP = function(dataSource,divId){
	MainMap.om.Set("S'estan descarregant els marcadors");
new Ajax.Request(dataSource, {
	method:'get',   requestHeaders: {Accept: 'application/x-json'},
					onSuccess: function(transport,oJSN){
MainMap.om.Set("S'han descarregat els marcadors");
						//clear overlays in marker based layers
						//o be a sac: MainMap.map.clearOverlays();
						//MainMap.map.removeOverlay(MainMap.estelades);//sols SI NO HI ES...TODO
						//MainMap.map.removeOverlay(MainMap.ajuntaments);//sols SI NO HI ES...TODO	
						//MainMap.map.removeOverlat(MainMap.torxes);//sols SI NO HI ES...TODO
						MainMap.om.Set("S'està buidant el mapa");
	
						//unload current markers
						MainMap.mgr.clearMarkers();
						MainMap.mgr.refresh();//prova (redibuixem no sigui que se'ns quedi algun,el markermanager es EXPERIMENTAL)
						//buidem els arrays de marcadors
						MainMap.gmarkers.length = 0;//markers with flag icons
						MainMap.gmarkersCom.length = 0;//markers for COMARQUES
						MainMap.gmarkersEt.length = 0;//markers with flag icons (foreigners)
						MainMap.gmarkersAir.length = 0;
						MainMap.gmarkersFOLC.length = 0;
						MainMap.gmarkersPRES.length = 0;
						MainMap.om.Set("S'estan descodificant els marcadors");
						var json = eval('(' + transport.responseText + ')');
						MainMap.parseJsonMap(json);
						MainMap.mgr.refresh();
													}
								});
}
MainMap.onLoad = function(ID, type) {
	//console.log("called: "+ID+","+type);
	MainMap.AJAXhandler(ID, type);

}

MainMap.disableControls = function() {
 document.getElementById('btnacionals').disabled=true;
 document.getElementById('btmundials').disabled=true;

 document.getElementById('rbVisMode0').disabled=true;
 document.getElementById('rbVisMode1').disabled=true;
 document.getElementById('rbVisMode2').disabled=true;

 document.getElementById('rbIconSet0').disabled=true;
 document.getElementById('rbIconSet1').disabled=true;
 document.getElementById('rbIconSet2').disabled=true;

 document.getElementById('btcontorn').disabled=true;
}
MainMap.enableControls = function() {
 document.getElementById('btnacionals').disabled=false;
 document.getElementById('btmundials').disabled=false;

 document.getElementById('rbVisMode0').disabled=false;
 document.getElementById('rbVisMode1').disabled=false;
 document.getElementById('rbVisMode2').disabled=false;

 document.getElementById('rbIconSet0').disabled=false;
 document.getElementById('rbIconSet1').disabled=false;
 document.getElementById('rbIconSet2').disabled=false;

 document.getElementById('btcontorn').disabled=false;
}

MainMap.getRadioButtonSelectedValue = function(ctrl)
{
    for(i=0;i<ctrl.length;i++)
        if(ctrl[i].checked) return ctrl[i].value;
}


geolocate = function(sem_nom, nom, type){

	//generem nou botonet
	var button = "/getbutton.php?type=1&"+type+"="+ sem_nom;
	//document.getElementById('button').innerHTML="<a href='/"+type+"/"+sem_nom+"'><img src='"+ button +"' alt='Estat Propi' title='Number' /></a>";
	document.getElementById('button').innerHTML="<a href='/tellafriend'><img src='"+ button +"' alt='Estat Propi' title='Number' /></a>";
	//actualitzem RSS
	var new_url='/'+type+'/'+sem_nom+'/recompte';

	//tambÃ© cal actualitzar el botonet de rss
	var feedicon = document.getElementById('feedicon');
	var child_feeds = feedicon.childNodes;
	child_feeds[0].href=new_url;
	var go_url = '/'+type+'/'+sem_nom;


	var links = document.getElementsByTagName('link');
	for (l=0; l<links.length; l++) {


		if((links[l].getAttribute("rel")) == 'alternate') {

			links[l].href = new_url;
		}

	}


	//TÃ­tol
	var title_homepage = document.getElementById('title_homepage');
	var titles = title_homepage.childNodes;
	titles[0].href=go_url;
	titles[0].innerHTML=nom;

	//TÃ­tol pÃ gina
	var title = document.getElementsByTagName('title');

	title[0].innerHTML = nom +' per un Estat Propi | Sumem-nos al mapa per un Estat Propi';


}


//visualitzacio.js
new Ajax.Autocompleter('autocomplete', 'autocomplete_choices', '/autocomp_ppcc.php', {paramName: "municipi", minChars: 3, afterUpdateElement: getSelectionId});
new Ajax.Autocompleter('autocomplete2', 'autocomplete_choices2', '/autocomp_ppcc.php', {paramName: "comarca", minChars: 3, afterUpdateElement: getSelectionId});


function getSelectionId(text, li) {
	//geolocalitzem el portal

	var type= text.name;
	var sem_nom = li.id;
	//window.location.href="/nou/municipi/"+sem_nom;
	//MainMap.getXmlID2(id_nom);

	//desem la id en una galeta permanent
	//per localitzar-nos a la propera recÃ rrega
	//una setmaneta i s'oblida
	if (type=='municipi'){
		$.cookie('sem_nom', sem_nom,{expires:7});
	}
	MainMap.getXmlSEM(sem_nom, type);

}


//modifiquem el titol del block
//afegint la imatge "twitter"
//alguns ens avorrim...
setTwitterTitle = function(){
	//document.getElementById("block-aggregator-feed-2").getElementsByTagName("h2")[0].innerHTML="Sobiranistes al <a href='http://www.twitter.com/estatpropi' target='_blank'><img src='http://www.estatpropi.cat/imatges/twitterEPsm.png' alt='Twitter' width='50' height='12' border='0'></a>";
}

	setTwitterTitle();
	


//jsr_class
// JSONscriptRequest -- a simple class for accessing Yahoo! Web Services
// using dynamically generated script tags and JSON
//
// Author: Jason Levitt
// Date: December 7th, 2005
//
// A SECURITY WARNING FROM DOUGLAS CROCKFORD:
// "The dynamic <script> tag hack suffers from a problem. It allows a page 
// to access data from any server in the web, which is really useful. 
// Unfortunately, the data is returned in the form of a script. That script 
// can deliver the data, but it runs with the same authority as scripts on 
// the base page, so it is able to steal cookies or misuse the authorization 
// of the user with the server. A rogue script can do destructive things to 
// the relationship between the user and the base server."
//
// So, be extremely cautious in your use of this script.
//

// Constructor -- pass a REST request URL to the constructor
//
function JSONscriptRequest(fullUrl) {
    // REST request path
    this.fullUrl = fullUrl; 
    // Keep IE from caching requests
    this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
    // Get the DOM location to put the script tag
    this.headLoc = document.getElementsByTagName("head").item(0);
    // Generate a unique script tag id
    this.scriptId = 'YJscriptId' + JSONscriptRequest.scriptCounter++;
}

// Static script ID counter
JSONscriptRequest.scriptCounter = 1;

// buildScriptTag method
//
JSONscriptRequest.prototype.buildScriptTag = function () {

    // Create the script tag
    this.scriptObj = document.createElement("script");
    
    // Add script object attributes
    this.scriptObj.setAttribute("type", "text/javascript");
    this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
    this.scriptObj.setAttribute("id", this.scriptId);
}
 
// removeScriptTag method
// 
JSONscriptRequest.prototype.removeScriptTag = function () {
    // Destroy the script tag
    this.headLoc.removeChild(this.scriptObj);  
}

// addScriptTag method
//
JSONscriptRequest.prototype.addScriptTag = function () {
    // Create the script tag
    this.headLoc.appendChild(this.scriptObj);
}


//binding
/*
 $('#showcomarques').bind("change", showcomarques);
 $('#showmunicipis').bind("change", showmunicipis);
 $('#choosemunicipi').bind("change", go_municipi);
$('#geosearcher').bind("click", geosearch);
$('#form_identificador').bind("mouseover", show_documents);
$('#form_identificador').bind("mouseout", hide_documents);
$('#form_submit').bind("submit", validate);
*/