/**
 * @author Mery
 */
function arraySum(myArray){
	var i;
	var mySum=0;
	for(i=0; i < myArray.length; i++ ){
		mySum= mySum + Number(myArray[i]);
	}

	return mySum; 
}
var errorMessages = {
	'required':{
		'it': '<span class=\"error\">Campo Obbligatorio</span>',
		'en': '<span class=\"error\">Required.</span>',
		'fr': '<span class=\"error\">Required.</span>',
		'de': '<span class=\"error\">Required.</span>',
		'es': '<span class=\"error\">Required.</span>'
	},
	'email':{
		'it': '<span class=\"error\">Inserisci un indirizzo email corretto.</span>',
		'en': '<span class=\"error\">Set a correct email address.</span>',
		'fr': '<span class=\"error\">Set a correct email address.</span>',
		'de': '<span class=\"error\">Set a correct email address.</span>',
		'es': '<span class=\"error\">Set a correct email address.</span>'
	},
	'tel':{
		'it': '<span class=\"error\">Inserisci un numero corretto: <em>solo numeri</em> senza lettere, spazi, caratteri speciali.</span>',
		'en': '<span class=\"error\">Only numbers.</span>',
		'fr': '<span class=\"error\">Only numbers.</span>',
		'de': '<span class=\"error\">Only numbers.</span>',
		'es': '<span class=\"error\">Only numbers.</span>'
	},
	'vat':{
		'it': '<span class=\"error\">Inserisci una Partita Iva corretta: <em>solo 11 numeri</em> senza lettere, spazi, caratteri speciali.</span>',
		'en': '<span class=\"error\">Only 11 numbers.</span>',
		'fr': '<span class=\"error\">Only 11 numbers.</span>',
		'de': '<span class=\"error\">Only 11 numbers.</span>',
		'es': '<span class=\"error\">Only 11 numbers.</span>'
	},
	'cf':{
		'it': '<span class=\"error\">Codice fiscale corretto.</span>',
		'en': '<span class=\"error\">Insert an Italian Personal Code.</span>',
		'fr': '<span class=\"error\">Insert an Italian Personal Code.</span>',
		'de': '<span class=\"error\">Insert an Italian Personal Code.</span>',
		'es': '<span class=\"error\">Insert an Italian Personal Code.</span>'
	},
	'zip':{
		'it': '<span class=\"error\">Inserisci un codice fiscale corretto</span>',
		'en': '<span class=\"error\">Only 5 numbers</span>',
		'fr': '<span class=\"error\">Only 5 numbers</span>',
		'de': '<span class=\"error\">Only 5 numbers</span>',
		'es': '<span class=\"error\">Only 5 numbers</span>'
	}, 
	'set':{
		'it': '<span class=\"error\">Accetta i termini e le condizioni.</span>',
		'en': '<span class=\"error\">Accept Terms and Conditions.</span>',
		'fr': '<span class=\"error\">Accept Terms and Conditions.</span>',
		'de': '<span class=\"error\">Accept Terms and Conditions.</span>',
		'es': '<span class=\"error\">Accept Terms and Conditions.</span>'
		
	}
	
}
function clearForm(){
	$$('input.text').each(function(element){
			element.value = "";
		});
			$$('div.error').each(function(element){
			element.innerHTML = "";
		});
}

function initControll(){
		if ($$('.required')) {
		$$('input.required').each(function(element){
			element.addEvent('blur', checkRequired)
		});
	}
	if($$('.email')){
		$$('input.email').each(function(element){
			element.addEvent('blur', checkEmail)
		});
	}
	if($$('.tel')){
		$$('input.tel').each(function(element){
			element.addEvent('blur', checkTel)
		});
	}
	if($$('.vat')){
		$$('input.vat').each(function(element){
			element.addEvent('blur', checkVat)
		});
	}
	if($$('.cf')){
		$$('input.cf').each(function(element){
			element.addEvent('blur', checkCf)
		});
	}
	if($$('.set')){
		$$('input.set').each(function(element){
			element.addEvent('blur', checkSet)
		});
		var myVerticalSlide = new Fx.Slide('tecText');

	}
	if($$('.zip')){
		$$('input.zip').each(function(element){
			element.addEvent('blur', checkZip)
		});
	}
	if($('tecText')){
		var myVerticalSlide = new Fx.Slide('tecText');
		myVerticalSlide.hide();
		$('toggleButton').addEvent('click', function(e){
			e.stop();
			myVerticalSlide.toggle();
		});
	}

}
function sendForm(){
	$('feedback').innerHTML = "";
	var errorList = new Array();
	
	if ($$('.required')) {
		$$('input.required').each(function(element){
			errorList.push( requiredControll(element.get("id")));
		});
	}
	if($$('.email')){
		$$('input.email').each(function(element){
			errorList.push(emailControll(element.get("id")));
		});
	}
	if($$('.tel')){
		$$('input.tel').each(function(element){
			errorList.push(telControll(element.get("id")));
		});
	}
	if($$('.vat')){
		$$('input.vat').each(function(element){
			errorList.push(vatControll(element.get("id")));
		});
	}
	if($$('.cf')){
		$$('input.cf').each(function(element){
			errorList.push(cfControll(element.get("id")));
		});
	}
	if($$('.set')){
		$$('input.set').each(function(element){
			errorList.push( setControll(element.get("id")));
		});
		var myVerticalSlide = new Fx.Slide('tecText');

	}
	if($$('.zip')){
		$$('input.zip').each(function(element){
			errorList.push( zipControll(element.get("id")));
		});
	}


	if (arraySum(errorList) == 0) {
		$('loader').removeClass('unvisible');
		$('loader').addClass('visible');
		$('sendButton').removeClass('visible');
		$('sendButton').addClass('unvisible');
		//non ci sono errori, quindi proseguo
		url = '../sql/sendForm.sql.php';
		target = 'feedbackMail';
		
		var request_R = new Request.HTML({	
						url: url, 
						update: target, 
						onComplete: function(tree, elements, html, js){
							$('loader').removeClass('visible');
							$('loader').addClass('unvisible');				
							$('sendButton').removeClass('unvisible');
							$('sendButton').addClass('visible');
							clearForm();
						}
					});
		request_R.post($('contactInfo'));
	}
	
}
function findIdFormEvent(event){
	return (event.target.get("id"));
}
//check for Blur event
function checkRequired(event){	requiredControll(findIdFormEvent(event));	}
function checkEmail(event){		emailControll(findIdFormEvent(event));		}
function checkTel(event){		telControll(findIdFormEvent(event));		}
function checkVat(event){		vatControll(findIdFormEvent(event));		}
function checkCf(event){		cfControll(findIdFormEvent(event));			}
function checkSet(event){		setControll(findIdFormEvent(event));		}
function checkZip(event){		zipControll(findIdFormEvent(event));		}

function requiredControll(id){
	$('error_'+id).innerHTML ="";
	if($(id).value.length <1){
		$('error_'+id).innerHTML+=errorMessages['required'][$('pref').value];
		return(1);
	}else{
		//$('error_'+id).innerHTML+="<span class=\"correct\">Ok</span>";
		return(0);
	}
}
function emailControll(id){
	if ($(id).value.length > 0) {
		$('error_' + id).innerHTML = "";
		var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		if (!email_reg_exp.test($(id).value)) {
			$('error_' + id).innerHTML += errorMessages['email'][$('pref').value];
			return (1);
		}
		else {
			$('error_' + id).innerHTML += "<span class=\"correct\">Ok</span>";
			return (0);
		}
	}
	else {
		$('error_' + id).innerHTML = "";
		if ($(id).hasClass('required')) {
			requiredControll(id);
		}
		return (0);
	}
}
function telControll(id){
	if ($(id).value.length > 0) {
		$('error_' + id).innerHTML = "";
		var tel_reg_exp = /^([0-9])+$/;
		//if (!tel_reg_exp.test(number) || (number == "") || (number == "undefined")) {
		if (!tel_reg_exp.test($(id).value)) {
			$('error_' + id).innerHTML = errorMessages['tel'][$('pref').value];
			return (1);
		}
		else {
			$('error_' + id).innerHTML = "<span class=\"correct\">Ok</span>";
			return (0);
		}
	}
	else {
		$('error_' + id).innerHTML = "";
		if ($(id).hasClass('required')) {
			requiredControll(id);
		}
		return (0);
	}
}
function vatControll(id){
	if ($(id).value.length > 0) {
		$('error_' + id).innerHTML = "";
		var piva_reg_exp = /^[0-9]{11}$/;
		if (!piva_reg_exp.test($(id).value) || ($(id).value == "") || ($(id).value == "undefined")) {
			$('error_' + id).innerHTML = errorMessages['vat'][$('pref').value];
			return (1);
		}
		else {
			$('error_' + id).innerHTML = "<span class=\"correct\">Ok</span>";
			return (0);
		}
	}	else {
		$('error_' + id).innerHTML = "";
		if ($(id).hasClass('required')) {
			requiredControll(id);
		}
		return (0);
	}
}
function cfControll(id){
	if ($(id).value.length > 0) {
		$('error_' + id).innerHTML = "";
		var cf_reg_exp = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
		if (!cf_reg_exp.test($(id).value) || ($(id).value == "") || ($(id).value == "undefined")) {
			$('error_' + id).innerHTML = errorMessages['cf'][$('pref').value];
			return (1);
		}
		else {
			$('error_' + id).innerHTML = "<span class=\"correct\">Ok</span>";
			return (0);
		}
	}else{$('error_' + id).innerHTML = "";return (0);}
}
function zipControll(id){
	if ($(id).value.length > 0) {
		$('error_' + id).innerHTML = "";
		var tel_reg_exp = /^([0-9_\.\-])+$/;
		if (!tel_reg_exp.test($(id).value) || $(id).value.length < 5 || $(id).value.length > 5) {
			$('error_' + id).innerHTML = errorMessages['zip'][$('pref').value];
			return (1);
		}
		else {
			$('error_' + id).innerHTML = "<span class=\"correct\">Ok</span>";
			return (0);
		}
	}	else {
		$('error_' + id).innerHTML = "";
		if ($(id).hasClass('required')) {
			requiredControll(id);
		}
		return (0);
	}
}
function setControll(id){
	if ($(id).checked) {
		$('error_' + id).innerHTML = "<span class=\"correct\">Ok</span>";
		return (0);
	}
	else {
		$('error_' + id).innerHTML = errorMessages['set'][$('pref').value];
		return (1);
	}
}
