function nipCheck(fieldNr)
	{
	field = document.getElementsByName(fieldRequirements[fieldNr][1]);
	fieldRequired = fieldRequirements[fieldNr][10];	
	field = field.item(0);
	fieldValue = field.value;
	if(fieldValue != '') {
	    if (!(((fieldValue.charAt(3)=='-')&&(fieldValue.charAt(7)=='-')&&(fieldValue.charAt(10)=='-')) ||((fieldValue.charAt(3)=='-')&&(fieldValue.charAt(6)=='-')&&(fieldValue.charAt(9)=='-')))) {
			window.alert('Proszę podać NIP w formacie 3-3-2-2 lub 3-2-2-3');
			field.focus();  
	        return false;
			}
		}
	return true;		   	
	}	

function checkLength(field, fieldContent, fieldName, fieldMin, fieldMax)
	{
	if(fieldMin > 0)
		{
		if(fieldContent.length < fieldMin)
			{
			window.alert('Minimalna ilo¶ć znaków dla pola \''+fieldName+'\': '+fieldMin);
			field.focus();
			return false;									
			}
		}
	if(fieldMax > 0)
		{
		if(fieldContent.length > fieldMax)
			{
			window.alert('Maksymalna ilo¶ć znaków dla pola \''+fieldName+'\': '+fieldMax);
			field.focus();
			return false;									
			}
		}	
	return true;
	}	
	
function checkChars(field, fieldContent, fieldName, fieldAccept, fieldDeny)
	{
	if(fieldAccept != '')
		{
		regexp = new RegExp('[^'+fieldAccept+']+', 'gi');						
		if(fieldContent.match(regexp) != null)
			{
			window.alert('Pole \''+fieldName+'\' zawiera niedozwolone znaki.');
			field.focus();
			return false;										
			}
		}
	if(fieldDeny != '')
		{
		regexp = new RegExp('['+fieldDeny+']+', 'gi');
		if(fieldContent.match(regexp) != null)
			{
			window.alert('Pole \''+fieldName+'\' zawiera niedozwolone znaki.');
			field.focus();
			return false;										
			}
		}	
	return true;		
	}

function checkCheckboxGroup(fieldNr) {
	fieldRequired = fieldRequirements[fieldNr][10];	
	checkedElements = 0;
	firstElement = null;
	if(fieldRequired) {
		for(j=0; j<document.submitForm.length; j++) {
			tmpEl = document.submitForm[j];
			if(tmpEl.name.indexOf(fieldRequirements[fieldNr][1]) == 0) {
				if(firstElement == null) {
					firstElement = tmpEl;
				}
				if(tmpEl.checked == true) {
					checkedElements++;
				}
			}
		}		
		if(checkedElements == 0) {
			window.alert('Musisz zaznaczyć przynajmniej jeden element pola \''+fieldRequirements[fieldNr][2]+'\'.');
			firstElement.focus();
			return false;
		}
	}
	return true;	
}	
	
function checkRadioArray(fieldNr) {
	fieldRequired = fieldRequirements[fieldNr][10];	
	firstElement = null;
	checkedStr = "";
	checkValid = true;
	if(fieldRequired) {
		for(j=0; j<document.submitForm.length; j++) {
			tmpEl = document.submitForm[j];
			if(tmpEl.name.indexOf(fieldRequirements[fieldNr][1]+"_") == 0) {
				if(checkedStr.indexOf(tmpEl.name) == -1) {
					tmpItems = document.getElementsByName(tmpEl.name);
					tmpChecked = false;
					for(k=0; k<tmpItems.length; k++) {
						if(tmpItems.item(k).checked == true) {
							tmpChecked = true;
						}
					}
					if(tmpChecked == false) {
						checkValid = false;
						if(firstElement == null) {
							firstElement = tmpEl;
						}
					}
					checkedStr += "[["+tmpEl.name+"]]";				
				}
			}
		}		
		if(checkValid == false) {
			window.alert('Musisz zaznaczyć przynajmniej po jednym elemencie z każdej grupy w polu \''+fieldRequirements[fieldNr][2]+'\'.');
			firstElement.focus();
			return false;
		}
	}
	return true;	
}	
	
function validate()
	{
	for(i=0; i<fieldRequirements.length; i++)
		{
		field = document.getElementsByName(fieldRequirements[i][1]);
		if(field.length)
			{
			fieldRequired = fieldRequirements[i][10];
			switch(field.item(0).type)
				{
				case 'checkbox' :
					if(fieldRequired && field.item(0).checked == false) 
						{
						window.alert('Pole \''+fieldRequirements[i][2]+'\' jest wymagane.');
						field.item(0).focus();
						return false;
						}
					break;
				case 'radio' :
					isChecked = false;
					for(j=0; j<field.length; j++)
						{
						if(field.item(j).checked == true)
							{
							isChecked = true;
							break;
							}
						}						
					if(fieldRequired && isChecked == false) 
						{
						window.alert('Pole \''+fieldRequirements[i][2]+'\' jest wymagane.');
						field.item(0).focus();
						return false;								
						}
					break;
				case 'select-one' :
					if(fieldRequired && field.item(0).value == "") 
						{
						window.alert('Pole \''+fieldRequirements[i][2]+'\' jest wymagane.');
						field.item(0).focus();
						return false;								
						}
					break;	
				case 'hidden' :					
				case 'text' :
				case 'textarea' :
				case 'password' :
					fieldContent = field.item(0).value;
					if(fieldContent != '')
						{
						switch(fieldRequirements[i][3])
							{
							case 'email' :
								regexp = new RegExp('^([a-z0-9\-_\.±ęłó¶żĽćń])+\@(([a-z0-9\-±ęłó¶żĽćń])+\.)+([a-z0-9]{2,4})+$', 'gi');
								if(fieldContent.match(regexp) == null)
									{
									window.alert('Pole \''+fieldRequirements[i][2]+'\' musi zawierać prawidłowy adres e-mail.');
									field.item(0).focus();
									return false;										
									}
								break;
							case 'www' :
								regexp = new RegExp('^[a-z0-9\-_±ęłó¶żĽćń]+\\.[a-z0-9\-_%&\?\/.=±ęłó¶żĽćń]+$', 'gi');
								if(fieldContent.match(regexp) == null)
									{
									window.alert('Pole \''+fieldRequirements[i][2]+'\' musi zawierać prawidłowy adres www.');
									field.item(0).focus();
									return false;							
									}								
								break;
							}
			
						invalidValue = fieldRequirements[i][4].split(';');
						if(invalidValue[0] != '') 
							{
							for(j=0; j<invalidValue.length; j++)
								{
								if(invalidValue[j] == fieldContent)
									{
									window.alert('Pole \''+fieldRequirements[i][2]+'\' zawiera nieprawidłowe dane.');
									field.item(0).focus();
									return false;
									}
								}
							}
							
						returnValue = checkLength(field.item(0), fieldContent, fieldRequirements[i][2], fieldRequirements[i][5], fieldRequirements[i][6]);
						if(!returnValue) return returnValue;
						
						returnValue = checkChars(field.item(0), fieldContent, fieldRequirements[i][2], fieldRequirements[i][7], fieldRequirements[i][8]);
						if(!returnValue) return returnValue;							
						}
					else if(fieldRequired) 
						{
						window.alert('Pole \''+fieldRequirements[i][2]+'\' jest wymagane.');
						field.item(0).focus();
						return false;
						break;
						}
					break;						
				}
			}			
		if(fieldRequirements[i][9] != '') 
			{
			returnValue = eval(fieldRequirements[i][9]+'(\''+i+'\');');
			if(returnValue == false) return returnValue;
			}			
		}
	return true;
	}