function tmt_validatorInit(forceReinit){if(forceReinit==undefined){forceReinit=false;}
var formNodes=document.getElementsByTagName("form");for(var i=0;i<formNodes.length;i++){if(formNodes[i].getAttribute("tmt:validate")=="true"&&(formNodes[i].tmt_validator==undefined||forceReinit)){formNodes[i].tmt_validator=new tmt_formValidator(formNodes[i]);}}}
function tmt_validateForm(formNode){var errorMsg="";var initErrorMsg="";var formValidator=formNode.tmt_validator;if(formValidator)
{}
else
{formValidator=new tmt_formValidator(formNode);}
if(formValidator){var focusGiven=false;var invalidFields=new Array();for(var i=0;i<formValidator.validators.length;i++){if(formValidator.validators[i].validate()){errorMsg+=formValidator.validators[i].message+"\n";invalidFields[invalidFields.length]=formValidator.validators[i];if(!focusGiven&&(formValidator.validators[i].type=="text")){formValidator.validators[i].getFocus();focusGiven=true;}}}
if(errorMsg!=""){if(!formValidator.callback){if(document.getElementById('errorMessage')!=null){document.getElementById('errorMessage').style.display='block';document.getElementById('errorMessage').innerHTML+=initErrorMsg+errorMsg;}}
else{eval(formValidator.callback+"(formNode, invalidFields)");}
return(false);}else{formValidator.blockSubmit();}}
return errorMsg.length==0;}
function tmt_formValidator(formNode){this.validators=new Array();if(formNode.getAttribute("tmt:callback")&&window[formNode.getAttribute("tmt:callback")]){this.callback=formNode.getAttribute("tmt:callback");}
var fieldsArray=tmt_getTextfieldNodes(formNode);for(var i=0;i<fieldsArray.length;i++){this.validators[this.validators.length]=tmt_textValidatorFactory(fieldsArray[i]);if(fieldsArray[i].getAttribute("type")){if((fieldsArray[i].getAttribute("type").toLowerCase()=="file")&&(fieldsArray[i].getAttribute("tmt:image")=="true")){fieldsArray[i].onchange=function(){tmt_validateImg(this);}}}
if(fieldsArray[i].getAttribute("tmt:filters")){addEvent(fieldsArray[i],"keyup",function(){tmt_filterField(this);});addEvent(fieldsArray[i],"blur",function(){tmt_filterField(this);});}}
var selectNodes=formNode.getElementsByTagName("select");for(var j=0;j<selectNodes.length;j++){this.validators[this.validators.length]=tmt_selectValidatorFactory(selectNodes[j]);}
var boxTable=tmt_getNodesTable(formNode,"checkbox");for(var boxName in boxTable){this.validators[this.validators.length]=tmt_boxValidatorFactory(boxTable[boxName]);}
var radioTable=tmt_getNodesTable(formNode,"radio");for(var radioName in radioTable){this.validators[this.validators.length]=tmt_radioValidatorFactory(radioTable[radioName]);}
this.buttons=tmt_getSubmitNodes(formNode);this.blockSubmit=function(){if(!formNode.getAttribute("tmt:blocksubmit")&&!(formNode.getAttribute("tmt:blocksubmit")=="false")){for(var i=0;i<this.buttons.length;i++){if(this.buttons[i].getAttribute("tmt:waitmessage")){this.buttons[i].value=this.buttons[i].getAttribute("tmt:waitmessage");}
this.buttons[i].disabled=true;}}}}
function tmt_abstractValidator(fieldNode){this.message="";this.name=fieldNode.name;if(fieldNode.getAttribute("tmt:message")){this.message=fieldNode.getAttribute("tmt:message");}
var errorClass="invalid";if(fieldNode.getAttribute("tmt:errorclass")){errorClass=fieldNode.getAttribute("tmt:errorclass");}
this.flagInvalid=function(){if(errorClass){if(fieldNode.className.indexOf(errorClass)==-1){fieldNode.className=fieldNode.className+" "+errorClass;}}
if(this.message!=''){fieldNode.setAttribute("title",this.message);}}
this.flagValid=function(){if(errorClass){var regClass=new RegExp("\\b"+errorClass);fieldNode.className=fieldNode.className.replace(regClass,"");}
fieldNode.removeAttribute("title");}
this.validate=function(){if(fieldNode.disabled){this.flagValid();return false;}
if(!this.isValid()){this.flagInvalid();return true;}
else{this.flagValid();return false;}}}
function tmt_textValidatorFactory(fieldNode){var obj=new tmt_abstractValidator(fieldNode);obj.type="text";var required=false;if(fieldNode.getAttribute("tmt:required")){required=fieldNode.getAttribute("tmt:required");}
var invalidValue;if(fieldNode.getAttribute("tmt:invalidvalue")!=null){invalidValue=fieldNode.getAttribute("tmt:invalidvalue");}
obj.getFocus=function(){try{fieldNode.select();fieldNode.focus();}
catch(exception){}}
obj.isEmpty=function(){return fieldNode.value=="";}
obj.isRequired=function(){if(required=="conditional"){if(conditionalRuleName==fieldNode.getAttribute("tmt:conditionalRule")){if(eval(conditionalRuleName+"(fieldNode)")){return true;}else{return false;}}else{return false;}}else{return required;}}
obj.isValid=function(){if(obj.isRequired()){if(obj.isEmpty()){return false;}
if(fieldNode.value==invalidValue){return false;}}else{if(fieldNode.value==invalidValue){return true;}}
for(var rule in tmt_globalRules){if(fieldNode.getAttribute("tmt:"+rule)){if(!eval("tmt_globalRules."+rule+"(fieldNode)")){return false;}}}
return true;}
return obj;}
function tmt_selectValidatorFactory(selectNode){var obj=new tmt_abstractValidator(selectNode);obj.type="select";var required=false;if(selectNode.getAttribute("tmt:required")){required=selectNode.getAttribute("tmt:required");}
var invalidIndex;if(selectNode.getAttribute("tmt:invalidindex")){invalidIndex=selectNode.getAttribute("tmt:invalidindex");}
var invalidValue;if(selectNode.getAttribute("tmt:invalidvalue")!=null){invalidValue=selectNode.getAttribute("tmt:invalidvalue");}
obj.isRequired=function(){if(required=="conditional"){if(conditionalRuleName==selectNode.getAttribute("tmt:conditionalRule")){if(eval(conditionalRuleName+"(selectNode)")){return true;}else{return false;}}else{return false;}}else{return required;}}
obj.isValid=function(){if(obj.isRequired()){if(selectNode.selectedIndex==invalidIndex){return false;}
if(selectNode.value==invalidValue){return false;}else{}}else{if(selectNode.value==invalidValue){return false;}}
for(var rule in tmt_globalRules){if(selectNode.getAttribute("tmt:"+rule)){if(!eval("tmt_globalRules."+rule+"(selectNode)")){return false;}}}
return true;}
return obj;}
function tmt_groupValidatorFactory(buttonGroup){this.name=buttonGroup.name;this.message="";this.errorClass="invalid";for(var i=0;i<buttonGroup.elements.length;i++){if(buttonGroup.elements[i].getAttribute("tmt:message")){this.message=buttonGroup.elements[i].getAttribute("tmt:message");}
if(buttonGroup.elements[i].getAttribute("tmt:errorclass")){this.errorClass=buttonGroup.elements[i].getAttribute("tmt:errorclass");}}
this.flagInvalid=function(){if(this.errorClass){for(var i=0;i<buttonGroup.elements.length;i++){if(buttonGroup.elements[i].className.indexOf(this.errorClass)==-1){buttonGroup.elements[i].className=buttonGroup.elements[i].className+" "+this.errorClass;}
if(this.message!=''){buttonGroup.elements[i].setAttribute("title",this.message);}}}}
this.flagValid=function(){if(this.errorClass){var regClass=new RegExp("\\b"+this.errorClass);for(var i=0;i<buttonGroup.elements.length;i++){buttonGroup.elements[i].className=buttonGroup.elements[i].className.replace(regClass,"");buttonGroup.elements[i].removeAttribute("title");}}}
this.validate=function(){var errorMsg="";if(!this.isValid()){errorMsg+=this.message;this.flagInvalid();return true;}
else{this.flagValid();return false;}
return errorMsg;}}
function tmt_boxValidatorFactory(boxGroup){var obj=new tmt_groupValidatorFactory(boxGroup);obj.type="box";var minchecked=0;var maxchecked=boxGroup.elements.length;for(var i=0;i<boxGroup.elements.length;i++){if(boxGroup.elements[i].getAttribute("tmt:minchecked")){minchecked=boxGroup.elements[i].getAttribute("tmt:minchecked");}
if(boxGroup.elements[i].getAttribute("tmt:maxchecked")){maxchecked=boxGroup.elements[i].getAttribute("tmt:maxchecked");}}
obj.isValid=function(){var checkCounter=0;for(var i=0;i<boxGroup.elements.length;i++){if(boxGroup.elements[i].checked){checkCounter++;}}
return(checkCounter>=minchecked)&&(checkCounter<=maxchecked);}
return obj;}
function tmt_radioValidatorFactory(radioGroup){var obj=new tmt_groupValidatorFactory(radioGroup);obj.type="radio";obj.isRequired=function(){var requiredFlag=false;for(var i=0;i<radioGroup.elements.length;i++){if(radioGroup.elements[i].disabled==false){if(radioGroup.elements[i].getAttribute("tmt:required")){requiredFlag=radioGroup.elements[i].getAttribute("tmt:required");}}}
return requiredFlag;}
obj.isValid=function(){if(obj.isRequired()){for(var i=0;i<radioGroup.elements.length;i++){if(radioGroup.elements[i].checked){return true;}}
return false;}
else{return true;}}
return obj;}
var tmt_globalRules=new Object;tmt_globalRules.datepattern=function(fieldNode){var globalObj=tmt_globalDatePatterns[fieldNode.getAttribute("tmt:datepattern")];if(globalObj&&fieldNode.value!=""){var dateBits=fieldNode.value.split(globalObj.s);var testDate=new Date(dateBits[globalObj.y],(dateBits[globalObj.m]-1),dateBits[globalObj.d]);var isDate=(testDate.getFullYear()==dateBits[globalObj.y])
&&(testDate.getMonth()==dateBits[globalObj.m]-1)
&&(testDate.getDate()==dateBits[globalObj.d]);return isDate&&globalObj.rex.test(fieldNode.value);}
return true;}
tmt_globalRules.equalto=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:equalto"));return twinNode.value==fieldNode.value;}
function fDecomposeDate(LeParam1){LeRetour=new Array(3);LeJour="";LeMois="";LeAnnee="";i=0;while((LeParam1.charAt(i)!="/")&&(i<10)){LeJour+=LeParam1.charAt(i);i++;}
if(LeJour.charAt(0)=="0"){LeJour=LeJour.charAt(1);}
LeParam1=LeParam1.substring(i+1,LeParam1.length);i=0;while((LeParam1.charAt(i)!="/")&&(i<10)){LeMois+=LeParam1.charAt(i);i++;}
if(LeMois.charAt(0)=="0"){LeMois=LeMois.charAt(1);}
LeParam1=LeParam1.substring(i+1,LeParam1.length);LeAnnee=LeParam1;LeRetour[0]=LeJour;LeRetour[1]=LeMois;LeRetour[2]=LeAnnee;return LeRetour;}
function fDateToEnglishFormat(LeParam1,LeParam2){LaDate=new Array(3);LaDate=fDecomposeDate(LeParam1);LeRetour=LaDate[2]+LeParam2+LaDate[1]+LeParam2+LaDate[0];return LeRetour;}
function fCompareDates(LeParam1,LeParam2){var LeParam1=fDateToEnglishFormat(LeParam1,"/");var LeParam2=fDateToEnglishFormat(LeParam2,"/");LeParam1=Date.parse(LeParam1);LeParam2=Date.parse(LeParam2);if(LeParam1==LeParam2){return 1;}else if(LeParam1>LeParam2){return 0;}else{return 1;}}
tmt_globalRules.isdatelowerthan=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:isdatelowerthan"));return fCompareDates(twinNode.value,fieldNode.value);}
tmt_globalRules.reqAllCheckbox=function(fieldNode){var compteur=0;var tzIds=fieldNode.getAttribute("tmt:reqAllCheckbox").split(',');var longueur=tzIds.length-1;msg=tzIds[longueur];for(a=0;a<longueur;a++){oField=document.getElementById(tzIds[a]);if(oField.checked){compteur++;}}
if(compteur==0){errorMsg+=nl+msg;return false;}
return true;}
tmt_globalRules.mitovy=function(fieldNode){var twinNode=fieldNode.getAttribute("tmt:mitovy");var codeId=document.getElementById(twinNode);allCode=codeId.options[codeId.selectedIndex].text;code=allCode.substr(1,2);if(code=='2A'||code=='2B')
code=20;return fieldNode.value.substr(0,2)==code;}
tmt_globalRules.greaterthan=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:greaterthan"));if(parseFloat(twinNode.value)>parseFloat(fieldNode.value)||isNaN(fieldNode.value)){return false;}
return true;}
tmt_globalRules.lessthan=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:lessthan"));if(parseFloat(twinNode.value)<parseFloat(fieldNode.value)||isNaN(fieldNode.value)){return false;}
return true;}
tmt_globalRules.dategreaterthan=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:dategreaterthan"));var globalObjFieldNode=tmt_globalDatePatterns[fieldNode.getAttribute("tmt:datepattern")];var globalObjTwinNode=tmt_globalDatePatterns[twinNode.getAttribute("tmt:datepattern")];if(fieldNode.value.length>0&&twinNode.value.length>0){var dateBitsFieldNode=fieldNode.value.split(globalObjFieldNode.s);var dateBitsTwinNode=twinNode.value.split(globalObjTwinNode.s);if(new Date(dateBitsFieldNode[globalObjFieldNode.y],(dateBitsFieldNode[globalObjFieldNode.m]-1),dateBitsFieldNode[globalObjFieldNode.d])<new Date(dateBitsTwinNode[globalObjTwinNode.y],(dateBitsTwinNode[globalObjTwinNode.m]-1),dateBitsTwinNode[globalObjTwinNode.d])){return false;}}
return true;}
tmt_globalRules.datelessthan=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:datelessthan"));var globalObjFieldNode=tmt_globalDatePatterns[fieldNode.getAttribute("tmt:datepattern")];var globalObjTwinNode=tmt_globalDatePatterns[twinNode.getAttribute("tmt:datepattern")];if(fieldNode.value.length>0&&twinNode.value.length>0){var dateBitsFieldNode=fieldNode.value.split(globalObjFieldNode.s);var dateBitsTwinNode=twinNode.value.split(globalObjTwinNode.s);if(new Date(dateBitsFieldNode[globalObjFieldNode.y],(dateBitsFieldNode[globalObjFieldNode.m]-1),dateBitsFieldNode[globalObjFieldNode.d])<new Date(dateBitsTwinNode[globalObjTwinNode.y],(dateBitsTwinNode[globalObjTwinNode.m]-1),dateBitsTwinNode[globalObjTwinNode.d])){return true;}}
return false;}
tmt_globalRules.major=function(fieldNode){var now=new Date();var year=now.getFullYear();var month=now.getMonth()+1;var day=now.getDate();var today=day+"/"+month+"/"+year;if(diffDate(fieldNode.value,today,"/")<fieldNode.getAttribute("tmt:major")){return false;}
return true;}
tmt_globalRules.onemin=function(fieldNode){var twinNode1=document.getElementById(fieldNode.getAttribute("tmt:onemin"));var twinNode2=document.getElementById(fieldNode.getAttribute("tmt:twomin"));if(twinNode1.value!=''||twinNode2.value!=''||fieldNode.value!=''){return true;}
return false;}
tmt_globalRules.onerequired=function(fieldNode){var twinNode1=document.getElementById(fieldNode.getAttribute("tmt:onerequired"));var twinNode2=document.getElementById(fieldNode.getAttribute("tmt:tworequired"));var twinNode3=document.getElementById(fieldNode.getAttribute("tmt:threerequired"));var twinNode4=document.getElementById(fieldNode.getAttribute("tmt:fourrequired"));if(twinNode1.value!=''||twinNode2.value!=''||twinNode3.value!=''||twinNode4.value!=''||fieldNode.value!=''){if(twinNode1.value==''||twinNode2.value==''||twinNode3.value==''||twinNode4.value==''||fieldNode.value=='')
return false;}
return true;}
tmt_globalRules.notequalto=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:notequalto"));return twinNode.value!=fieldNode.value;}
tmt_globalRules.float=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:float"));if(parseFloat(twinNode.value)<0||isNaN(twinNode.value)){return false;}
return true;}
tmt_globalRules.maxlength=function(fieldNode){if(fieldNode.value.length>fieldNode.getAttribute("tmt:maxlength")){return false;}
return true;}
tmt_globalRules.maxnumber=function(fieldNode){if(parseFloat(fieldNode.value)>fieldNode.getAttribute("tmt:maxnumber")){return false;}
return true;}
tmt_globalRules.minlength=function(fieldNode){if(fieldNode.value.length<fieldNode.getAttribute("tmt:minlength")){return false;}
return true;}
tmt_globalRules.minnumber=function(fieldNode){if(parseFloat(fieldNode.value)<fieldNode.getAttribute("tmt:minnumber")){return false;}
return true;}
tmt_globalRules.pattern=function(fieldNode){var reg=tmt_globalPatterns[fieldNode.getAttribute("tmt:pattern")];if(reg&&fieldNode.value!=""){return reg.test(fieldNode.value);}
else{return true;}
return true;}
tmt_globalRules.maxselectlength=function(fieldNode){if(fieldNode.options.length<fieldNode.getAttribute("tmt:maxselectlength")){return false;}
return true;}
tmt_globalRules.image=function(fieldNode){if(!fieldNode.isValidImg){fieldNode.isValidImg="true";}
return fieldNode.isValidImg=="true";}
function tmt_validateImg(fieldNode){var imgURL="file:///"+fieldNode.value;var img=new Image();img.maxSize=fieldNode.getAttribute("tmt:imagemaxsize");img.maxWidth=fieldNode.getAttribute("tmt:imagemaxwidth");img.minWidth=fieldNode.getAttribute("tmt:imageminwidth");img.maxHeight=fieldNode.getAttribute("tmt:imagemaxheight");img.minHeight=fieldNode.getAttribute("tmt:imageminheight");img.fieldNode=fieldNode;img.onload=tmt_validateImgCallback;img.src=imgURL;}
function tmt_validateImgCallback(){var errorsCount=0;if(this.fileSize&&this.maxSize&&(this.fileSize/1024)>this.maxSize){errorsCount++;}
if(this.maxWidth&&(this.width>this.maxWidth)){errorsCount++;}
if(this.minWidth&&(this.width<this.minWidth)){errorsCount++;}
if(this.maxHeight&&(this.height>this.maxHeight)){errorsCount++;}
if(this.minHeight&&(this.height<this.minHeight)){errorsCount++;}
this.fieldNode.isValidImg=(errorsCount!=0)?"false":"true";}
var tmt_globalPatterns=new Object;tmt_globalPatterns.email=new RegExp("^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w\\.-]{2,4}$");tmt_globalPatterns.lettersonly=new RegExp("^[a-zA-Z]*$");tmt_globalPatterns.alphanumeric=new RegExp("^\\w*$");tmt_globalPatterns.integer=new RegExp("^-?\\d\\d*$");tmt_globalPatterns.positiveinteger=new RegExp("^\\d\\d*$");tmt_globalPatterns.number=new RegExp("^-?(\\d\\d*\\.\\d*$)|(^-?\\d\\d*$)|(^-?\\.\\d\\d*$)");tmt_globalPatterns.filepath_jpg_gif=new RegExp("\\\\[\\w_]*\\.([gG][iI][fF])|([jJ][pP][eE]?[gG])$");tmt_globalPatterns.filepath_image=new RegExp("\\\\[\\w_]*\\.([gG][iI][fF])|([jJ][pP][eE]?[gG])|([pP][nN][gG])$");tmt_globalPatterns.filepath_jpg=new RegExp("\\\\[\\w_]*\\.([jJ][pP][eE]?[gG])$");tmt_globalPatterns.filepath_bmp=new RegExp("\\\\[\\w_]*\\.([bB][mM][pP])$");tmt_globalPatterns.filepath_png=new RegExp("\\\\[\\w_]*\\.([pP][nN][gG])$");tmt_globalPatterns.filepath_zip=new RegExp("\\\\[\\w_]*\\.([zZ][iI][pP])$");tmt_globalPatterns.filepath=new RegExp("\\\\[\\w_]*\\.\\w{3}$");tmt_globalPatterns.filepath_csv=new RegExp(".([cC][sS][vV])$");tmt_globalPatterns.filepath_xls=new RegExp("\\\\[\\w]+\\.([xX][lL][sS])$");tmt_globalPatterns.filepath_doc=new RegExp("\\\\[\\w]+\\.([dD][oO][cC])$");tmt_globalPatterns.filepath_pdf=new RegExp(".([pP][dD][fF])$");tmt_globalPatterns.phonefr=new RegExp("^0[1-68]([-. ]?[0-9]{2}){4}$");tmt_globalPatterns.zipcodefr=new RegExp("^[0-9]{5}$");tmt_globalPatterns.phone=new RegExp("^[(]?[+]?[0-9]{1,4}[)]?[\s .]?([0-9]+[\s .]?[0-9]?)+$");tmt_globalPatterns.pseudo=new RegExp("^[a-zA-Z0-9\._-]*$");tmt_globalPatterns.httpstart=new RegExp("^http://");tmt_globalPatterns.valid_url=new RegExp("^http://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");tmt_globalPatterns.valid_embed_video=new RegExp("</embed></object>");tmt_globalPatterns.valid_password=new RegExp("^[a-zA-Z0-9]$");var tmt_globalDatePatterns=new Object;tmt_globalDatePatterns["YYYY-MM-DD"]=tmt_dateInfo("^\([0-9]{4}\)\\-\([0-1][0-9]\)\\-\([0-3][0-9]\)$",0,1,2,"-");tmt_globalDatePatterns["YYYY-M-D"]=tmt_dateInfo("^\([0-9]{4}\)\\-\([0-1]?[0-9]\)\\-\([0-3]?[0-9]\)$",0,1,2,"-");tmt_globalDatePatterns["MM.DD.YYYY"]=tmt_dateInfo("^\([0-1][0-9]\)\\.\([0-3][0-9]\)\\.\([0-9]{4}\)$",2,0,1,".");tmt_globalDatePatterns["M.D.YYYY"]=tmt_dateInfo("^\([0-1]?[0-9]\)\\.\([0-3]?[0-9]\)\\.\([0-9]{4}\)$",2,0,1,".");tmt_globalDatePatterns["MM/DD/YYYY"]=tmt_dateInfo("^\([0-1][0-9]\)\/\([0-3][0-9]\)\/\([0-9]{4}\)$",2,0,1,"/");tmt_globalDatePatterns["M/D/YYYY"]=tmt_dateInfo("^\([0-1]?[0-9]\)\/\([0-3]?[0-9]\)\/\([0-9]{4}\)$",2,0,1,"/");tmt_globalDatePatterns["MM-DD-YYYY"]=tmt_dateInfo("^\([0-21][0-9]\)\\-\([0-3][0-9]\)\\-\([0-9]{4}\)$",2,0,1,"-");tmt_globalDatePatterns["M-D-YYYY"]=tmt_dateInfo("^\([0-1]?[0-9]\)\\-\([0-3]?[0-9]\)\\-\([0-9]{4}\)$",2,0,1,"-");tmt_globalDatePatterns["DD.MM.YYYY"]=tmt_dateInfo("^\([0-3][0-9]\)\\.\([0-1][0-9]\)\\.\([0-9]{4}\)$",2,1,0,".");tmt_globalDatePatterns["D.M.YYYY"]=tmt_dateInfo("^\([0-3]?[0-9]\)\\.\([0-1]?[0-9]\)\\.\([0-9]{4}\)$",2,1,0,".");tmt_globalDatePatterns["DD/MM/YYYY"]=tmt_dateInfo("^\([0-3][0-9]\)\/\([0-1][0-9]\)\/\([0-9]{4}\)$",2,1,0,"/");tmt_globalDatePatterns["D/M/YYYY"]=tmt_dateInfo("^\([0-3]?[0-9]\)\/\([0-1]?[0-9]\)\/\([0-9]{4}\)$",2,1,0,"/");tmt_globalDatePatterns["DD-MM-YYYY"]=tmt_dateInfo("^\([0-3][0-9]\)\\-\([0-1][0-9]\)\\-\([0-9]{4}\)$",2,1,0,"-");tmt_globalDatePatterns["D-M-YYYY"]=tmt_dateInfo("^\([0-3]?[0-9]\)\\-\([0-1]?[0-9]\)\\-\([0-9]{4}\)$",2,1,0,"-");function tmt_dateInfo(rex,year,month,day,separator){var infoObj=new Object;infoObj.rex=new RegExp(rex);infoObj.y=year;infoObj.m=month;infoObj.d=day;infoObj.s=separator;return infoObj;}
var tmt_globalFilters=new Object;tmt_globalFilters.ltrim=tmt_filterInfo("^(\\s*)(\\b[\\w\\W]*)$","$2");tmt_globalFilters.rtrim=tmt_filterInfo("^([\\w\\W]*)(\\b\\s*)$","$1");tmt_globalFilters.nospaces=tmt_filterInfo("\\s*","");tmt_globalFilters.nocommas=tmt_filterInfo(",","");tmt_globalFilters.nodots=tmt_filterInfo("\\.","");tmt_globalFilters.noquotes=tmt_filterInfo("'","");tmt_globalFilters.nodoublequotes=tmt_filterInfo('"',"");tmt_globalFilters.nohtml=tmt_filterInfo("<[^>]*>","");tmt_globalFilters.alphanumericonly=tmt_filterInfo("[^\\w]","");tmt_globalFilters.numbersonly=tmt_filterInfo("[^\\d]","");tmt_globalFilters.lettersonly=tmt_filterInfo("[^a-zA-Z]","");tmt_globalFilters.commastodots=tmt_filterInfo(",",".");tmt_globalFilters.dotstocommas=tmt_filterInfo("\\.",",");tmt_globalFilters.numberscommas=tmt_filterInfo("[^\\d,]","");tmt_globalFilters.numbersdots=tmt_filterInfo("[^\\d\\.]","");tmt_globalFilters.phonenumber=tmt_filterInfo("[^\\(\\+\\)\\d-. ]","");tmt_globalFilters.postalcode=tmt_filterInfo("[^a-cA-C0-9]","");function tmt_filterInfo(rex,replaceStr){var infoObj=new Object;infoObj.rex=new RegExp(rex,"g");infoObj.str=replaceStr;return infoObj;}
function tmt_filterField(fieldNode){var filtersArray=fieldNode.getAttribute("tmt:filters").split(",");for(var i=0;i<filtersArray.length;i++){var filtObj=tmt_globalFilters[filtersArray[i]];if(filtObj){fieldNode.value=fieldNode.value.replace(filtObj.rex,filtObj.str)}
if(filtersArray[i]=="demoronizer"){fieldNode.value=tmt_filterDemoronizer(fieldNode.value);}}}
function tmt_filterDemoronizer(str){str=str.replace(new RegExp(String.fromCharCode(710),"g"),"^");str=str.replace(new RegExp(String.fromCharCode(732),"g"),"~");str=str.replace(new RegExp(String.fromCharCode(8216),"g"),"'");str=str.replace(new RegExp(String.fromCharCode(8217),"g"),"'");str=str.replace(new RegExp(String.fromCharCode(8220),"g"),'"');str=str.replace(new RegExp(String.fromCharCode(8221),"g"),'"');str=str.replace(new RegExp(String.fromCharCode(8211),"g"),"-");str=str.replace(new RegExp(String.fromCharCode(8212),"g"),"--");str=str.replace(new RegExp(String.fromCharCode(8218),"g"),",");str=str.replace(new RegExp(String.fromCharCode(8222),"g"),",,");str=str.replace(new RegExp(String.fromCharCode(8226),"g"),"*");str=str.replace(new RegExp(String.fromCharCode(8230),"g"),"...");str=str.replace(new RegExp(String.fromCharCode(8364),"g"),"?");return str;}
function tmt_getSubmitNodes(startNode){var submitArray=new Array();var inputNodes=startNode.getElementsByTagName("input");for(var i=0;i<inputNodes.length;i++){if(inputNodes[i].getAttribute("type").toLowerCase()=="submit"){submitArray[submitArray.length]=inputNodes[i];}}
return submitArray;}
function tmt_getTextfieldNodes(startNode){var inputsArray=new Array();var inputNodes=startNode.getElementsByTagName("input");var areaNodes=startNode.getElementsByTagName("textarea");for(var i=0;i<inputNodes.length;i++){if(!inputNodes[i].getAttribute("type")){inputNodes[i].setAttribute("type","text");}
var fieldType=inputNodes[i].getAttribute("type").toLowerCase();if((fieldType=="text")||(fieldType=="password")||(fieldType=="file")||(fieldType=="hidden")){inputsArray[inputsArray.length]=inputNodes[i];}}
for(var j=0;j<areaNodes.length;j++){inputsArray[inputsArray.length]=areaNodes[j];}
return inputsArray;}
function tmt_getNodesTable(formNode,type){var boxHolder=new Object;var boxNodes=formNode.getElementsByTagName("input");for(var i=0;i<boxNodes.length;i++){if(boxNodes[i].getAttribute("type")&&(boxNodes[i].getAttribute("type").toLowerCase()==type)){var boxName=boxNodes[i].name;if(boxHolder[boxName]){boxHolder[boxName].elements[boxHolder[boxName].elements.length]=boxNodes[i];}
else{boxHolder[boxName]=new Object;boxHolder[boxName].name=boxName;boxHolder[boxName].elements=new Array;boxHolder[boxName].elements[0]=boxNodes[i];}}}
return boxHolder;}
function addEvent(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false);}
else if(obj.attachEvent){obj["e"+type+fn]=fn;obj[type+fn]=function(){obj["e"+type+fn](window.event);}
obj.attachEvent("on"+type,obj[type+fn]);}}
addEvent(window,"load",tmt_validatorInit);
