function validateAndSubmit(form, requiredFields, isCustomAction) {
	if (form) {
		if (requiredFields) {
			var requiredArray = requiredFields.split(',');
			var formElements = form.elements;
			for (var elementIndex = 0; elementIndex < formElements.length; elementIndex++) {
				var element = formElements[elementIndex];
				for (var fieldsIndex = 0; fieldsIndex < requiredArray.length; fieldsIndex++) {
					if (requiredArray[fieldsIndex] == element.name) {
						if (!element.value) {
							element.focus();
							alert('El campo donde está el cursor no puede estar vacío.');
							return;
						}
					}
				}
			}
		}

		// if this is a normal submit the custom action is disabled
		if (!isCustomAction) {
			if (form.elements) {
				if (form.elements['action']) {
					form.action.value = '';
				}
			}
		}

		form.submit();
	} else {
		alert ('No valid form could be found. Cannot continue. ' + form);
	}
}

function validNum(formField,fieldLabel)
{
  var result = true;

   if ( ! (formField.value == ""))
   {
     var num = parseInt(formField.value,10);
     if (isNaN(num))
     {
		alert('Por favor, introduzca un número en el campo:  "' + fieldLabel +'"');
      formField.focus();    
      result = false;
    }
  } 
  
  return result;
}

function validRequired(formField)
{
	var result = true;
	
	if (formField.value == "")
	{
		result = false;
	}
	
	return result;
}


function validateForm(theForm)
{

  if ( validRequired(theForm.nombre) || validRequired(theForm.apellidos) || validRequired(theForm.cpostal) || validRequired(theForm.poblacion) || validRequired(theForm.provincia) )
  {
	  if (!validNum(theForm.cpostal,"Código Postal"))
    	return false;
		else
		return true;
  }
  alert('Por favor, introduzca algún criterio de búsqueda!');
  theForm.nombre.focus();
  return false;
}

function cvSubmit(form, aliasValue)
{
	form.alias.value = aliasValue;
	form.submit();
}

function comprobaciones(form)
{
	if (!validRequired(form.catastro) || !validRequired(form.descripcion) || !validRequired(form.direccion) || !validRequired(form.longitud) || !validRequired(form.latitud))
	{
		alert('Por favor, introduzca valores para todos los campos');
		return;
	}
	if (form.longitud.value == 0 || isNaN(form.longitud.value)){
		alert("Por favor, introduzca un valor de longitud válido");
		form.longitud.focus();
		return;
	}
	if (form.latitud.value == 0 || isNaN(form.latitud.value)){
		alert("Por favor, introduzca un valor de latitud válido");
		form.latitud.focus();
		return;
	}
	
	if(isNaN(form.catastro.value) || form.catastro.value.length != 9){
		alert("Por favor, introduzca un código de catastro válido");
		form.catastro.focus();
		return;
	}
	
	posicion = form.latitud.value.indexOf(".");
	if(posicion == -1 || posicion > 2){
		alert("El formato de la latitud no es correcto");
		form.latitud.focus();
		return;
	}
	var posicion = form.longitud.value.indexOf(".");
	if(posicion == -1 || posicion == 0 || (form.longitud.value.indexOf("-")!=-1 && posicion==1) || (posicion > 2 && form.longitud.value.indexOf("-")==-1) || (posicion >3 && form.longitud.value.indexOf("-")!=-1)){
		alert("El formato de la longitud no es correcto");
		form.longitud.focus();
		return;
	}	
	var decimales = form.longitud.value.split(".");
	if(decimales[0].length > 6){
		alert("El número de decimales no puede ser superior a 6");
		form.longitud.focus();
		return;
	}	
		
	decimales = form.latitud.value.split(".");
	if(decimales[0].length > 6){
		alert("El número de decimales no puede ser superior a 6");
		form.latitud.focus();
		return;
	}
	
	var caracter;
	
	for(var i=0;i<length;i++){
		caracter = form.latitud.value.charCodeAt(i);
		if(caracter < 49 || caracter > 57){
			if((i!= 1 || i!= 2) && (form.latitud.value.charAt(i) == ".")){
				alert("El formato de la latitid no es correcto");
				form.latitud.focus();
				return;
			}
		}
	}
	
	for(var i=0;i<length;i++){
		caracter = form.longitud.value.charCodeAt(i);
		if(caracter < 49 || caracter > 57){
			if((i!= 1 || i!= 2) && (form.longitud.value.charAt(i) == ".")){
				alert("El formato de la longitud no es correcto");
				form.longitud.focus();
				return;
			}
		}
	}
	
	form.submit();
}
