// JavaScript Document
<!--
function dwz_Trim(sString){//v1.6
while (sString.substring(0,1) == ' '){sString = sString.substring(1, sString.length);} while (sString.substring(sString.length-1, sString.length) == ' '){sString = sString.substring(0,sString.length-1);}return sString;
}

function dwz_ReplaceFileLengthMsg(msg,length){//v1.6
tmp = length.split(",");if(tmp[0]==""){tmp[0] = "";}if(tmp[1]==""){tmp[1] = "<< no limit >>";}/* #min# and #max# */return msg.replace("#min#",tmp[0]).replace("#max#",tmp[1]);}

function dwz_GruppoChk(objField,dom){//v1.6
var tmp = objField.Validate.split(",");/* One,chk_4,chk_2,chk_3 */if(objField.Validate.substring(0,3)=="One"){var isValid = false;for(i=1;i<tmp.length;i++){var el = dwz_findObj(tmp[i],dom);if(el && el.checked){isValid = true;break;}}return isValid;}else if(objField.Validate.substring(0,9)=="ChkMinMax" && objField.FieldLength!=","){chk = 0;for(i=1;i<tmp.length;i++){var el = dwz_findObj(tmp[i],dom);if(el && el.checked){chk += 1;}}var tmp = objField.FieldLength.split(",");if(tmp[0]!="" && !isNaN(tmp[0])){if(parseInt(chk) < parseInt(tmp[0])){return false;}}if(tmp[1]!="" && !isNaN(tmp[1])){if(parseInt(chk) > parseInt(tmp[1])){return false;}}}return true;}

function dwz_Text(el,objField,dom){//v1.6
if(objField.Required && dwz_Space(el.value).length<1 && objField.Validate.substring(0,11)!="One of them"){objField.ErrorOnRequired = true;return false;}if(objField.FieldLength!=""){var tmp = objField.FieldLength.split(",");if(tmp[0]!="" && !isNaN(tmp[0])){if(dwz_Space(el.value).length<parseInt(tmp[0])){objField.ErrorOnFieldLength = true;return false;}}if(tmp[1]!="" && !isNaN(tmp[1])){if(dwz_Space(el.value).length>parseInt(tmp[1])){objField.ErrorOnFieldLength = true;return false;}}}if(dwz_Space(el.value).length<1 && objField.Validate.substring(0,11)!="One of them"){return true;}if(objField.Validate == "Alphanumeric"){var regExp = new RegExp(/^[A-Za-z0-9]*$/);if(!regExp.test(el.value)){return false;}}else if(objField.Validate == "Alphabetic"){var regExp = new RegExp(/^[A-Za-z]*$/);if(!regExp.test(el.value)){return false;}}else if(objField.Validate.substring(0,7)=="Integer"){var v = objField.Validate.split(",");var regExp = new RegExp(/^-?[0-9]*$/);if(!regExp.test(el.value)){return false;}if(v[1]!="" && !isNaN(v[1])){if(parseInt(v[1]) > parseInt(el.value)){return false;}}if(v[2]!="" && !isNaN(v[2])){if(parseInt(v[2]) < parseInt(el.value)){return false;}}}else if(objField.Validate.substring(0,5)=="Float"){var v = objField.Validate.split(",");var regExp = new RegExp(/^-?[0-9]+[\.]*[0-9]*$/);if(!regExp.test(el.value)){return false;}if(v[1]!="" && !isNaN(v[1])){if(parseFloat(v[1]) > parseFloat(el.value)){return false;}}if(v[2]!="" && !isNaN(v[2])){if(parseFloat(v[2]) < parseFloat(el.value)){return false;}}}else if(objField.Validate.substring(0,10)=="AcceptChar"){var v = objField.Validate.split(",");var pattern = "^[" + v[1] + "]*$";var regExp = new RegExp(pattern);if(!regExp.test(el.value)){return false;}}else if(objField.Validate.substring(0,12)=="unAcceptChar"){var v = objField.Validate.split(",");var pattern = "^[^" + v[1] + "]*$";var regExp = new RegExp(pattern);if(!regExp.test(el.value)){return false;}}else if(objField.Validate.substring(0,6)=="RegExp"){var v = objField.Validate.split(",");var pattern = v[1];var flag = v[2];var regExp;if(flag!="" && flag!="Flag"){regExp = new RegExp(pattern,flag);}else{regExp = new RegExp(pattern);}if(!regExp.test(el.value)){return false;}}else if(objField.Validate=="Mail"){var regExp = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!regExp.test(el.value)){return false;}}else if(objField.Validate.substring(0,4)=="Date"){var v = objField.Validate.split(",");var dateFormat = v[1];var myDate, myDay, myMonth, myYear;switch(dateFormat){case "DD.MM.YYYY": case "DD/MM/YYYY": case "DD-MM-YYYY":var date = el.value.split(dateFormat.charAt(2));if(date.length!=3){return false;}if( isNaN(date[0]) || isNaN(date[1]) || isNaN(date[2]) ){return false;}if(date[0]=="8" || date[0]=="08"){myDay = 7;}else if(date[0]=="9" || date[0]=="09"){myDay = 8;}else{myDay = parseInt(date[0]);}if(date[1]=="8" || date[1]=="08"){myMonth = 7;}else if(date[1]=="9" || date[1]=="09"){myMonth = 8;}else{myMonth = parseInt(date[1])-1;}myYear = parseInt(date[2]);break;case "MM.DD.YYYY": case "MM/DD/YYYY": case "MM-DD-YYYY":var date = el.value.split(dateFormat.charAt(2));if(date.length!=3){return false;}if( isNaN(date[0]) || isNaN(date[1]) || isNaN(date[2]) ){return false;}if(date[1]=="8" || date[1]=="08"){myDay = 7;}else if(date[1]=="9" || date[1]=="09"){myDay = 8;}else{myDay = parseInt(date[1]);}if(date[0]=="8" || date[0]=="08"){myMonth = 7;}else if(date[0]=="9" || date[0]=="09"){myMonth = 8;}else{myMonth = parseInt(date[0])-1;}			myYear = parseInt(date[2]);break;case "YYYY-MM-DD": case "YYYY/MM/DD": case "YYYY.MM.DD":var date = el.value.split(dateFormat.charAt(5));if(date.length!=3){return false;}if( isNaN(date[0]) || isNaN(date[1]) || isNaN(date[2]) ){return false;}if(date[2]=="8" || date[2]=="08"){myDay = 7;}else if(date[2]=="9" || date[2]=="09"){myDay = 8;}else{myDay = parseInt(date[2]);}if(date[1]=="8" || date[1]=="08"){myMonth = 7;}else if(date[1]=="9" || date[1]=="09"){myMonth = 8;}else{myMonth = parseInt(date[1])-1;}myYear = parseInt(date[0]);break;}myDate = new Date(myYear,myMonth,myDay);if(myDate.getFullYear()!=myYear||myDate.getDate()!=myDay||myDate.getMonth()!=myMonth){return false;}}else if(objField.Validate.substring(0,4)=="Time"){var v = objField.Validate.split(",");var timeFormat = v[1];var timePattern = new Array();timePattern["12:00"] = "^\(0[0-2]|1[0-2]|0?[0-9]\)\:\([0-5][0-9]\)$";timePattern["12:00pm"] = "^\(0[0-2]|1[0-2]|0?[0-9]\)\:\([0-5][0-9]\)\(p|a\)m$";timePattern["24:00"] = "^\(0[0-9]|1[0-9]|2[0-3]\)\:\([0-5][0-9]\)$";var regExp = new RegExp(timePattern[timeFormat]);if(!regExp.test(el.value)){return false;}}else if(objField.Validate.substring(0,8)=="Equal to"){var v = objField.Validate.split(",");var filled = v[1];if(!dwz_Exist(dwz_findObj(filled,dom),filled)){return false}if(el.value.toLowerCase() != dwz_findObj(filled,dom).value.toLowerCase()){return false;}}else if(objField.Validate.substring(0,11)=="One of them"){var v = objField.Validate.split(",");var isValid = false;for(i=1;i<v.length;i++){if(dwz_findObj(v[i],dom).value!=''){isValid = true;break;}}if(!isValid){return false}}return true;}

function dwz_Select(el,objField,dom){//v1.6
if(objField.Validate=="NotFirst"){if(el.selectedIndex==0){return false;}}else if(objField.Validate=="SelMinMax" && objField.FieldLength!=","){sel = 0;for(i=0;i<el.options.length;i++){if(el.options[i].selected){sel += 1;}}var tmp = objField.FieldLength.split(",");if(tmp[0]!="" && !isNaN(tmp[0])){if(sel < parseInt(tmp[0])){return false;}}if(tmp[1]!="" && !isNaN(tmp[1])){if(sel > parseInt(tmp[1])){return false;}}}return true;}

function dwz_Radio(objField,dom){//v1.6
var el = dwz_findObj(objField.FieldName,dom);if(!dwz_Exist(el,objField.FieldName)){return false}var i;if(objField.Validate=="One"){if(el.length){var chk = false;for(i=0;i<el.length;i++){if(el[i].checked){chk = true;break;}}if(!chk){return false;}}else{if(!el.checked){return false;}}}else if(objField.Validate.substring(0,6).toLowerCase()=="filled" && el.checked){var tmp = objField.Validate.split(",");if(dwz_Exist(dwz_findObj(tmp[1]),tmp[1])){switch(dwz_findObj(tmp[1]).type.toLowerCase()){case "text":if(dwz_findObj(tmp[1]).value.length<1){return false;}break;case "checkbox":if(!dwz_findObj(tmp[1]).checked){return false;}break;case "radio":var valid = false;var tmpEL = dwz_findObj(tmp[1]);if(tmpEL.length){for(ii=0;ii<tmpEL.length;ii++){if(tmpEL[ii].checked){valid = true;break;}}}else{if(tmpEL.checked){valid = true;}}if(!valid){return false}break;default:alert(dwz_findObj(tmp[1]).type.toLowerCase());}}}return true;}

function dwz_CheckBox(el,objField,dom){//v1.6
if(objField.Validate=="Must"){if(!el.checked){return false;}}else if(objField.Validate.substring(0,6).toLowerCase()=="filled" && el.checked){var tmp = objField.Validate.split(",");if(dwz_Exist(dwz_findObj(tmp[1]),tmp[1])){switch(dwz_findObj(tmp[1]).type.toLowerCase()){case "text":if(dwz_findObj(tmp[1]).value.length<1){return false;}break;case "checkbox":if(!dwz_findObj(tmp[1]).checked){return false;}break;case "radio":var valid = false;var tmpEL = dwz_findObj(tmp[1]);if(tmpEL.length){for(ii=0;ii<tmpEL.length;ii++){if(tmpEL[ii].checked){valid = true;break;}}}else{if(tmpEL.checked){valid = true;}}if(!valid){return false}break;default:alert(dwz_findObj(tmp[1]).type.toLowerCase());}}}return true;}

function dwz_TextArea(el,objField,dom){//v1.6
if(objField.Required){if(dwz_Space(el.value).length<1){objField.ErrorOnRequired = true;return false;}}if(objField.FieldLength!=""){var tmp = objField.FieldLength.split(",");var fldValue = dwz_Space(el.value);if(tmp[2]=="Y" && fldValue!=""){fldValue = dwz_RemoveHTML(fldValue);}if(tmp[0]!="" && !isNaN(tmp[0])){if(fldValue.length < parseInt(tmp[0])){objField.ErrorOnFieldLength = true;return false;}}if(tmp[1]!="" && !isNaN(tmp[1])){if(fldValue.length > parseInt(tmp[1])){objField.ErrorOnFieldLength = true;return false;}}}return true;}

function dwz_Exist(el,field){//v1.6
if(el){return true;}else{/*alert("The field "+field+" don't exist");*/return false;}}

function dwz_unEscapeString(myString){//v1.6
var retStr = '';var ii;if(myString){for (ii=0;ii<myString.length;ii++){if(myString.charAt(ii)!="\\"){retStr += myString.charAt(ii);}}}return retStr;}

function dwz_findObj(n, d) {//v1.6
	var p,i,x;if(!d) d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){
	d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n];for (i=0;!x&&d.forms&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=dwz_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n);return x;
}

function dwz_RemoveHTML(str){//v1.6
	var regEx = new RegExp(/<[^>]*>/gi)
	strTagLess = str.replace(regEx, "")
	var pattern = "&[\w]{1-6};"
	var regEx = new RegExp(pattern)
	strTagLess = strTagLess.replace(regEx, "_")
	return strTagLess
}

function dwz_Space(str){//v1.6
var onlySpace = new RegExp(/^[\s]*$/);if(onlySpace.test(str)){return "";}else{return dwz_Trim(str);}}

function DWZ_CheckForm(){ //v1.6
	/*  */
	/* Error Message that you can personalize */
	/* */
	var REQUIRED_TEXT = " (the field is required)";
	
	var FIELD_LENGTH = " (the field length must be min #min# and max #max#";
	
	/* The #min# and #max# will be replaced with the value */
	/* you insert into the validation */
	/* */
	/* Error Message that you can personalize */
	/* */
var args = DWZ_CheckForm.arguments;var dom = dwz_findObj(args[0]);var multiple = false;if(!dom){alert("The form: ''" + args[0] + "'' is missing\nVerify the Form Validator setup");document.MM_returnValue = false;return;}var defaultErrMsg = args[1] + "\t\t\t\t\t\n\n";var extraMsg, errors = "", x, v;var field = new Array();for(x=2;x<args.length;x++){v = args[x].split(";");field[x-2] = new Object();field[x-2].FieldName = dwz_unEscapeString(v[0]);field[x-2].FieldType = v[1];field[x-2].Required = (v[2]=="Yes")?true:false;field[x-2].Validate = v[3];field[x-2].FieldLength = v[4];field[x-2].ErrorMessage = dwz_unEscapeString(v[5]);field[x-2].valid = true;field[x-2].ErrorOnRequired = false;field[x-2].ErrorOnFieldLength = false;};for(x=0;x<field.length;x++){switch(field[x].FieldType){case "textarea":if(field[x].Validate.substring(0,6)=="EvalJs"){var v = field[x].Validate.split(",");var fn = v[1] + "('" + field[x].FieldName + "')";if(!eval(fn)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}else{var el = dwz_findObj(field[x].FieldName,dom);if(dwz_Exist(el,field[x].FieldName)){if(el.length){for(y=0;y<el.length;y++){if(!dwz_TextArea(el[y],field[x],dom)){var pos = y + 1;extraMsg = "";if(field[x].ErrorOnRequired){extraMsg = REQUIRED_TEXT;}else if (field[x].ErrorOnFieldLength){extraMsg = dwz_ReplaceFileLengthMsg(FIELD_LENGTH, field[x].FieldLength);}errors += "* " + field[x].ErrorMessage + validateRequired + " - Nr. " + pos + "\n";field[x].valid = false;}}}else{if(!dwz_TextArea(el,field[x],dom)){extraMsg = "";if(field[x].ErrorOnRequired){extraMsg = REQUIRED_TEXT;}else if (field[x].ErrorOnFieldLength){extraMsg = dwz_ReplaceFileLengthMsg(FIELD_LENGTH, field[x].FieldLength);}errors += "* " + field[x].ErrorMessage + extraMsg + "\n";field[x].valid = false;}}}}break;case "checkbox":if(field[x].Validate.substring(0,6)=="EvalJs"){var v = field[x].Validate.split(",");var fn = v[1] + "('" + field[x].FieldName + "')";if(!eval(fn)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}else{var el = dwz_findObj(field[x].FieldName,dom);if(dwz_Exist(el,field[x].FieldName)){if(el.length && multiple){for(y=0;y<el.length;y++){if(!dwz_CheckBox(el[y],field[x],dom)){var pos = y + 1;errors += "* " + field[x].ErrorMessage + " - Nr. " + pos + "\n";field[x].valid = false;}}}else{if(!dwz_CheckBox(el,field[x],dom)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}}}break;case "chk Group":if(!dwz_GruppoChk(field[x],dom)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}break;case "radio":if(field[x].Validate.substring(0,6)=="EvalJs"){var v = field[x].Validate.split(",");var fn = v[1] + "('" + field[x].FieldName + "')";if(!eval(fn)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}else{/* Non possono essere in insert multipli */if(!dwz_Radio(field[x],dom)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}break;case "select":if(field[x].Validate.substring(0,6)=="EvalJs"){var v = field[x].Validate.split(",");var fn = v[1] + "('" + field[x].FieldName + "')";if(!eval(fn)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}else{var el = dwz_findObj(field[x].FieldName,dom);if(dwz_Exist(el,field[x].FieldName)){if(!dwz_Select(el,field[x],dom)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}}break;default:if(field[x].Validate.substring(0,6)=="EvalJs"){var v = field[x].Validate.split(",");var fn = v[1] + "('" + field[x].FieldName + "')";if(!eval(fn)){errors += "* " + field[x].ErrorMessage + "\n";field[x].valid = false;}}else{var el = dwz_findObj(field[x].FieldName,dom);if(dwz_Exist(el,field[x].FieldName)){if(el.length){for(y=0;y<el.length;y++){if(!dwz_Text(el[y],field[x],dom)){var pos = y + 1;extraMsg = "";if(field[x].ErrorOnRequired){extraMsg = REQUIRED_TEXT;}else if (field[x].ErrorOnFieldLength){extraMsg = dwz_ReplaceFileLengthMsg(FIELD_LENGTH, field[x].FieldLength);}errors += "* " + field[x].ErrorMessage + extraMsg + " - Nr. " + pos + "\n";field[x].valid = false;}}}else{if(!dwz_Text(el,field[x],dom)){extraMsg = "";if(field[x].ErrorOnRequired){extraMsg = REQUIRED_TEXT;}else if (field[x].ErrorOnFieldLength){extraMsg = dwz_ReplaceFileLengthMsg(FIELD_LENGTH, field[x].FieldLength);}errors += "* " + field[x].ErrorMessage + extraMsg + "\n";field[x].valid = false;}}}}break;}}if(errors!=""){alert(defaultErrMsg+errors);}document.MM_returnValue = (errors == '');}
//-->
