function Validation(b,f,a,d,e,c){this._type=b;this._mandatory=f;this._maxLength=a;this._minValue=d;this._maxValue=e;this._digits=c}Validation.prototype.check_value=function(b){switch(this._type){case"integer":case"int4":if((this._mandatory&&b=="")||(b!=""&&(!this.isInteger(b)||isNaN(b)||b<this._minValue||b>this._maxValue))){return false}break;case"float":case"float8":case"numeric":var a=RegExp("^[-+]?\\d+(\\.\\d{1,"+this._digits+"})?$");if((this._mandatory&&b=="")||(b!=""&&(isNaN(b)||b<this._minValue||b>this._maxValue||(this._digits!=null&&!(a.test(b)))))){return false}break;case"text":case"varchar":if((this._mandatory&&b=="")||(b.length>this._maxLength)){return false}break;case"date":if((this._mandatory&&b=="")||(b!=""&&!this.isDate(b))){return false}break;case"boolean":if((this._mandatory&&b=="")||(b!=""&&b!="true"&&b!="false")){return false}break;default:alert("type not supported: "+this._type);return false;break}return true};Validation.prototype.isInteger=function(a){var b=RegExp("^[-+]?\\d+$");if(!b.test(a)){return false}return true};Validation.prototype.stripCharsInBag=function(d,e){var b;var a="";for(b=0;b<d.length;b++){var f=d.charAt(b);if(e.indexOf(f)==-1){a+=f}}return a};Validation.prototype.daysInFebruary=function(a){return(((a%4==0)&&((!(a%100==0))||(a%400==0)))?29:28)};Validation.prototype.DaysArray=function(b){for(var a=1;a<=b;a++){this[a]=31;if(a==4||a==6||a==9||a==11){this[a]=30}if(a==2){this[a]=29}}return this};Validation.prototype.isDate=function(o){var d="-";var p=1000;var f=2500;var a=this.DaysArray(12);var n=o.indexOf(d);var m=o.indexOf(d,n+1);var g=o.substring(n+1,m);var c=o.substring(0,n);var b=o.substring(m+1);var j=b;if(c.charAt(0)=="0"&&c.length>1){c=c.substring(1)}if(g.charAt(0)=="0"&&g.length>1){g=g.substring(1)}for(var e=1;e<=3;e++){if(j.charAt(0)=="0"&&j.length>1){j=j.substring(1)}}var h=parseInt(g);var l=parseInt(c);var k=parseInt(j);if(n==-1||m==-1){return false}if(g.length<1||h<1||h>12){return false}if(c.length<1||l<1||l>31||(h==2&&l>this.daysInFebruary(k))||l>a[h]){return false}if(b.length!=4||k==0||k<p||k>f){return false}if(o.indexOf(d,m+1)!=-1||this.isInteger(this.stripCharsInBag(o,d))==false){return false}return true};
