
				var testArray = new Array();

				function test(cosi){
					var nam=cosi.name;
					var frm=cosi.form.name;
					var ar=eval("f_"+frm);
					var index=-1;
					for(var i=0;i<ar.length;i++){
						if(ar[i].name==nam){index=i;}
					}
					if(!validate(frm,ar,index)){foc(frm,ar,index);return false;}
				}
				function validate(f,ar,i){
						var obsah=orez(eval("document."+f+"."+ar[i].name+".value"));
						var min=ar[i].min;
						var max=ar[i].max;
						var typ=ar[i].typ;
//						alert (typ);

						if(ar[i].mandatory!=0){
							if(obsah==''){			
								alert("Tato polozka musi byt vyplnena!");
								return false;
							}
						}
						if(typ=='num'){
							if(testuj_cislo(obsah,min,max)==false){
								alert("Tato polozka neodpovida rozsahu!");
								return false;
							}
						}else
						if(typ=='int'){
							if(testuj_cele_cislo(obsah,min,max)==false){
								alert("Tato polozka neodpovida rozsahu!");
								return false;
							}
						}else
						if(typ=='char'){
							if(!testuj_delku(obsah,min,max)){
								alert("Tato polozka neodpovida rozsahu!");
								return false;
							}
						}else 
						if(typ=='date'){
							if(!testuj_datum(obsah,min,max)){
								alert("Tato polozka neodpovida rozsahu!");
								return false;
							}
						}
						return true;
				}
				function foc(f,ar,i){
								var name=ar[i].name;
								if(ar[i].typ=='detail')name=name.substring(name.indexOf('_')+1);
								eval("document."+f+"."+name+".focus()");
								eval("document."+f+"."+name+".select()");
				}
				function kontrola(f,name){
					var f=name;
//					alert("Kontroluji data formulare "+f);
					var ar = eval( "f_"+f );
					for(var i=0;i<ar.length;i++){
						if(!validate (f,ar,i)){
							foc(f,ar,i);return false;
						}
						
					}
//					alert("Vsechno v poradku");
					return true; 
				}

				function testuj_delku(s,min,max){
					if(min!='')if(s.length<min)return false;
					if(max!='')if(s.length>max)return false;
					return true;
				}

				function prop(name,mandatory,typ,min,max){
					this.name=name;
					this.mandatory=mandatory;
					this.typ=typ;
					this.min=min;
					this.max=max;
				}

				function testuj_cislo(s,min,max) {
					if(!isN(s)){return false;}
					if(min!='')if(s<parseFloat(min)) {return false;}
					if(max!='')if(s>parseFloat(max)) {return false;}
					return true;
				}

				function testuj_cele_cislo(s,min,max) {
					if(!isInt(s)){return false;}
					if(min!='')if(s<parseFloat(min)) {return false;}
					if(max!='')if(s>parseFloat(max)) {return false;}
					return true;
				}
				function testuj_datum(x,min,max) {
					if(x=='') return true;

					var a=x.indexOf(".");
					var b=x.indexOf(".",a+1);
					if (a==-1 || b==-1) {return false;}
					var dd=x.substring(0,a);
					var mm=x.substring(a+1,b);
					var rr=x.substring(b+1,x.length+1);
					if (isN(dd)==false || isN(mm)==false || isN(rr)==false) {return false;}
					if(is_real_date(dd,mm,rr)==false){return false;}
					
					return true;
				}

				function is_real_date(dd,mm,yy){
					if(mm<1 || mm>12 || dd<1) {return false}
					var a=new Array(12);
 					if ( eval(yy/4)==Math.round(eval(yy/4)) && eval(yy/100)!=Math.round(eval(yy/100)) || eval(yy/400)==Math.round(eval(yy/400)) ) {a[2]=29;} else {a[2]=28;}
					a[1]=31;
					a[3]=31;
					a[4]=30;
					a[5]=31;
					a[6]=30;
					a[7]=31;
					a[8]=31;
					a[9]=30;
					a[10]=31;
					a[11]=30;
					a[12]=31;
					if(mm==1 && dd>a[1]) {return false;}
					if(mm==2 && dd>a[2]) {return false;}
					if(mm==3 && dd>a[3]) {return false;}
					if(mm==4 && dd>a[4]) {return false;}
					if(mm==5 && dd>a[5]) {return false;}
					if(mm==6 && dd>a[6]) {return false;}
					if(mm==7 && dd>a[7]) {return false;}
					if(mm==8 && dd>a[8]) {return false;}
					if(mm==9 && dd>a[9]) {return false;}
					if(mm==10 && dd>a[10]) {return false;}
					if(mm==11 && dd>a[11]) {return false;}
					if(mm==12 && dd>a[12]) {return false;}
					return true;
				}
				
				function orez(str) {
					   var a=str.length-1
					   for (var i=a; str.substring(i,i+1)==" "; i=i-1) {}
					   for (var j=0; str.substring(j,j+1)==" "; j=j-1) {}
					   if (j>i) { return "" }
				      else  { return str.substring(j,i+1) }
				}

				function isInt(str) {
					   for (var i = 0; i < str.length; i++) {
					      var ch = str.substring(i, i + 1)
					      if (ch < "0" || "9" < ch ) { return false }
					   }
					   return true
				}

				function isN(str) {
						if(isNaN(str))return false;
// toto odkomentovano - nahrazeno funkci isNaN
//						if(str.substring(0,1)=='-')str=str.substring(1);
//					   for (var i = 0; i < str.length; i++) {
//					      var ch = str.substring(i, i + 1)
//					      if ((ch < "0" || "9" < ch) && ch != '.') { return false }
//					   }
					   return true
				}

