/**
* Affiche ou cache un calque selon son état.
*
* @param String layerID Identitifant du calque à modifier
* @return String Etat du calque
* @access public
* @since 1.0
*/
function displayHide(layerID) {
	var el = document.getElementById(layerID);
	
	if(el == undefined) {
		return 'none';
	}
	
	if (el.style.display == 'block')  {
		return el.style.display = 'none';
	}
	
	return el.style.display = 'block';
}

/**
* Met le 1er caractère d'une chaîne en lettres capitales et supprime les espaces autour.
*
* @param String data Chaîne de caractères à modifier
* @return String  Chaîne de caractères modifiée
* @access public
* @since 1.0
*/
function strToUpper(data) {
	var retour = data;
	var regExpBeginning = /^\s+/;
	var regExpEnd       = /\s+$/;
	retour = retour.replace(regExpBeginning, '') . replace(regExpEnd, '');
	return retour.toUpperCase();
}

/**
* Convertit un valeur quelconque en entier.
*
* @param Mixed val Valeur à convertir en entier
* @param Intger Réussite (1) ou échec (0) de l'opération
* @access public
* @since 1.0
*/
function convertInt(val) {
	var convert = val;
	var retour = val;
	
	if(!isNaN(parseInt(convert))) {
		retour = parseInt(convert);
	}
	if(typeof(val) == "boolean") {
		retour = val ? 1 : 0;
	}
	
	return retour;
}

/**
* Initialise une entrée de formulaire.
*
* @param HTMLElement formEntry Entrée de formulaire à initaliser
* @param String value Valeur d'initialisation
* @access public
* @since 1.0
*/
function initFormEntry(formEntry, value) {
	var indice;
	
	if(formEntry) {
		switch(formEntry) {
			case 'HTMLSelectElement' :
				for(var i = 0; i < formEntry.length; i++) {
					if(formEntry.options[i].value == value) {
						indice = i;
					}
				}
				
				formEntry.selectedIndex = indice;
				break;
			case 'HTMLTextAreaElement' :
				formEntry.innerHTML = value;
				break;
			case 'HTMLInputElement' :
			default :
				formEntry.value = value;
				break;
		}
	}
}

/**
* Vérifie l'existence d'une donnée.
*
* @param String data Donnée à vérifier
* @return Boolean La donnée existe (true) ou pas (false)
* @access public
* @since 1.0
*/
function isDefined(data) {
	if(!data) {
		return false;
	}
	
	return true;
}

/**
* Vérifie la validité d'une adresse e-mail.
*
* @param String data Adresse e-mail à vérifier
* @return Boolean L'adresse e-mail est valide (true) ou invalide (false)
* @access public
* @since 1.0
*/
function isEmail (data)  {
	var expr = new RegExp('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$',"i");
	return expr.test(data);
}

/**
* Vérifie la validité d'un entier.
*
* @param String data Donnée à vérifier
* @return Boolean La donnée est un entier (true) ou pas (false)
* @access public
* @since 1.0
*/
function isInteger (data)  {
	var expr = new RegExp("^[0-9]*$", "gi"); // chiffres sans espaces
	
	results = data.match(expr);
	return (results == null);
}

/**
* Complète une URL avec un nouveal argument.
*
* @param String argumentName Nom de l'argument à ajouter
* @param String argumentValue Valeur de l'argument à ajouter
* @access public
* @since 1.0
*/
function urlComplete(url, argumentName, argumentValue) {
	urlCompleted = '';
	
	if(url != undefined) {
		eval('urlCompleted = url.replace(/='  +  argumentName + '/, \'=\' + argumentValue);');
		urlCompleted = urlCompleted.replace(/&amp;/, '&');
	}
	
//alert('urlComplete(' + url + ', ' + argumentName + ', ' + argumentValue + ', ) = \n\nurlCompleted = url.replace(/='  +  argumentName + '/, \'=' + argumentValue + '\');\n\n' + urlCompleted);
	return urlCompleted;
}

/**
* Arrondit un nombre à la virgule près.
*
* @param Float number Nombre à arrondif
* @param Integer point Nombre de chiffres après la virgule
* @return Nombre arrondi
* @access public
* @since 1.0
*/
function formatNumber(number, point) {
	if(point == undefined) {
		point = 2;
	}
	
	exp = 10.00;
	exp = Math.pow(exp, point);
	
	return Math.round(number * exp) / exp;
}

/**
* Formate l'affichage d'un prix.
*
* @param String valeur Prix à formater
* @access public
* @since 1.0
*/
function formatPrice(valeur) {
	var valeur_chaine = /*arrondir(valeur).*/valeur.toString();
	if(valeur_chaine.match(/(\.[0-9]{2})$/i)) {
		return valeur_chaine;
	}
	if(valeur_chaine.match(/(\.[0-9])$/i)) {
		return valeur_chaine + '0';
	}
	
	return valeur_chaine + '.00';
}

/**
* Supprime l'action de la pression sur la touche " Enter ".
*
* @access public
* @since 1.0
*/
function kH(e) {
	var pK = e ? e.which : window.event.keyCode;
	return pK != 13;
}
document.onkeypress = kH;
if (document.layers) {
	document.captureEvents(Event.KEYPRESS);
}
