String.prototype.trim=function()
{return this.replace(/^\s*(\b.*\b|)\s*$/,"$1");}
var Validation=new Object();var currentField;Validation.isValidEmail=function(str)
{var emailFilter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;if(arguments.length==2)
{if(emailFilter.test(str))
return true;else
{alert(arguments[1]);return false;}}
else
return emailFilter.test(str);}
Validation.isBlank=function(str)
{if(arguments.length==0)
{alert("No arguments given to isBlank( str ) function:\n\n"+arguments.caller.callee.toString());return true;}
else if(arguments.length==2)
if(str.trim()=="")
{alert(arguments[1]);return true;}
else
return false;else
return(str.trim()=="");}
Validation.isBlankField=function(field)
{if(arguments.length==0)
{alert("No arguments given to isBlankField( field ) function:\n\n"+arguments.caller.callee.toString());return true;}
if(field.type==null)
{alert("Argument passed to isBlankField( field ) function is not a valid form field\n\n"+field.name);return true;}
currentField=field;switch(field.type)
{case'file':case'password':case'text':case'textarea':if(arguments.length==2)
return Validation.isBlank(field.value,arguments[1]);else
return Validation.isBlank(field.value);break;case'radio':break;case'select-one':if(arguments.length==2)
return Validation.isBlank(field.options[field.selectedIndex].value,arguments[1]);else
return Validation.isBlank(field.options[field.selectedIndex].value);break;case'select-multiple':break;}}
Validation.isEmptyCheckBoxGroup=function(CBArray)
{if(CBArray.length==null)
{if(CBArray.type=='checkbox')
{if(CBArray.checked)
return false;else
{if(arguments[1]!=null)
alert(arguments[1]);return true;}}}
else
{for(i=0;i<CBArray.length;i++)
{if(CBArray[i].checked)
return false;}
if(arguments[1]!=null)
alert(arguments[1]);return true;}}
Validation.isValidDate=function(str,mask)
{maskChars='mdy';for(var i=0;i<mask.length;i++)
{if(maskChars.indexOf(mask.substring(i,i+1))==-1)
{delim=mask.substring(i,i+1);break;}}
var varName=mask.split(delim);var values=str.split(delim);for(var i=0;i<varName.length;i++)
{if(varName[i].toLowerCase()=="dd")
var nDay=values[i];else if(varName[i].toLowerCase()=="mm")
var nMonth=values[i]-1;else if(varName[i].toLowerCase()=="yyyy")
var nYear=values[i];else
{alert('Wrong mask in the date validation:\n\nUse a combination of "dd", "mm" and "yyyy"');return false;}}
var dDate=new Date(nYear,nMonth,nDay);if((dDate.getFullYear()==nYear)&&(dDate.getMonth()==nMonth)&&(dDate.getDate()==nDay))
return true;else
{if(arguments.length==3)
alert(arguments[2]);return false;}}
function generateScript(form2print)
{document.write('<script type="text/javascript"><br>');document.write('  function checkMe( form2check )<br>');document.write('  {<br>');document.write('    if( <br>');for(i=0;i<form2print.elements.length;i++)
{field=form2print.elements[i].name;if(field!="")
{document.write('      ');document.write('Validation.isBlankField( form2check.'+field+', "" ) ||<br>');}}
document.write('      )<br>');document.write('      return false;<br>');document.write('    else<br>');document.write('      form2check.submit();<br>');document.write('  }<br>');document.write('</script><br>');}
Validation.isNumeric=function(sInput)
{sInput=sInput.trim();if(sInput.length==0)
{return(false);}
return(!sInput.search(/^[\d\.]*$/gi));}
Validation.isAlphaNumeric=function(sInput)
{sInput=sInput.trim();if(sInput.length==0)
{return(false);}
return(!sInput.search(/^\w*$/gi));}
Validation.isAlpha=function(sInput)
{sInput=sInput.trim();if(sInput.length==0)
{return(false);}
return(!sInput.search(/^[A-Za-z]*$/gi));}
Validation.isValidDomain=function(sInput)
{sInput=sInput.trim();if(sInput.length==0)
{return(false);}
return(!sInput.search(/^[A-Za-z0-9]{1}([A-Za-z0-9]|\.|-)*$/gi));}
Validation.isValidIPAddress=function(ipaddr)
{var re=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;if(re.test(ipaddr))
{var parts=ipaddr.split(".");if(parseInt(parseFloat(parts[0]))==0)
{return(false);}
for(var i=0;i<parts.length;i++)
{if(parseInt(parseFloat(parts[i]))>255)
{return(false);}}
return(true);}
else
{return(false);}}
Validation.isValidDay=function(nDay)
{return((Validation.isNumeric(nDay))&&(nDay>=0)&&(nDay<=31));}
Validation.isValidMonth=function(nMonth)
{return((Validation.isNumeric(nMonth))&&(nMonth>=0)&&(nMonth<=12));}
Validation.isValidYear=function(nYear)
{return((Validation.isNumeric(nMonth))&&(nMonth.length==4));}
Validation.isValidDutchZIP=function(sZIP)
{return(!sZIP.search(/^[0-9]{4}( ){0,1}[A-Za-z]{2}$/gi));}
Validation.isIntBetweenValues=function(nValue,nMin,nMax)
{return((Validation.isNumeric(nValue))&&(nValue>=nMin)&&(nValue<=nMax));}
Validation.isInvalidDutchZIP=function(sZIP)
{if(arguments.length==0)
{alert("No arguments given to isInvalidDutchZIP( sZIP ) function:\n\n"+arguments.caller.callee.toString());return true;}
else if(arguments.length==2)
if(sZIP.search(/^[0-9]{4}( ){0,1}[A-Za-z]{2}$/gi))
{alert(arguments[1]);return true;}
else
return false;else
return(sZIP.search(/^[0-9]{4}( ){0,1}[A-Za-z]{2}$/gi));}
