function byId(elmId){
	var elm = document.getElementById(elmId);
	if(elm==null) elm = document.getElementsByName(elmId)[0];
	return elm;
}

function setClassName( element, className) {
  agt = navigator.userAgent.toLowerCase();
  if (agt.indexOf('mozilla')!=-1 && agt.indexOf('spoofer')==-1 && agt.indexOf('compatible') == -1)
    element.setAttribute("class", className);
  else
    element.setAttribute("className", className);
}

function setFocus(ctrl){
	try{
		byId(ctrl).focus();
	}catch(e){;};
}

function Toggle(who){
	byId(who).style.display= byId(who).style.display=='none' ? '' : 'none';
}

function trim(string){
	return string.replace(/(^\s*)|(\s*$)/g,'');
}

function ValidateEmail(email){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email);
}
function IsValid(s,min,num){
	if(s.value.length<min) return false;
	if (num && isNaN(s.value)) return false;
	return true;
}

function IsValidAPE(ape){
	s=trim(byId(ape).value);
	byId(ape).value=s;
	//Il faut 4 caracteres
	if(s.length!=4){
		return false;
	}
	s=s.toUpperCase();

	//les 3 premiere doivent être un nombre
	t=s.substr(0,3);
	if(isNaN(t)){
		return false;
	}
	var t=s.substr(3,1);
	//La derniere lettre doit être une lettre
	if(!isNaN(t)){
		return false;
	}
	return true;
}

function IsValidFRTVA(tva,siren){
	s=trim(byId(tva).value);
	byId(tva).value=s;
	nosiren=byId(siren).value;
	//Il faut 13 caracteres
	if(s.length!=13){
		//alert('Le N° de TVA Intracommunautaire est invalide.\nIl doit contenir 13 caracteres.');
		//setFocus(tva);
		return false;
	}
	s=s.toUpperCase();
	var t=s.substr(0,2);
	//Les 2 premiers doivent être FR
	if(t!='FR'){
		//alert('Le N° de TVA Intracommunautaire est invalide.\nIl doit commencer par FR.');
		//setFocus(tva);
		return false;
	}
	//Les 2 suivants un nombre
	t=s.substr(2,2);
	if(isNaN(t)){
		//alert('Le N° de TVA Intracommunautaire est invalide.');
		//setFocus(tva);
		return false;
	}
	//les 9 suivants un nombre aussi
	t=s.substr(4,9);
	if(isNaN(t)){
		//alert('Le N° de TVA Intracommunautaire est invalide.');
		setFocus(tva);
		return false;
	}
	//les 9 derniers doivent être identiques au numero de SIREN
// 	if(t!=nosiren){
// 		//alert('Le N° de TVA Intracommunautaire est invalide.\nIl ne correspond pas au N° SIREN.');
// 		setFocus(tva);
// 		return false;
// 	}
	return true;
}

// Enleve le '0' des nb < 10
function ConvNum(tabDeDate) {
	for (i=0; i<tabDeDate.length; i++)
	tabDeDate[i] = (tabDeDate[i].charAt(0)=='0')?tabDeDate[i].charAt(1):tabDeDate[i];
	return tabDeDate;
}

// Retourne true si valeur_date est postérieure à la date du jour
function DateFuture(valeur_date){
	var tabDate = valeur_date.split('/');
	var datAujourdhui = new Date();
	tabDate = ConvNum(tabDate);
	if (valeur_date.length > 0){ 
		var datTest_Date = new Date(parseInt(tabDate[2]), parseInt(tabDate[1])-1, parseInt(tabDate[0]));
		if (datTest_Date <= datAujourdhui) return false;
	}
	return true;
}

// Retourne 1 si valeur_date1 < valeur_date2
// 0 si valeur_date1 = valeur_date2
// -1 si valeur_date1 > valeur_date2
function Compare_Dates(valeur_date1, valeur_date2){
	var tabDate1 = valeur_date1.split('/');
	tabDate1 = ConvNum(tabDate1);
	var datTest_Date1 = new Date(parseInt(tabDate1[2]), parseInt(tabDate1[1])-1, parseInt(tabDate1[0]));
	var tabDate2 = valeur_date2.split('/');
	tabDate2 = ConvNum(tabDate2);
	var datTest_Date2 = new Date(parseInt(tabDate2[2]), parseInt(tabDate2[1])-1, parseInt(tabDate2[0]));
	return (datTest_Date2-datTest_Date1==0)?"0":(datTest_Date2-datTest_Date1<0)?"-1":"1";
}

// Vérifie le format d une date saisie
function Verif_Date(valeur_date){ 
	var tabDate = valeur_date.split('/');
	tabDate = ConvNum(tabDate);
	var datTest_Date = new Date(parseInt(tabDate[2]), parseInt(tabDate[1])-1, parseInt(tabDate[0]));
	if (valeur_date.length>10){ 
		alert('Ne dois pas dépasser 10 caractères.');
		return false;
	}
	for (i=0; i<valeur_date.length; i++){
		if (valeur_date.charAt(i) == ' '){
			alert("La date ne doit pas contenir d\'espaces.");
			return false;
		}
	}
	if (valeur_date.length > 0){ 
		if ((parseInt(tabDate[0]) != datTest_Date.getDate()) || (parseInt(tabDate[1]) != parseInt(datTest_Date.getMonth())+1)){
			alert("Veuillez saisir la date au format 'JJ/MM/AAAA'.\n\nex : 20/04/2007");
			return false;
		}
		if ((tabDate[2].length != 4) || (parseInt(tabDate[2]) < 1980) || (parseInt(tabDate[2]) > 2099)){ 
			alert("Veuillez saisir l'année sur 4 chiffres.\n\nElle doit être comprise entre 1980 et 2099.");
			return false;
		}
	}
	return true;
}

function ControleDates(fld1,fld2){
	var strMsg='';
	if (Verif_Date(byId('fld1').value) && Verif_Date(byId('fld2').value)){
		switch (Compare_Dates(byId('fld1').value,byId('fld2').value)){
		case "-1" :
			alert('NOK:\nDate début > Date fin'); break;
		case "0" :
			alert('NOK:\nDate début = Date fin'); break;
		case "1" :
			alert('OK:\nDate début < Date fin'); break;
		default :
			alert('Comparaison impossible');break;
		}
	}
}

function URLEncode(s){
	var SAFECHARS = 
		"0123456789" +
		"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
		"abcdefghijklmnopqrstuvwxyz" +
		"-_.!~*'()";
	var HEX = "0123456789ABCDEF";
	var plaintext = s;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	}
	return encoded;
};

function URLDecode(s){
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var encoded = s;
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	}
   return plaintext;
};
function Onglet(who){
	var s=new String(who);
	var pos=s.indexOf('#');
	var c=s.substring(pos+1,s.length);

	for(i=0; i< onglets.length; i++){
		onglets[i]['actif']=false;
		byId(onglets[i]['id']).style.display='none';
	}
	onglets[c]['actif']=true;
	byId(onglets[c]['id']).style.display='';

	n=0;
	for(i=0; i< byId('onglet-recherche').childNodes.length; i++){
		if(byId('onglet-recherche').childNodes[i].nodeType==1){
			byId('onglet-recherche').childNodes[i].id='';
			if(n==c){
				byId('onglet-recherche').childNodes[i].id='actif';
			}
			n++;
		}
	}
	return false;
};
