
function _MaskAPI(){this.version="0.4a";this.instances=0;this.objects={};}
MaskAPI=new _MaskAPI();function Mask(m,t){this.mask=m;this.type=(typeof t=="string")?t:"string";this.error=[];this.errorCodes=[];this.value="";this.strippedValue="";this.allowPartial=false;this.id=MaskAPI.instances++;this.ref="MaskAPI.objects['"+this.id+"']";MaskAPI.objects[this.id]=this;}
Mask.prototype.attach=function(o){$addEvent(o,"onkeydown","return "+this.ref+".isAllowKeyPress(event, this);",true);if(!(IE&&o.onchange!=null))
$addEvent(o,"onkeyup","return "+this.ref+".getKeyPress(event, this);",true);$addEvent(o,"onblur","this.value = "+this.ref+".format(this.value);",true);}
Mask.prototype.isAllowKeyPress=function(e,o){if(this.type!="string")return true;var xe=new qEvent(e);if(((xe.keyCode>47))&&!xe.ctrlKey)return false;return true;}
Mask.prototype.getOnblur=function(e,o,c){if(this.type=="number"&&/^\$\d*$/.test(this.mask))this.value=currencyFormat(o,21,e,2,this.mask);}
Mask.prototype.getKeyPress=function(e,o,_u){this.allowPartial=true;var xe=new qEvent(e);if((xe.keyCode>47)||(_u==true)||(xe.keyCode==8||xe.keyCode==46)){var v=o.value,d;if(xe.keyCode==8||xe.keyCode==46)d=true;else d=false
if(this.type=="number"){if(/^\$\d*$/.test(this.mask))this.value=currencyFormat(o,21,e,2,this.mask);else this.value=this.setNumber(v,d);}
else if(this.type=="date")this.value=this.setDateKeyPress(v,d);else if(this.mask=="IP")this.value=formatIP(o);else if(this.mask=="U>")o.style.textTransform='uppercase';else if(this.mask=="l>")o.style.textTransform='lowercase';else this.value=this.setGeneric(v,d);if(this.mask!="U>"&&this.mask!="l>"){o.value=this.value;}}
this.allowPartial=false;return true;}
Mask.prototype.format=function(s,o){if(this.type=="number"){if(/^\$\d*$/.test(this.mask))this.value=currencyFormat(o,21,e,2,this.mask);else this.value=this.setNumber(s);}else if(this.type=="date")this.value=this.setDate(s);else this.value=this.setGeneric(s);return this.value;}
Mask.prototype.throwError=function(c,e,v){this.error[this.error.length]=e;this.errorCodes[this.errorCodes.length]=c;if(typeof v=="string")
return v;return true;}
Mask.prototype.setGeneric=function(_v,_d){var v=_v,m=this.mask,mf="";var r="xU#*l",rt=[],nv="",t,x,a=[],j=0,index=0;rx={"x":"A-Za-z","U":"A-ZÀ-Ú","#":"0-9","*":"A-Za-z0-9","l":"a-zà-ú"};var ry={"x":"A-Za-zÀ-ú","*":"A-Za-zÀ-ú0-9","c":" .,;:%()'{}|?&<>!{}*^_"};if(this.mask&&this.mask.length>0&&this.mask.charAt(0)!='U'&&this.mask.charAt(0)!="l"){v=v.replace(new RegExp("[^"+rx["*"]+"]","gi"),"");}
if((_d==true)&&(v.length==this.strippedValue.length))v=v.substring(0,v.length-1);this.strippedValue=v;var b=[];for(var i=0;i<m.length;i++){x=m.charAt(i);t=(r.indexOf(x)>-1);if(x=="!")x=m.charAt(i++);if((t&&!this.allowPartial)||(t&&this.allowPartial&&(rt.length<v.length)))rt[rt.length]="["+rx[x]+"]";a[a.length]={"chr":x,"mask":t};}
var hasOneValidChar=false;if(!this.allowPartial&&!(new RegExp(rt.join(""))).test(v))return this.throwError(1,"O valor \""+_v+"\" deve estar no formato "+this.mask+".",_v);else if((this.allowPartial&&(v.length>0))||!this.allowPartial){for(i=0;i<a.length;i++){if(a[i].mask){if(a.length>i+1){if((a[i].chr=="U"&&a[i+1].chr==">")||(a[i].chr=="l"&&a[i+1].chr==">")){mf=a[i].chr+a[i+1].chr;index=i;break;}}
if(a[i].chr=="U"&&i+1<=v.length)v=v.setCharAtUpper(j,v);if(a[i].chr=="l"&&i+1<=v.length)v=v.setCharAtLower(j,v);while(v.length>0&&!(new RegExp(rt[j])).test(v.charAt(j)))v=(v.length==1)?"":v.substring(1);if(v.length>0){nv+=v.charAt(j);hasOneValidChar=true;}
j++;}else nv+=a[i].chr;if(this.allowPartial&&(j>v.length))break;}}
if(this.allowPartial&&!hasOneValidChar)nv="";if(this.allowPartial){if(nv.length<a.length)this.nextValidChar=rx[a[nv.length].chr];else this.nextValidChar=null;}
return nv;}
String.prototype.setCharAtUpper=function(index,c){if(index>this.length-1)return c;return this.substr(0,index)+this.substr(index,1).toUpperCase()+this.substr(index+1);}
String.prototype.setCharAtLower=function(index,c){if(index>this.length-1)return c;return this.substr(0,index)+this.substr(index,1).toLowerCase()+this.substr(index+1);}
Mask.prototype.setNumber=function(_v,_d){var v=String(_v).replace(/[^\d,-]*/gi,""),m=this.mask;if(v.length>1){var isNegative=/^-/.test(v);v=v.replace(/-/g,"");if(isNegative){if(v.length==0){v="-";}else{v="-"+v;}}}
v=v.replace(/^,.*/,"").replace(/[^\d]+,/g,"");v=v.replace(/\,/,"d").replace(/\,/g,"").replace(/d/,",");if(!/^[\$]?((\$?[\+-]?([0#]{1,3},)?[0#]*(\.[0#]*)?)|([\+-]?\([\+-]?([0#]{1,3},)?[0#]*(\.[0#]*)?\)))$/.test(m))
return this.throwError(1,"Uma máscara inválida foi definida pelo construtor.",_v);if((_d==true)&&(v.length==this.strippedValue.length))v=v.substring(0,v.length-1);if(this.allowPartial&&(v.replace(/[^0-9]/,"").length==0))return v;this.strippedValue=v;if(v.length==0)v=NaN;var vn=Number(v);try{vn=Number(v.replace(',','.'));}catch(e){}
if(isNaN(vn))return this.throwError(2,"O valor escolhido não é um número.",_v);if(m.length==0)return v;var vi=((v.indexOf(",")>-1)?v.split(",")[0]:v);vi=vi.replace("-","");var vd=(v.indexOf(",")>-1)?v.split(",")[1]:"";var _vd=vd;var isNegative=(vn!=0&&Math.abs(vn)*-1==vn);var show={"$":/^[\$]/.test(m),"(":(isNegative&&(m.indexOf("(")>-1)),"+":((m.indexOf("+")!=-1)&&!isNegative)}
show["-"]=(isNegative&&(!show["("]||(m.indexOf("-")!=-1)));m=m.replace(/[^#0.,]*/gi,"");var dm=(m.indexOf(".")>-1)?m.split(".")[1]:"";if(dm.length==0){vd="";}else{var md=dm.lastIndexOf("0")+1;if(vd.length>dm.length)vd=String(Math.round(Number(vd.substring(0,dm.length+1))/10));else while(vd.length<md)vd+="0";}
var im=(m.indexOf(".")>-1)?m.split(".")[0]:m;im=im.replace(/[^0#]+/gi,"");var mv=im.indexOf("0")+1;if(mv>0){mv=im.length-mv+1;while(vi.length<mv)vi="0"+vi;}
if(/[#0]+,[#0]{3}/.test(m)){var x=[],i=0,n=Number(vi);while(n>999){x[i]="00"+String(n%1000);x[i]=x[i].substring(x[i].length-3);n=Math.floor(n/1000);i++;}
x[i]=String(n%1000);vi=x.reverse().join(".");}
if((vd.length>0&&!this.allowPartial)||((dm.length>0)&&this.allowPartial&&(v.indexOf(",")>-1)&&(_vd.length>=vd.length))){v=vi+","+vd;}else if((dm.length>0)&&this.allowPartial&&(v.indexOf(",")>-1)&&(_vd.length<vd.length)){v=vi+","+_vd;}else{v=vi;}
if(show["$"])v=this.mask.replace(/(^[\$])(.+)/gi,"$")+v;if(show["+"])v="+"+v;if(show["-"])v="-"+v;if(show["("])v="("+v+")";return v;}
Mask.prototype.setDate=function(_v){var v=_v,m=this.mask;var a,e,mm,dd,yy,x,s;a=m.split(/[^mdy]+/);s=m.split(/[mdy]+/);e=v.split(/[^0-9]/);if(s[0].length==0)s.splice(0,1);for(var i=0;i<a.length;i++){x=a[i].charAt(0).toLowerCase();if(x=="m")mm=parseInt(e[i],10)-1;else if(x=="d")dd=parseInt(e[i],10);else if(x=="y")yy=parseInt(e[i],10);}
if(String(yy).length<3){yy=2000+yy;if((new Date()).getFullYear()+20<yy)yy=yy-100;}
var d=new Date(yy,mm,dd);if(d.getDate()!=dd)return this.throwError(1,"Um dia inválido foi escolhido.",_v);else if(d.getMonth()!=mm)return this.throwError(2,"Um mês inválido foi escolhido.",_v);var nv="";for(i=0;i<a.length;i++){x=a[i].charAt(0).toLowerCase();if(x=="m"){mm++;if(a[i].length==2){mm="0"+mm;mm=mm.substring(mm.length-2);}
nv+=mm;}else if(x=="d"){if(a[i].length==2){dd="0"+dd;dd=dd.substring(dd.length-2);}
nv+=dd;}else if(x=="y"){if(a[i].length==2)nv+=d.getYear();else nv+=d.getFullYear();}
if(i<a.length-1)nv+=s[i];}
return nv;}
Mask.prototype.setDateKeyPress=function(_v,_d){var v=_v,m=this.mask,k=v.charAt(v.length-1);var a,e,c,ml,vl,mm="",dd="",yy="",x,p,z;if(_d==true){while((/[^0-9]/gi).test(v.charAt(v.length-1)))v=v.substring(0,v.length-1);if((/[^0-9]/gi).test(this.strippedValue.charAt(this.strippedValue.length-1)))v=v.substring(0,v.length-1);if(v.length==0)return"";}
a=m.split(/[^mdy]/);s=m.split(/[mdy]+/);if(s[0].length==0)s.splice(0,1);v=v.replace(/[^\d\/]/g,"");e=v.split(/[^0-9]/);p=(e.length>0)?e.length-1:0;c=a[p].charAt(0);ml=a[p].length;for(var i=0;i<e.length;i++){x=a[i].charAt(0).toLowerCase();var vv=e[i];if(String(e[i]).length!=""&&isNumeric(e[i]))
vv=parseInt(e[i],10);else{return v;}
if(x=="m")mm=String(vv).length>0&&isNumeric(vv)?vv-1:"";else if(x=="d")dd=vv;else if(x=="y")yy=vv;}
var nv="";var j=0;for(i=0;i<e.length;i++){x=a[i].charAt(0).toLowerCase();if(x=="m"){z=((/[^0-9]/).test(k)&&c=="m");mm++;if((e[i].length==2&&mm<10)||(a[i].length==2&&c!="m")||(mm>1&&c=="m")||(z&&a[i].length==2)){mm="0"+mm;mm=mm.substring(mm.length-2);}
vl=String(mm).length;ml=2;if(parseInt(mm)>12)
mm=12;nv+=mm;}else if(x=="d"){z=((/[^0-9]/).test(k)&&c=="d");if((e[i].length==2&&dd<10)||(a[i].length==2&&c!="d")||(dd>3&&c=="d")||(z&&a[i].length==2)){dd="0"+dd;dd=dd.substring(dd.length-2);}
vl=String(dd).length;ml=2;if(parseInt(dd)>31)
dd=31;nv+=dd;}else if(x=="y"){z=((/[^0-9]/).test(k)&&c=="y");if(c=="y")yy=String(yy);else{if(a[i].length==2)yy=d.getYear();else yy=d.getFullYear();}
if((e[i].length==2&&yy<10)||(a[i].length==2&&c!="y")||(z&&a[i].length==2)){yy="0"+yy;yy=yy.substring(yy.length-2);}
ml=a[i].length;vl=String(yy).length;nv+=yy;}
if(((ml==vl||z)&&(x==c)&&(i<s.length))||(i<s.length&&x!=c))nv+=s[i];}
if(nv.length>m.length)nv=nv.substring(0,m.length);this.strippedValue=(nv=="NaN")?"":nv;return this.strippedValue;}
function qEvent(e){if(window.Event&&false){var isKeyPress=(e.type.substring(0,3)=="key");this.keyCode=(isKeyPress)?parseInt(e.which,10):0;this.button=(!isKeyPress)?parseInt(e.which,10):0;this.srcElement=e.target;this.type=e.type;this.x=e.pageX;this.y=e.pageY;this.screenX=e.screenX;this.screenY=e.screenY;if(document.layers){this.altKey=((e.modifiers&Event.ALT_MASK)>0);this.ctrlKey=((e.modifiers&Event.CONTROL_MASK)>0);this.shiftKey=((e.modifiers&Event.SHIFT_MASK)>0);this.keyCode=this.translateKeyCode(this.keyCode);}else{this.altKey=e.altKey;this.ctrlKey=e.ctrlKey;this.shiftKey=e.shiftKey;}}else{e=e||window.event;this.keyCode=parseInt(e.keyCode,10);this.button=e.button;this.srcElement=e.srcElement;this.type=e.type;if(document.all){this.x=e.clientX+document.body.scrollLeft;this.y=e.clientY+document.body.scrollTop;}else{this.x=e.clientX;this.y=e.clientY;}
this.screenX=e.screenX;this.screenY=e.screenY;this.altKey=e.altKey;this.ctrlKey=e.ctrlKey;this.shiftKey=e.shiftKey;}
this.setKeyPressed(this.keyCode);this.keyChar=String.fromCharCode(this.keyCode);}
qEvent.prototype.translateKeyCode=function(i){var l={};if(!!document.layers){if(this.keyCode>96&&this.keyCode<123)return this.keyCode-32;l={96:192,126:192,33:49,64:50,35:51,36:52,37:53,94:54,38:55,42:56,40:57,41:48,92:220,124:220,125:221,93:221,91:219,123:219,39:222,34:222,47:191,63:191,46:190,62:190,44:188,60:188,45:189,95:189,43:187,61:187,59:186,58:186,"null":null}}
return(!!l[i])?l[i]:i;}
qEvent.prototype.setKP=function(i,s){this.keyPressedCode=i;this.keyNonChar=(typeof s=="string");this.keyPressed=(this.keyNonChar)?s:String.fromCharCode(i);this.isNumeric=(parseInt(this.keyPressed,10)==this.keyPressed);this.isAlpha=((this.keyCode>64&&this.keyCode<91)&&!this.altKey&&!this.ctrlKey);return true;}
qEvent.prototype.setKeyPressed=function(i){var b=this.shiftKey;if(!b&&(i>64&&i<91))return this.setKP(i+32);if(i>95&&i<106)return this.setKP(i-48);switch(i){case 49:case 51:case 52:case 53:if(b)i=i-16;break;case 50:if(b)i=64;break;case 54:if(b)i=94;break;case 55:if(b)i=38;break;case 56:if(b)i=42;break;case 57:if(b)i=40;break;case 48:if(b)i=41;break;case 192:if(b)i=126;else i=96;break;case 189:if(b)i=95;else i=45;break;case 187:if(b)i=43;else i=61;break;case 220:if(b)i=124;else i=92;break;case 221:if(b)i=125;else i=93;break;case 219:if(b)i=123;else i=91;break;case 222:if(b)i=34;else i=39;break;case 186:if(b)i=58;else i=59;break;case 191:if(b)i=63;else i=47;break;case 190:if(b)i=62;else i=46;break;case 188:if(b)i=60;else i=44;break;case 106:case 57379:i=42;break;case 107:case 57380:i=43;break;case 109:case 57381:i=45;break;case 110:i=46;break;case 111:case 57378:i=47;break;case 8:return this.setKP(i,"[backspace]");case 9:return this.setKP(i,"[tab]");case 13:return this.setKP(i,"[enter]");case 16:case 57389:return this.setKP(i,"[shift]");case 17:case 57390:return this.setKP(i,"[ctrl]");case 18:case 57388:return this.setKP(i,"[alt]");case 19:case 57402:return this.setKP(i,"[break]");case 20:return this.setKP(i,"[capslock]");case 32:return this.setKP(i,"[space]");case 91:return this.setKP(i,"[windows]");case 93:return this.setKP(i,"[properties]");case 33:case 57371:return this.setKP(i*-1,"[pgup]");case 34:case 57372:return this.setKP(i*-1,"[pgdown]");case 35:case 57370:return this.setKP(i*-1,"[end]");case 36:case 57369:return this.setKP(i*-1,"[home]");case 37:case 57375:return this.setKP(i*-1,"[left]");case 38:case 57373:return this.setKP(i*-1,"[up]");case 39:case 57376:return this.setKP(i*-1,"[right]");case 40:case 57374:return this.setKP(i*-1,"[down]");case 45:case 57382:return this.setKP(i*-1,"[insert]");case 46:case 57383:return this.setKP(i*-1,"[delete]");case 144:case 57400:return this.setKP(i*-1,"[numlock]");}
if(i>111&&i<124)return this.setKP(i*-1,"[f"+(i-111)+"]");return this.setKP(i);}
function $addEvent(o,_e,c,_b){var e=_e.toLowerCase(),b=(typeof _b=="boolean")?_b:true,x=(o[e])?o[e].toString():"";x=x.substring(x.indexOf("{")+1,x.lastIndexOf("}"));x=((b)?(x+c):(c+x))+"\n";return o[e]=(!!window.Event)?new Function("event",x):new Function(x);}
Date.$VERSION=1.02;Date.LZ=function(x){return(x<0||x>9?"":"0")+x};Date.monthNames=new Array('January','February','March','April','May','June','July','August','September','October','November','December');Date.monthAbbreviations=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');Date.dayNames=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');Date.dayAbbreviations=new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');Date.preferAmericanFormat=true;if(!Date.prototype.getFullYear){Date.prototype.getFullYear=function(){var yy=this.getYear();return(yy<1900?yy+1900:yy);}}
Date.parseString=function(val,format){if(typeof(format)=="undefined"||format==null||format==""){var generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d','MMM-d','d-MMM');var monthFirst=new Array('M/d/y','M-d-y','M.d.y','M/d','M-d');var dateFirst=new Array('d/M/y','d-M-y','d.M.y','d/M','d-M');var checkList=new Array(generalFormats,Date.preferAmericanFormat?monthFirst:dateFirst,Date.preferAmericanFormat?dateFirst:monthFirst);for(var i=0;i<checkList.length;i++){var l=checkList[i];for(var j=0;j<l.length;j++){var d=Date.parseString(val,l[j]);if(d!=null){return d;}}}return null;}
this.isInteger=function(val){for(var i=0;i<val.length;i++){if("1234567890".indexOf(val.charAt(i))==-1){return false;}}return true;};this.getInt=function(str,i,minlength,maxlength){for(var x=maxlength;x>=minlength;x--){var token=str.substring(i,i+x);if(token.length<minlength){return null;}if(this.isInteger(token)){return token;}}return null;};val=val+"";format=format+"";var i_val=0;var i_format=0;var c="";var token="";var token2="";var x,y;var year=new Date().getFullYear();var month=1;var date=1;var hh=0;var mm=0;var ss=0;var ampm="";while(i_format<format.length){c=format.charAt(i_format);token="";while((format.charAt(i_format)==c)&&(i_format<format.length)){token+=format.charAt(i_format++);}if(token=="yyyy"||token=="yy"||token=="y"){if(token=="yyyy"){x=4;y=4;}if(token=="yy"){x=2;y=2;}if(token=="y"){x=2;y=4;}year=this.getInt(val,i_val,x,y);if(year==null){return null;}i_val+=year.length;if(year.length==2){if(year>70){year=1900+(year-0);}else{year=2000+(year-0);}}}else if(token=="MMM"||token=="NNN"){month=0;var names=(token=="MMM"?(Date.monthNames.concat(Date.monthAbbreviations)):Date.monthAbbreviations);for(var i=0;i<names.length;i++){var month_name=names[i];if(val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()){month=(i%12)+1;i_val+=month_name.length;break;}}if((month<1)||(month>12)){return null;}}else if(token=="EE"||token=="E"){var names=(token=="EE"?Date.dayNames:Date.dayAbbreviations);for(var i=0;i<names.length;i++){var day_name=names[i];if(val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()){i_val+=day_name.length;break;}}}else if(token=="MM"||token=="M"){month=this.getInt(val,i_val,token.length,2);if(month==null||(month<1)||(month>12)){return null;}i_val+=month.length;}else if(token=="dd"||token=="d"){date=this.getInt(val,i_val,token.length,2);if(date==null||(date<1)||(date>31)){return null;}i_val+=date.length;}else if(token=="hh"||token=="h"){hh=this.getInt(val,i_val,token.length,2);if(hh==null||(hh<1)||(hh>12)){return null;}i_val+=hh.length;}else if(token=="HH"||token=="H"){hh=this.getInt(val,i_val,token.length,2);if(hh==null||(hh<0)||(hh>23)){return null;}i_val+=hh.length;}else if(token=="KK"||token=="K"){hh=this.getInt(val,i_val,token.length,2);if(hh==null||(hh<0)||(hh>11)){return null;}i_val+=hh.length;hh++;}else if(token=="kk"||token=="k"){hh=this.getInt(val,i_val,token.length,2);if(hh==null||(hh<1)||(hh>24)){return null;}i_val+=hh.length;hh--;}else if(token=="mm"||token=="m"){mm=this.getInt(val,i_val,token.length,2);if(mm==null||(mm<0)||(mm>59)){return null;}i_val+=mm.length;}else if(token=="ss"||token=="s"){ss=this.getInt(val,i_val,token.length,2);if(ss==null||(ss<0)||(ss>59)){return null;}i_val+=ss.length;}else if(token=="a"){if(val.substring(i_val,i_val+2).toLowerCase()=="am"){ampm="AM";}else if(val.substring(i_val,i_val+2).toLowerCase()=="pm"){ampm="PM";}else{return null;}i_val+=2;}else{if(val.substring(i_val,i_val+token.length)!=token){return null;}else{i_val+=token.length;}}}if(i_val!=val.length){return null;}if(month==2){if(((year%4==0)&&(year%100!=0))||(year%400==0)){if(date>29){return null;}}else{if(date>28){return null;}}}if((month==4)||(month==6)||(month==9)||(month==11)){if(date>30){return null;}}if(hh<12&&ampm=="PM"){hh=hh-0+12;}else if(hh>11&&ampm=="AM"){hh-=12;}return new Date(year,month-1,date,hh,mm,ss);}
Date.isValid=function(val,format){return(Date.parseString(val,format)!=null);}
Date.prototype.isBefore=function(date2){if(date2==null){return false;}return(this.getTime()<date2.getTime());}
Date.prototype.isAfter=function(date2){if(date2==null){return false;}return(this.getTime()>date2.getTime());}
Date.prototype.equals=function(date2){if(date2==null){return false;}return(this.getTime()==date2.getTime());}
Date.prototype.equalsIgnoreTime=function(date2){if(date2==null){return false;}var d1=new Date(this.getTime()).clearTime();var d2=new Date(date2.getTime()).clearTime();return(d1.getTime()==d2.getTime());}
Date.prototype.format=function(format){format=format+"";var result="";var i_format=0;var c="";var token="";var y=this.getYear()+"";var M=this.getMonth()+1;var d=this.getDate();var E=this.getDay();var H=this.getHours();var m=this.getMinutes();var s=this.getSeconds();var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;var value=new Object();if(y.length<4){y=""+(+y+1900);}value["y"]=""+y;value["yyyy"]=y;value["yy"]=y.substring(2,4);value["M"]=M;value["MM"]=Date.LZ(M);value["MMM"]=Date.monthNames[M-1];value["NNN"]=Date.monthAbbreviations[M-1];value["d"]=d;value["dd"]=Date.LZ(d);value["E"]=Date.dayAbbreviations[E];value["EE"]=Date.dayNames[E];value["H"]=H;value["HH"]=Date.LZ(H);if(H==0){value["h"]=12;}else if(H>12){value["h"]=H-12;}else{value["h"]=H;}value["hh"]=Date.LZ(value["h"]);value["K"]=value["h"]-1;value["k"]=value["H"]+1;value["KK"]=Date.LZ(value["K"]);value["kk"]=Date.LZ(value["k"]);if(H>11){value["a"]="PM";}else{value["a"]="AM";}value["m"]=m;value["mm"]=Date.LZ(m);value["s"]=s;value["ss"]=Date.LZ(s);while(i_format<format.length){c=format.charAt(i_format);token="";while((format.charAt(i_format)==c)&&(i_format<format.length)){token+=format.charAt(i_format++);}if(typeof(value[token])!="undefined"){result=result+value[token];}else{result=result+token;}}return result;}
Date.prototype.getDayName=function(){return Date.dayNames[this.getDay()];}
Date.prototype.getDayAbbreviation=function(){return Date.dayAbbreviations[this.getDay()];}
Date.prototype.getMonthName=function(){return Date.monthNames[this.getMonth()];}
Date.prototype.getMonthAbbreviation=function(){return Date.monthAbbreviations[this.getMonth()];}
Date.prototype.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;}
Date.prototype.add=function(interval,number){if(typeof(interval)=="undefined"||interval==null||typeof(number)=="undefined"||number==null){return this;}number=+number;if(interval=='y'){this.setFullYear(this.getFullYear()+number);}else if(interval=='M'){this.setMonth(this.getMonth()+number);}else if(interval=='d'){this.setDate(this.getDate()+number);}else if(interval=='w'){var step=(number>0)?1:-1;while(number!=0){this.add('d',step);while(this.getDay()==0||this.getDay()==6){this.add('d',step);}number-=step;}}else if(interval=='h'){this.setHours(this.getHours()+number);}else if(interval=='m'){this.setMinutes(this.getMinutes()+number);}else if(interval=='s'){this.setSeconds(this.getSeconds()+number);}
return this;}
function isDateTime(v,format){if(v!=null)v=trim(v);if(v==null||v=='')
return true;if(format)
return Date.isValid(v,format);else
return Date.isValid(v,'d/M/yyyy')||Date.isValid(v,'d/M/yyyy H:m:s')||Date.isValid(v,'d/M/yyyy H:m')||Date.isValid(v,'d/M/yyyy H')||Date.isValid(v,'d/M/yy');}
function isTime(v,format){if(v!=null)v=trim(v);if(v==null||v=='')
return true;if(format)
return Date.isValid(v,format);else
return Date.isValid(v,'H:m')||Date.isValid(v,'H:m:s');}
function isNumeric(sText){if(typeof sText=='number')
return true;sText=""+sText;var ValidChars="0123456789.";var IsNumber=true;var Char;for(i=0;i<sText.length&&IsNumber==true;i++){Char=sText.charAt(i);if(ValidChars.indexOf(Char)==-1){IsNumber=false;}}
return IsNumber;}
function Limpar(valor,validos){var result="";var c;for(var i=0;i<valor.length;i++){c=valor.charAt(i);if(validos.indexOf(c)>=0){result+=c;}}
return result;}
function currencyFormat(element,maxlength,evt,decimal,mask){var isNegative=/^-/.test(element.value);var keyCode=evt.keyCode||evt.which;var decimalQtt=2;var regexp=new RegExp("^\\$(\\d*)$");var decimals=regexp.exec(mask);if(decimals.length>1){decimalQtt=decimals[1];}
if(isNullable(decimalQtt)||decimalQtt<1){decimalQtt=2;}
var value=element.value;if(isNullable(value)){value="";}
var cleanValue=value.replace(/[^\d]+/gi,"").replace(/^0+/,"");if(cleanValue.length<=0){value=("0"+DECIMAL_POINT);var temp=decimalQtt;while(temp-->0){value+="0";}}else{if(cleanValue.length<=decimalQtt){value=("0"+DECIMAL_POINT);var temp=(decimalQtt-cleanValue.length);while(temp-->0){value+="0";}
value+=cleanValue;}else{var decimalPosition=(cleanValue.length-decimalQtt);var decimalValue=cleanValue.substring(decimalPosition,cleanValue.length);var finalFloatValue="";var floatValue=cleanValue.substring(0,decimalPosition);var temp=(cleanValue.length-decimalQtt);while(temp>3){var tempPosition=(floatValue.length-3);var tempFloatValue=floatValue.substring(tempPosition,floatValue.length);floatValue=floatValue.substring(0,tempPosition);temp=floatValue.length;finalFloatValue=(FLOAT_POINT+tempFloatValue+finalFloatValue);if(temp<=3){finalFloatValue=(floatValue+finalFloatValue);}}
if(finalFloatValue.length==0){finalFloatValue=floatValue;}
value=(finalFloatValue+DECIMAL_POINT+decimalValue);}}
element.value=value;var negativeIsNotDefined=/^[^-]/.test(element.value);if(isNegative&&negativeIsNotDefined){value=("-"+element.value);element.value=value;}
return value;}
function formatIP(campo){vr=Limpar(campo.value,"0123456789.");if(vr.length<=0){campo.value="";}else{vr=verifySubstrIP(vr);}
return vr;}
function verifySubstrIP(vr){verify=false;qtdChr=0;qtdPonto=0;vrSegment="";for(i=0;i<vr.length;i++){if(vr.substr(i,1)=="."){if(i==0){vr=vr.substr(1,vr.length);verify=true;break;}
if(i>0){if(vr.substr(i-1,1)=="."){vr=vr.substr(0,i-1)+vr.substr(i,vr.length);verify=true;break;}}
qtdPonto=qtdPonto+1;qtdChr=0;vrSegment="";}else{qtdChr=qtdChr+1;vrSegment=vrSegment+vr.substr(i,1);}
if(qtdChr>3){if(qtdPonto<3){vr=vr.substr(0,i)+"."+vr.substr(i,vr.length);verify=true;break;}else{vr=vr.substr(0,i);qtdChr=3;vrSegment=vr.substr(i-3,3);}}
if(qtdChr==3){if(vrSegment>255){vr=vr.substr(0,i-2);break;}}
if(qtdPonto>3){vr=vr.substr(0,i)+vr.substr(i+1,vr.length);verify=true;break;}}
if(verify)vr=verifySubstrIP(vr);return vr;}