function mostrar(id)
{
	getById(id).style.display = 'inline';
}

function mostrarBloque(id)
{
        document.getElementById(id).style.display = 'block';
}

function ocultar(id)
{
        document.getElementById(id).style.display = 'none';
}

function limpiar(inp)
{
        if ( inp.value != '' ) inp.value = '';
}

function mostrarOcultar(id)
{
        if ( document.getElementById(id).style.display == 'inline' )
                ocultar(id);
        else
                mostrar(id);
}

function mostrarOcultarBloque(id)
{
        if ( document.getElementById(id).style.display == 'block' )
                ocultar(id);
        else
                mostrarBloque(id);
}

function getById(id)
{
	return document.getElementById(id);
}

function validarGlobal (campos)
{
	//Comprobamos los campos
	for (var i = 0; i < campos.length; i++) {
		var mal = false;
    // Comprobamos si es funcion personalizada
    if (campos[i][0] == "")
      if (!eval(campos[i][1] + "(" + campos[i][2] + ")"))
        return false;
      else
        continue;
    
		var dato = document.getElementById (campos[i][0]);
		if (dato == null) {
			alert(campos[i][0] + " no definido.");
			continue;
		}
		if(dato.disabled) {
			continue;
		}
		
		// Vemos si el campo es obligatorio
		// En los caso de text y textarea, se comprueba adem�s que no tiene espacios en blanco
		// tanto al principio como al final.
		
		if (campos[i][2] != "") {
			switch (dato.type) {
			case "text": 
				mal = (dato.value == "");
				//if (tieneEspacios(dato)) return false;
				break;	
			case "textarea": 
				mal = (dato.value == "");						
				//if (tieneEspacios(dato)) return false;				
				break;	
			case "hidden": mal = (dato.value == ""); break;			
			case "radio": mal = (! radioSeleccionado(dato)); break;			
			case "checkbox": mal = (! dato.checked); break;
			case "select-one": mal = (dato.value == ""); break;
			}
			if (mal) {
				alert ("Debe indicar " + campos[i][2] );
        
        if (dato.type != "hidden" ) 
          dato.focus ();
				
        return false;
			}
		}
		// Comprobamos lo introducido
		if (dato.value != "") {
			if (! eval(campos[i][1] + "(dato.value)")) {
        dato.focus ();
				return false;
			}
		}
	}
	return true;
}

function tieneEspacios(dato){
	if(dato.value.substring(0,1).indexOf(" ") != -1 || dato.value.substring(dato.value.length-1).indexOf(" ") != -1){
		alert("No puede poner espacio en blanco al principio ni al final");
		dato.focus();
		return true;
	}return false;
}

function radioSeleccionado (radio) {
	var grupo = eval("document." + radio.form.name + "." + radio.name);
	for (var i = 0; i < grupo.length; i++)
		if (grupo[i].checked) return true;
	return false;
}

function noVacio (texto) {
	if(texto.substring(0,1).indexOf(" ") != -1 || texto.substring(texto.length-1).indexOf(" ") != -1)
	{
		alert("No puede poner espacio en blanco al principio ni al final");
		return false;
	}	
	return texto != "";
}

function esFecha (fecha) {
	var expreg = /^((?:0?[1-9])|(?:[12]\d)|(?:3[01]))\/((?:0?[1-9])|(?:1[0-2]))\/((?:19|20)\d\d)$/;
	var res = expreg.test(fecha);
	if (! res) {
		alert ("Debe introducir una fecha válida. DD/MM/AAAA");
	}
  else if ( Comparar_Fecha(fechaActual(), fecha) )
  {
    alert ("La fecha introducida es superior a la fecha actual");
    res = false;
  }
  
	return res;
}

function esCodigoPostal (codigo) {
	var expreg = /^\d{5}$/;
	var res = expreg.test(codigo);
	if (! res) {
		alert ("El Código Postal no es válido");
	}
	return res;
}

function esPorcentaje (porcentaje) {
	var expreg = /^((100(,00?)?)|(\d\d?(,\d\d?)?))$/
	var res = expreg.test(porcentaje);	
	if (! res) {
		alert ("El porcentaje no es válido.");
	}
	return res;	
}

function esNIF (nif) {
  return validar_nif (nif);
}

function esCIF (cif) {
  return validar_cif (cif);
}

function esNIE (nie) {
  return validar_nie(nie);
}

function esCIFNIF (cinfnif) {
	return validarNifCif (cinfnif);
}

function esCIFNIFNIE (cifnifnie) {
  return validarNifCifNie(cifnifnie);
}

function esNIFNIE (nifnie){
	return validarNifNie(nifnie);
}

function esEntero (numero) {
	var expreg = /^\d+$/;
	var res = expreg.test(numero);
	if (! res) {
		alert ("El número no es válido.");
	}
	return res;	
}

function esImporte (numero) {

      var expreg = /^\d{1,3}(\.\d{3})*(,\d+)?$/;
      
      var res = expreg.test(numero);	
      if (! res) {
        alert ("El importe introducido no es válido.");
      }
      return res;	
    }

function esReal (numero) {
  
  var expreg = /^\d{1,3}(\.\d{3})*(,\d+)?$/;

	var res = expreg.test(numero);	
	if (! res) {
		alert ("El formato del número no es válido. Formato correcto: 99.999,99 ó 99999,99");
	}
	return res;
}

function estaSeleccionado (checkbox_value) {
	return true;
}

function esEmail (email) {
	var expreg = /^[A-Za-z0-9\-_\.]+@[A-Za-z0-9\-_\.]+\.[A-Za-z]+$/;
	var res = expreg.test(email);	
	if (! res) {
		alert ("La direccion de correo electronico no es valida.");
	}
	return res;	
}

function esTelefono (telefono) {
	var expreg = /^(\+\d*)?\d{9}$/;
	var res = expreg.test(telefono);	
	if (! res) {
		alert ("El teléfono introducido no es válido.");
	}
	return res;	
}

function esFax (telefono) {
	var expreg = /^(\+\d*)?\d{9}$/;
	var res = expreg.test(telefono);	
	if (! res) {
		alert ("El fax introducido no es válido.");
	}
	return res;	
}
