/****************************
 * Scripts divers et utiles *
 ****************************/
//Fonction de raccourci
function $(id){
	return document.getElementById(id);
}

// Fonction récupérant la taille quelque soit le navigateur
function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

// Fonction récupérant la taille quelque soit le navigateur
function getWindowWidth() {
	var WindowWidth = 0;
	if (typeof(window.innerWidht) == 'number') {
		WindowWidth = window.innerWidht;
	}
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
			WindowWidth = document.documentElement.clientWidth;
		}
		else {
			if (document.body && document.body.clientWidth) {
				WindowWidth = document.body.clientWidth;
			}
		}
	}
	return WindowWidth;
}

//Changement de la langue
function switchLang(lg){
	location.replace('?lang='+lg);
}

//Appel une servlet et recupere un objet au format JSON
function loadJSON(url, callback){
	try{
		var xmlhttp = getXMLHttpRequest();
		xmlhttp.open("GET", url, true); 
		xmlhttp.send(null); 
		xmlhttp.onreadystatechange = function(){ 
			if (xmlhttp.readyState == 4 ) { 
				callback(eval('(' + xmlhttp.responseText + ')'),url); 
			} 
		}; 
	}catch(e){
		alert('default.js -> loadJSON -> erreur '+e+' sur url');
	}
}

function default_callUrl(url, callback, params){
	var xmlhttp = getXMLHttpRequest();
	xmlhttp.open("GET", url, true); 
	xmlhttp.send(null); 
	xmlhttp.onreadystatechange = function(){ 
		if (xmlhttp.readyState == 4) {
			callback(xmlhttp.responseText, params);			
		} 
	}; 		
}

function default_loadpage(url, balise){
	$(balise).innerHTML='<center><img src="theme/img/loading.gif"/></center>';
	var xmlhttp = getXMLHttpRequest();
	xmlhttp.open("GET", url, true); 
	xmlhttp.send(null); 
	xmlhttp.onreadystatechange = function(){ 
		if (xmlhttp.readyState == 4) {
			$(balise).innerHTML = xmlhttp.responseText;			
			//Evaluer les js inclus dans le code html "poussé".
			//Attention pour que ce la fonctionne sous IE, il faut que le xmlhttp.responseText soit entouré de <html><body> (y compris <script>)
			//car IE réinterprète le code et "retire" les balises <scripts> sinon.
			var allscript = $(balise).getElementsByTagName('script');
			for(var i=0;i< allscript.length;i++){
			     eval(allscript[i].text);
			}
		} 
	}; 
}

function startLoadingGif(){
	try{
		document.getElementById('gfiLoading').style.display='visible';
	}catch(e){}
}
function stopLoadingGif(){
	setTimeout(function(){document.getElementById('gfiLoading').style.display='none';},2500);
}

/**
 * Efface l'élément à l'index index du tableau tableau
 * (il s'agit en fait d'un décallage à gauche à partir de l'index)
 * @param tableau
 * @param index
 * @return
 */
function default_deleteElemFromArrayByIndex(tableau,index){
	for( var i = index ;  i < tableau.length - 1 ; i ++ ) {
		tableau[i] = tableau[i+1];
	}
	tableau.length = tableau.length - 1;
}
/**
 * Efface l'élément elem du tableau tableau
 * (il s'agit en fait d'un décallage à gauche à partir de la position de l'élément)
 * @param tableau
 * @param elem
 * @return
 */
function default_deleteElemFromArrayByElem(tableau,elem){
	var flag = false; // Ce flag sert à dire si on a commencé ou non le décallage à gauche
	for( var i = 0 ;  i < tableau.length - 1 ; i ++ ) {
		if( tableau[i] == elem )
			flag = true;
		if( flag )
			tableau[i] = tableau[i+1];
	}
	if( !flag && tableau[tableau.length - 1] == elem )// On vérifie que l'élément n'était en fait pas le dernier, si c'est le cas, alors on active le flag pour le supprimer
		flag = true;
	if( flag ) // On vérifie le flag, si jamais on ne l'a pas activé, on a rien supprimé...
		tableau.length = tableau.length - 1;
}