Array.prototype.inArray=function(v){for(var i=(this.length-1);i>=0;i--){if(this[i]===v){return true}}return false}
var advalid={fm:Object,r:'',b:Array,init:function(){this.r='';this.b=[];var f=this.fm.getElementsByTagName('*');var l=this.fm.getElementsByTagName('label');this.fm.f=[];for(var j=0;j<f.length;j++){var typ=f[j].getAttribute('type');var cl=f[j].className;var fid=f[j].getAttribute('id');if(fid !='' && cl !='' && typ!='submit' && typ!='button' && typ!='image' && typ!='hidden'){f[j].c=cl.split(' ');for(var k=0;k<l.length;k++){lf=l[k].getAttribute('for')?l[k].getAttribute('for'):l[k].getAttribute('htmlFor');if(lf==fid) f[j].d=l[k].firstChild.nodeValue}this.fm.f.push(f[j])}}},
req:function(f){if(f.getAttribute('type')!='checkbox' && f.value==''){this.r +='* pole "'+ f.d +'" jest wymagane \n';this.b.push(f)}if(f.getAttribute('type')=='checkbox' && !f.checked){this.r +='* pole "'+ f.d +'" musi by� zaznaczone \n';this.b.push(f)}},intg:function(f){if(f.value!=''&&f.value!=parseInt(f.value)){this.r +='* pole "'+ f.d +'" musi by� liczb� ca�kowit� \n';this.b.push(f)}},real:function(f){if(f.value!=''&&!/^[\+\-]?\d*[\.,]?\d*$/.test(f.value)){this.r +='* warto�� "'+ f.value +"' pola '"+ f.d +'" jest nieprawidłowa \n';this.b.push(f)}},mail:function(f){if(f.value!=''&&!/^[\w\.-_]{2,}@[\w\.-]+\.[a-z]{2,5}$/.test(f.value)){this.r +='* adres email "'+ f.value +'" jest nieprawidłowy \n';this.b.push(f)}},tel:function(f){if(f.value!=''&&!/^[\+]?[\d\.\s\-()]+$/.test(f.value)){this.r +='* numer telefonu "'+ f.value +'" jest nieprawidłowy \n';this.b.push(f)}},oneof:function(f){var r=0;var arr=f.getElementsByTagName('input');for(var i=0;i<arr.length;i++){if(arr[i].checked)r++}if(r<=0){this.r +='* nie wybrano opcji w polu "'+ f.getElementsByTagName('legend')[0].firstChild.nodeValue +'"\n';this.b.push(f); }},styler:function(fm){for(var i=0;i<fm.f.length;i++){fm.f[i].className=fm.f[i].className.replace(' error','');this.b.inArray(fm.f[i])?(fm.f[i].className +=' error'):1}},validate:function(fm){this.fm=fm;this.init();for(var i=0;i<fm.f.length;i++){fm.f[i].c.inArray('req')?this.req(fm.f[i]):1;fm.f[i].c.inArray('intg')?this.intg(fm.f[i]):1;fm.f[i].c.inArray('real')?this.real(fm.f[i]):1;fm.f[i].c.inArray('mail')?this.mail(fm.f[i]):1;fm.f[i].c.inArray('tel')?this.tel(fm.f[i]):1;fm.f[i].c.inArray('oneof')?this.oneof(fm.f[i]):1}return this.r==''?true:(alert(this.r),this.styler(fm),false )}}

