String.prototype.checkmail = function(){
	email = this;
	if(email.length == 0)
		return false;
	
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(!filter.test(email)){
		return false;
	}else
		return true;
}


function checkFCode(fCode){
	fCode = fCode.toUpperCase();
	fCode = fCode.replace(/^\s+|\s+$/g,"");
	
	if(fCode.length != 16)
		return false;	

	var valid = fCode.match(/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/);

	if(valid != null)
		return true;	
	return false;
}


function checkForm(form){
	var sFiscalCondition = document.getElementById("sFiscalCondition");
	var imp_mensaje = false;
	var strErrMsg = " (" + document.getElementById("ErrMsg").value + ")";
	var strWrong = " (" + document.getElementById("Wrong").value + ")";
	
	var mensaje = "";

	with (form) {
		for (i=0; i<length; i++) {
			with (elements.item(i)) {
				// if is mandatory or is from the same fiscal condition 
				if ((id.indexOf('req') != -1) || (name.indexOf(sFiscalCondition.value.substr(0, 4)) != -1)){ 
					if ((tagName == 'INPUT') && ((type == 'text') || (type == 'password')))
					{
						a = Number(style.zIndex);
						if (a >= 10) {			// is required?
							a = a - 10;
							if (value.length == 0) {		// is empty?
								mensaje += title;
								for(j=0;j<(10-title.length);j++)  
									mensaje += ".";
	
								mensaje += strErrMsg + "<br>";
								imp_mensaje = true;
								form.elements[i].style.backgroundColor = "#F8F1F6";
							}
							
							if (a>0){
								if (!CheckData(value, a)) {
									mensaje = mensaje+title;
									for(j=0;j<(10-title.length);j++)  
										mensaje += ".";
									mensaje += strWrong + "<br>";
									imp_mensaje = true;
									form.elements[i].style.backgroundColor = "#F8F1F6";
								}
							}
						}else{
							if ( (a.length>0) && (!CheckData(value, a))){
								mensaje = mensaje+title;
								for(j=0;j<(10-title.length);j++)  
									mensaje += ".";
								mensaje += strErrMsg + "<br>";
								imp_mensaje = true;
								form.elements[i].style.backgroundColor = "#F8F1F6";
							}
						}
						
					
					}else if ((tagName == 'SELECT') || (tagName == 'TEXTAREA'))  { //if  
						a = Number(style.zIndex);
						if (a >= 10) {	// is required?
							a = a - 10;
							if (value.length == 0) {		// is empty?
								mensaje +=title;
								for(j=0;j<(10-title.length);j++)  
									mensaje +=".";
	
								mensaje += strErrMsg+" <br>";
								imp_mensaje = true;
								
								form.elements[i].style.backgroundColor = "#F8F1F6";
							}
						} // if
					} // else if
				}
			}
		}
	}
	// Controlo que los passwords sean iguales
	var Pass1 = document.getElementById("reqsPasswordID");
	var Pass2 = document.getElementById("reqsRePasswordID");
	
	
	if (Pass1.value != Pass2.value) {
		
		mensaje += Pass1.title + "&nbsp;(" + Pass2.title + ")" + strWrong + "<br>";
		imp_mensaje = true;
		Pass1.value = "";
		Pass2.value = "";
		Pass1.style.backgroundColor = "#F8F1F6";
	}
	
	
	
	// Controlo que los emails sean iguales
	var Email1 = document.getElementById("reqsEmailID");
	var Email2 = document.getElementById("reqsReEmailID");

	if (Email1.value != Email2.value) {
		mensaje += Email1.title + " (" + Email2.title +")" + strWrong + "<br>";
		imp_mensaje = true;
	
		Email1.style.backgroundColor = "#F8F1F6";
	
	}
	

	var iCountry = document.getElementById("iRegisterCountry");
	var sState 	= document.getElementById("sRegisterState");

	if (iCountry.options[iCountry.selectedIndex].text=='Italy') { // is Italy

		var cboState = document.getElementById("comboStates");
		if (cboState.value == "") {
			
			mensaje = mensaje+cboState.title;
			for(j=0;j<(10-cboState.title.length);j++)  
				mensaje = mensaje+".";

			mensaje += strErrMsg + "<br>";
			imp_mensaje = true;
			
			cboState.style.backgroundColor = "#F8F1F6";
							
		} else 
			sState.value = cboState.value;
	
	} else {

		var txtState = document.getElementById("textState");
		if (txtState.value.length == 0) {
			mensaje += txtState.title;
			
			for(j=0;j<(10-txtState.title.length);j++)  
				mensaje += ".";

			mensaje += strErrMsg + "<br>";
			imp_mensaje = true;
			txtState.style.backgroundColor = "#F8F1F6";
		} else
			sState.value = txtState.value;
	
	}

	if (imp_mensaje) {
		var error = document.getElementById("ShowErrors");
		error.style.height = "auto";
		error.style.height = "1%";
		error.style.display = "block";
		document.getElementById("sErrorMessage").innerHTML = mensaje;
		
		//repeat the message error in the footer
		var error1 = document.getElementById("ShowErrors1");
		error1.style.height = "auto";
		error1.style.height = "1%";
		error1.style.display = "block";
		document.getElementById("sErrorMessage1").innerHTML = mensaje;
		return false;
	} else {
		form.submit();
		return true;
	}
}


function CheckData(data, type) {
	var checkOK = "";
	switch (type) {
		case 0:					// numerico
		var checkOK = "0123456789";
		break;
		case 1:					// numerico with decimals
		var checkOK = "0123456789.,";
		break;
		case 2:					// alfa
		var checkOK = "0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz%.,$£/:@#*_-+ ()'";
		break;
		case 3:					// data
		var checkOK = "0123456789-/";
		break;
		case 4:					// time
		var checkOK = "0123456789:";
		break;
		case 5:					// Format
		var checkOK = "0.,#";
		break;
		case 6:					// UserID o Password
		var checkOK = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz%$._-+()";
		break;
		case 8:					// solo letrass
		var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
		break;
		case 9:
			return data.checkmail();
		break;
		case 10:
			var combo = document.getElementById("iRegisterCountry");
			if (combo.options[combo.selectedIndex].text=='Italy') // is Italy
				return checkFCode(data);
			else
				return true;
		break;
		case 11:
			var combo = document.getElementById("iRegisterCountry");
			if (combo.options[combo.selectedIndex].text=='Italy') { // is Italy
				if (data.length == 12)
					var checkOK = "0123456789";
				else
					return false;
			}
			else
				return true;
		break;

	}

	for (var i=0; i<data.length; i++)
	{
		ch = data.charAt(i);
		for (j=0; j<checkOK.length; j++)
		if (ch == checkOK.charAt(j))
		break;
		if (j == checkOK.length)
		return (false);
	}
	return (true);
}


function ShowComboStates() {
	var combo = document.getElementById("iRegisterCountry");
	
	var nSelected = combo.selectedIndex;
	
	if (combo.options[combo.selectedIndex].text=='Italy') { // is Italy
	
		var cbo = document.getElementById("comboStates");
			cbo.style.display = "block";
		var edit = document.getElementById("inputState");	
			edit.style.display = "none";
	
	} else {

		var cbo = document.getElementById("comboStates");
			cbo.style.display = "none";  
	var edit = document.getElementById("inputState");	
			edit.style.display = "block";

	}
	
}


function ShowMessage() {
	var mensaje = document.getElementById("sMessage");
	var error = document.getElementById("ShowErrors");
	error.style.display = "block";
	error.style.height = "auto";
	error.style.height = "1%";	
	
	var error1 = document.getElementById("ShowErrors1");
	error1.style.display = "block";
	error1.style.height = "auto";
	error1.style.height = "1%";
	/*
	var error = document.getElementById("formhidden");
	error.style.margin = " 10px 0";
	error.style.textAlign = "center";
	error.style.padding = " 10px 0";
	*/
	document.getElementById("sErrorMessage").innerHTML  = mensaje.value;
	document.getElementById("sErrorMessage1").innerHTML = mensaje.value;
	document.getElementById("reqUser").focus();
}


function clean() {
	var form = document.getElementById("form_register");
	with (form) {
		for (i=0; i<length; i++) {
			with (elements.item(i)) {
				if ((tagName == 'INPUT') && ((type == 'text') || (type == 'password')))
				{
					value = "";
				}
			}
		}
	}
}
