<!--
// Sprawdzanie pol formularza.
// Dolaczanie skryptu: <script src="form.js" language="JavaScript"></script>
// Dolaczenie funkcji: onSubmit="return check(this,'pole1','text','pole2','email','pole3','num')"
// check(form[,field_name,field_require_type]{1,})
function check(){
	var argv=check.arguments;	var argc=argv.length;	
	var form=argv[0];			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-one':
			case 'select-multiple':
						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 '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;
				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 '+fd_n+'!');
					return false;
					break;
			case 2	:
					alert('Wartość:\n \"'+fd_v+'\"\n w polu '+fd_n+' jest nieprawidłowa!');
					return false;
					break;					
		}
		i=i+2;
	}
	return true;
}


// Ustawianie select-a
function option_selected(select,value){
	for(var i=0; i<select.options.length; i++){
		if(select.options[i].value==value){
			select.options[i].selected=true;
			return i;
		}
	}
}

// -->
