var patternNoBlank = /.+/;

function validateCessioSala()
{
	var ok = true;

	var radioName = "dates";
	var fieldIdData = "data";
	var fieldIdStartHour = "hora_inici";
	var fieldIdEndHour = "hora_fi";


	var value = "";
	var radio = document.getElementsByName(radioName);
	if (radio != null)
	{
		var i;
		var found = false;
		for(i=0;((i<radio.length) && (!found));i++)
		{
			if (radio[i].checked)
			{
				found = true;
				value = radio[i].value;
			}
		}
	}
	
	if (value == "1")
	{
		var field = document.getElementById(fieldIdData);
		if (field != null)
		{
			if (!validateNotBlank(field.value))
			{
				ok = false;
				var errorField = document.getElementById("extraError_1");
				if (errorField != null)
				{
					alert(unescape(errorField.value));
				}
				field.focus();								
			}
		}
		
		if (ok)	
		{
			field = document.getElementById(fieldIdStartHour);
			if (field != null)
			{
				if (!validateNotBlank(field.value))
				{
					ok = false;
					var errorField = document.getElementById("extraError_1");
					if (errorField != null)
					{
						alert(unescape(errorField.value));
					}
					field.focus();								
				}
			}
		}
		
		if (ok)	
		{
			field = document.getElementById(fieldIdEndHour);
			if (field != null)
			{
				if (!validateNotBlank(field.value))
				{
					ok = false;
					var errorField = document.getElementById("extraError_1");
					if (errorField != null)
					{
						alert(unescape(errorField.value));
					}
					field.focus();								
				}
			}
		}		
	}
	else if (value == "2")
	{
		var field = document.getElementById(fieldIdData + "1");
		if (field != null)
		{
			if (!validateNotBlank(field.value))
			{
				ok = false;
				var errorField = document.getElementById("extraError_2");
				if (errorField != null)
				{
					alert(unescape(errorField.value));
				}
				field.focus();								
			}
		}
		
		if (ok)	
		{
			field = document.getElementById(fieldIdStartHour + "1");
			if (field != null)
			{
				if (!validateNotBlank(field.value))
				{
					ok = false;
					var errorField = document.getElementById("extraError_2");
					if (errorField != null)
					{
						alert(unescape(errorField.value));
					}
					field.focus();								
				}
			}
		}
		
		if (ok)	
		{
			field = document.getElementById(fieldIdEndHour + "1");
			if (field != null)
			{
				if (!validateNotBlank(field.value))
				{
					ok = false;
					var errorField = document.getElementById("extraError_2");
					if (errorField != null)
					{
						alert(unescape(errorField.value));
					}
					field.focus();								
				}
			}
		}			
		
		if (ok)
		{
			if (!validateHoursOfDate(2))
			{
				ok = false;
			}
		}
		
		if (ok)
		{
			if (!validateHoursOfDate(3))
			{
				ok = false;
			}
		}

		if (ok)
		{
			if (!validateHoursOfDate(4))
			{
				ok = false;
			}
		}

		if (ok)
		{
			if (!validateHoursOfDate(5))
			{
				ok = false;
			}
		}		
	}	
	
	return ok;
}

function validateHoursOfDate(numField)
{
	var ok = true;
	
	var field = document.getElementById("data" + numField);
	if (field != null)
	{
		if (validateNotBlank(field.value))
		{
			field = document.getElementById("hora_inici" + numField);
			if (field != null)
			{
				if (!validateNotBlank(field.value))
				{
					ok = false;
					var errorField = document.getElementById("extraError_" + (numField+1));
					if (errorField != null)
					{
						alert(unescape(errorField.value));
					}
					field.focus();								
				}				
			}
			
			if (ok)
			{
				field = document.getElementById("hora_fi" + numField);
				if (field != null)
				{
					if (!validateNotBlank(field.value))
					{
						ok = false;
						var errorField = document.getElementById("extraError_" + (numField+1));
						if (errorField != null)
						{
							alert(unescape(errorField.value));
						}
						field.focus();								
					}				
				}			
			}			
		}
	}
	
	return ok;
}

function validateSociIndividual()
{
	var ok = true;

	var radioName = "soci_familia";
	var fieldId1 = "soci_familia_parella";
	var fieldId2 = "soci_familia_fill1";
	var fieldId3 = "soci_familia_fill2";
	var fieldId4 = "soci_familia_fill3";
	var fieldId5 = "soci_familia_pare";
	var fieldId6 = "soci_familia_mare";
	var checkboxName = "seccions";
	
	var radio = document.getElementsByName(radioName);
	if (radio != null)
	{
		var i;
		var found = false;
		for(i=0;((i<radio.length) && (!found));i++)
		{
			if (radio[i].checked)
			{
				found = true;
				if (radio[i].value == "SI")
				{
					var anyFieldFilled = false;
					var field = document.getElementById(fieldId1);
					var firstField = field;
					if (field != null)
					{
						anyFieldFilled = ( anyFieldFilled || validateNotBlank(field.value) );
					}
					if (!anyFieldFilled)
					{
						field = document.getElementById(fieldId2);
						if (field != null)
						{
							anyFieldFilled = ( anyFieldFilled || validateNotBlank(field.value) );
						}
					}
					if (!anyFieldFilled)
					{
						field = document.getElementById(fieldId3);
						if (field != null)
						{
							anyFieldFilled = ( anyFieldFilled || validateNotBlank(field.value) );
						}
					}
					if (!anyFieldFilled)
					{
						field = document.getElementById(fieldId4);
						if (field != null)
						{
							anyFieldFilled = ( anyFieldFilled || validateNotBlank(field.value) );
						}
					}
					if (!anyFieldFilled)
					{
						field = document.getElementById(fieldId5);
						if (field != null)
						{
							anyFieldFilled = ( anyFieldFilled || validateNotBlank(field.value) );
						}
					}
					if (!anyFieldFilled)
					{
						field = document.getElementById(fieldId6);
						if (field != null)
						{
							anyFieldFilled = ( anyFieldFilled || validateNotBlank(field.value) );
						}
					}
					
					if (!anyFieldFilled)
					{
						ok = false;
						//alert('Has d\'omplenar algun dels subcamps de camp "Algun membre del nucli familiar es soci"');
						var errorField = document.getElementById("extraError_1");
						if (errorField != null)
						{
							alert(unescape(errorField.value));
						}
						firstField.focus();					
					}
				}
			}
		}
	}
	
	if (ok)
	{
		var i;
		var numSelected = 0;
		firstField = null;
		for(i=0;i<10 && numSelected<=3;i++)
		{
			var checkbox = document.getElementById(checkboxName + i);
			if (checkbox != null)
			{
				if (i == 0)
				{
					firstField = checkbox;
				}
				
				if (checkbox.checked)
				{
					numSelected++;
				}
			}
		}
		
		if (numSelected > 3)
		{
			ok = false;
			//alert('El maxim de seleccions del camp "Seccions" es 3');
			var errorField = document.getElementById("extraError_2");
			if (errorField != null)
			{
				alert(unescape(errorField.value));
			}
			if (firstField != null)			
			{
				firstField.focus();					
			}
		}
	}
	
	return ok;
}

function validateSuggeriments()
{
	return validateNumSoci();
}

function validateNumSoci()
{
	var ok = true;
	
	var radioName = "soci";
	var fieldId = "num_soci";
	
	var radio = document.getElementsByName(radioName);
	if (radio != null)
	{
		var i;
		var found = false;
		for(i=0;((i<radio.length) && (!found));i++)
		{
			if (radio[i].checked)
			{
				found = true;
				if (radio[i].value == "SI")
				{
					var field = document.getElementById(fieldId);
					if (field != null)
					{
						if (!validateNotBlank(field.value))
						{
							ok = false;
							//alert('El camp "Num. Soci" es obligatori');
							var errorField = document.getElementById("extraError_1");
							if (errorField != null)
							{
								alert(unescape(errorField.value));
							}
							field.focus();
						}
					}
				}
			}
		}
	}
	
	return ok;
}

function validateNotBlank(field)
{
	var ok = false;
	
	if (field != null)
	{
		ok = validateString(field, patternNoBlank);
	}
	
	return ok;
}

function validateString(str, pattern) 
{
	return pattern.test(str);
}

