function check(){
var argv=check.arguments;	var argc=argv.length;	
var form = document.form1;			var i=1;				var err=0;
// Sprawdzenie wymaganej ilosci argumentow 
if(argc%2 != 1){
alert('Błąd w skrypcie: Brak wymaganej liczby parametrów!\nPrawdopodobnie brak typu dla jednego z pól.');
return false;
}

while(i<argc){
fd_n=argv[i];	fd_wt=argv[i+1];	 fd=form.elements[fd_n];
// pobierz wartosc w zaleznosci od typu elementu formularza

switch(fd=form.elements[fd_n].type){
	case 'text'	:
	case 'hidden':
	case 'password':
	case 'textarea':
	case 'file'	:
	case 'radio':
				fd_v=form.elements[fd_n].value;
				break;
	case 'select-multiple':
				fd_v=form.elements[fd_n].options[form.elements[fd_n].selectedIndex].value;
				break;
	case 'select-one':			
	case 'select':
				fd_v=form.elements[fd_n].options[form.elements[fd_n].selectedIndex].value;
				break;			
	case 'checkbox':
				fd_v=form.elements[fd_n].checked;
				break;
	default		:
				fd_v=false;
}
if(fd_v.length==0){
	err=1;
}else{
	// sprawdz wartosc, czy jest ona zgodna z wymaganym typem
	switch(fd_wt){
		case 'int'	:
					if(isNaN(parseInt(fd_v)))  err=2;
					break;
		case 'float':
					if(isNaN(parseFloat(fd_v)))  err=2;
					break;
		case 'text'	:
					if(fd_v.length==0)  err=2;
					break;
		case 'select-one':
		case 'select-multiple':
		case 'select'	:
					if(fd_v.length==0)  err=2;
					break;			
		case 'checkbox'	:
					if(!fd_v)  err=2;
					break;
		case 'email':
					if(fd_v.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/)==-1)  err=2;
					break;
		case 'kod':
					if(fd_v.search(/^[0-9]{2}-[0-9]{3}$/)==-1)  err=2;
					break;
		case 'telefon':
					if(fd_v.search(/[0-9]+/)==-1)  err=2;
					break;			
		default		:
					alert('Błąd w skrypie:\nnieznany typ pola '+fd_n+'!');
					return false;
	}
}
// pokaz rodzaj bledu
switch(err){
	case 1	:
			alert('Brak wartości w polu '+form.elements[fd_n].title);
			form.elements[fd_n].focus();
			/*if (fd_wt == 'text' || fd_wt == 'textarea'){
				form.elements[fd_n].className = fd_wt + '_error';
			}*/	
			return false;
			break;
	case 2	:
			alert('Wartość:\n \"'+fd_v+'\"\n w polu '+fd_n+' jest nieprawidłowa!');
			form.elements[fd_n].focus();
			/*if (fd_wt == 'text' || fd_wt == 'textarea'){
				form.elements[fd_n].className = fd_wt + '_error';
			}*/	
			return false;
			break;					
}
i=i+2;
}
return true;
}
