// s'han canviat alguns alert per showdialog el 22/2/07


  var map = null;
  var geocoder = null;
  
  var req;
  var gReturnTo;
  var gCAT;
  var gTIP;

  var gLayerCache=new Array();
  
  
  
  
  
  function myLoad() {
    if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById('map'));
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());
      geocoder = new GClientGeocoder();
    }
  }
  

  
  function showAddress(address, myDescription) {
    if (myDescription=='') {myDescription=address;}
    address+=', 08291 Ripollet, SPAIN'
    if (geocoder) {
      geocoder.getLatLng(
        address,
        function(point) {
          if (!point) {
            ShowDialog("No es troba correspondència geogràfica amb les dades introduïdes.\nAixò no implica que no existeixi el lloc especificat.\nPotser es tracta d'una limitació en l'actualització de les dades de Google(tm) Maps.\n\n["+ address +"]");
            map.setCenter(new GLatLng(41.49736, 2.15568), 15);
          } else {
            showPoint(point, 17, myDescription);
          }
        }
      );
    }
  }
  

  
  
  
  function showPoint(myPoint, myZoom, myDescription) {
    map.setCenter(myPoint, myZoom);
    var marker = new GMarker(myPoint);
    map.addOverlay(marker);
    marker.openInfoWindowHtml(myDescription);
    GEvent.addListener(marker, 'click', function() {marker.openInfoWindowHtml(myDescription);});
  }
  
  
  
  function TestAddress(myAddress, myNum) {
    return myAddress + ' ' + myNum
  }


      
      
        
  


  function putTips(myHTMLStream) {
	var ThisCAT=gCAT;
	
	if (document.getElementById('DIV'+gCAT)) {
      document.getElementById('DIV'+gCAT).innerHTML=myHTMLStream;
      document.getElementById('DIV'+gCAT).style.display='';
	  document.getElementById('IMG'+gCAT).src='/img/menys.png';
    }
    if (document.getElementById('A'+ThisCAT)) {
	  document.getElementById('A'+ThisCAT).onclick=function onclick(event) {if (document.getElementById('DIV'+ThisCAT).style.display=='none') {document.getElementById('IMG'+ThisCAT).src='/img/menys.png';document.getElementById('DIV'+ThisCAT).style.display='';} else {document.getElementById('IMG'+ThisCAT).src='/img/mes.png';document.getElementById('DIV'+ThisCAT).style.display='none'};};
    }
  }


  
  function getTips(myCAT) {
	gReturnTo='DIV';
	gCAT=myCAT
	retrieveURL('http://ripollet.cat/asp/gmaps_generaopcionslayer.asp?IDCategoria='+ myCAT);
  }
  
  

  function retrieveURL(url) { 
	document.body.style.cursor='wait';
    if (window.XMLHttpRequest) { // No IE
      req = new XMLHttpRequest(); 
      req.onreadystatechange = processStateChange; 
      try { 
        req.open("GET", url, true);
        req.overrideMimeType('text/html; charset=ISO-8859-1'); 
      } catch (e) { 
        ShowDialog(e); 
      } 
      req.send(null); 
    } else if (window.ActiveXObject) { // IE 
      req = new ActiveXObject("Microsoft.XMLHTTP"); 
      if (req) { 
        req.onreadystatechange = processStateChange; 
        req.open("GET", url, true);
        //req.setRequestHeader("Accept-Language","sp");
        //req.setRequestHeader("Pragma","no-cache");
        req.setRequestHeader("Content-Type","text/html; charset=iso-8859-1");
        req.setRequestHeader("encoding", "ISO-8859-1");
        req.send(); 
      } 
    } 
  } 
  
  
 
  function processStateChange() {
	document.body.style.cursor='auto';
    if (req.readyState == 4) { // Completat 
      if (req.status == 200) { // OK response 
        switch (gReturnTo) {
	      case 'DIV': putTips(req.responseText); break;
          case 'LAYER': PutLayerInCache(req.responseText); break;
	      case 'PROXIMITY_LAYER': PutLayerWithoutCaching(req.responseText); break;
	      default: ShowDialog('Returned data: \n\n'+req.responseText);
        }
      } else { 
        ShowDialog("Problem: " + req.statusText); 
      } 
    } 
  } 
  
  
  
  function PutLayerInCache(myHTMLStream){
	var myVal=eval(myHTMLStream);
	
	gLayerCache['CAT'+gCAT+'TIP'+gTIP]=myVal;
	
	//alert('NO estava a la cache !!!. S\'ha carregat.');
	ProcessaLayer(myVal, true, true)
  }

  
  function PutLayerWithoutCaching(myHTMLStream){
	var myVal=eval(myHTMLStream);
	ProcessaLayer(myVal, true, false)
  }

  
  function ActivaLayer(myCat, myTip, Activar) {
	if (Activar) {
      
      //1) MIRAR EN LA CACHE SI ESTA CARGADA SI NO
      if (!gLayerCache['CAT'+myCat+'TIP'+myTip]) {
        //2) RECUPERAR DADES PER CARREGAR EN LA CACHE
        var myURL='http://ripollet.cat/asp/gmaps_generalayerjs.asp?IDCategoria='+ myCat +'&IDTipologia='+ myTip;
        gReturnTo='LAYER';
        gCAT=myCat;
        gTIP=myTip
        retrieveURL(myURL);
      } else {
	    //alert('SI estava a la cache !!!');
	    //3) ACTIVAR CAPA
	    ProcessaLayer(gLayerCache['CAT'+ myCat+'TIP'+myTip], true, true);
      }
    }
    else {
	  //alert('DESACTIVAR '+myTip);
	  ProcessaLayer(gLayerCache['CAT'+ myCat+'TIP'+myTip], false, true);
    }
  }
    
  
  
  function ProcessaLayer(myArray, Activar, DoSetCenter) {
	if (Activar) {
      for (var i in myArray) {
        ActivaPunt(myArray[i]);
  	  }
  	if (DoSetCenter) {map.setCenter(new GLatLng(41.49736, 2.15568), 15);}
	}
  	else {
  	  for (var i in myArray) {
        DesActivaPunt(myArray[i]);
  	  }
    }
  }
  
  
  
  function ActivaPunt(myItem) {
    var icon;
    
    if (document.getElementById('IMGMARKER'+ myItem.IDCategoria)) {
    icon = new GIcon();
    icon.image=document.getElementById('IMGMARKER'+ myItem.IDCategoria).src;
    icon.shadow = "http://ripollet.cat/img/triangle_ombra.png";
    icon.iconSize = new GSize(15, 15);
    icon.shadowSize = new GSize(26, 16);
    icon.iconAnchor = new GPoint(7, 15);
    icon.infoWindowAnchor = new GPoint(7, 7);
    }
    
    var myPoint=new GLatLng(myItem.Latitud, myItem.Longitud);
    if (icon) {var marker = new GMarker(myPoint, icon);}
    else {var marker = new GMarker(myPoint);}
    myItem.Marker=marker
    map.addOverlay(marker);
    GEvent.addListener(marker, 'click', function() {marker.openInfoWindowHtml('<a href="'+ myItem.URL +'">'+ myItem.txtTitular +'</'+'a>');});
  }
  
  
  
  function DesActivaPunt(myItem) {
	map.removeOverlay(myItem.Marker);
  }
  
  
  
  
  function dummie() {
	var myString="[{Marker: '', URL: '/asp/llistat_comercos.asp?ID=5126', txtTitular: 'Joguines Blau-Verd', Latitud: '41.498367', Longitud: '2.156548', DescripcioAdreca: 'Montcada, 1, 08291 Ripollet', IDCategoria: '18', IDTipologia: '69'}]";
	var myLayer=eval(myString);
	//ProcessaLayer(myLayer, true);
	alert(document.getElementById('CAT18TIP123').onchange);
  }
  
  
  function NetejaMapa() {
    map.clearOverlays();
//    var i;
//    alert(document.length);
//    for (i=0;i<document.length;i++) {
//	  alert(document.elements[i].type);
//      if (document.elements[i].type=='checkbox' && document.elements[i].checked) {
//        document.elements[i].checked=false
//      }
//    }
  }
