FormCheck = Class.create();
FormCheck.prototype = {
	
	initialize: function () {
		this.inputs = [];
		this.inputsMandatory = [];
		this.inputsMandatoryEmail = [];
		this.inputsNumeric = [];
	},
	
	validEmail: function (email) {
		var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/;
  		return (reg.exec(email)!=null);
	},
	
	registerInputText: function (input) {
		this.inputs[this.inputs.length] = {input:input,startValue:input.value};
		Event.observe(input,"focus",this.inputTextCheck.bindAsEventListener(this,"focus"));
		Event.observe(input,"blur",this.inputTextCheck.bindAsEventListener(this,"blur"));
	},
	
	getInputInfosId: function (input) {
		for (var i=0;i<this.inputs.length;i++) { if (this.inputs[i].input==input) { return i; } }
		for (var i=0;i<this.inputsMandatory.length;i++) { if (this.inputsMandatory[i].input==input) { return i; } }
	},
	
	inputTextCheck: function (e,type) {
		var itemInput = this.inputs[this.getInputInfosId(Event.element(e))];
		if (type=="focus") { if (itemInput.startValue==Event.element(e).value) { itemInput.input.value = ""; } }
		else if (type=="blur") { if (Event.element(e).value=="") { itemInput.input.value = itemInput.startValue; } }
	},
	
	registerMandatoryInputText: function (input) {
		this.inputsMandatory[this.inputsMandatory.length] = {input:input};
	},
	
	registerMandatoryEmailInputText: function (input) {
		this.inputsMandatoryEmail[this.inputsMandatoryEmail.length] = {input:input};
	},
	
	unregisterInputText: function (arr,n) {
		arr.splice(n,1);
	},
	
	unregisterMandatoryInputText: function (input) {
		this.unregisterInputText(this.inputsMandatory,this.getInputInfosId(input));
	},	
		
	registerInputTextSubmitOnKeyEnter: function (form,input,actionUrl) {
		var n = this.getInputInfosId(input);
		this.inputs[n].form = form;
		this.inputs[n].actionUrl = actionUrl;
		this.inputs[n].submitOnEnterEvent = false;
		Event.observe(input, "keyup", this.checkKey.bindAsEventListener(this));
	},
	
	inputTextCheckSubmitOnEnter: function (e,type) {
		var n = this.getInputInfosId(Event.element(e));
		if (type=="focus") { this.inputs[n].submitOnEnterEvent = true; }
		else if (type=="blur") { this.inputs[n].submitOnEnterEvent = false; }
	},
	
	registerInputNumeric: function (input) {
		this.inputsNumeric[this.inputsNumeric.length] = {input:input};
		Event.observe(input,"keyup",this.toNumeric.bindAsEventListener(this));
	},
	
	toNumeric: function (e) {
		var n = Event.element(e).value;
		Event.element(e).value = (isNaN(n)) ? (isNaN(parseInt(n))) ?"" :parseInt(n) :n;
	},
	
	checkKey: function (e) {
		var keyCode = (window.event) ?e.keyCode :e.which;
		if (keyCode==13) {
			var itemInput = this.inputs[this.getInputInfosId(Event.element(e))];
			if (itemInput.input==Event.element(e)) {
				itemInput.form.action = itemInput.actionUrl;
				itemInput.form.submit();
			}
		}
	},
	
	getAllMandatoryItems: function () {
		return this.inputsMandatory.concat(this.inputsMandatoryEmail);
	},
	
	valid: function () {
		var errorItems = [];
		for (var i=0;i<this.inputsMandatory.length;i++) {
			if (this.inputsMandatory[i].input.value=="") { errorItems[errorItems.length] = {input:this.inputsMandatory[i].input,type:"text"}; }
		}
		for (var i=0;i<this.inputsMandatoryEmail.length;i++) {
			if (!this.validEmail(this.inputsMandatoryEmail[i].input.value)) { errorItems[errorItems.length] = {input:this.inputsMandatoryEmail[i].input,type:"text"}; }
		}
		return {submiting:(errorItems.length>0)?false:true,errorItems:errorItems};
	},
	
	checkSearch: function (form) {
		if(form.activite.value=="pere") {
			alert("Veuillez saisir un secteur d'activité.");
			return false;
		}
		if(form.nom_marque.value=="" && form.activite.value=="none" &&form.service.value=="none") {
			alert("Veuillez précisez votre recherche");
			return false;
		}
		form.action = "resultat-recherche.asp";
		form.submit();
		return false;
	},
	
	selectProduct: function (form) {
		if(form.activite.value=="pere") {
			alert("Veuillez saisir un secteur d'activité.");
			return false;
		}
		document.location="recherche-exposant.asp?nom_marque="+form.nom_marque.value+"&activite="+form.activite.value;	
		return false;
	},
	
	
	checkSearchEN: function (form) {
		if(form.activite.value=="pere") {
			alert("Select an activity please.");
			return false;
		}
		if(form.nom_marque.value=="" && form.activite.value=="none" &&form.service.value=="none") {
			alert("Precize your search please.");
			return false;
		}
		form.action = "resultat-recherche.asp";
		form.submit();
		return false;
	},
	
	selectProductEN: function (form) {
		if(form.activite.value=="pere") {
			alert("Select an activity please.");
			return false;
		}
		document.location="recherche-exposant.asp?nom_marque="+form.nom_marque.value+"&activite="+form.activite.value;	
		return false;
	},
	
	listeSelection: function (type,rub,lg) {
	
		message = 'Veuillez choisir un exposant au moins';
		if (lg=='en') message = 'Please choose at least one exhibitor';
		
		if (rub == 'A') url = "../../salon/exposer/liste_selection.asp";
		if (rub == 'B') url = "../salon/exposer/liste_selection.asp";
		
		
		if (type == 0)
		{
			if ((document.getElementById('add0') && document.getElementById('add0').checked) || (document.getElementById('add1') && document.getElementById('add1').checked) || (document.getElementById('add2') && document.getElementById('add2').checked) || (document.getElementById('add3') && document.getElementById('add3').checked) || (document.getElementById('add4') && document.getElementById('add4').checked))
			{
				var vars = "";
				if (document.getElementById('add0') && document.getElementById('add0').checked) vars += document.getElementById('add0').value;
				if (document.getElementById('add1') && document.getElementById('add1').checked)
				{
					if (vars != "") vars += ",";
					vars += document.getElementById('add1').value;
				}
				if (document.getElementById('add2') && document.getElementById('add2').checked)
				{
					if (vars != "") vars += ",";
					vars += document.getElementById('add2').value;
				}
				if (document.getElementById('add3') && document.getElementById('add3').checked)
				{
					if (vars != "") vars += ",";
					vars += document.getElementById('add3').value;
				}
				if (document.getElementById('add4') && document.getElementById('add4').checked)
				{
					if (vars != "") vars += ",";
					vars += document.getElementById('add4').value;
				}
				
				popup = popWin(url+"?add="+vars,'selection',680,600,'yes');
			}
			else
			{
				alert(message);
			}
		}
		else
		{
			popup = popWin(url,'selection',680,600,'yes');
			document.globalForm.action = url;
			document.globalForm.target = "selection";
			document.globalForm.submit();
			document.globalForm.action = ""; 
			document.globalForm.target = "";
		}
		
	}
	
}