/* --------------------------------------------------------------
@application: ASCOM
@titre      : fonctionUtiles.js
@auteur     : Eric FERREIRA
@(#)@date   : 06/2009
@(#)@version: 1.0
@(#) :
-----------------------------------------------------------------*/

//Désigne le nombre de chiffre a afficher apres la virgule
function truncateDecimal(decimal,lenTrunc ){
	
		decimal=decimal.toString();
		if(decimal.indexOf(".")>0){
			var posPt = (decimal.indexOf(".")+1+lenTrunc);
			decimal = decimal.substring(0,posPt);
		}
		return decimal;
}


// enléve les espaces en début et fin de chaine //////////////////
function trim(chaine) {
	return chaine.replace(/^\s+/, "").replace(/\s+$/, "");
}
//////////////////////////////////////////////////////////////////


// bloque la saisie autre que les chiffres ///////////////////////
function chiffres(evenement) {

	var reCarSpeciaux = /[\x00\x08\x0D]/;
	var reCarValides = /\d/;

	var codeDecimal  = codeTouche(evenement);
	var car = String.fromCharCode(codeDecimal);
	var autorisation = reCarValides.test(car) || reCarSpeciaux.test(car);

	return autorisation;

}

// bloque la saisie autre que les chiffres et . ///////////////////////
function decimal(evenement) {

	var reCarSpeciaux = /[\x00\x08\x0D]/;
	var reCarValides = /\d/;
	var expChiffre = /^[-]?\d*\.?\d*$/;    /*expr regul pour les chiffres*/
	
	var codeDecimal  = codeTouche(evenement);
	var car = String.fromCharCode(codeDecimal);
	var autorisation = expChiffre.test(car) || reCarSpeciaux.test(car);

	return autorisation;

}

// retourne le code touche
function codeTouche(evenement) {
	for (propriete in evenement) {
		if(propriete == 'which') return(evenement.which);
	}
	return(evenement.keyCode);
}

// lance la recherche si on presse "ENTREE"
function rechercheEntrer(evenement,div){
	if(codeTouche(evenement)==13){
		$('#sButton',div).click();
	}
}
////////////////////////////////////////////////////////////////////

// cache div
function activDiv(activ,desactiv){
	document.getElementById(activ).style.visibility='visible';
	document.getElementById(desactiv).style.visibility='hidden';
}



// Affiche un popup au centre de l'écran  //////////////////////////
function popupCentrer(page,nom,largeur,hauteur,options)
{
	var top = ((screen.height-hauteur)/2)-18;
	var left = (screen.width-largeur)/2;
	fenetre = window.open(page,nom,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	fenetre.focus();
}
////////////////////////////////////////////////////////////////////


/**
* Fonction de construction d'un message d'alerte à partir d'une liste de nom de champs.
* @param Array champs La liste des champs qui sont non valides
* @param Int nbChamps Le nombre de champs
*/
function displayError(champs, nbChamps){
	var chaine = "";

	if(nbChamps == 1){
		chaine = "Le champ " + champs[0] + " est obligatoire.";
	} else {
		chaine = "Les champs suivants sont obligatoires :\n";
		for(champ in champs){
			chaine = chaine + "   - " + champs[champ] + "\n";
		}
	}
	//	$(".alerte.ligne").html(chaine);
	alert(chaine);
}

function verifObligatoire(obj)
{
	var champs = new Array;
	var nbChamps = 0;
	var champfocus="";

	var expMail=    /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/; /*expr regul pour l'email */
	var expChiffre = /^[-]?\d*\.?\d*$/;    /*expr regul pour les chiffres*/
	var re3 = /\b.{5}\b/; /*expr    regul 5 caractères*/

	for (i=0;i<obj.elements.length;i++)
	{
		var objet=obj.elements[i];
		switch(objet.type)
		{
			case 'text':
			case 'textarea':
			//				if (objet.getAttribute('obligatoire').toUpperCase()=='OUI' && objet.value=="" )
			//					{
			//						champs[nbChamps] = objet.getAttribute('texteObligatoire');
			//						nbChamps++;
			//						if(champfocus==""){
			//							champfocus = objet;
			//						}
			//					}
			//			break;
			case 'select-one':
			case 'select-multiple':
			var estObligatoire = objet.getAttribute('obligatoire');
			var laValeur = objet.value;
			if (estObligatoire=='oui' && (laValeur=="NULL" || laValeur=="") ){
				champs[nbChamps] = objet.getAttribute('texteObligatoire');
				nbChamps++;
				if(champfocus==""){
					champfocus = objet;
				}
			}

			var format=objet.getAttribute('format')
			switch(format)
			{
				case 'mail':
				if(!laValeur.match(expMail)) {
					champs[nbChamps] = "Le champ mail n'a pas le bon format";
					nbChamps++;
					if(champfocus==""){
						champfocus = objet;
					}
				}
				case 'chiffre':
				if(!laValeur.match(expChiffre)) {
					champs[nbChamps] = objet.getAttribute('texteObligatoire');
					nbChamps++;
					if(champfocus==""){
						champfocus = objet;
					}
				}
				break;
			}

			break;
		}

	}

	if(nbChamps == 0){
		return true;
	} else {
		displayError(champs,nbChamps);
		champfocus.focus();
		return false;
	}
}




/* Ouvre une popup permettant la création d'un reglement sur une facture */
function creerReglement(){
	var hauteur = 470;
	var largeur = 950;
	var page = "popupCreerReglement.php?idFacture="+$('#ID_FACTURE').val()+"&idSalarie="+$('#ID_SALARIE').val();
	var options = "menubar=no,scrollbars=no,statusbar=no";
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
}

/* Permet de centrer une modale */
function centerModalList(ids) { 
	
	// Longueur et hauteur de la modale

	hauteur = $("#" + ids[0].parentNode.parentNode.id).height();
	largeur = $("#" + ids[0].parentNode.parentNode.id).width();
	var posTop=(screen.height-hauteur)/2-70; 
	var posLeft=(screen.width-largeur)/2;
	 
	$("#" + ids[0].parentNode.parentNode.id).css({top: posTop+"px",left: posLeft+"px"}); 
}



