var liSelect = null;
var aSelect = null;
var predClassName = "liAltOneStyle";
var predIndex = 0;
var index = 0;
  
function autoCompOff(id) {
	document.getElementById(id).setAttribute("autocomplete","off");
}

// JavaScript Document
function getXhr() {
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	}
	return xhr;
}

function go_chercher(event,recherche,id_langue) {
	var code = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if((((code <= 90 && code >= 65) || (code <= 57 && code >= 48) || (code <= 105 && code >= 93) || code == 8 || code == 46) && recherche.length > 3) || recherche.length == 0) {
		var xhr = getXhr();
	
		var ctn = document.getElementById('moteur_recherche');
		if(ctn) {
			// On défini ce qu'on va faire quand on aura la réponse
			xhr.onreadystatechange = function() {
				if(xhr.readyState == 1) {
					ctn.style.display = "block";
					ctn.innerHTML = '<div id="load_res"><img src="images/loader.gif" width="79" height="64" style="margin-top: 10px; float: none;" /><br /><span style="font-size: 10px; font-weight: bold;">Chargement...</span><br /><br /></div>';
				}
				if (xhr.readyState == 4) {
					if(xhr.status == 200){
						leselect = xhr.responseText;
						ctn.style.display = "block";
						ctn.innerHTML = leselect;
						drawSelectedItemInResultSet();
					}
					else {
						alert('Erreur de traitement\n\nCode erreur : '+xhr.status+'\n\nReponse : '+xhr.responseText);	
					}
				}
			}
		}
	
		// Ici on va voir comment faire du post
		xhr.open("POST",'moteur_recherche.php',true);
		// ne pas oublier ça pour le post
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		// ne pas oublier de poster les arguments
		if(recherche!='null' || recherche!=""){ 
			xhr.send("rechercher="+recherche+"&id_langue="+id_langue);
		}
	}
}

function key_action_listener(value, idl, _event_) {
	if (value.length >= 2) {
		var	prov;
		var winObj = checkEventObj (_event_);
		aSelect = document.getElementById("a_" + index);
		
		key = winObj.keyCode;
		if (!key) key = winObj.wich;
		
		predIndex = index;
		
		switch (key) {
			// Action lorsqu'on appuie sur la touche entrée
			case 13:
				if (liSelect != null) window.location.href = aSelect.href;
			break;
			// Action lorsqu'on appuie sur la flèche du bas
			case 40:
				prov = parseInt(index) + 1;
				liSelect = document.getElementById("li_" + prov);
				if (liSelect != null) {
					index++;
					drawSelectedItemInResultSet ();
				}
			break;
			// Action lorsqu'on appuie sur la flèche du haut
			case 38:
				prov = parseInt(index) - 1;
				liSelect = document.getElementById("li_" + prov);
				if (liSelect != null) {
					index--;
					drawSelectedItemInResultSet();
				}
			break;
			default:
				index = 0;
				predIndex = 0;
				predClassName = "liAltOneStyle";
				go_chercher(_event_,value,idl);
			break;
		}
	} else document.getElementById('moteur_recherche').style.display = "none";
}

function drawSelectedItemInResultSet () {
	var elt = document.getElementById("li_" + predIndex);
	if(elt) {
		elt.className = predClassName;
	}
	var liSelect = document.getElementById("li_" + index);
	if(liSelect) {
		predClassName = liSelect.className;
		liSelect.className = "liSelectStyle";
	}
}

function checkEventObj ( _event_ ) {
	// --- IE explorer
	if ( window.event ) return window.event;
	// --- Netscape and other explorers
	else return _event_;
}

function myScroll(content, value) {
	document.getElementById(content).scrollLeft += value;
}

var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function getURLvar(url) {
	var urlVars=url.split("?"); // tableau contenant d'un coté l'url proprement dite, de l'autre les variables, s'il y en a (auquel cas, urlVars.length>0 : voir plus bas)
	var v=new Array(); //
	v["name"]=new Array();
	v["val"]=new Array();
	
	if (urlVars.length>0) {
		var vars=urlVars[1].split("&"); // séparation de toutes les variables
		
		for (var i=0; i<vars.length; i++) {
			v["name"][i]=vars[i].split("=")[0];
			v["val"][i]=vars[i].split("=")[1];
			//console.log(v["name"][i] + "=" + v["val"][i]);
		}
	}
	return(v); 	
}

function swapImg(id_img,new_src) {
	$('#'+id_img).attr('src',new_src)
	return;
}

function addRes(elt,tok) {
	hs.close(elt);
	var xhr = getXhr();
	xhr.onreadystatechange = function() {}
	// Ici on va voir comment faire du post
	xhr.open("POST",'ajax/maj_reservation.php',true);
	// ne pas oublier ça pour le post
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send("token="+tok);
}

// cache les actualités si la hauteur est insuffisante pour les afficher correctement
function toggleActu() {
	if ($('#contenu').outerHeight() >= 550) {
		$('#actu').css('display', 'block');
		$('#actu').css('visibility', 'visible');
	}
	else {
		$('#actu').css('display', 'none');
		$('#actu').css('visibility', 'hidden');
	}
}
