//Permet d'ecrire dans un DIV (localisé par son ID) la valeur de "texte"
function writeDiv(texte, iddiv)  {
	document.getElementById(iddiv).innerHTML = texte;
}

function writeUpfiles(modif, integ, menu_type) {
	document.getElementById('warning').innerHTML = document.getElementById('warning').innerHTML + '<img src="images/p-warning.png">'+modif+', <a href="upfiles.php?menu_type='+menu_type+'">'+integ+'.</a><img src="images/p-warning.png">';
}

function writeDirNotExists(lib) {
	document.getElementById('warning').innerHTML = document.getElementById('warning').innerHTML + '<img src="images/p-warning.png"> '+lib+' <img src="images/p-warning.png">';
}

function writeException(lib) {
	document.getElementById('warning').innerHTML = document.getElementById('warning').innerHTML + lib;
}

function ouvrir(page) {
	document.location = page;
}

function change_page(i){
	document.formulaire.numpage.value=i;
	document.formulaire.submit();
}

function imprimer(){
	window.print();
}

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;
}

//Node cleaner
function go(c){
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}

function clean(d){
	var bal=d.getElementsByTagName('*');

	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
} 

function heure_valide(heurevalue, msg) {
	heuval = true;
	if(heurevalue.length!=5){
		heuval = false;
	}
	for(j=0;j<5;j++){
		if((j==2)&&(heurevalue.charAt(j)!=':')){
			heuval = false;
		}
		if((j!=2)&&(String(Number(heurevalue.charAt(j)))=='NaN')){
			heuval = false;
		}
		heure = Number(heurevalue.charAt(0)+heurevalue.charAt(1));
		minute = Number(heurevalue.charAt(3)+heurevalue.charAt(4));
		if((heure<0)||(heure>=24)){
			heuval=false;
		}
		if((minute<0)||(minute>=60)){
			heuval=false;
		}
	}
	if(!heuval){
		ok = false;
		alert(msg);
	}
	return heuval;
}

function date_valide(datevalue, msg) {
	datval = true;

	if(datevalue.length!=10) 
		datval=false;

	for(j=0;j<10;j++){
		b=Number(datevalue.charAt(j));
		if((j==2)||(j==5)){
			if(datevalue.charAt(j)!='/'){
				datval=false;
			}
		}
		if(((j!=2)&&(j!=5))&&(String(Number(b))=='NaN')){
			datval=false;
		}
	}

	jour=Number(datevalue.charAt(0)+datevalue.charAt(1));
	mois=Number(datevalue.charAt(3)+datevalue.charAt(4));
	annee=Number(datevalue.charAt(6)+datevalue.charAt(7)+datevalue.charAt(8)+datevalue.charAt(9));

	if((annee<1990)||(annee>2099))
		datval=false;
	if((mois>12)||(mois==0))
		datval=false;
	if(((((((mois==1)||(mois==3))||(mois==5))||(mois==7))||(mois==8))||(mois==10))||(mois==12)){
		if((jour<1)||(jour>31)){
			datval=false;
		}
	}

	if((((mois==4)||(mois==6))||(mois==9))||(mois==11)){
		if((jour<1)||(jour>30)){
			datval=false;
		}
	}

	if(mois==02){
		if(annee%4==0){
			if((jour<1)||(jour>29)){
				datval=false;
			}
		}
		else{
			if((jour<1)||(jour>28)){
				datval=false;
			}
		}
	}

	if(!datval){
		ok=false;
		alert(msg);

		return false;
	}
	return datval;
}

function many_date_valide(elementName, msg, msg2) {
	cpt=0;
	temp = document.formulaire.elements.length;

	for (i=0; i < temp; i++) {
		if (document.formulaire.elements[i].name==elementName) {
			cpt++;
			datval=true;
			a=document.formulaire.elements[i].value;
			if(!date_valide(a, msg + " " + String(cpt) + " " + msg2)) {
				return false;
			}
		}
	}
	return true;
}

function many_date_valide_if_not_null(elementName, msg, msg2) {
	cpt=0;
	temp = document.formulaire.elements.length;

	for (i=0; i < temp; i++) {
		if (document.formulaire.elements[i].name==elementName) {
			cpt++;
			datval=true;
			a=document.formulaire.elements[i].value;
			if(a.length > 0) {
				if(!date_valide(a, msg + " " + String(cpt) + " " + msg2)) {
					return false;
				}
			}
		}
	}
	return true;
}

function date_valide_if_exists(elementName, msg) {
	cpt=0;
	temp = document.formulaire.elements.length;

	for (i=0; i < temp; i++) {
		if (document.formulaire.elements[i].name==elementName) {
			cpt++;
			datval=true;
			a=document.formulaire.elements[i].value;
			if(!date_valide(a, msg)) {
				return false;
			}
		}
	}
	return true;
}

function date_valide_if_exists_not_null(elementName, msg) {
	cpt=0;
	temp = document.formulaire.elements.length;

	for (i=0; i < temp; i++) {
		if (document.formulaire.elements[i].name==elementName) {
			cpt++;
			datval=true;
			a=document.formulaire.elements[i].value;
			if(a.length > 0) {
				if(!date_valide(a, msg)) {
					return false;
				}
			}
		}
	}
	return true;
}

function select_innerHTML(objeto,innerHTML){
	/******
	 * select_innerHTML - corrige o bug do InnerHTML em selects no IE
	 * Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
	 * Versão: 2.1 - 04/09/2007
	 * Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
	 * @objeto(tipo HTMLobject): o select a ser alterado
	 * @innerHTML(tipo string): o novo valor do innerHTML
	 *******/
	objeto.innerHTML = ""
		var selTemp = document.createElement("micoxselect")
		var opt;
	selTemp.id="micoxselect1"
		document.body.appendChild(selTemp)
		selTemp = document.getElementById("micoxselect1")
		selTemp.style.display="none"
			if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
				innerHTML = "<option>" + innerHTML + "</option>"
			}
	innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")
	selTemp.innerHTML = innerHTML


	for(var i=0;i<selTemp.childNodes.length;i++){
		var spantemp = selTemp.childNodes[i];

		if(spantemp.tagName){     
			opt = document.createElement("OPTION")

			if(document.all){ //IE
				objeto.add(opt)
			}else{
				objeto.appendChild(opt)
			}       

			//getting attributes
			for(var j=0; j<spantemp.attributes.length ; j++){
				var attrName = spantemp.attributes[j].nodeName;
				var attrVal = spantemp.attributes[j].nodeValue;
				if(attrVal){
					try{
						opt.setAttribute(attrName,attrVal);
						opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
					}catch(e){}
				}
			}
			//getting styles
			if(spantemp.style){
				for(var y in spantemp.style){
					try{opt.style[y] = spantemp.style[y];}catch(e){}
				}
			}
			//value and text
			opt.value = spantemp.getAttribute("value")
			opt.text = spantemp.innerHTML
			//IE
			opt.selected = spantemp.getAttribute('selected');
			opt.className = spantemp.className;
		} 
	}    
	document.body.removeChild(selTemp)
	selTemp = null
}
