var focus=true;var types=new Array();types.w=/\w/;types.w1=/\w+/;types.d=/^\d*$/;types.d1=/^\d+$/;types.file=/\w/;types.date=_is_date;types.null_date=_is_null_date;types.email=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;types.state=_is_state;types.password=_check_password;types.password_verify=_check_password_verify;types.match=_check_password_verify;types.ccard_type=_check_credit_card_type;types.ccard=_check_credit_card_num;types.phone=/\w+/;types.and=_all_or_nothing;types.or=_any;function TypeChecker(){this.check_value=_check_value;this.check_form=_check_form}function _all_or_nothing(c){var a=0;var b=0;for(i=0;i<c.length;i++){if(c[i]!=""){a++}else{b++}}return((a==0)||(b==0))}function _any(a){var b=(a[0]!="");for(i=0;i<a.length;i++){b=b||(a[i]!="")}return b}function _check_password(a){return(a.length>4)}function _check_credit_card_type(f){var a=f[0].toString();var l=f[1].toString();var h=false;var c=/[^\d ]/;h=!c.test(l);if(h){var g=l.replace(/ /g,"");var d=g.length;var k=false;var e=false;var b;switch(a){case"Mastercard":k=(d==16);b=/^5[1-5]/;break;case"Visa":k=(d==16||d==13);b=/^4/;break;case"AmericanExpress":k=(d==15);b=/^3(4|7)/;break;default:b=/^$/}e=b.test(g);h=e&&k}return h}function _check_credit_card_num(g){var f=g;var c=f.replace(/ /g,"");var a=c.length;var e;var d;var b=0;for(digitCounter=a-1;digitCounter>=0;digitCounter--){b+=parseInt(c.charAt(digitCounter));digitCounter--;e=String((c.charAt(digitCounter)*2));for(var h=0;h<e.length;h++){b+=parseInt(e.charAt(h))}}return(b%10==0)}function _check_password_verify(a){x=a[0].toString();y=a[1].toString();if(x==y){return(true)}else{return(false)}}function _is_state(a){return(a.length==2)}function _is_date(a){return Date.parse(a)}function _is_null_date(a){if(a==""){return true}else{return Date.parse(a)}}function _check_value(c,b){if(c.length>1){return types[b](c)}else{var a=new String(val);switch(typeof(types[b])){case"undefined":return false;case"object":return a.match(types[b]);case"function":return types[b](a);default:return false}}}function _check_form(d,a){var c,f,e,b;for(c=0;c<a.length;c++){f="";strFieldnames=a[c][0];fieldnames=strFieldnames.split("|");vals=new Array();has_val=0;for(m=0;m<fieldnames.length;m++){vals[m]=new String(_get_val(d[fieldnames[m]]));if(vals[m].length>0){has_val=1}}if(a[c][3]&&!has_val){continue}if(!this.check_value(vals,a[c][1])){alert(a[c][2]);if(focus){d[fieldnames[0]].focus()}return false}}return true}function _get_val(a){if(!a.type){if(a.length>0){if(a[0].type.match(/radio/i)){focus=false;val="";for(j=0;j<a.length;j++){if(a[j].checked){val=a[j].value}}}}}else{if(a.type.match(/select/i)){val=new String(a.options[a.selectedIndex].value)}else{if((a.type.match(/text/))||(a.type.match(/password/))){val=new String(a.value)}else{if(a.type.match(/file/)){val=new String(a.value)}else{if(a.type.match(/radio/)){val=new String(a.value)}}}}}return val};
