function checkObligatoryFields(mensajeError, indice, messages_id, errors_id, success_id)
{
	if(indice == undefined)
		indice = 0;
	if(messages_id == undefined)
		messages_id = 'messages';
	if(errors_id == undefined)
		errors_id = 'errors';
	if(success_id == undefined)
		success_id = 'success';
	var Mensaje = "";
	for(var i=0; i<obligatoryFields.length; i++)
	{
		for(j=0; j<document.forms[indice].elements.length; j++)
		{
			if(obligatoryFields[i] == document.forms[indice].elements[j].id)
			{
				valor = document.getElementById(obligatoryFields[i]).value;
				if(!trim(valor))
				{
					if(!Mensaje)
					{
						Mensaje += "<p>" + mensajeError + "</p>";	
					}
					colocarMarca(obligatoryFields[i]);
				}
				else if(document.getElementById('error_' + obligatoryFields[i]))
				{
					descolocarMarca(obligatoryFields[i]);
				}
				break;
			}
		}
	}
	Mensaje = revisarRestricciones(Mensaje);
	if(Mensaje == "")
	{
		return true;
	}
	mostrarOcultarDivsMensajes(messages_id, errors_id, success_id);
	document.getElementById(errors_id).innerHTML = Mensaje;
	window.location.href = '#' + messages_id;
	return false;	
}

function revisarRestricciones(Mensaje)
{
	for(var i=0; i<restrictions[0].length; i++)
	{
		if(document.getElementById(restrictions[0][i]).value)
		{
			switch(restrictions[1][i])
			{
				case 'email':
							if(!validarEmail(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				case 'positive_number':
							if(!validarNumericoPositivo(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				case 'telephone':
							limpiarTelf(restrictions[0][i]);
							if(!validarNumericoTelefonico(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				case 'zip_code':
							if(!validarCodigoPostal(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				case 'eu_quantity':
							if(!validarCantidadUE(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				case 'american_quantity':
							if(!validarCantidad(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				case 'password':
							
							if(!validarLongitud(restrictions[0][i]))
							{	
								var msj = restrictions[2][i];
								msj = msj.replace('fieldName', document.getElementById('lbl_' + restrictions[0][i]).innerHTML);
								Mensaje += "<p>" + msj + "</p>";
								colocarMarca(restrictions[0][i]);
							}
							else
							{
								descolocarMarca(restrictions[0][i]);
							}
							break;
				default:
							break;
				
			}	
		}
	}
	return Mensaje;
}

function colocarMarca(nombre)
{
	
	if(document.getElementById('error_' + nombre))
	{
		document.getElementById('error_' + nombre).innerHTML = '*';
	}
}

function descolocarMarca(nombre)
{
	if(document.getElementById('error_' + nombre))
	{
		document.getElementById('error_' + nombre).innerHTML = '';
	}
}

function validarEmail(nombre)
{	
	var reMail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	if(!reMail.exec(document.getElementById(nombre).value)) return false;
	return true;	
}

function validarNumericoTelefonico(nombre)
{
	var er_tel = /(^([0-9]{8,14})|^)$/;
	if(!er_tel.test(document.getElementById(nombre).value))    
	 	return false;  
	return true;
}

function validarNumericoPositivo(nombre)
{
	var er_num = /^\d+$/;
	if(!er_num.test(document.getElementById(nombre).value)) 
		 	return false;  
	return true;
}

function validarCodigoPostal(nombre)
{
	var er_cp = /(^([0-9]{5,5})|^)$/;  
	if(!er_cp.test(document.getElementById(nombre).value))   
		 return false;  
	return true;
}

function validarCantidadUE()
{
	return true;
}

function validarCantidad()
{
	return true;
}

function validarLongitud(cadena)
{
	if(document.getElementById(cadena).value.length < 6)
	{
		return false;
	}
	else
	{
		return true;
	}
}


function limpiarTelf(nombre)
{
	erSeparador=/[.]|[,]|[(]|[)]|[-]| /g;
	document.getElementById(nombre).value = document.getElementById(nombre).value.replace(erSeparador,"");
}

function validarTelefono(Prefijo,Telefono)
{
	var rePreTelf=/\d{2,3}$/; // Reg Exp para prefijo telefono
	var reTelf=/\d{6,15}$/; // Reg Exp para teléfono correcto
	var reTelfMal=/\D/; // Reg Exp para teléfono incorrecto
	if (Prefijo != "" && !rePreTelf.exec(Prefijo)) return false;
	if (Telefono != "" && !reTelf.exec(Telefono)) return false;
	if (Telefono != "" && reTelfMal.exec(Telefono)) return false;
	return true;
}

function trim(str) 
{
  str = str.replace (/\s/g, "");
  return str; 
}

function mostrarOcultarDivsMensajes(messages_id, errors_id, success_id)
{
	document.getElementById(messages_id).style.display = 'block';
	document.getElementById(errors_id).style.display = 'block';
	if(document.getElementById(success_id))
	{
		document.getElementById(success_id).style.display = 'none';
	}
	
}