if(typeof(tmt)=="undefined"){var tmt={};}
tmt.addEvent=function(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]);}}
tmt.get=function(){var returnNodes=new Array();for(var i=0;i<arguments.length;i++){var nodeElem=arguments[i];if(typeof nodeElem=="string"){nodeElem=document.getElementById(nodeElem);}
if(arguments.length==1){return nodeElem;}
returnNodes.push(nodeElem);}
return returnNodes;}
tmt.getAll=function(startNode){var rootNode=(startNode)?tmt.get(startNode):document;return rootNode.getElementsByTagName("*");}
tmt.getAllNodes=function(startNode){var elements=tmt.getAll(startNode);var nodesArray=[];for(var i=0;i<elements.length;i++){if(elements[i].nodeType==1){nodesArray.push(elements[i]);}}
return nodesArray;}
tmt.getNodesByAttribute=function(attName,startNode){var nodes=tmt.getAll(startNode);return tmt.filterNodesByAttribute(attName,nodes);}
tmt.getNodesByAttributeValue=function(attName,attValue,startNode){var nodes=tmt.getAll(startNode);return tmt.filterNodesByAttributeValue(attName,attValue,nodes);}
tmt.filterNodesByAttribute=function(attName,nodes){var filteredNodes=new Array();for(var i=0;i<nodes.length;i++){if(nodes[i].getAttribute(attName)){filteredNodes.push(nodes[i]);}}
return filteredNodes;}
tmt.filterNodesByAttributeValue=function(attName,attValue,nodes){var filteredNodes=new Array();for(var i=0;i<nodes.length;i++){if(nodes[i].getAttribute(attName)&&(nodes[i].getAttribute(attName)==attValue)){filteredNodes.push(nodes[i]);}}
return filteredNodes;}
tmt.setNodeAttribute=function(nodeList,attName,attValue){for(var i=0;i<nodeList.length;i++){var nodeElem=tmt.get(nodeList[i]);if(nodeElem){nodeElem[attName]=attValue;}}}
tmt.addClass=function(element,className){var nodeElem=tmt.get(element);if(!nodeElem||(tmt.hasClass(nodeElem,className)==true)){return;}
nodeElem.className+=(nodeElem.className?" ":"")+className;}
tmt.hasClass=function(element,className){var nodeElem=tmt.get(element);if(nodeElem){return nodeElem.className.search(new RegExp("\\b"+className+"\\b"))!=-1;}
return null;}
tmt.removeClass=function(element,className){var nodeElem=tmt.get(element);if(!nodeElem||(tmt.hasClass(nodeElem,className)==false)){return;}
nodeElem.className=nodeElem.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"");}
tmt.toggleClass=function(element,className){var nodeElem=tmt.get(element);if(tmt.hasClass(nodeElem,className)){tmt.removeClass(nodeElem,className);}
else{tmt.addClass(nodeElem,className);}}
tmt.trim=function(str){return str.replace(/^\s+|\s+$/g,"");}
tmt.encodeEntities=function(str){if(str&&str.search(/[&<>"]/)!=-1){str=str.replace(/&/g,"&amp;");str=str.replace(/</g,"&lt;");str=str.replace(/>/g,"&gt;");str=str.replace(/"/g,"&quot;");}
return str}
tmt.unencodeEntities=function(str){str=str.replace(/&amp;/g,"&");str=str.replace(/&lt;/g,"<");str=str.replace(/&gt;/g,">");str=str.replace(/&quot;/g,'"');return str}
tmt.hashToEncodeURI=function(obj){var values=[];for(var x in obj){values.push(encodeURIComponent(x)+"="+encodeURIComponent(obj[x]));}
return values.join("&");}
if(typeof(tmt)=="undefined"){alert("Error: tmt.core JavaScript library missing");}
tmt.form={};tmt.form.MESSAGE_CLASS="tmtFormMessage";tmt.form.ERROR_MESSAGE_CLASS="tmtFormErrorMessage";tmt.form.checkFields=function(){tmt.setNodeAttribute(arguments,"checked",true);}
tmt.form.uncheckFields=function(){tmt.setNodeAttribute(arguments,"checked",false);}
tmt.form.toggleCheckFields=function(){for(var i=0;i<arguments.length;i++){var fieldNode=tmt.get(arguments[i]);if(fieldNode){fieldNode.checked?fieldNode.checked=false:fieldNode.checked=true;}}}
tmt.form.checkSelect=function(theNode,values){var valueArray=values.split(",");var selectNode=tmt.get(theNode);if(selectNode==null){selectNode=document.getElementsByName(theNode)[0];}
for(var i=0;i<selectNode.options.length;i++){for(var j=0;j<valueArray.length;j++){if(valueArray[j]==tmt.form.getOptionNodeValue(selectNode.options[i])){selectNode.options[i].selected=true;}}}}
tmt.form.resetSelect=function(theNode){var selectNode=tmt.get(theNode);if(selectNode==null){selectNode=document.getElementsByName(theNode)[0];}
for(var i=0;i<selectNode.options.length;i++){selectNode.options[i].selected=false;}}
tmt.form.checkGroup=function(groupName,values){var valueArray=values.split(",");var groupNodes=document.getElementsByName(groupName);for(var i=0;i<groupNodes.length;i++){for(var j=0;j<valueArray.length;j++){if(groupNodes[i].value==valueArray[j]){groupNodes[i].checked=true;}}}}
tmt.form.resetGroup=function(groupName){var groupNodes=document.getElementsByName(groupName);for(var i=0;i<groupNodes.length;i++){groupNodes[i].checked=false;}}
tmt.form.disableFields=function(){tmt.setNodeAttribute(arguments,"disabled",true);}
tmt.form.enableFields=function(){tmt.setNodeAttribute(arguments,"disabled",false);}
tmt.form.toggleEnableFields=function(){for(var i=0;i<arguments.length;i++){var fieldNode=tmt.get(arguments[i]);if(fieldNode){fieldNode.disabled?fieldNode.disabled=false:fieldNode.disabled=true;}}}
tmt.form.getParentForm=function(startNode){var parentObj=startNode.parentNode;while(parentObj){if(parentObj.tagName.toLowerCase()=="body"){return false;}
if(parentObj.tagName.toLowerCase()=="form"){return parentObj;}
else{parentObj=parentObj.parentNode;continue;}}
return false;}
tmt.form.getOptionNodeValue=function(optionNode){if(window.ActiveXObject){if(optionNode.attributes["value"].specified){return optionNode.value;}}
else{if(optionNode.hasAttribute("value")){return optionNode.value;}}
return optionNode.text;}
tmt.form.isFormField=function(fieldNode){if(!fieldNode.type){return false;}
if((fieldNode.type.toLowerCase()=="reset")||(fieldNode.type.toLowerCase()=="button")||(fieldNode.tagName.toLowerCase()=="button")){return false;}
return true}
tmt.form.getChildFields=function(startNode){var childFields=[];var childNodes=tmt.getAllNodes(startNode);for(var i=0;i<childNodes.length;i++){if(tmt.form.isFormField(childNodes[i])){childFields.push(childNodes[i]);}}
return childFields;}
tmt.form.getSubmitNodes=function(startNode){var inputNodes=startNode.getElementsByTagName("input");return tmt.filterNodesByAttributeValue("type","submit",inputNodes);}
tmt.form.getFieldGroup=function(fieldNode){var boxes=[];if(fieldNode.name){boxes=tmt.getNodesByAttributeValue("name",fieldNode.name,fieldNode.form);}
return boxes;}
tmt.form.getValue=function(field,getGroupValue){var retValue="";var fieldNode=tmt.get(field);var fieldType=fieldNode.type.toLowerCase();switch(fieldType){case"select-multiple":for(var j=0;j<fieldNode.options.length;j++){if(fieldNode.options[j].selected){if(retValue==""){retValue=tmt.form.getOptionNodeValue(fieldNode.options[j]);}
else{retValue+=",";retValue+=tmt.form.getOptionNodeValue(fieldNode.options[j]);}}}
break;case"select-one":for(var k=0;k<fieldNode.options.length;k++){if(fieldNode.options[k].selected){retValue=tmt.form.getOptionNodeValue(fieldNode.options[k])
break;}}
break;case"radio":case"checkbox":if(!getGroupValue||!fieldNode.name){if(fieldNode.checked){retValue=fieldNode.value;}}
else{var boxes=tmt.form.getFieldGroup(fieldNode);retValue=tmt.form.getGroupValue(boxes);}
break;case"reset":break;case"button":break;default:retValue=fieldNode.value;break;}
return retValue;}
tmt.form.getGroupValue=function(boxes){var values=[];for(var i=0;i<boxes.length;i++){if(boxes[i].checked){values.push(boxes[i].value);}}
return values.toString();}
tmt.form.hashForm=function(formNode,demoronize){var valueObj={};for(var i=0;i<formNode.elements.length;i++){var fieldNode=formNode.elements[i];if(!fieldNode||!fieldNode.name||fieldNode.tagName.toLowerCase()=="fieldset"){continue;}
var fieldName=fieldNode.name;valueObj[fieldName]=tmt.form.getValue(fieldNode,true);}
return valueObj;}
tmt.form.serializeForm=function(formNode,demoronize){return tmt.hashToEncodeURI(tmt.form.hashForm(formNode,demoronize));}
tmt.form.clearForm=function(formNode){for(var i=0;i<formNode.elements.length;i++){var fieldNode=formNode.elements[i];if(!fieldNode||fieldNode.tagName.toLowerCase()=="fieldset"){continue;}
var fieldType=fieldNode.type.toLowerCase();switch(fieldType){case"select-multiple":case"select-one":fieldNode.selectedIndex=-1;break;case"radio":case"checkbox":fieldNode.checked=false;break;case"reset":break;case"button":break;default:fieldNode.value="";break;}}}
tmt.form.MSG_BOX_ID="tmtFormMessageBox";tmt.form.generateBoxId=function(formNode){var errorId=tmt.form.MSG_BOX_ID
if(formNode.getAttribute("id")){errorId+=formNode.getAttribute("id");}
else if(formNode.getAttribute("name")){errorId+=formNode.getAttribute("name");}
return errorId;}
tmt.form.displayMessage=function(formNode,html){tmt.form.displayBox(formNode,html,tmt.form.MESSAGE_CLASS);}
tmt.form.displayErrorMessage=function(formNode,html){tmt.form.displayBox(formNode,html,tmt.form.ERROR_MESSAGE_CLASS);}
tmt.form.displayBox=function(formNode,html,cssClass){if(!cssClass){cssClass=tmt.form.MESSAGE_CLASS;}
var displayNode=document.createElement("div");var errorId=tmt.form.generateBoxId(formNode);displayNode.setAttribute("id",errorId);displayNode.className=cssClass;displayNode.innerHTML=html;var oldDisplay=tmt.get(errorId);if(oldDisplay){formNode.parentNode.replaceChild(displayNode,oldDisplay);}
else{formNode.parentNode.insertBefore(displayNode,formNode);}}
tmt.form.removeDisplayBox=function(formNode){var errorId=tmt.form.generateBoxId(formNode);var oldDisplay=tmt.get(errorId);if(oldDisplay){oldDisplay.parentNode.removeChild(oldDisplay);}}
tmt.form.stringDemoronizer=function(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;}
if(typeof(tmt)=="undefined"){alert("Error: tmt.core JavaScript library missing");}
if(typeof(tmt.form)=="undefined"){alert("Error: tmt.form JavaScript library missing");}
tmt.validator={};tmt.validator.DEFAULT_DATE_PATTERN="YYYY-MM-DD";tmt.validator.DEFAULT_CALLBACK="tmt.validator.defaultCallback";tmt.validator.DEFAULT_CALLBACK_MULTISECTION="tmt.validator.multiSectionDefaultCallback";tmt.validator.init=function(){var formNodes=tmt.filterNodesByAttributeValue("tmt:validate","true",document.getElementsByTagName("form"));for(var i=0;i<formNodes.length;i++){formNodes[i].tmt_validator=true;tmt.validator.filters.init(formNodes[i].elements);if(typeof formNodes[i].onsubmit!="function"){formNodes[i].onsubmit=function(){return tmt.validator.validateForm(this);}}
else{formNodes[i].tmt_oldSubmit=formNodes[i].onsubmit;formNodes[i].onsubmit=function(){if(this.tmt_oldSubmit()){return tmt.validator.validateForm(this);}
return false;}}}}
tmt.validator.validateForm=function(form){var formNode=tmt.get(form);formNode.tmt_validator=true;var formValidator=tmt.validator.formValidatorFactory(formNode);var activeValidators=tmt.validator.executeValidators(formValidator.validators);eval(formValidator.callback+"(formNode, activeValidators)");if(activeValidators.length==0){formValidator.blockSubmit();}
return activeValidators.length==0;}
tmt.validator.validateFields=function(fieldsArray,callback){if(fieldsArray.length==0){return true;}
if(!callback){callback=tmt.validator.getCallback(tmt.get(fieldsArray[0]).form);}
var formNode=tmt.get(fieldsArray[0]).form;var validators=[];for(var i=0;i<fieldsArray.length;i++){var fieldNode=tmt.get(fieldsArray[i]);if(tmt.form.isFormField(fieldNode)){validators.push(tmt.validator.fieldValidatorFactory(fieldNode));}}
var activeValidators=tmt.validator.executeValidators(validators);eval(callback+"(formNode, activeValidators)");return activeValidators.length==0;}
tmt.validator.validateChildFields=function(startNode,callback){var fieldsArray=tmt.form.getChildFields(startNode);return tmt.validator.validateFields(fieldsArray,callback);}
tmt.validator.validateField=function(field,callback){var fieldNode=tmt.get(field);if(!tmt.form.isFormField(fieldNode)){return false;}
if(!callback){callback="tmt.validator.defaultFieldCallback";}
var fieldType=fieldNode.type.toLowerCase();if(fieldNode.tagName.toLowerCase()=="fieldset"){return;}
var validator=tmt.validator.fieldValidatorFactory(fieldNode);var haveError=validator.validate();if(haveError){eval(callback+"(fieldNode, validator)");}
else{eval(callback+"(fieldNode, null)");}
return haveError;}
tmt.validator.executeValidators=function(validators){var validatedFields={};var activeValidators=[];for(var i=0;i<validators.length;i++){if(validatedFields[validators[i].name]){continue;}
if(validators[i].validate()){activeValidators[activeValidators.length]=validators[i];}
validatedFields[validators[i].name]=true;}
return activeValidators;}
tmt.validator.formValidatorFactory=function(formNode){var obj={};obj.validators=[];obj.callback=tmt.validator.getCallback(formNode);for(var i=0;i<formNode.elements.length;i++){if(tmt.form.isFormField(formNode.elements[i])){obj.validators.push(tmt.validator.fieldValidatorFactory(formNode.elements[i]));}}
obj.buttons=tmt.form.getSubmitNodes(formNode);obj.blockSubmit=function(){if(!formNode.getAttribute("tmt:blocksubmit")&&!(formNode.getAttribute("tmt:blocksubmit")=="false")){for(var i=0;i<obj.buttons.length;i++){if(obj.buttons[i].getAttribute("tmt:waitmessage")){obj.buttons[i].value=obj.buttons[i].getAttribute("tmt:waitmessage");}
obj.buttons[i].disabled=true;}}}
return obj;}
tmt.validator.fieldValidatorFactory=function(fieldNode){var fieldType=fieldNode.type.toLowerCase();var validator={};if(fieldNode.tagName.toLowerCase()=="fieldset"){return validator;}
switch(fieldType){case"select-multiple":validator=tmt.validator.selectValidatorFactory(fieldNode);break;case"select-one":validator=tmt.validator.selectValidatorFactory(fieldNode);break;case"radio":validator=tmt.validator.radioValidatorFactory(tmt.form.getFieldGroup(fieldNode));break;case"checkbox":validator=tmt.validator.boxValidatorFactory(tmt.form.getFieldGroup(fieldNode));break;case"reset":return validator;break;case"button":return validator;break;default:validator=tmt.validator.textValidatorFactory(fieldNode);break;}
return validator;}
tmt.validator.abstractValidatorFactory=function(fieldNode){var obj={};obj.message="";obj.name="";if(fieldNode.name){obj.name=fieldNode.name;}
else if(fieldNode.id){obj.name=fieldNode.id;}
obj.errorClass="";if(fieldNode.getAttribute("tmt:message")){obj.message=fieldNode.getAttribute("tmt:message");}
if(fieldNode.getAttribute("tmt:errorclass")){obj.errorClass=fieldNode.getAttribute("tmt:errorclass");}
obj.flagInvalid=function(){if(obj.errorClass){tmt.addClass(fieldNode,obj.errorClass);}
fieldNode.setAttribute("title",obj.message);}
obj.flagValid=function(){if(obj.errorClass){tmt.removeClass(fieldNode,obj.errorClass);}
fieldNode.removeAttribute("title");}
obj.validate=function(){if(fieldNode.disabled){obj.flagValid();return false;}
if(!obj.isValid()){obj.flagInvalid();return true;}
else{obj.flagValid();return false;}}
return obj;}
tmt.validator.textValidatorFactory=function(fieldNode){var obj=tmt.validator.abstractValidatorFactory(fieldNode);obj.type="text";obj.getFocus=function(){try{fieldNode.focus();fieldNode.select();}
catch(exception){}}
obj.isEmpty=function(){return fieldNode.value=="";}
obj.isRequired=function(){var requiredAtt=fieldNode.getAttribute("tmt:required");if(requiredAtt){if((requiredAtt=="true")||(requiredAtt=="false")){return eval(requiredAtt);}
return(eval(requiredAtt+"(fieldNode)"));}
return false;}
obj.isValid=function(){if(obj.isEmpty()){if(obj.isRequired()){return false;}
else{return true;}}
else{for(var rule in tmt.validator.rules){if(fieldNode.getAttribute("tmt:"+rule)){if(!eval("tmt.validator.rules."+rule+"(fieldNode)")){return false;}}}}
return true;}
return obj;}
tmt.validator.selectValidatorFactory=function(selectNode){var obj=tmt.validator.abstractValidatorFactory(selectNode);obj.type="select";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.isValid=function(){if(selectNode.selectedIndex==-1){selectNode.selectedIndex=0;}
if(selectNode.selectedIndex==invalidIndex){return false;}
if(selectNode.value==invalidValue){return false;}
for(var rule in tmt.validator.rules){if(selectNode.getAttribute("tmt:"+rule)){if(!eval("tmt.validator.rules."+rule+"(selectNode)")){return false;}}}
return true;}
return obj;}
tmt.validator.groupValidatorFactory=function(buttonGroup){var obj={};obj.name=buttonGroup[0].name;obj.message="";obj.errorClass="";for(var i=0;i<buttonGroup.length;i++){if(buttonGroup[i].getAttribute("tmt:message")){obj.message=buttonGroup[i].getAttribute("tmt:message");}
if(buttonGroup[i].getAttribute("tmt:errorclass")){obj.errorClass=buttonGroup[i].getAttribute("tmt:errorclass");}}
obj.flagInvalid=function(){if(obj.errorClass){for(var i=0;i<buttonGroup.length;i++){tmt.addClass(buttonGroup[i],obj.errorClass);buttonGroup[i].setAttribute("title",obj.message);}}}
obj.flagValid=function(){if(obj.errorClass){for(var i=0;i<buttonGroup.length;i++){tmt.removeClass(buttonGroup[i],obj.errorClass);buttonGroup[i].removeAttribute("title");}}}
obj.validate=function(){if(obj.isValid()){obj.flagValid();return false;}
else{obj.flagInvalid();return true;}}
return obj;}
tmt.validator.boxValidatorFactory=function(boxGroup){var obj=tmt.validator.groupValidatorFactory(boxGroup);obj.type="checkbox";var minchecked=0;var maxchecked=boxGroup.length;for(var i=0;i<boxGroup.length;i++){if(boxGroup[i].getAttribute("tmt:minchecked")){minchecked=boxGroup[i].getAttribute("tmt:minchecked");}
if(boxGroup[i].getAttribute("tmt:maxchecked")){maxchecked=boxGroup[i].getAttribute("tmt:maxchecked");}}
obj.isValid=function(){var checkCounter=0;for(var i=0;i<boxGroup.length;i++){if(boxGroup[i].checked){checkCounter++;}}
return(checkCounter>=minchecked)&&(checkCounter<=maxchecked);}
return obj;}
tmt.validator.radioValidatorFactory=function(radioGroup){var obj=tmt.validator.groupValidatorFactory(radioGroup);obj.type="radio";obj.isRequired=function(){var requiredFlag=false;for(var i=0;i<radioGroup.length;i++){if(radioGroup[i].disabled==false){if(radioGroup[i].getAttribute("tmt:required")){requiredFlag=radioGroup[i].getAttribute("tmt:required");}}}
return requiredFlag;}
obj.isValid=function(){if(obj.isRequired()){for(var i=0;i<radioGroup.length;i++){if(radioGroup[i].checked){return true;}}
return false;}
else{return true;}}
return obj;}
tmt.validator.rules={};tmt.validator.rules.datepattern=function(fieldNode){var datObj=tmt.validator.dateStrToObj(fieldNode.value,fieldNode.getAttribute("tmt:datepattern"));if(datObj){return true;}
return false;}
tmt.validator.rules.maxdate=function(fieldNode){var pattern=tmt.validator.DEFAULT_DATE_PATTERN;if(fieldNode.getAttribute("tmt:datepattern")){pattern=fieldNode.getAttribute("tmt:datepattern");}
var valueDate=tmt.validator.dateStrToObj(fieldNode.value,pattern);var maxDate=tmt.validator.dateStrToObj(fieldNode.getAttribute("tmt:maxdate"),pattern);if(valueDate&&maxDate){return valueDate<=maxDate;}
return false;}
tmt.validator.rules.mindate=function(fieldNode){var pattern=tmt.validator.DEFAULT_DATE_PATTERN;if(fieldNode.getAttribute("tmt:datepattern")){pattern=fieldNode.getAttribute("tmt:datepattern");}
var valueDate=tmt.validator.dateStrToObj(fieldNode.value,pattern);var minDate=tmt.validator.dateStrToObj(fieldNode.getAttribute("tmt:mindate"),pattern);if(valueDate&&minDate){return valueDate>=minDate;}
return false;}
tmt.validator.rules.equalto=function(fieldNode){var twinNode=document.getElementById(fieldNode.getAttribute("tmt:equalto"));return twinNode.value==fieldNode.value;}
tmt.validator.rules.maxlength=function(fieldNode){if(fieldNode.value.length>fieldNode.getAttribute("tmt:maxlength")){return false;}
return true;}
tmt.validator.rules.maxnumber=function(fieldNode){if(parseFloat(fieldNode.value)>fieldNode.getAttribute("tmt:maxnumber")){return false;}
return true;}
tmt.validator.rules.minlength=function(fieldNode){if(fieldNode.value.length<fieldNode.getAttribute("tmt:minlength")){return false;}
return true;}
tmt.validator.rules.minnumber=function(fieldNode){if(parseFloat(fieldNode.value)<fieldNode.getAttribute("tmt:minnumber")){return false;}
return true;}
tmt.validator.rules.pattern=function(fieldNode){var reg=tmt.validator.patterns[fieldNode.getAttribute("tmt:pattern")];if(reg){return reg.test(fieldNode.value);}
else{return true;}}
tmt.validator.patterns={};tmt.validator.patterns.email=new RegExp("^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w\\.-]{2,4}$");tmt.validator.patterns.lettersonly=new RegExp("^[a-zA-Z]*$");tmt.validator.patterns.alphanumeric=new RegExp("^\\w*$");tmt.validator.patterns.integer=new RegExp("^-?\\d\\d*$");tmt.validator.patterns.positiveinteger=new RegExp("^\\d\\d*$");tmt.validator.patterns.number=new RegExp("^-?(\\d\\d*\\.\\d*$)|(^-?\\d\\d*$)|(^-?\\.\\d\\d*$)");tmt.validator.patterns.filepath_pdf=new RegExp("[\\w_]*\\.([pP][dD][fF])$");tmt.validator.patterns.filepath_jpg_gif=new RegExp("[\\w_]*\\.([gG][iI][fF])|([jJ][pP][eE]?[gG])$");tmt.validator.patterns.filepath_jpg=new RegExp("[\\w_]*\\.([jJ][pP][eE]?[gG])$");tmt.validator.patterns.filepath_zip=new RegExp("[\\w_]*\\.([zZ][iI][pP])$");tmt.validator.patterns.filepath=new RegExp("[\\w_]*\\.\\w{3}$");tmt.validator.datePatterns={};tmt.validator.createDatePattern=function(rex,year,month,day,separator){var infoObj={};infoObj.rex=new RegExp(rex);infoObj.y=year;infoObj.m=month;infoObj.d=day;infoObj.s=separator;return infoObj;}
tmt.validator.datePatterns["YYYY-MM-DD"]=tmt.validator.createDatePattern("^\([0-9]{4}\)\\-\([0-1][0-9]\)\\-\([0-3][0-9]\)$",0,1,2,"-");tmt.validator.datePatterns["YYYY-M-D"]=tmt.validator.createDatePattern("^\([0-9]{4}\)\\-\([0-1]?[0-9]\)\\-\([0-3]?[0-9]\)$",0,1,2,"-");tmt.validator.datePatterns["MM.DD.YYYY"]=tmt.validator.createDatePattern("^\([0-1][0-9]\)\\.\([0-3][0-9]\)\\.\([0-9]{4}\)$",2,0,1,".");tmt.validator.datePatterns["M.D.YYYY"]=tmt.validator.createDatePattern("^\([0-1]?[0-9]\)\\.\([0-3]?[0-9]\)\\.\([0-9]{4}\)$",2,0,1,".");tmt.validator.datePatterns["MM/DD/YYYY"]=tmt.validator.createDatePattern("^\([0-1][0-9]\)\/\([0-3][0-9]\)\/\([0-9]{4}\)$",2,0,1,"/");tmt.validator.datePatterns["M/D/YYYY"]=tmt.validator.createDatePattern("^\([0-1]?[0-9]\)\/\([0-3]?[0-9]\)\/\([0-9]{4}\)$",2,0,1,"/");tmt.validator.datePatterns["MM-DD-YYYY"]=tmt.validator.createDatePattern("^\([0-21][0-9]\)\\-\([0-3][0-9]\)\\-\([0-9]{4}\)$",2,0,1,"-");tmt.validator.datePatterns["M-D-YYYY"]=tmt.validator.createDatePattern("^\([0-1]?[0-9]\)\\-\([0-3]?[0-9]\)\\-\([0-9]{4}\)$",2,0,1,"-");tmt.validator.datePatterns["DD.MM.YYYY"]=tmt.validator.createDatePattern("^\([0-3][0-9]\)\\.\([0-1][0-9]\)\\.\([0-9]{4}\)$",2,1,0,".");tmt.validator.datePatterns["D.M.YYYY"]=tmt.validator.createDatePattern("^\([0-3]?[0-9]\)\\.\([0-1]?[0-9]\)\\.\([0-9]{4}\)$",2,1,0,".");tmt.validator.datePatterns["DD/MM/YYYY"]=tmt.validator.createDatePattern("^\([0-3][0-9]\)\/\([0-1][0-9]\)\/\([0-9]{4}\)$",2,1,0,"/");tmt.validator.datePatterns["D/M/YYYY"]=tmt.validator.createDatePattern("^\([0-3]?[0-9]\)\/\([0-1]?[0-9]\)\/\([0-9]{4}\)$",2,1,0,"/");tmt.validator.datePatterns["DD-MM-YYYY"]=tmt.validator.createDatePattern("^\([0-3][0-9]\)\\-\([0-1][0-9]\)\\-\([0-9]{4}\)$",2,1,0,"-");tmt.validator.datePatterns["D-M-YYYY"]=tmt.validator.createDatePattern("^\([0-3]?[0-9]\)\\-\([0-1]?[0-9]\)\\-\([0-9]{4}\)$",2,1,0,"-");tmt.validator.filters={};tmt.validator.filters.init=function(fields){for(var i=0;i<fields.length;i++){if(fields[i].getAttribute("tmt:filters")){tmt.addEvent(fields[i],"keyup",function(){tmt.validator.filterField(this);});tmt.addEvent(fields[i],"blur",function(){tmt.validator.filterField(this);});}}}
tmt.validator.createFilter=function(rex,replaceStr){var infoObj={};infoObj.rex=new RegExp(rex,"g");infoObj.str=replaceStr;return infoObj;}
tmt.validator.filters.ltrim=tmt.validator.createFilter("^(\\s*)(\\b[\\w\\W]*)$","$2");tmt.validator.filters.rtrim=tmt.validator.createFilter("^([\\w\\W]*)(\\b\\s*)$","$1");tmt.validator.filters.nospaces=tmt.validator.createFilter("\\s*","");tmt.validator.filters.nocommas=tmt.validator.createFilter(",","");tmt.validator.filters.nodots=tmt.validator.createFilter("\\.","");tmt.validator.filters.noquotes=tmt.validator.createFilter("'","");tmt.validator.filters.nodoublequotes=tmt.validator.createFilter('"',"");tmt.validator.filters.nohtml=tmt.validator.createFilter("<[^>]*>","");tmt.validator.filters.alphanumericonly=tmt.validator.createFilter("[^\\w]","");tmt.validator.filters.numbersonly=tmt.validator.createFilter("[^\\d]","");tmt.validator.filters.lettersonly=tmt.validator.createFilter("[^a-zA-Z]","");tmt.validator.filters.commastodots=tmt.validator.createFilter(",",".");tmt.validator.filters.dotstocommas=tmt.validator.createFilter("\\.",",");tmt.validator.filters.numberscommas=tmt.validator.createFilter("[^\\d,]","");tmt.validator.filters.numbersdots=tmt.validator.createFilter("[^\\d\\.]","");tmt.validator.filterField=function(fieldNode){var filtersArray=fieldNode.getAttribute("tmt:filters").split(",");if(window.event){var code=window.event.keyCode;if((code==37)||(code==38)||(code==39)||(code==40)){return;}}
for(var i=0;i<filtersArray.length;i++){var filtObj=tmt.validator.filters[filtersArray[i]];if(filtObj){fieldNode.value=fieldNode.value.replace(filtObj.rex,filtObj.str)}
if(filtersArray[i]=="demoronizer"){fieldNode.value=tmt.form.stringDemoronizer(fieldNode.value);}}}
tmt.validator.dateStrToObj=function(dateStr,datePattern){var globalObj=tmt.validator.datePatterns[datePattern];if(globalObj){var dateBits=dateStr.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]);if(isDate&&globalObj.rex.test(dateStr)){return testDate;}
return null;}
return null;}
tmt.validator.getCallback=function(formNode){if(formNode.getAttribute("tmt:callback")){return formNode.getAttribute("tmt:callback");}
return tmt.validator.DEFAULT_CALLBACK;}
tmt.validator.defaultCallback=function(formNode,validators){var errorMsg="";var focusGiven=false;for(var i=0;i<validators.length;i++){errorMsg+=validators[i].message+"\n";if(!focusGiven&&(validators[i].getFocus)){validators[i].getFocus();focusGiven=true;}}
if(errorMsg!=""){alert(errorMsg);}}
tmt.validator.errorBoxCallback=function(formNode,validators){if(validators.length==0){tmt.form.removeDisplayBox(formNode);return;}
var focusGiven=false;var htmlStr="<ul>";for(var i=0;i<validators.length;i++){htmlStr+="<li><em>"+validators[i].name+": </em> "+validators[i].message+"</li>";if(!focusGiven&&(validators[i].getFocus)){validators[i].getFocus();focusGiven=true;}}
htmlStr+="</ul>";tmt.form.displayErrorMessage(formNode,htmlStr);}
tmt.validator.multiSectionDefaultCallback=function(formNode,hasErrors,sectionResults){var errorMsg="";for(var i=0;i<sectionResults.length;i++){if(sectionResults[i].validators.length==0){continue;}
var validators=sectionResults[i].validators;for(var k=0;k<validators.length;k++){errorMsg+=validators[k].message+"\n";}}
if(errorMsg!=""){alert(errorMsg);}}
tmt.validator.multiSectionBoxCallback=function(formNode,hasErrors,sectionResults){if(!hasErrors){tmt.form.removeDisplayBox(formNode);return;}
var htmlStr="<ul>";for(var i=0;i<sectionResults.length;i++){if(sectionResults[i].validators.length==0){continue;}
htmlStr+="<li><strong>"+sectionResults[i].label+"</strong>";var validators=sectionResults[i].validators;htmlStr+="<ul>";for(var k=0;k<validators.length;k++){htmlStr+="<li><em>"+validators[k].name+": </em> "+validators[k].message+"</li>";}
htmlStr+="</ul></li>";}
htmlStr+="</ul>";tmt.form.displayErrorMessage(formNode,htmlStr);}
tmt.validator.defaultFieldCallback=function(fieldNode,validator){if(validator){tmt.validator.defaultCallback(fieldNode.form,[validator]);}}
tmt.validator.errorBoxFieldCallback=function(fieldNode,validator){if(validator){tmt.validator.errorBoxCallback(fieldNode.form,[validator]);}
else{tmt.validator.errorBoxCallback(fieldNode.form,[]);}}
tmt.addEvent(window,"load",tmt.validator.init);