// JavaScript Document
var elmtDevis = function(chp,i,t,err){
	this.field = document.getElementById(chp); // champ testé
	this.affMessage = document.getElementById(i); // div affichant les messages
	this.texte = t; // texte d'instruction
	this.erreurs = err; // tableau des erreurs
	this.defineEvents();
}

elmtDevis.prototype.defineEvents = function(){
	var self = this;
	if(this.field.addEventListener){
		this.field.addEventListener("focus",function(){self.showMessage()},false);
	}else{
		this.field.attachEvent("onfocus",function(){self.showMessage()});
	}
	if(this.field.addEventListener){
		this.field.addEventListener("blur",function(){self.showError()},false);
	}else{
		this.field.attachEvent("onblur",function(){self.showError()});
	}

}

elmtDevis.prototype.showMessage = function(){
	if(this.affMessage.style.display != "block"){
		var t = document.createTextNode(this.texte);
		this.affMessage.replaceChild(t,this.affMessage.firstChild);
		this.affMessage.style.display = "block";
		this.affMessage.style.backgroundImage = "url(images/devis/fleche-instructions.jpg)";
		this.affMessage.style.color = "#505d3c";
	}
}

elmtDevis.prototype.showError = function(){
	this.showMessage();
	var errorDetect = false;
	for(i=0; i<this.erreurs.length; i++){
		switch(this.erreurs[i]['test']){
			case "obligatory" :
				if(this.field.value == "") errorDetect = true;
			break;
			case "obligatorySelect" :
				if(this.field.value == 0) errorDetect = true;
			break;
			case "obligatorySoc" :
				if(this.field.value == "" && document.getElementById('id_institution').value != 1 && document.getElementById('id_institution').value != 0) errorDetect = true;
			break;
			case "isEmail" :
				var modele = /^[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z]{1}[0-9a-zA-Z_\.\-]+\.[a-zA-Z]{2,4}$/;
				if(!modele.test(this.field.value)) errorDetect = true;
			break;
		}
		if(errorDetect == true){
			this.affMessage.style.backgroundImage = "url(images/devis/fleche-erreur.jpg)";
			this.affMessage.style.color="#901414";
			var text = document.createTextNode(this.erreurs[i]['message']);
			this.affMessage.replaceChild(text,this.affMessage.firstChild);
			break;
		}
	}
	if(errorDetect == false) this.affMessage.style.display = "none";
}