//
// Fonctions de gestion des formulaires de saisie
//

//Variables de gestion du calendrier
var dCalSelDate;
var dCalDate;

tmois = new Array(12);
tmois[0]="Janvier";
tmois[1]="Février";
tmois[2]="Mars";
tmois[3]="Avril";
tmois[4]="Mai";
tmois[5]="Juin";
tmois[6]="Juillet";
tmois[7]="Août";
tmois[8]="Septembre";
tmois[9]="Octobre";
tmois[10]="Novembre";
tmois[11]="Décembre";

//
// Fonction de gestion du calendrier
//

function cal_sel_date(pcTexte)
	{
	oTexte 		= document.getElementById(pcTexte);
	oCal		= document.getElementById("calendrier");	

	oCal.style.top 	= oTexte.offsetHeight  + cal_OffsetTop(oTexte) ;
	oCal.style.left = cal_OffsetLeft(oTexte) ;

	cTexte	= oTexte.value;

	if (cTexte == "") {
		dDate	= new Date();
		cday 	= dDate.getDate();
		cmonth 	= dDate.getMonth()+1;
		cyear 	= dDate.getFullYear();	
	} else {
		cday 	= cTexte.substring(0,2);
		cmonth 	= cTexte.substring(3,5);
		cyear 	= cTexte.substring(6,10);
	}
	
	dCalSelDate	= new Date(0);
	dCalSelDate.setDate(cday);
	dCalSelDate.setMonth(cmonth-1);
	dCalSelDate.setYear(cyear); 

	dCalDate = new Date(0);	
	dCalDate.setDate(1);
	dCalDate.setMonth(cmonth-1);
	dCalDate.setYear(cyear); 

	cal_affiche(dCalDate);
	
	oCal.style.display = "";
	}

function cal_affiche()
	{
					
		lpremierjour = false;
		
		dCptDate = new Date(0);
		dCptDate.setDate(dCalDate.getDate());
		dCptDate.setMonth(dCalDate.getMonth());
		dCptDate.setYear(dCalDate.getFullYear());
		
		oFrame = document.frames ? document.frames['calendrier_table'] : document.getElementById('calendrier_table');
		oDocument = oFrame.document || oFrame.contentWindow.document;

		oCell = oDocument.getElementById("cal_annee");
		oCell.innerHTML=dCptDate.getFullYear();
		oCell = oDocument.getElementById("cal_mois");
		oCell.innerHTML=tmois[dCptDate.getMonth()];
		
		if (dCalDate.getDay()==0) {
			cpremierjour = 7;
		} else {
			cpremierjour = dCalDate.getDay();
		}

		for (i=1; i<=6; i++){
				for (j=1; j<=7; j++){
					cCell = "cal_jour" + i + j;
					oCell = oDocument.getElementById(cCell);
					if (j==cpremierjour) {
						lpremierjour = true;
					}
					if (lpremierjour) {
						if (dCptDate.getMonth()==dCalDate.getMonth()) {
							oCell.innerHTML = dCptDate.getDate();
							if (dCptDate.getDate() == dCalSelDate.getDate() && dCptDate.getMonth() == dCalSelDate.getMonth() && dCptDate.getFullYear() == dCalSelDate.getFullYear()) {
								if (j==6 || j==7) {
									oCell.setAttribute("className", "cal_we_date_sel", 0);
									oCell.setAttribute("class", "cal_we_date_sel");
								 } else {
									oCell.setAttribute("className", "cal_date_sel", 0);
									oCell.setAttribute("class", "cal_date_sel");
								}
							 } else {
								if (j==6 || j==7) {
							 		oCell.setAttribute("className", "cal_we_date", 0);
									oCell.setAttribute("class", "cal_we_date");
								 } else {
							 		oCell.setAttribute("className", "cal_date", 0);
									oCell.setAttribute("class", "cal_date");								 
								 }
							}
							oCell.title = opl_date_to_string(dCptDate);
							dCptDate.setDate(dCptDate.getDate()+1);
						 } else {
							if (j==6 || j==7) {
							 	oCell.setAttribute("className", "cal_we_date", 0);
								oCell.setAttribute("class", "cal_we_date");
							}
							oCell.title = "";
							oCell.innerHTML = "&nbsp;";
							}
					} else {
						if (j==6 || j==7) {
							oCell.setAttribute("className", "cal_we_date", 0);
							oCell.setAttribute("class", "cal_we_date");
						}
						oCell.title = "";
						oCell.innerHTML = "&nbsp;";
					}
					
				}
			}
	}

function cal_annee_precedente()
	{
		dCalDate.setYear(dCalDate.getFullYear()-1);
		cal_affiche(dCalDate);
	}
	
function cal_annee_suivante()
	{
		dCalDate.setYear(dCalDate.getFullYear()+1);
		cal_affiche(dCalDate);		
	}

function cal_mois_precedent()
	{
		dCalDate.setMonth(dCalDate.getMonth()-1);
		cal_affiche(dCalDate);	
	}

function cal_mois_suivant()
	{
		dCalDate.setMonth(dCalDate.getMonth()+1);
		cal_affiche(dCalDate);			
	}

function cal_jour(oJour)
	{
		if (oJour.innerHTML != "&nbsp;") {
			dNewDate= new Date(0);
			dNewDate.setDate(1);
			dNewDate.setMonth(dCalDate.getMonth());
			dNewDate.setYear(dCalDate.getFullYear()); 
			dNewDate.setDate(oJour.innerHTML);
			oTexte.value = opl_date_to_string(dNewDate);
			cal_fermer();
		}
	}
	
function opl_date_to_string(pDate)
	{
	return opl_padl(pDate.getDate(), 2, "0") + "/" + opl_padl(pDate.getMonth()+1, 2, "0") + "/" + pDate.getFullYear();
	}
	
function opl_padl(pChaine, pNombre, pCar)
	{
		pChaine = String(pChaine);
		while (pChaine.length < pNombre)
			pChaine = pCar + pChaine;
		return pChaine;
	}

function cal_fermer()
	{
		oCal	= document.getElementById("calendrier");
		oCal.style.display = 'none';
	}

//
// Callcul de position d'un objet par rapport à la page
//

function cal_OffsetLeft(pObjet)
	{
		return cal_Offset(pObjet, "offsetLeft");
	}

function cal_OffsetTop(pObjet)
	{
		return cal_Offset(pObjet, "offsetTop");
	}

function cal_Offset(pObjet, pOffset)
	{
		 var offset=0;
		 while(pObjet) {
			offset+=pObjet[pOffset];
			pObjet=pObjet.offsetParent;
		}
		return offset;
	}

//
// Fonctions de gestion des tooltip des boutons des barres de commande
//

function opl_over_tooltip(oObjet)
	{
		var oToolTip = document.getElementById("tooltip");
		oToolTip.innerHTML = oObjet.getAttribute("tooltip");	
	}

function opl_out_tooltip(oObjet)
	{
		var oToolTip = document.getElementById("tooltip");
		oToolTip.innerHTML = "";	
	}


//
// Fonctions de contrôle de saisie
//

//
// Fonctions de gestion des formulaires de saisie
//

function opl_touche(oevent)
   {
       var vctouche = window.event ? oevent.keyCode : oevent.which;
       return vctouche;
   }

function opl_toucheval(oevent)
   {
       var vcvaleur = window.event ? oevent.srcElement.value : oevent.target.value;
       return vcvaleur;
   }

   
function opl_cancelevent(oevent)
   {
		if (window.event) {
			oevent.returnValue = false;
		 } else {
			oevent.preventDefault();
		}
   }
   
//
// Saisie en des champs code postal
//

function opl_cp(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8 ) {
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			}
		}
	}

//
// Saisie des champs de type téléphone (téléphone, fax, portable)
//

function opl_tel(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8 ) {
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = " 0123456789()";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			}
		}
	}

//
// Saisie des champs de numérique
//

function opl_num(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8 ) {
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			}
		}
	}
	
//
// Saisie des champs décimaux
//

function opl_dec(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8) {
			var vcvaleur = opl_toucheval(oevent);
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789.";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			 } else {
				if (vctouche=="." && vcvaleur.indexOf(".", 0)>0) {
					opl_cancelevent(oevent);
				}
			}
		}
	}

//
// Saisie des champs décimaux avec le signe négatif
//
function opl_decneg(oevent)
	{
		var vctouche = opl_touche(oevent);
		if (vctouche != 0 && vctouche != 8) {
			var vcvaleur = opl_toucheval(oevent);
			var vctouche = String.fromCharCode(vctouche);
			var vcliste  = "0123456789.-";
			if (vcliste.indexOf(vctouche, 0) < 0) {
				opl_cancelevent(oevent);
			 } else {
				if (vctouche=="." && vcvaleur.indexOf(".", 0)>0) {
					opl_cancelevent(oevent);
				}
				if (vctouche=="-" && vcvaleur.indexOf("-", 0)>0) {
					opl_cancelevent(oevent);
				}				
			}
		}
	}
	
//
// Suppression des blanc avant et après (TRIM)
//

function opl_trim(pcchaine)
	{
		return pcchaine.replace(/(^\s*)|(\s*$)/g,"");
	}

//
// Fonction de mise en forme d'un nombre 
//
function opl_formatnombre(pnNombre,pnDecimales,pcSepDecimales,pcSepMilliers) 
	{
	
	//return pnNombre;
	if (pnNombre==undefined) {return "0";}
	if (pnDecimales==undefined) {pnDecimales=0;}
	if (pcSepDecimales==undefined) {pcSepDecimales=",";}
	if (pcSepMilliers==undefined) {pcSepMilliers="";}
	var vcNombre = pnNombre.toString();
	if (vcNombre.indexOf(".",0)>=0) {
		vcDecimales = vcNombre.substring(vcNombre.indexOf(".",0) +1, vcNombre.length);
	} else {
		vcDecimales = "00";
	}
	
	if (pnDecimales>0) {
		while (vcDecimales.length < 2) {
			vcDecimales = vcDecimales + "0";
		}
	} else {
		vcDecimales = "";
	} 
	
	if (vcNombre.indexOf(".",0)>0) {
		vcNombre = vcNombre.substring(0,vcNombre.indexOf(".",0)); 
	}
	return vcNombre + pcSepDecimales + vcDecimales;
}

function opl_click(pObjet) {
	if (document.all) {
		pObjet.click();
	} else {
		var e = document.createEvent('MouseEvents');
		e.initMouseEvent('click',true,true,document.defaultView,1,0,0,0,0,false,false,false,false,0,null);
		pObjet.dispatchEvent(e);
	}
}