/****************************
 * Scripts divers et utiles *
 ****************************/
//Fonction de raccourci
function $(id){
	return document.getElementById(id);
}

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}

// 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(lng){
	location.replace('?language='+lng);
}

//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 ) {
				if(xmlhttp.responseText!=''){
					callback(eval('(' + xmlhttp.responseText + ')'),url); 
				}
			}
		}; 
	}catch(e){
		alert('default.js -> loadJSON -> erreur '+e+' sur url');
	}
}

//Appel une servlet et recupere un objet au format JSON
function loadPostJSON(url,params, callback){
	try{
		var xmlhttp = getXMLHttpRequest();
		xmlhttp.open("POST", url, true); 
		//Send the proper header information along with the request
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", params.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(params); 
		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);
			}
		} 
		// Temporaire pour 1GE et son colorpicker... à voir comment on peut le supprimer d'ici
		if( typeof(jscolor)!='undefined' )
			jscolor.init();
	};
}

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;
}

//Chargement de la liste des pays
function initCountryList(){
	loadJSON(host+"/goToArea?method=getCountry&lang="+language+getHash(), loadCountry);
}

//Liste des pays avec leur Bbox (au format JSON)
var countryList;

//Recuperation de la liste des pays
function loadCountry(obj, url){
	if (obj != null){   
		var div = document.getElementById("divSelectCountry");  
	
		var txt="<select id=\"gotoInput\" onchange=\"goToExtentCountry(this.value);\">";
		txt += '<option value="selectCountry">'+OpenLayers.i18n('defaultSelectACountry')+'</option>';
		for(var name in obj){ 
			txt += '<option value="'+name+'">'+OpenLayers.i18n('country_'+name)+'</option>';			
		} 
		
		div.innerHTML=txt+"</select>";  
		
		countryList = obj;	         
	} 
}

function openPopup(url,title) {
	win=window.open(url,title,'height=800,width=900,resizable=yes,scrollbars=yes');
	win.focus();	
}


function checkImg(){
	
	var imagesArray = document.images;
	
	for( var i = 0 ; i < imagesArray.length; i++ ){
		imagesArray[i].src = imagesArray[i].src;
		//alert( imagesArray[i].alt + " > " + imagesArray[i].src );
	}

}
