//copyright ADOK Gilles Vanderstraeten : gillesvds@adok.info
//utf-8
//--------------------------------------------------
function convertirSecondeEnHeureMinuteSeconde(nbSeconde){
	//retourne un nombre d'heure au foramt HH:MM:SS à partir d'un nombre de seconde
	var heure=parseInt(nbSeconde/3600).toString();
	var minuteSeconde=nbSeconde%3600;
	var minute=parseInt(minuteSeconde/60).toString();
	var seconde=(minuteSeconde%60).toString();
	var heureMinuteSeconde=(heure.length==1?"0"+heure:heure)+":"+(minute.length==1?"0"+minute:minute)+":"+(seconde.length==1?"0"+seconde:seconde);
	return heureMinuteSeconde;
}
//--------------------------------------------------
function convertirHeureMinuteSecondeEnSeconde(duree){
	//retourne le nombre de seconde à partir d'une durée en HH:MM:SS
	var heure=parseInt(duree.substring(0,2));
	var minute=parseInt(duree.substring(3,5));
	var seconde=parseInt(duree.substring(6,8));
	//alert("heure : "+heure+"\nminute : "+minute+"\nseconde : "+seconde+"\n");
	nbSeconde=heure*3600+minute*60+seconde;
	return nbSeconde;
}
//--------------------------------------------------
function midi(objDate){
	//retourne objDate calé à midi
	//ENTREE
	//objDate : objet Date (date en cours par défaut)
	if(!objDate)objDate=new Date();
	objDate.setHours(12);
	objDate.setMinutes(0);
	objDate.setSeconds(0);
	objDate.setMilliseconds(0);
	return objDate;
}
//--------------------------------------------------
function estBis(annee){
	//retourne true ou false selon que annee est bissextile ou non
	//ENTREE
	//annee : AAAA (année en cours par défaut)
	var dateNow=midi();
	if(!annee)annee=dateNow.getFullYear();
	return (annee%4==0 && annee%100!=0) || annee%400==0;
}
//--------------------------------------------------
function nbJoursDansMois(annee,numMois){
	//retourne le nombre de jours du mois
	//ENTREE
	//annee : AAAA (année en cours par défaut)
	//numMois : 1 à 12 (janvier à décembre, mois en cours par défaut)
	var tabNbJoursMois=[31,28,31,30,31,30,31,31,30,31,30,31];
	var dateNow=midi();
	if(!annee)annee=dateNow.getFullYear();
	if(!numMois)numMois=dateNow.getMonth()+1;
	return (numMois==2 && estBis(annee))?29:tabNbJoursMois[numMois-1];
}
//------------------------------------------------------------
function makeDate(jma){
	//retourne J-M-A (comme saisi dans un champ) converti en objet Date à midi
	//retourne false si date invalide
	//ENTREE
	//jma : J-M-A
	var tabDate=jma.split("-");
	var j,m,a,d;
	if(tabDate.length<3)return false;
	j=parseInt(tabDate[0],10);
	m=parseInt(tabDate[1],10);
	a=parseInt(tabDate[2],10);
	d=new Date(a,m-1,j,12);//midi
	return a==d.getFullYear() && m==d.getMonth()+1 && j==d.getDate()?d:false;
}
//------------------------------------------------------------
function jmaVersUnix(jma){
	//retourne J-M-A (comme saisi dans un champ) converti en unix à midi
	//retourne false si date invalide
	//ENTREE
	//jma : J-M-A
	var d=makeDate(jma);
	return d?d.getTime():false;
}
//------------------------------------------------------------
function unixVersJma(unix){
	//retourne unix converti en JJ-MM-AAAA (heure perdue, passage par midi)
	//ENTREE
	//unix : temps Unix
	var d=midi(new Date(unix*1000));
	var j,m,a;
	j=d.getDate();
	if(j<10)j="0"+j;
	m=d.getMonth()+1;
	if(m<10)m="0"+m;
	a=d.getFullYear();
	return j+"-"+m+"-"+a;
}
//--------------------------------------------------
function strDate(objDate,format,langue,taille){
	//retourne une string XHTML de la date objDate dans le format et la langue demandée
	//ENTREE
	//objDate : objet Date de la date à retourner phrasée (date en cours par défaut)
	//format : string du format ("SEjEmEA" par défaut)
	//langue : string de la langue ("fr" par défaut)
	//taille : string de la taille ("complet" par défaut)
	//CHAMPS DISPOS
	//s (jour)  : jour de la semaine avec minuscule
	//S (tabJours)  : jour de la semaine avec majuscule
	//j (date)  : jour du mois sur un ou deux chiffres
	//J (Date)  : jour du mois sur deux chiffres
	//m (mois)  : mois avec minuscule
	//M (Mois)  : mois avec majuscule
	//a (année) : année sur 2 chiffres
	//A (Année) : année sur 4 chiffres
	//e (space) : espace
	//E (Space) : espace insécable
	var tabS_fr_complet=["lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche"];
	var tabJ_fr_complet=["1er","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"];
	var tabM_fr_complet=["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"];
	var tabS_fr_abrege=["lun","mar","mer","jeu","ven","sam","dim"];
	var tabJ_fr_abrege=["1er","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"];
	var tabM_fr_abrege=["jan","fév","mars","avr","mai","juin","juil","août","sept","oct","nov","déc"];
	var tabS_fr_superAbrege=["L","M","M","J","V","S","D"];
	var tabJ_fr_superAbrege=["1er","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"];
	var tabM_fr_superAbrege=["jan","fév","mars","avr","mai","juin","juil","août","sept","oct","nov","déc"];
	var tabS_en_complet=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
	var tabJ_en_complet=["1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"];
	var tabM_en_complet=["January","February","March","April","May","June","July","August","September","October","November","December"];
	var tabS_en_abrege=["Mon","Tues","Wed","Thurs","Fry","Sat","Sun"];
	var tabJ_en_abrege=["1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"];
	var tabM_en_abrege=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"];
	var tabS_en_superAbrege=["Mo","Tu","We","Th","Fr","Sa","Su"];
	var tabJ_en_superAbrege=["1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"];
	var tabM_en_superAbrege=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"];
	//AJOUTER ICI LES LANGUES SUPPLEMENTAIRES
	if(!objDate)objDate=midi();
	if(!format)format="SEjEmEA";
	if(!langue)langue="fr";
	if(!taille)taille="complet";
	var tabS=eval("tabS_"+langue+"_"+taille);
	var tabJ=eval("tabJ_"+langue+"_"+taille);
	var tabM=eval("tabM_"+langue+"_"+taille);
	var numJourSemaine=objDate.getDay();//lundi=1,...,dimanche=0
	var s=tabS[(numJourSemaine==0?7:numJourSemaine)-1];//lundi=1,...,dimanche=7
	var S=s.charAt(0).toUpperCase()+s.substr(1);
	var j=tabJ[objDate.getDate()-1];
	var J=j<10?"0"+j:j;
	var m=tabM[objDate.getMonth()];
	var M=m.charAt(0).toUpperCase()+m.substr(1);
	var a=objDate.getFullYear().toString().substr(2,2);
	var A=objDate.getFullYear();
	var e=" ";
	var E="&#160;";
	var strHtml="";
	for(var i=0;i<format.length;i++)strHtml+=eval(format.charAt(i));
	return strHtml;
}
//------------------------------------------------------------

