function oval_Validator(a,b,c,d,e){this.id=arguments.length!=0?a:"root";this.descText=oval_checkArg(b)?b:"No Name";this.colShow=oval_checkArg(c)?c:true;this.colNor=oval_checkArg(e)?e:"#333333";this.colErr=oval_checkArg(d)?d:"#FF0000";this.errStartMsg=ovalSet.errStartMsg;this.errEndMsg=ovalSet.errEndMsg;this.type="validatorObject";this.elements=[];this.addGroup=oval_addGroup;this.newGroupObject=oval_newGroupObject;this.add=oval_addElement;this.getObject=oval_newElementObject;this.addObject=oval_addObject;
this.group=oval_group;this.element=oval_element;this.show=oval_showContents;this.validate=oval_validate;this.clearHidden=oval_clearHidden;this.errMsg=""}function oval_textValidator(a,b,c,d,e,f){this.type="text";this.id=a;this.descText=b;this.required=c;this.min=oval_checkArg(d)?d:1;this.max=oval_checkArg(e)?e:150;this.state=oval_checkText;this.col=oval_colorize;this.regExpType=oval_checkArg(f)?f:"strict";this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="004";this.errMsg[2]="006"}
function oval_digitsValidator(a,b,c,d,e){this.type="digits";this.id=a;this.descText=b;this.required=c;this.length=oval_checkArg(d)?d:8;this.regExpType=oval_checkArg(e)?e:"number";this.state=oval_checkDigits;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="007";this.errMsg[2]="007"}
function oval_emValidator(a,b,c){this.type="em";this.id=a;this.descText=b;this.required=c;this.state=oval_checkEm;this.col=oval_colorize;this.regExp=/^(em|EM)[0-9]{6,6}$/;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="031"}
function oval_modulusValidator(a,b,c,d,e){this.type="modulus";this.id=a;this.descText=b;this.required=c;this.length=oval_checkArg(d)?d:8;this.state=oval_checkModulus;this.col=oval_colorize;this.regExpType=oval_checkArg(e)?e:"cvr";this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="007";this.errMsg[2]="005"}
function oval_ean13Validator(a,b,c){this.type="ean13";this.id=a;this.descText=b;this.required=c;this.length=13;this.state=oval_checkEan13;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="007";this.errMsg[2]="005"}
function oval_numberValidator(a,b,c,d,e){this.type="number";this.id=a;this.descText=b;this.required=c;this.min=oval_checkArg(d)?d:1;this.max=oval_checkArg(e)?e:1E3;this.state=oval_checkNumber;this.col=oval_colorize;this.regExp=/^-?\d*$/;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="008";this.errMsg[2]="009";this.errMsg[3]="010"}function oval_radioValidator(a,b,c){this.type="radio";this.id=a;this.descText=b;this.required=c;this.state=oval_checkRadio;this.col=oval_colorize;this.errMsg="003"}
function oval_selectValidator(a,b,c,d){this.type="select";this.id=a;this.descText=b;this.required=c;this.notSelectedText=oval_checkArg(d)?d:"Vælg";this.state=oval_checkSelect;this.col=oval_colorize;this.errMsg="003"}
function oval_selectMultiValidator(a,b,c,d,e,f){this.type="selectmulti";this.id=a;this.descText=b;this.required=c;this.min=oval_checkArg(d)?d:1;this.max=oval_checkArg(e)?e:100;this.enhed=oval_checkArg(f)?f:"punkter";this.state=oval_checkSelectMulti;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="011";this.errMsg[1]="012";this.errMsg[2]="013"}
function oval_checkboxValidator(a,b,c,d,e,f){this.type="checkbox";this.elements=this.id=a;this.descText=b;this.required=c;this.min=oval_checkArg(d)?d:1;this.max=oval_checkArg(e)?e:1;this.enhed=oval_checkArg(f)?f:"punkter";this.state=oval_checkCheckbox;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="011";this.errMsg[1]="012";this.errMsg[2]="013";this.errMsg[3]="003"}
function oval_ipValidator(a,b,c,d){this.type="ip";this.id=a;this.descText=b;this.required=c;this.typeip=oval_checkArg(d)?d:"both";this.state=oval_checkIp;this.col=oval_colorize;this.regExp=/^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])$/;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="005";this.errMsg[2]="014";this.errMsg[3]="015"}
function oval_dateValidator(a,b,c,d,e,f,h){this.type="date";this.id=a[0];this.id0=a[0];this.id1=a[1];this.id2=a[2];this.descText=b;this.required=c;this.min=oval_checkArg(d)?d:3;this.max=oval_checkArg(e)?e:90;this.daytype=oval_checkArg(f)?f:"weekdays";this.allowHolidays=oval_checkArg(h)?h:false;this.state=oval_checkDate;this.col=oval_colorize;this.regExp=/^\d{8}$/;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="005";this.errMsg[2]="016";this.errMsg[3]="017";this.errMsg[4]="018";this.errMsg[5]=
"019"}function oval_ageValidator(a,b,c,d,e){this.type="age";this.id=a[0];this.id0=a[0];this.id1=a[1];this.id2=a[2];this.descText=b;this.required=c;this.min=oval_checkArg(d)?d:18;this.max=oval_checkArg(e)?e:25;this.state=oval_checkAge;this.col=oval_colorize;this.regExp=/^\d{8}$/;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="005";this.errMsg[2]="020";this.errMsg[3]="021"}
function oval_duplicateValidator(a,b,c){this.type="duplicate";this.id=a[1];this.id0=a[0];this.id1=a[1];this.descText=b;this.required=c;this.state=oval_checkDuplicate;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="022";this.errMsg[1]="023"}
function oval_regexpValidator(a,b,c,d,e,f){this.type=f.length==0?"regexp":"regexp - "+f;this.id=a;this.descText=b;this.required=c;this.regExp=d;this.regExpEval=typeof e=="undefined"||e==null?true:e;this.state=oval_checkRegExp;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="004"}function oval_customValidator(a,b,c){this.type="custom";this.id=a;this.descText="n/a";this.func=b;this.state=oval_checkCustom;this.col=oval_colorize;this.errMsg=c}
function oval_IdentifierValidator(a,b,c,d){this.type="Identifier";this.id=a;this.descText=b;this.required=c;this.state=oval_checkIdentifier;this.maxLength=oval_checkArg(d)?d:255;this.regExp=/^[_a-zA-Z0-9]+$/;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="025";this.errMsg[2]="006"}
function oval_TextValidator(a,b,c,d){this.type="Text";this.id=a;this.descText=b;this.required=c;this.maxLength=oval_checkArg(d)?d:255;this.state=oval_checkText2;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="004";this.errMsg[2]="006"}
function oval_MultiLineTextValidator(a,b,c,d){this.type="Text";this.id=a;this.descText=b;this.required=c;this.maxLength=oval_checkArg(d)?d:255;this.state=oval_checkMultiLineText;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="006"}
function oval_DigitsValidator(a,b,c,d,e){this.type="digits";this.id=a;this.descText=b;this.required=c;this.minNumberDigits=oval_checkArg(d)?d:1;this.maxNumberDigits=oval_checkArg(e)?e:255;this.state=oval_checkDigits2;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="026";this.errMsg[2]="007"}
function oval_WithRegexpValidator(a,b,c,d,e,f){this.type="digits";this.id=a;this.descText=b;this.required=c;this.regexp=d;this.maxLength=oval_checkArg(e)?e:255;this.addDelimitersAndAnchors=oval_checkArg(f)?f:true;this.state=oval_checkWithRegexp;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="027";this.errMsg[2]="004"}
function oval_MobilePhoneNumberValidator(a,b,c){this.id=a;this.descText=b;this.required=c;this.state=oval_checkMobilePhoneNumber;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="007";this.errMsg[2]="028"}
function oval_DateValidator(a,b,c,d,e,f){this.type="date";this.id=a;this.descText=b;this.required=c;this.minDaysOffset=oval_checkArg(d)?d:null;this.maxDaysOffset=oval_checkArg(e)?e:null;this.dayType=oval_checkArg(f)?f:"all";this.state=oval_checkDate2;this.col=oval_colorize;this.errMsg=[];this.errMsg[0]="001";this.errMsg[1]="005";this.errMsg[2]="016";this.errMsg[3]="017";this.errMsg[4]="018";this.errMsg[5]="019";this.errMsg[6]="029";this.errMsg[7]="030"}
function oval_addGroup(a,b){this.elements[this.elements.length]=new oval_Validator(a,b,this.colShow,this.colErr,this.colNor)}function oval_newGroupObject(a,b){return new oval_Validator(a,b,this.colShow,this.colErr,this.colNor)}function oval_addObject(a){this.elements[this.elements.length]=a}
function oval_addElement(a,b,c,d,e,f,h,j){switch(a){case "text":this.elements[this.elements.length]=new oval_textValidator(b,c,d,e,f,h);break;case "stricttext":this.elements[this.elements.length]=new oval_textValidator(b,c,d,e,f);break;case "loosetext":this.elements[this.elements.length]=new oval_textValidator(b,c,d,e,f,"loose");break;case "digits":case "textnumber":this.elements[this.elements.length]=new oval_digitsValidator(b,c,d,e,f);break;case "number":this.elements[this.elements.length]=new oval_numberValidator(b,
c,d,e,f);break;case "modulus":this.elements[this.elements.length]=new oval_modulusValidator(b,c,d,e,f);break;case "CvrNumber":case "cvr":this.elements[this.elements.length]=new oval_modulusValidator(b,c,d,8,"cvr");break;case "CprNumber":case "cpr":this.elements[this.elements.length]=new oval_modulusValidator(b,c,d,10,"cpr");break;case "EAN13":case "ean13":this.elements[this.elements.length]=new oval_ean13Validator(b,c,d);break;case "radio":this.elements[this.elements.length]=new oval_radioValidator(b,
c,d);break;case "select":this.elements[this.elements.length]=new oval_selectValidator(b,c,d,e);break;case "selectmulti":this.elements[this.elements.length]=new oval_selectMultiValidator(b,c,d,e,f,h);break;case "checkbox":this.elements[this.elements.length]=new oval_checkboxValidator(b,c,d,e,f,h);break;case "IP":case "ip":this.elements[this.elements.length]=new oval_ipValidator(b,c,d,e);break;case "date":this.elements[this.elements.length]=new oval_dateValidator(b,c,d,e,f,h,j);break;case "age":this.elements[this.elements.length]=
new oval_ageValidator(b,c,d,e,f);break;case "duplicate":this.elements[this.elements.length]=new oval_duplicateValidator(b,c,d);break;case "regexp":this.elements[this.elements.length]=new oval_regexpValidator(b,c,d,e,f,"");break;case "url":case "Email":case "email":case "Domain":case "domain":if(a=="Email")a="email";if(a=="Domain")a="domain";this.elements[this.elements.length]=new oval_regexpValidator(b,c,d,a,true,a);break;case "custom":this.elements[this.elements.length]=new oval_customValidator(b,
c,d);break;case "Identifier":this.elements[this.elements.length]=new oval_IdentifierValidator(b,c,d,e);break;case "Text":this.elements[this.elements.length]=new oval_TextValidator(b,c,d,e);break;case "MultiLineText":this.elements[this.elements.length]=new oval_MultiLineTextValidator(b,c,d,e);break;case "Integer":a=oval_checkArg(e)?e:-2147483647;f=oval_checkArg(f)?f:2147483647;this.elements[this.elements.length]=new oval_numberValidator(b,c,d,a,f);break;case "PositiveInteger":f=oval_checkArg(e)?e:
2147483647;this.elements[this.elements.length]=new oval_numberValidator(b,c,d,1,f);break;case "PositiveOrZeroInteger":f=oval_checkArg(e)?e:2147483647;this.elements[this.elements.length]=new oval_numberValidator(b,c,d,0,f);break;case "Digits":this.elements[this.elements.length]=new oval_DigitsValidator(b,c,d,e,f);break;case "WithRegexp":this.elements[this.elements.length]=new oval_WithRegexpValidator(b,c,d,e,f,h);break;case "PhoneNumber":this.elements[this.elements.length]=new oval_DigitsValidator(b,
c,d,8,8);break;case "MobilePhoneNumber":this.elements[this.elements.length]=new oval_MobilePhoneNumberValidator(b,c,d);break;case "Date":this.elements[this.elements.length]=new oval_DateValidator(b,c,d,e,f,h);break;case "InternalIP":this.elements[this.elements.length]=new oval_ipValidator(b,c,d,"internal");break;case "ExternalIP":this.elements[this.elements.length]=new oval_ipValidator(b,c,d,"external");break;case "EmNumber":this.elements[this.elements.length]=new oval_emValidator(b,c,d);break;default:alert('Elementet: "'+
b+'" kan ikke tilmeldes validatorobjektet !!!')}if(this.colShow){this.elements[this.elements.length-1].colShow=true;this.elements[this.elements.length-1].colNor=this.colNor;this.elements[this.elements.length-1].colErr=this.colErr}else this.elements[this.elements.length-1].colShow=false}
function oval_newElementObject(a,b,c,d,e,f,h,j){var g;switch(a){case "text":g=new oval_textValidator(b,c,d,e,f,h);break;case "stricttext":g=new oval_textValidator(b,c,d,e,f);break;case "loosetext":g=new oval_textValidator(b,c,d,e,f,"loose");break;case "digits":case "textnumber":g=new oval_digitsValidator(b,c,d,e,f);break;case "number":g=new oval_numberValidator(b,c,d,e,f);break;case "modulus":g=new oval_modulusValidator(b,c,d,e,f);break;case "CvrNumber":case "cvr":g=new oval_modulusValidator(b,c,
d,8,"cvr");break;case "CprNumber":case "cpr":g=new oval_modulusValidator(b,c,d,10,"cpr");break;case "EAN13":case "ean13":g=new oval_ean13Validator(b,c,d);break;case "radio":g=new oval_radioValidator(b,c,d);break;case "select":g=new oval_selectValidator(b,c,d,e);break;case "selectmulti":g=new oval_selectMultiValidator(b,c,d,e,f,h);break;case "checkbox":g=new oval_checkboxValidator(b,c,d,e,f,h);break;case "IP":case "ip":g=new oval_ipValidator(b,c,d,e);break;case "date":g=new oval_dateValidator(b,c,
d,e,f,h,j);break;case "age":g=new oval_ageValidator(b,c,d,e,f);break;case "duplicate":g=new oval_duplicateValidator(b,c,d);break;case "regexp":g=new oval_regexpValidator(b,c,d,e,f,"");break;case "url":case "Email":case "email":case "Domain":case "domain":if(a=="Email")a="email";if(a=="Domain")a="domain";g=new oval_regexpValidator(b,c,d,a,true,a);break;case "custom":g=new oval_customValidator(b,c,d);break;case "Identifier":g=new oval_IdentifierValidator(b,c,d);break;case "Text":g=new oval_TextValidator(b,
c,d,e);break;case "MultiLineText":g=new oval_MultiLineTextValidator(b,c,d,e);break;case "Integer":a=oval_checkArg(e)?e:-2147483647;f=oval_checkArg(f)?f:2147483647;g=new oval_numberValidator(b,c,d,a,f);break;case "PositiveInteger":f=oval_checkArg(e)?e:2147483647;g=new oval_numberValidator(b,c,d,1,f);break;case "PositiveOrZeroInteger":f=oval_checkArg(e)?e:2147483647;g=new oval_numberValidator(b,c,d,0,f);break;case "Digits":g=new oval_DigitsValidator(b,c,d,e,f);break;case "WithRegexp":g=new oval_WithRegexpValidator(b,
c,d,e,f,h);break;case "PhoneNumber":g=new oval_DigitsValidator(b,c,d,8,8);break;case "MobilePhoneNumber":g=new oval_MobilePhoneNumberValidator(b,c,d);break;case "Date":g=new oval_DateValidator(b,c,d,e,f,h);break;case "InternalIP":g=new oval_ipValidator(b,c,d,"internal");break;case "ExternalIP":g=new oval_ipValidator(b,c,d,"external");break;case "EmNumber":g=new oval_emValidator(b,c,d);break;default:alert('Elementet: "'+b+'" findes ikke !!!')}if(this.colShow){g.colShow=true;g.colNor=this.colNor;g.colErr=
this.colErr}else g.colShow=false;return g}function oval_group(a){for(var b=this.elements.length-1;b>=0;b--)if(this.elements[b].type=="validatorObject")if(this.elements[b].id==a)return this.elements[b];return null}function oval_element(a){for(var b=this.elements.length-1;b>=0;b--)if(this.elements[b].id==a)return this.elements[b];return null}
function oval_getRegExp(a){switch(a){case "loose":a=/[\{\}\[\]\<\>\"\'\\\;\|\½§¤#£$%]|^\s+$/;break;case "strict":a=/[\(\)\{\}\[\]\<\>\"\'\/\\\:\;\|\½§¤#\@\£\$\%\&\=\+\_\?\!]|^\s+$/;break;case "number":a=/^\d*$/;break;case "cellphone":a=/^2\d{1}[123456789]{1}\d{5}|30[123456789]{1}\d{5}|31[12]{1}\d{5}|3130\d{4}|31[4567]{1}\d{5}|4[01]{1}[123456789]{1}\d{5}|501\d{5}|51\d{6}|60[1234]{1}\d{5}|6050\d{4}|60[6789]{1}\d{5}|61[123456789]{1}\d{5}/;break;case "landline":a=/^2\d{1}[123456789]{1}\d{5}|30[123456789]{1}\d{5}|31[12]{1}\d{5}|3130\d{4}|31[4567]{1}\d{5}|4[01]{1}[123456789]{1}\d{5}|501\d{5}|51\d{6}|60[1234]{1}\d{5}|6050\d{4}|60[6789]{1}\d{5}|61[123456789]{1}\d{5}/;
break;case "domain":a=/^[a-z0-9æøå](([_\.\-]?[a-z0-9æøå]+)*)[\.](dk|com|net|org|info|name|biz|pro|edu|coop|jobs|mobi|cat|museum|travel|aero|int|gov|mil|[a-z]{2})$/i;break;case "url":a=/^(ftp|https?\:\/\/)?((([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])|[a-z0-9æøå](([_\.\-]?[a-z0-9æøå]+)*)[\.](dk|com|net|org|info|name|biz|pro|edu|coop|jobs|mobi|cat|museum|travel|aero|int|gov|mil|[a-z]{2}))(([\/]{1}[a-z0-9\~]*)*)$/i;break;case "email":a=/^[a-z0-9](([_\.\-\+]?[a-z0-9]*)*)\@[a-z0-9](([_\.\-]?[a-z0-9]+)*)\.(dk|com|net|org|info|name|biz|pro|edu|coop|jobs|mobi|cat|museum|travel|aero|int|gov|mil|[a-z]{2})$/i;
break;case "cvr":a=/^(\d{8}|(\d{2}-){3}\d{2})$/;break;case "cpr":a=/^\d{6}[\-]?\d{4}$/;break;default:a=null;break}return a}
function oval_checkText(){var a="";if(oval_checkDom(this.id)){var b=this.regExpType,c=typeof this.customRegExp!="undefined"?this.customRegExp:oval_getRegExp(b);b=typeof this.customRegExpEval!="undefined"?this.customRegExpEval:b=="domain"||b=="url"||b=="email"?true:false;var d=document.getElementsByName(this.id)[0].value;if(this.required||!this.required&&d!="")if(this.required==true&&d=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b&&!d.match(c))a=ovalSet.getErrMsg(this.errMsg[1],this.descText);
else if(!b&&d.match(c))a=ovalSet.getErrMsg(this.errMsg[1],this.descText);else if(d.length<this.min||d.length>this.max)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.min,this.max)}a?this.col(false):this.col(true);return a}
function oval_checkText2(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required||!this.required&&b!="")if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b.match(/[\n\r]/))a=ovalSet.getErrMsg(this.errMsg[1],this.descText);else if(b.length>this.maxLength)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,1,this.maxLength)}a?this.col(false):this.col(true);return a}
function oval_checkMultiLineText(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required||!this.required&&b!="")if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b.length>this.maxLength)a=ovalSet.getErrMsg(this.errMsg[1],this.descText,1,this.maxLength)}a?this.col(false):this.col(true);return a}
function oval_checkEm(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")b.match(this.regExp)||(a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.length))}a?this.col(false):this.col(true);return a}
function oval_checkDigits(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value,c=this.regExpType,d=this.customRegExp?this.customRegExp:oval_getRegExp(this.regExpType);c=typeof this.customRegExpEval!="undefined"?this.customRegExpEval:c=="number"||c=="cellphone"?true:false;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")if(!c&&b.match(d))a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.length);else if(c&&!b.match(d))a=
ovalSet.getErrMsg(this.errMsg[1],this.descText,this.length);else if(b.length!=this.length)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.length)}a?this.col(false):this.col(true);return a}
function oval_checkDigits2(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")b.match(new RegExp("^[0-9]{"+this.minNumberDigits+","+this.maxNumberDigits+"}$"))||(a=this.minNumberDigits==this.maxNumberDigits?ovalSet.getErrMsg(this.errMsg[2],this.descText,this.minNumberDigits):ovalSet.getErrMsg(this.errMsg[1],this.descText,this.minNumberDigits,this.maxNumberDigits))}a?
this.col(false):this.col(true);return a}
function oval_checkWithRegexp(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!=""&&b.length>this.maxLength)a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.maxLength);else if(b!="")b.match(new RegExp(this.addDelimitersAndAnchors?"^"+this.regexp+"$":this.regexp))||(a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.minNumberDigits,this.maxNumberDigits))}a?this.col(false):
this.col(true);return a}
function oval_checkNumber(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")if(b.match(this.regExp)){b=parseInt(b,10);if(b<this.min)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.min);else if(b>this.max)a=ovalSet.getErrMsg(this.errMsg[3],this.descText,this.max)}else a=ovalSet.getErrMsg(this.errMsg[1],this.descText)}a?this.col(false):this.col(true);return a}
function oval_checkModulus(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!=""){pattern=oval_getRegExp(this.regExpType);if(pattern.test(b)){if(!oval_modulusTest(b)||!b.match(/[^0]/))a=ovalSet.getErrMsg(this.errMsg[2],this.descText)}else a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.length)}}a?this.col(false):this.col(true);return a}
function oval_checkEan13(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")if(b.match(/^\d{13}/)){if(!oval_eanTest(b)||!b.match(/[^0]/))a=ovalSet.getErrMsg(this.errMsg[2],this.descText)}else a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.length)}a?this.col(false):this.col(true);return a}
function oval_checkRadio(){var a="";if(oval_checkDom(this.id))if(this.required==true){for(var b=null,c=0;c<document.getElementsByName(this.id).length;c++)if(document.getElementsByName(this.id)[c].checked)b=document.getElementsByName(this.id)[c].value;if(b==null)a=ovalSet.getErrMsg(this.errMsg,this.descText)}a?this.col(false):this.col(true);return a}
function oval_checkSelect(){var a="";if(oval_checkDom(this.id)){a=document.getElementsByName(this.id)[0];a=a.options[a.selectedIndex].value!=""?a.options[a.selectedIndex].value:a.options[a.selectedIndex].innerHTML;a=this.required&&a==this.notSelectedText?ovalSet.getErrMsg(this.errMsg,this.descText):""}a?this.col(false):this.col(true);return a}
function oval_checkSelectMulti(){var a="";if(oval_checkDom(this.id)){for(var b=this.id,c=0,d=0;d<document.getElementsByName(b)[0].length;d++)document.getElementsByName(b)[0][d].selected&&c++;if(this.required)if(this.min!=this.max)if(c<this.min)a=ovalSet.getErrMsg(this.errMsg[0],this.descText,this.min,this.enhed);else{if(c>this.max)a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.max,this.enhed)}else if(c!=this.min)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.min,this.enhed)}a?this.col(false):
this.col(true);return a}
function oval_checkCheckbox(){var a="",b=false,c="",d=0,e=false;if(typeof this.elements=="object"){b=true;c=this.elements[0]}else c=this.elements;this.id=c;if(b===false){if(oval_checkDom(this.id)){e=true;document.getElementsByName(this.id)[0].checked&&d++}}else for(b=1;b<this.elements.length;b++)if(oval_checkDom(this.elements[b])){e=true;document.getElementsByName(this.elements[b])[0].checked&&d++}if(e==true)if(this.required||d>0)if(this.min!=this.max)if(d<this.min)a=ovalSet.getErrMsg(this.errMsg[0],this.descText,
this.min,this.enhed);else{if(d>this.max)a=ovalSet.getErrMsg(this.errMsg[1],this.descText,this.max,this.enhed)}else if(d!=this.min)a=this.min==1?ovalSet.getErrMsg(this.errMsg[3],this.descText):ovalSet.getErrMsg(this.errMsg[2],this.descText,this.min,this.enhed);a?this.col(false):this.col(true);return a}
function oval_checkIp(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")if(b.match(this.regExp))if(this.typeip=="internal"&&!b.match(/^(192.168|0?10.|172.0?1[6789]{1}|172.0?2[0-9]{1}|172.0?3[01]{1})/))a=ovalSet.getErrMsg(this.errMsg[2],this.descText);else{if(this.typeip=="external"&&b.match(/^(192.168|0?10.|172.0?1[6789]{1}|172.0?2[0-9]{1}|172.0?3[01]{1})/))a=ovalSet.getErrMsg(this.errMsg[3],
this.descText)}else a=ovalSet.getErrMsg(this.errMsg[1],this.descText)}a?this.col(false):this.col(true);return a}
function oval_checkDate(){var a="";if(oval_checkDom(this.id0)){var b=oval_formatDate(document.getElementsByName(this.id0)[0].value,document.getElementsByName(this.id1)[0].value,document.getElementsByName(this.id2)[0].value),c=b[0]+b[1]+b[2],d=oval_createDate(b[0],b[1],b[2]),e=Date.parse(d),f=new Date,h=Date.parse(oval_createDate(f.getFullYear(),f.getMonth()+1,f.getDate(),this.min));f=Date.parse(oval_createDate(f.getFullYear(),f.getMonth()+1,f.getDate(),this.max));if(this.required==true&&c=="")a=ovalSet.getErrMsg(this.errMsg[0],
this.descText);else if(c!="")if(!c.match(this.regExp)||d==false)a=ovalSet.getErrMsg(this.errMsg[1],this.descText);else if(e<h)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.min);else if(e>=f)a=ovalSet.getErrMsg(this.errMsg[3],this.descText,this.max);else if(!this.allowHolidays&&oval_isHoliday(b))a=ovalSet.getErrMsg(this.errMsg[4],this.descText," ("+oval_isHoliday(b)+")");else oval_checkDay(b,this.daytype)||(a=ovalSet.getErrMsg(this.errMsg[5],this.descText))}a?this.col(false):this.col(true);
return a}
function oval_checkDate2(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!=""){b.match(/^\d{8}|\d{4}-\d{2}-\d{2}|\d{4} \d{2} \d{2}$/)||(a=ovalSet.getErrMsg(this.errMsg[1],this.descText));b=b.replace(new RegExp("[- ]","g"),"");var c=b.substr(0,4),d=b.substr(4,2);b=b.substr(6,2);var e=oval_createDate(c,d,b,0);e||(a=ovalSet.getErrMsg(this.errMsg[1],this.descText));var f=new Date;
f=new Date(f.getFullYear(),f.getMonth(),f.getDate());if(this.minDaysOffset){if(e.getTime()<f.getTime()+this.minDaysOffset*24*60*60*1E3)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,this.minDaysOffset)}else if(this.maxDaysOffset){if(e.getTime()>f.getTime()+this.maxDaysOffset*24*60*60*1E3)a=ovalSet.getErrMsg(this.errMsg[3],this.descText,this.maxDaysOffset)}else if(this.dayType)oval_checkDay([c,d,b],this.dayType)||(a={weekdays:ovalSet.getErrMsg(this.errMsg[5],this.descText),weekend:ovalSet.getErrMsg(this.errMsg[6],
this.descText),weekdaysplussaturday:ovalSet.getErrMsg(this.errMsg[7],this.descText)}[this.dayType])}}a?this.col(false):this.col(true);return a}
function oval_checkAge(){var a="";if(oval_checkDom(this.id0)){var b=oval_formatDate(document.getElementsByName(this.id0)[0].value,document.getElementsByName(this.id1)[0].value,document.getElementsByName(this.id2)[0].value),c=b[0]+b[1]+b[2],d=oval_createDate(b[0],b[1],b[2]);b=oval_calculateAge(b);if(this.required==true&&c=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(c!="")if(!c.match(this.regExp)||!d||!b)a=ovalSet.getErrMsg(this.errMsg[1],this.descText);else if(b<this.min)a=ovalSet.getErrMsg(this.errMsg[2],
this.min);else if(b>=this.max)a=ovalSet.getErrMsg(this.errMsg[3],this.max)}a?this.col(false):this.col(true);return a}function oval_checkDuplicate(){var a="";if(oval_checkDom(this.id1)){var b=document.getElementsByName(this.id0)[0].value,c=document.getElementsByName(this.id1)[0].value;if(this.required==true&&c==""&&b!="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!=c)a=ovalSet.getErrMsg(this.errMsg[1],this.descText)}a?this.col(false):this.col(true);return a}
function oval_checkRegExp(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required||!this.required&&b!=""){var c=this.regExp;switch(c){case "url":case "email":case "domain":c=oval_getRegExp(c);break;default:break}if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(this.regExpEval==false&&b.match(c))a=ovalSet.getErrMsg(this.errMsg[1],this.descText);else if(this.regExpEval==true&&!b.match(c))a=ovalSet.getErrMsg(this.errMsg[1],
this.descText)}}a?this.col(false):this.col(true);return a}function oval_checkCustom(){var a="",b="";b=this.func!=null?typeof this.func=="function"?this.func():eval(this.func):this.errMsg;if(typeof b=="string"&&b.length!=0)a=b;else if(typeof b=="boolean"&&b===false)a=this.errMsg;a?this.col(false):this.col(true);return a}
function oval_checkIdentifier(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b.length>this.maxLength)a=ovalSet.getErrMsg(this.errMsg[2],this.descText,1,this.maxLength);else if(b!="")b.match(this.regExp)||(a=ovalSet.getErrMsg(this.errMsg[1],this.descText))}a?this.col(false):this.col(true);return a}
function oval_checkMobilePhoneNumber(){var a="";if(oval_checkDom(this.id)){var b=document.getElementsByName(this.id)[0].value;if(this.required==true&&b=="")a=ovalSet.getErrMsg(this.errMsg[0],this.descText);else if(b!="")if(b.match(/^[0-9]{8}$/)){var c=[{start:201E5,end:20999999},{start:211E5,end:21999999},{start:221E5,end:22999999},{start:231E5,end:23999999},{start:241E5,end:24999999},{start:251E5,end:25999999},{start:261E5,end:26999999},{start:271E5,end:27999999},{start:281E5,end:28999999},{start:291E5,
end:29999999},{start:301E5,end:30999999},{start:311E5,end:31999999},{start:401E5,end:40999999},{start:411E5,end:41999999},{start:421E5,end:42999999},{start:5015E4,end:50999999},{start:511E5,end:51999999},{start:521E5,end:52999999},{start:531E5,end:53999999},{start:601E5,end:60999999},{start:611E5,end:61999999}],d=false;b=0+b;for(var e=0;e<c.length;e++){var f=c[e];if(b>=f.start&&b<=f.end)d=true}d||(a=ovalSet.getErrMsg(this.errMsg[2],this.descText))}else a=ovalSet.getErrMsg(this.errMsg[1],this.descText,
8)}a?this.col(false):this.col(true);return a}function oval_colorize(a){if(typeof this.colShow!="undefined")if(document.getElementById("oval-"+this.id)!=null)document.getElementById("oval-"+this.id).style.color=a!=true?this.colErr:this.colNor;else if(document.getElementById(this.id+"Label")!=null)document.getElementById(this.id+"Label").style.color=a!=true?this.colErr:this.colNor}function oval_showContents(){this.errMsg=oval_loopContents(this,4);alert(this.errMsg)}
function oval_loopContents(a,b){for(var c=0;c<a.elements.length;c++)if(a.elements[c].type=="validatorObject"){a.errMsg=a.errMsg+"\n"+oval_indentation(b," ")+"× "+a.elements[c].descText+" ("+a.elements[c].id+")\n";a.errMsg+=oval_loopContents(a.elements[c],b+4)}else a.errMsg=a.errMsg+oval_indentation(b," ")+"» "+a.elements[c].descText+" ("+a.elements[c].type+")\n";return a.errMsg}
function oval_clearHidden(){var a=document.forms[this.id];if(typeof a!="undefined")for(var b=0;b<a.length;b++)if(oval_checkDom(a[b].name)!=true)switch(a[b].type){case "text":a[b].value="";break;case "radio":case "checkbox":a[b].checked=false;break;case "select-multiple":for(var c=0;c<a[b].length;c++)if(a[b][c].selected)a[b][c].selected=false;break}}
function oval_validate(a,b){switch(arguments.length!=0?a:"alertGroup"){case "alertSimple":oval_validateAlert(this,"simple");break;case "alertGroup":oval_validateAlert(this,"group",b);break;case "divGroup":oval_validateDiv(this,"group");break}return this.errMsg.length==0?true:false}
function oval_validateAlert(a,b,c){if(typeof c=="undefined")c=true;switch(b){case "simple":a.errMsg=oval_validateAlertSimple(a);break;case "group":a.errMsg=oval_validateAlertGroup(a);break}if(a.errMsg.length==0)return true;else{if(typeof a.errStartMsg!="undefined")a.errMsg=a.errStartMsg+"\n"+a.errMsg;if(typeof a.errEndMsg!="undefined")a.errMsg=a.errMsg+"\n"+a.errEndMsg;c==true&&alert(a.errMsg);return false}}
function oval_validateAlertSimple(a){var b="";a.errMsg="";for(var c=0;c<a.elements.length;c++)if(a.elements[c].type!="validatorObject"){b=a.elements[c].state();if(b!="")a.errMsg=a.errMsg+b+" ("+a.descText+")\n"}else a.errMsg+=oval_validateAlertSimple(a.elements[c]);return a.errMsg}
function oval_validateAlertGroup(a){var b="",c="";a.errMsg="";for(var d=0;d<a.elements.length;d++)if(a.elements[d].type!="validatorObject"){var e=false;b=a.elements[d].state();if(b!=""){if(a.descText!=c){c=a.descText;e=true}if(e)a.errMsg+="\n"+c+"\n";a.errMsg+=oval_indentation(4," ")+"»  "+b+"\n"}}else a.errMsg+=oval_validateAlertGroup(a.elements[d]);return a.errMsg}
function oval_validateDiv(a,b){b=document.createElement("div");b.setAttribute("id","oval-alert");b.setAttribute("class","oval-alert");a.errMsg=oval_validateDivGroup(a);if(a.errMsg.length==0)return true;else{if(typeof a.errStartMsg!="undefined")a.errMsg='<p class="oval-start">'+a.errStartMsg+"<br /></p>"+a.errMsg;if(typeof a.errEndMsg!="undefined")a.errMsg=a.errMsg+'<p class="oval-end"><br />'+a.errEndMsg+"</p>";a.errMsg+='<p class="oval-buttons"><br /><input type="button" onclick="oval_validateDivClose()" value="Fortsæt" /></p>';
b.innerHTML=a.errMsg;document.body.appendChild(b);return false}}
function oval_validateDivGroup(a,b){var c="",d="";a.errMsg="";for(var e=0;e<a.elements.length;e++)if(a.elements[e].type!="validatorObject"){if(a.descText!=d){d=a.descText;categoryShow=true;if(typeof b!="undefined"&&b)a.errMsg+="</ul>"}c=a.elements[e].state();if(c!=""){if(categoryShow){categoryShow=false;a.errMsg+='<p class="oval-heading">'+d+"</p><ul>"}a.errMsg=a.errMsg+"<li>» "+c+"</li>"}}else a.errMsg+=oval_validateDivGroup(a.elements[e],a.errMsg?true:false);return a.errMsg}
function oval_validateDivClose(){var a=document.getElementById("oval-alert");document.body.removeChild(a)}function oval_validateDivSetFocus(){if(document.getElementById("oval-alert")!=null){document.getElementById("oval-alert").focus();return false}else return true}function oval_indentation(a,b){for(var c="",d=0;d<a;d++)c+=b;return c}function oval_capitalize(a){return a.charAt(0).toUpperCase()+a.substring(1)}function oval_checkArg(a){return typeof a!="undefined"&&a!=null?true:false}
function oval_createDate(a,b,c,d){d=oval_checkArg(d)?d:false;var e=oval_isLeapYear(a),f=e?[0,31,60,91,121,152,182,213,244,274,305,335,366]:[0,31,59,90,120,151,181,212,243,273,304,334,365],h=e?[31,29,31,30,31,30,31,31,30,31,30,31]:[31,28,31,30,31,30,31,31,30,31,30,31];e=e?366:365;if(parseInt(c,10)<=h[parseInt(b,10)-1]?true:false)if(d){b=f[parseInt(b,10)-1]+parseInt(c,10)+d;return oval_findNewDate(b-e,parseInt(a,10)+1)}else return new Date(a.toString(),eval(parseInt(b,10)-1).toString(),c.toString());
else return false}function oval_findNewDate(a,b){var c=oval_isLeapYear(b),d=c?[0,31,60,91,121,152,182,213,244,274,305,335,366]:[0,31,59,90,120,151,181,212,243,273,304,334,365],e=c?[31,29,31,30,31,30,31,31,30,31,30,31]:[31,28,31,30,31,30,31,31,30,31,30,31];c=c?366:365;var f;if(a>c)return oval_findNewDate(a-c,b+1);else{for(c=0;c<13;)if(a<=d[c]){f=c==0?11:c-1;c=100}else c++;a-=d[f];a=a==0?e[f-1]:a;return new Date(b.toString(),f.toString(),a.toString())}}
function oval_formatDate(a,b,c){if(a==""&&b==""&&c=="")return new Array("","","");else if(typeof a=="string"&&typeof b=="string"&&typeof c=="string"){a=parseInt(a,10)<10&&a.length<2?"0"+a:a;var d;if(b=="1"||b=="01"||b=="jan"||b=="januar")d="01";else if(b=="2"||b=="02"||b=="feb"||b=="februar")d="02";else if(b=="3"||b=="03"||b=="mar"||b=="marts")d="03";else if(b=="4"||b=="04"||b=="apr"||b=="april")d="04";else if(b=="5"||b=="05"||b=="maj")d="05";else if(b=="6"||b=="06"||b=="juni")d="06";else if(b=="7"||
b=="07"||b=="juli")d="07";else if(b=="8"||b=="08"||b=="aug"||b=="august")d="08";else if(b=="9"||b=="09"||b=="sep"||b=="september")d="09";else if(b=="10"||b=="okt"||b=="oktober")d="10";else if(b=="11"||b=="nov"||b=="november")d="11";else if(b=="12"||b=="dec"||b=="december")d="12";b=c.length==4?c:parseInt(c,10)<=15?"20"+c:"19"+c;return new Array(b,d,a)}else return new Array("","","")}
function oval_checkDay(a,b){a=(new Date(a[0],parseInt(a[1],10)-1,a[2])).getDay();var c=false;switch(b){case "all":c=true;break;case "weekdaysplussaturday":if(a>0)c=true;break;case "weekdays":if(a>0&&a<6)c=true;break;case "weekend":if(a==0||a==6)c=true}return c}function oval_isLeapYear(a){a=parseInt(a,10);return a%4==0&&a%100!=0||a%400==0?true:false}
function oval_isHoliday(a){var b=a[2],c=a[1],d=a[0];a=oval_isLeapYear(d)?[0,31,60,91,121,152,182,213,244,274,305,335,366]:[0,31,59,90,120,151,181,212,243,273,304,334,365];b=a[parseInt(c,10)-1]+parseInt(b,10);c=oval_calculateEaster(d);c=a[parseInt(c[1],10)-1]+parseInt(c[2],10);a=a[11]+24;return b==1?"Nytårsdag":b==c-7?"Palmesøndag":b==c-3?"Skærtorsdag":b==c-2?"Langfredag":b==c?"Påskedag":b==c+1?"2. Påskedag":b==c+26?"Store Bededag":b==c+39?"Kristi Himmelfartsdag":b==c+49?"Pinsedag":b==c+50?"2. Pinsedag":
b==a+1?"Juledag":b==a+2?"2. Juledag":false}function oval_calculateEaster(a){var b,c,d=[];a=parseInt(a,10);for(b=225-11*(a%19);b>50;)b-=30;b=b>48?b-1:b;c=(a+parseInt(a/4,10)+b+1)%7;b=b+7-c;if(b<32){d[0]=a;d[1]=3;d[2]=b}else{d[0]=a;d[1]=4;d[2]=b-31}return d}function oval_calculateAge(a){var b=a[2],c=a[1];a=a[0];var d=new Date,e=d.getDate(),f=d.getMonth()+1;d=d.getFullYear();return a>d||a==d&&c>f||a==d&&c==f&&b>=e?false:(c<f||c==f&&b<e?false:true)?d-a-1:d-a}
function oval_checkDom(a){if(a!=""){a=document.getElementsByName(a)[0];return oval_loopDom(a)}else return true}function oval_loopDom(a){return a.nodeName=="FORM"?true:a.style.display=="none"||a.style.display==""&&a.className=="mf-hidden"?false:oval_loopDom(a.parentNode)}function oval_modulusTest(a){a=a.replace(/[\D]/g,"");for(var b=0,c=1,d=a.length-1;d>=0;d--){if(c==8)c=2;b+=parseInt(a.charAt(d),10)*c;c++}return b%11==0?true:false}
function oval_eanTest(a){a=a.replace(/[\D]/g,"");var b=3;result=0;for(i=a.length-2;i>=0;i--){result+=parseInt(a.charAt(i),10)*b;b=4-b}return(1E3-result)%10==parseInt(a.charAt(a.length-1),10)?true:false};
