/*********

DEFINITION DES VAIABLES DE BASE

*****************/


dom = document.getElementById;
var marqueurs=[];
var compteur=0;
var browser=navigator.userAgent.toLowerCase();


var chemin_xml_lei = "/stylesheet/xml-carto-lei_";
var chemin_xml_annuaire = "/stylesheet/xml-requete-annuaire_";

// Fichier permettant a safari de parser le XML
var xsl_safari = "<a href=\"/cgi-local/lei_fichedescriptive.pl?ID={PRODUIT_LEI}&GENRE={GENRE}&CATEGORIE={CATEGORIE}\" target=\"Detail{PRODUIT_LEI}\" >{NAME}</a></p>";
        


function GetE( elementId )
{
	return document.getElementById( elementId )  ;
}

function Affiche_element_carte( onglet, isVisible )
{
	if ( typeof( onglet ) == 'string' )
	{
		element = GetE( "div_"+onglet ) ;
		img_elt = GetE( "img_"+onglet ) ;
	}
	
	element.style.display = isVisible ? '' : 'none' ;
	if(isVisible)
	{
		img_elt.src = '/images/pictos_lei_carte/flecheon.gif';
	}
	else
	{
		img_elt.src = '/images/pictos_lei_carte/flecheoff.gif';
	}
}


// Fonction permettant de parser le XML par le XSL pass�en parametre
function xslt(xmlDoc,xslDoc) {
            var transform;

            if (typeof ActiveXObject != 'undefined') {
                transform = xmlDoc.transformNode(xslDoc);
            }
            else if(browser.indexOf("safari") != -1)
            {

                transform = xsl_safari;


                var zone_texte = transform;

                var car = 0;
                while((deb = zone_texte.indexOf("{", car) ) > 0)
                {

                    fin = zone_texte.indexOf("}", deb);

                    var regular = zone_texte.substring(deb+1, fin);

                    var nameElm = xmlDoc.getElementsByTagName(regular).item(0);
                    var namevalue = nameElm.firstChild.nodeValue;

                    var reg=new RegExp("({"+regular+"})", "g");

                    transform = transform.replace(reg,namevalue);
                    car = fin;

                }



            }
            else {
                var xsl = new XSLTProcessor();

                xsl.importStylesheet(xslDoc);
                var fragment=xsl.transformToFragment(xmlDoc, document);
                if( fragment.childNodes.length>0 )
                  transform = fragment.childNodes[0].innerHTML;
                else
                    alert("error");
            }
            return transform;
        }

// Fonction permettant la transformation d'un fichier en objet DOM
function getDomFromFile(file) {
            // Load XML
            if (typeof ActiveXObject != 'undefined') {// IE
                var xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.load(file);
            }
            else {  // others
                var myXMLHTTPRequest = new XMLHttpRequest();
                myXMLHTTPRequest.open("GET", file, false);
                myXMLHTTPRequest.send(null);
                var xml = myXMLHTTPRequest.responseXML;
            }
            return xml;
}


// Creation du pointeur
function createMarker(point, html,icone,icone_width,icone_height,ov, i) {

            var imageUrl;
            imageUrl = "/cgi-local/unitmarker.pl?unit=1";
            var icon = new GIcon();
            icon.image = icone ;
            icon.iconSize = new GSize(icone_width,icone_height);
            anchor = 0;
        	anchor_height = icone_height*1;

            icon.iconAnchor = new GPoint(0,anchor_height);
            icon.infoWindowAnchor = new GPoint( 0,anchor_height);


            var marker = new GMarker(point,icon);

            GEvent.addListener(marker, "click", function()
            {
                    marker.openInfoWindowHtml(html);
            });

            marqueurs[pos] = marker;
            return marker;

      }





// Placement de tous les marqueurs

function traite_lei (map,langue, active,id, genre, categorie, type, critere, modalite, icone,icone_width, icone_height, page_ref)
{


    if(active)
    {

	document.getElementById('barre_progression').innerHTML = "<img src='/images/progression.gif' alt='Chargement en cours' title='Chargement en cours'>";
	document.getElementById('barre_progression').style.display =''  ;
	GDownloadUrl(chemin_xml_lei+langue+"_"+secteur+"_"+genre+"_"+categorie+"_"+type+"_"+critere+"_"+modalite+"_"+isIE+".xml", function(data, responseCode) {

		var xml = GXml.parse(data);
		var markers = xml.getElementsByTagName("point");
		var info = xml.getElementsByTagName("info");
		var nb_point = 0;
	
		xsl = getDomFromFile("/stylesheet/fiche_carto_lei.xsl");
	
		for (var i = 0; i < markers.length   ; i++)
		{
		var latitude = parseFloat(markers[i].getAttribute("lat"));
		var longitude = parseFloat(markers[i].getAttribute("lng"));
		var produit_lei = parseFloat(markers[i].getAttribute("PRODUIT"));
	
		var html = xslt(info[i], xsl);
		html+="<div id='carto_info'><a href='/cgi-local/lei_fichedescriptive.pl?ID="+produit_lei+"&GENRE="+genre+"&langue="+langue+"&CATEGORIE="+categorie+"&HTMLPage="+page_ref+"' target='Detail"+produit_lei+"' >> plus d'infos</a></div>";
		//latitude = latitude.replace(",",".");
		//longitude = longitude.replace(",",".");
		var point = new GLatLng(latitude, longitude);
		pos = id+"_"+nb_point;
		
		mymarqueurs = createMarker(point,html,icone,icone_width, icone_height,'A', pos);
		
		marqueurs[pos] = mymarqueurs;
		
		map.addOverlay(mymarqueurs);
		
		nb_point++;
            }
            pos = id+"_size";
            marqueurs[pos] = nb_point;

            document.getElementById('barre_progression').style.display = 'none';

         }
	
        );
	

    }
    else
    {
        RemoveOverlay(map, id);

    }
}

function traite_annuaire (map,langue, active,id, famille_annuaire, icone,icone_width,icone_height, page_ref)
{
    if(active)
    {
            document.getElementById('barre_progression').innerHTML = "<img src='/images/progression.gif' alt='Chargement en cours' title='Chargement en cours'>";
            document.getElementById('barre_progression').style.display =''  ;

            GDownloadUrl(chemin_xml_annuaire+langue+"_"+famille_annuaire+"_"+isIE+".xml", function(data, responseCode) {

        var xml = GXml.parse(data);
        var markers = xml.getElementsByTagName("point");
        var info = xml.getElementsByTagName("info");
        var nb_point = 0;

        xsl = getDomFromFile("/stylesheet/fiche_carto_annuaire.xsl");

        for (var i = 0; i < markers.length   ; i++)
        {
            var latitude = parseFloat(markers[i].getAttribute("lat"));
            var longitude = parseFloat(markers[i].getAttribute("lng"));
            var id_fiche = parseFloat(markers[i].getAttribute("ID"));

            var html = xslt(info[i], xsl);
            //html+="<br/><a href='/cgi-local/lei_fichedescriptive.pl?ID="+produit_lei+"&GENRE="+genre+"&langue=$langue&CATEGORIE="+categorie+"&HTMLPage="+page_ref+"' target='Detail"+produit_lei+"' >> plus d'infos</a>   ";
            //latitude = latitude.replace(",",".");
            //longitude = longitude.replace(",",".");
            var point = new GLatLng(latitude, longitude);
            pos = id+"_"+nb_point;
            mymarqueurs = createMarker(point,html,icone,icone_width,icone_height,'A', pos);
            marqueurs[pos] = mymarqueurs;
            map.addOverlay(mymarqueurs);
            nb_point++;
                }
            pos = id+"_size";
            marqueurs[pos] = nb_point;

            document.getElementById('barre_progression').style.display = 'none';

          }

        );


    }
    else
    {
		
        RemoveOverlay(map, id);

    }
}

function RemoveOverlay (map, id)
{
    // on doit supprimer tous les marqueurs de la s�ection
        pos= id+"_size";
        var rsize = marqueurs[pos];
        for(var cpt=0;cpt < rsize;cpt++){
            pos = id + '_' + cpt;
            map.removeOverlay(marqueurs[pos]);
        }
}

// Gestion des fichiers KML
function traite_kml(map, active,id, fichier_kml) {
    if (active) {
		document.getElementById('barre_progression').innerHTML = "<img src='/images/progression.gif' alt='Chargement en cours' title='Chargement en cours'>";
        document.getElementById('barre_progression').style.display =''  ;
    	var geoXml = new GGeoXml(adresse_site+fichier_kml);
        map.addOverlay(geoXml);
		document.getElementById('barre_progression').style.display = 'none';
    	pos = id+"_kml";
        marqueurs[pos] = geoXml;

    } else {
    	pos = id+"_kml";
    	map.removeOverlay(marqueurs[pos]);

    }
}


/********

AFFICHAGE DE LA CARTE INTERACTIVE GENERALE

********/

// Menu du haut

function ShowMap ()
{
	if(dom)
	{
		document.getElementById("adt_carte").style.zIndex = 5003;
		document.getElementById("adt_carte").style.visibility = "visible";
		document.getElementById("adt_carte").style.left = 100;
		document.getElementById("adt_carte").style.width = 400;
		//document.getElementById("map_adt").style.width= 450;
	}
}



/********
INVISIBILITE DES SOUS MENUS
********/

function HiddenMap()
{
	if(dom)
	{
		document.getElementById("adt_carte").style.zIndex = 0;
		document.getElementById("adt_carte").style.visibility = "hidden";
		document.getElementById("adt_carte").style.left = 0;
		document.getElementById("adt_carte").style.width= 0;
		//document.getElementById("map_adt").style.width= 0;

	}
}




