function hide_sm(){
    if(affich != true){
        $('.sm').hide();
    }
};


jQuery().ready(function(){
    // Pour le masquage du sous-menu lorqu'on quitte le menu
    affich = false;

    var larg = new Array();

    $(".m").hover(function(){
        affich = true;
        $('.sm').hide();
        $(".m").removeClass('hover');

        // largeur de la boite
        var wid = $("."+$(this).attr('id')).outerWidth();
        if(larg[$(this).attr('id')] === undefined){
            var temp = wid + 10;
            $('.'+$(this).attr('id')).css({
                "width": temp + "px"
            })
            larg[$(this).attr('id')] = wid ;
        }

        $('.'+$(this).attr('id')).show();
        $(this).addClass('hover');


        // positionnement du sous-menu
        var pos = $("#"+$(this).attr('id')).position();
        var nav = $("#navigation").outerWidth();

        if(pos.left + wid > nav){
            $('.'+$(this).attr('id')).css({
                "right": "0px"
            })
        }else {
            $('.'+$(this).attr('id')).css({
                "left": (pos.left) + "px"
            })
        }

    });

    $(".sm").hover(function(){
        affich = true;
    });

    $(".sm").mouseleave(function(){
        affich = false;
        setTimeout('hide_sm()', 2000);
        $(".m").removeClass('hover');
    });

    $(".m").mouseleave(function(){
        affich = false;
        setTimeout('hide_sm()', 2000);
        //$('.sm').hide();
        $(".m").removeClass('hover');
    });

    $(".open_close").click(function(){
        $('#'+$(this).attr('rel')).toggle();
    });


    /*$(".commune").keyup(function(){
        var test = $(this).val();
        alert(test);

        $.ajax({
           url: "/pages/json-test.php",
           type: "POST",
           data: "q="+test,
           success: function(){
               alert(hello);
           }
        });
    });*/


    //Autocompletion pour le champ site
    $(".commune").autocomplete("/pages/suggest_communes.php", {
            selectFirst: false
    });

});




/**
 * Doit avoir ce JS d'inclu :
http://maps.google.com/maps/api/js?sensor=false

 * Fonction qui génère la carte google pour la div mapId
 * annonce doit être au format JSON dce ce format :
text doit être en UTF-8 !!!
id: (int)43905
lat: (float)47.329348
lng: (float)-1.620486
text: (string)"<h4>Treillières</h4> En...ore">En savoir plus</a>"
 */

function initGGMap(mapId, centerLat, centerLng, annonce) {
	var infowindow = new google.maps.InfoWindow();
	var latlng	= new google.maps.LatLng(centerLat, centerLng);

    var map = new google.maps.Map(document.getElementById(mapId), {
          zoom: 10,
          center: latlng,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });

	for (key in annonce) {
		var land = annonce[key];

		var latLng = new google.maps.LatLng(land.lat,land.lng);
		var marker = new google.maps.Marker({
			position: latLng,
			map: map
		});
		marker.text = land.text;

		google.maps.event.addListener(marker, 'click', function() {
			var html = '<div class="infoWidow" style="width:300px;">' + this.text + '</div>';
			infowindow.setContent(html);
			infowindow.open(map,this);
		});
	}
}


/*
 * ajax_commune.js
 *
 * Pour la recherche de commune (intranet : terrains.php)
 *
 */
function initSelectCommune() {
    // On récupère tout les élément qui comportent la classe select_commune est departement
    var sc = getElementsByClass('select_commune departement');
    for(var i=0; i<sc.length; i++) {
        q = sc[i];
        matches = q.className.match(/departement ([0-9])/);
        // On a trouver un couple pour le select
        if(matches[1] < 0) {
            continue;
        }
        elem = getElementsByClass('departement '+matches[1])[0];
        getElementsByClass('select_commune afcommune '+matches[1])[0].style.display = 'none';
        // Il y a une commune de sélectionnée par défault
        if(def = getElementsByClass('select_commune default_commune '+matches[1])[0]) {
            default_commune = def.value;
            var ob = document.createElement('input');
            ob.className = "select_commune departement " + matches[1];
            ob.value = elem.options[elem.selectedIndex].value;
            selectDep(ob);
        }
        addEvent(elem, 'change', selectDep);
    }
    return;

}
function afCommune(obj) {

    // Construction des noeuds
    if (!obj.responseXML)
        return;

    var tabResult = obj.responseXML.getElementsByTagName('commune');
    // Pas de résultat alors on sort.
    if (tabResult.length < 0)
        return;

    var s_commune = getElementsByClass('select_commune commune '+id_common)[0];
    s_commune.innerHTML = '';

    // On créer la première option avec Choisissez... dans le select s_commune
    var opt   = document.createElement('option');
    opt.appendChild(document.createTextNode('Choisissez...'));
    opt.setAttribute('value', '');
    s_commune.appendChild(opt);

    ok = false; // Détermine si on a ajouter trouvé une valeur par default
    for (var i = 0; i < tabResult.length; i++) {
        var resultat = tabResult.item(i);
        var opt   = document.createElement('option');
        var name  = resultat.getAttribute('name');
        var id    = resultat.getAttribute('id');
        texte = document.createTextNode(name + " [" + id + "]");
        opt.appendChild(texte);
        opt.setAttribute('value', name);
        if(default_commune == name) {
            opt.setAttribute('selected', 'selected');
            ok = true;
        }
        s_commune.appendChild(opt);
    }
    // Pas de communes trouvée dans le fichier XML alors on rajoute la valeur à la fin du select
    if(ok == false && default_commune != null) {
        var opt   = document.createElement('option');
        opt.appendChild(document.createTextNode(default_commune));
        opt.setAttribute('selected', 'selected');
        s_commune.appendChild(opt);
    }
}

function selectDep(ob) {
    console.log(ob);
    if (ob.value) {
        var q = ob.value;
        var cName = ob.className;
    } else {
        var evt = getStandardEvent(ob);
        var elem = evt.target;
        var q = elem.value;
        var cName = elem.className;
    }
    if(cName == null)
        return;
    // On recherche l'identifiant commun
    id_common = cName.split(/ /)[2];
    getElementsByClass('select_commune afcommune '+id_common)[0].style.display = 'block';
    getElementsByClass('select_commune commune '+id_common)[0].innerHTML = 'Chargement en cours...';

    // Création de l'objet
    var XHR = new XHRConnection();
    XHR.appendData('dep', q);
    XHR.appendData('asynchronous','on');
    // On soumet la requête
    // Signification des paramètres:
    //      + On indique à l'objet qu'il faut appeler le fichier $path_to_search
    //      + On indique quelle fonction appeler lorsque l'opération a été effectuée
    XHR.sendAndLoad('/xml/communes2.php', 'GET', afCommune);
}

