function erpValidateStringFormat(value){
	var actual= value[0];
	var i=0;
	var ok=true; //todos son blancos
	var newBeginning;
	var newValue;
	var fin=value.length;
	while((i<fin)&&(ok)){
		if (actual==" "){	i=i+1;;
							actual=value[i];
						 }
		else {ok=false;
			  newBeginning=i;
			  }		
	}
	if (!ok)		
		{  return(value.substr(newBeginning,value.length));}
	else
		{ return("");}
}

function erpValidateFirstName(firstNameInput, nameForMessage)
{
	firstNameInput.value=erpValidateStringFormat(firstNameInput.value);
	if (firstNameInput.value.length == 0)
		return mostrarError(firstNameInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else if ((firstNameInput.value.length < 3) || (firstNameInput.value.length > 50))
		return mostrarError(firstNameInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 50 caracteres.');
	else
		return true;
}

function erpValidateLastName(lastNameInput, nameForMessage)
{
	lastNameInput.value=erpValidateStringFormat(lastNameInput.value);
	if (lastNameInput.value.length == 0)
		return mostrarError(lastNameInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else if ((lastNameInput.value.length < 3) || (lastNameInput.value.length > 50))
		return mostrarError(lastNameInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 50 caracteres.');
	else
		return true;
}

function erpValidateFullPhoneNumber(iddInput, codeInput, numberInput, nameForMessage, required)
{
	if (required === true)
	{
		if (iddInput.value.length == 0)
			return mostrarError(iddInput, 'La seccion "Pais" del campo "' + nameForMessage + '" es obligatoria.');
		else if (!isNumeric(iddInput.value))
			return mostrarError(iddInput, 'El valor de la seccion "Pais" del campo "' + nameForMessage + '" debe ser un numero.');
		else if (codeInput.value.length == 0)
			return mostrarError(codeInput, 'La seccion "Area" del campo "' + nameForMessage + '" es obligatoria.');
		else if (!isNumeric(codeInput.value))
			return mostrarError(codeInput, 'El valor de la seccion "Area" del campo "' + nameForMessage + '" debe ser un numero.');
		else if (numberInput.value.length == 0)
			return mostrarError(numberInput, 'La seccion "Numero" del campo "' + nameForMessage + '" es obligatoria.');
		else if (!isNumeric(numberInput.value))
			return mostrarError(numberInput, 'El valor de la seccion "Numero" del campo "' + nameForMessage + '" debe ser un numero.');
		else if (((iddInput.value.length + codeInput.value.length + numberInput.value.length) < 3) ||
		         ((iddInput.value.length + codeInput.value.length + numberInput.value.length) > 18))
			return mostrarError(codeInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 18 caracteres ("Pais" + "Area" + "Numero").');
		else
			return true;
	}
	else
	{
		if ((iddInput.value.length == 0) && (codeInput.value.length == 0) && (numberInput.value.length == 0))
			return true;
		else
			return erpValidateFullPhoneNumber(iddInput, codeInput, numberInput, nameForMessage, true);
	}
}

function erpValidatePhoneNumber(partOneInput, partTwoInput, nameForMessage, required)
{
	if (required === true)
	{
		if (partOneInput.value.length == 0)
			return mostrarError(partOneInput, 'La seccion "Area" del campo "' + nameForMessage + '" es obligatoria.');
		else if (!isNumeric(partOneInput.value))
			return mostrarError(partOneInput, 'El valor de la seccion "Area" del campo "' + nameForMessage + '" debe ser un numero.');
		else if (partTwoInput.value.length == 0)
			return mostrarError(partTwoInput, 'La seccion "Numero" del campo "' + nameForMessage + '" es obligatoria.');
		else if (!isNumeric(partTwoInput.value))
			return mostrarError(partTwoInput, 'El valor de la seccion "Numero" del campo "' + nameForMessage + '" debe ser un numero.');
		else if (((partOneInput.value.length + partTwoInput.value.length) < 8) || ((partOneInput.value.length + partTwoInput.value.length) > 20))
			return mostrarError(partOneInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 8 y 20 caracteres ("Area" + "Numero").');
		else
			return true;
	}
	else
	{
		if ((partOneInput.value.length == 0) && (partTwoInput.value.length == 0))
			return true;
		else
			return erpValidatePhoneNumber(partOneInput, partTwoInput, nameForMessage, true);
	}
}

function erpValidateSinglePhoneNumber(phoneInput, nameForMessage, required)
{
	if (required === true)
	{
		if (phoneInput.value.length == 0)
			return mostrarError(phoneInput, 'El campo "' + nameForMessage + '" es obligatorio.');
		else if (!isNumeric(phoneInput.value))
			return mostrarError(phoneInput, 'El valor del campo "' + nameForMessage + '" debe ser un numero.');
		else if ((phoneInput.value.length < 8) || (phoneInput.value.length > 20))
			return mostrarError(phoneInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 8 y 20 caracteres.');
		else
			return true;
	}
	else
	{
		if (phoneInput.value.length == 0)
			return true;
		else
			return erpValidateSinglePhoneNumber(phoneInput, nameForMessage, true);
	}
}

function erpValidateEmail(emailInput, nameForMessage)
{
	if (emailInput.value.length == 0)
		return mostrarError(emailInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else if (!validarEmail(emailInput.value))
		return mostrarError(emailInput, 'El valor del campo "' + nameForMessage + '" es invalido.');
	else if ((emailInput.value.length < 6) || (emailInput.value.length > 100))
		return mostrarError(emailInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 6 y 100 caracteres.');
	else
		return true;
}

function erpValidateCity(cityInput, nameForMessage)
{
	cityInput.value=erpValidateStringFormat(cityInput.value);
	if (cityInput.value.length == 0)
		return mostrarError(cityInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else if ((cityInput.value.length < 3) || (cityInput.value.length > 100))
		return mostrarError(cityInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 100 caracteres.');
	else
		return true;
}

function erpValidateProvince(provinceInput, nameForMessage)
{
	provinceInput.value=erpValidateStringFormat(provinceInput.value);
	if (provinceInput.value.length == 0)
		return mostrarError(provinceInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else if ((provinceInput.value.length < 3) || (provinceInput.value.length > 100))
		return mostrarError(provinceInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 100 caracteres.');
	else
		return true;
}

function erpValidateCountry(countryInput, nameForMessage)
{
	if (countryInput.value.length == 0)
		return mostrarError(countryInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else
		return true;
}

function erpValidateDocument(documentInput, nameForMessage, required)
{
	if (required === true)
	{
		if (documentInput.value.length == 0)
			return mostrarError(documentInput, 'El campo "' + nameForMessage + '" es obligatorio.');
		else if (!isNumeric(documentInput.value))
			return mostrarError(documentInput, 'El valor del campo "' + nameForMessage + '" debe ser un numero.');
		else if ((documentInput.value.length < 3) || (documentInput.value.length > 50))
			return mostrarError(documentInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 100 caracteres.');
		else
			return true;
	}
	else
	{
		if (documentInput.value.length == 0)
			return true;
		else
			return erpValidateDocument(documentInput, nameForMessage, true);
	}
}

function erpValidateStreet(streetInput, nameForMessage)
{
	if (streetInput.value.length == 0)
		return mostrarError(streetInput, 'El campo "' + nameForMessage + '" es obligatorio.');
	else if ((streetInput.value.length < 3) || (streetInput.value.length > 100))
		return mostrarError(streetInput, 'El valor del campo "' + nameForMessage + '" debe contener entre 3 y 100 caracteres.');
	else
		return true;
}

function erpValidateStreetNumber(streetNumberInput, nameForMessage)
{
	if (streetNumberInput.value.length > 16)
		return mostrarError(streetNumberInput, 'El valor del campo "' + nameForMessage + '" puede contener hasta 15 caracteres.');
	else
		return true;
}

function erpValidateStreetFloor(streetFloorInput, nameForMessage)
{
	if (streetFloorInput.value.length > 16)
		return mostrarError(streetFloorInput, 'El valor del campo "' + nameForMessage + '" puede contener hasta 15 caracteres.');
	else
		return true;
}

function erpValidateZipCode(zipCodeInput, nameForMessage)
{
	if (zipCodeInput.value.length > 16)
		return mostrarError(zipCodeInput, 'El valor del campo "' + nameForMessage + '" puede contener hasta 15 caracteres.');
	else
		return true;
}