function findObj(n, d) { // v4.01
var p,i,x;
if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
}
if(!(x=d[n])&&d.all) x=d.all[n];
for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function checkform() {
var args = checkform.arguments; var myDot=true; var myV=''; var myErr=''; var addErr=false; var myReq;
for (var i=1; i<args.length;i=i+4) {
	if (args[i+1].charAt(0)=='#') {
		myReq=true;
		args[i+1]=args[i+1].substring(1);
	}
	else myReq=false;
	var myObj = findObj(args[i].replace(/\[\d+\]/ig,""));
	myV=myObj.value;
	if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden') {
		if (myReq&&myObj.value.length==0) addErr=true;
		if ((myV.length>0)&&(args[i+2]==1)) { //fromto
			var myMa=args[i+1].split('_');
			if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1) addErr=true;
		}
		else if ((myV.length>0)&&(args[i+2]==2)) {
			var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");
			if(!rx.test(myV)) addErr=true;
		}
		else if ((myV.length>0)&&(args[i+2]==3)) { // date
			var myMa=args[i+1].split("#");
			var myAt=myV.match(myMa[0]);
			if(myAt) {
				var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1;
				var myM=myAt[myMa[2]]-1;
				var myY=myAt[myMa[3]];
				var myDate=new Date(myY,myM,myD);
				if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM) addErr=true;
			}
			else addErr=true;
		}
		else if ((myV.length>0)&&(args[i+2]==4)) { // time
			var myMa=args[i+1].split("#");
			var myAt=myV.match(myMa[0]);if(!myAt) addErr=true;
		}
		else if (myV.length>0&&args[i+2]==5) { // check this 2
			var myObj1 = findObj(args[i+1].replace(/\[\d+\]/ig,""));
			if(myObj1.length) myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
			if(!myObj1.checked) addErr=true;
		}
		else if (myV.length>0&&args[i+2]==6) { // the same
			var myObj1 = findObj(args[i+1]);
			if(myV!=myObj1.value) addErr=true;
		}
	}
	else if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio') {
		var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
		var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
		if (args[i+2]==1&&myObj1&&myObj1.checked&&findObj(args[i+1]).value.length/1==0) addErr=true;
		if (args[i+2]==2) {
			var myDot=false;
			for(var j=0;j<myObj.length;j++) myDot=myDot||myObj[j].checked
			if(!myDot) myErr+='- ' +args[i+3]+'\n';
		}
	}
	else if (myObj.type=='checkbox') {
		if(args[i+2]==1&&myObj.checked==false) addErr=true;
		if(args[i+2]==2&&myObj.checked&&findObj(args[i+1]).value.length/1==0) addErr=true;
	}
	else if (myObj.type=='select-one'||myObj.type=='select-multiple') {
		if(args[i+2]==1&&myObj.selectedIndex/1==0) addErr=true;
	}
	else if (myObj.type=='textarea') {
		if(myV.length<args[i+1]) addErr=true;
	}
	if (addErr) {
	myErr+='- '+args[i+3]+'\n';
	addErr=false
	}
}
if (myErr!='') alert('Proszę wpisać adres e-mail');
document.returnValue = (myErr=='');
}
