
function ValidarFormulario(elmFORM) { 
 var Mensaje = ''; 
 var cnjFORM = elmFORM.elements; 
 var elmLABEL; 
 for (var i=0; i<cnjFORM.length; i++) { 
   if (cnjFORM[i].className.indexOf('Obligatorio')!=-1) { 
     if (! tieneDatos(cnjFORM[i].value)) { 
       Mensaje+='El campo '+cnjFORM[i].name+' no puede estar vacio.\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Fecha')!=-1) { 
     if (! esFecha(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' no es una fecha valida (dd-mm-aaaa).\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Numerico')!=-1) { 
     if (! esNumerico(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' solo puede contener numeros.\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Email')!=-1) { 
     if (! esEmail(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' no es una direccion de correo valida.\n'; 
       } 
     } 
   if (cnjFORM[i].className.indexOf('Url')!=-1) { 
     if (! esURL(cnjFORM[i].value)) { 
       Mensaje+='El campo ' + cnjFORM[i].name + ' no es una direccion web valida.\n'; 
       } 
     } 
   
   } 
 if (Mensaje != '') alert(Mensaje); 
 return (Mensaje == ''); 
}

function ValidarElementoFormulario(formfield){
var label=getLabelForId(formfield.name);
formfield.style.border='2px solid #999999';
   if (formfield.className.indexOf('Obligatorio')!=-1) {
     if (! tieneDatos(formfield.value)) { 
       label.className="Problema";return "";
       } 
     } 
   if (formfield.className.indexOf('Fecha')!=-1) { 
     if (! esFecha(formfield.value)) { 
       label.className="Problema";return "";
       } 
     } 
   if (formfield.className.indexOf('Numerico')!=-1) { 
     if (! esNumerico(formfield.value)) { 
       label.className="Problema";return "";
       } 
     } 
   if (formfield.className.indexOf('Email')!=-1) { 
     if (! esEmail(formfield.value)) { 
       label.className="Problema";return "";
       } 
     } 
   if (formfield.className.indexOf('Url')!=-1) { 
     if (! esURL(formfield.value)) { 
       label.className="Problema";return "";
       } 
     }
 /* PARA PONER LA IMAGEN DE VALIDO TAMBIEN EN LOS CAMPOS QUE NO TIENEN DATOS */
 /* if (tieneDatos(formfield.value)) { */
     
   label.className="Valido";return "";
  /* } */
}

function tieneDatos(Valor) { 
 for (var i=0; i<Valor.length; i++) { 
   if ((" \t\n\r").indexOf(Valor.charAt(i))==-1) return true; 
   } 
 return false; 
}
 
function esNumerico(Valor) {
 if (!tieneDatos(Valor)) return true; 
 var a = Valor.match(/^[0-9]+$/gi);
 if (!a){
 	return false;
 }
 return true;
}
 
function esFecha(Valor) { 
 if (!tieneDatos(Valor)) return true; 
 var DatosFecha = Valor.split('-'); 
 var Fecha = new Date(); 
 Fecha.setFullYear(DatosFecha[2],DatosFecha[1]-1,DatosFecha[0]); 
 return (Fecha.getMonth()==DatosFecha[1]-1); 
}

function esEmail(email){
 if (!tieneDatos(email)) return true; 
if( email.indexOf('@',0) <= 0  || email.indexOf(';',0) != -1
     || email.indexOf(' ',0) != -1 || email.indexOf('/',0) != -1
     || email.indexOf(';',0) != -1 || email.indexOf('<',0) != -1
     || email.indexOf('>',0) != -1 || email.indexOf('*',0) != -1
     || email.indexOf('|',0) != -1 || email.indexOf('`',0) != -1
     || email.indexOf('&',0) != -1 || email.indexOf('$',0) != -1
     || email.indexOf('!',0) != -1 || email.indexOf('"',0) != -1
     || email.indexOf(':',0) != -1 ) { 
	 return false; 
}
else return true;
}

function esURL(Web) {
if (!tieneDatos(Web)) return true; 
else
    if( (Web.substring(0, 7) == 'http://') || (Web.substring(0, 7) == 'HTTP://')) {
		return true;
    }
    else {
		return false;
	}
}




/* PARA COMPROBAR ERRORES SEGUN SE RELLENA EL FORMULARIO */

function getLabelForId(id) {
    var label, labels = document.getElementsByTagName('label');
    for (var i = 0; (label = labels[i]); i++) {
        if (label.htmlFor == id) {
            return label;
        }
    }
    return false;
}

addEvent(window, 'load', function() {
    var input;
    var inputs = document.getElementsByTagName('input');
    for (var i = 0; (input = inputs[i]); i++) {
        addEvent(input, 'focus', oninputfocus);
        addEvent(input, 'blur', oninputblur);
    }
    var textareas = document.getElementsByTagName('textarea');
    for (var i = 0; (textarea = textareas[i]); i++) {
        addEvent(textarea, 'focus', oninputfocus);
        addEvent(textarea, 'blur', oninputblur);
    }
});


function addEvent(obj, evType, fn){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}




function oninputfocus(e) {
    if (typeof e == 'undefined') {
        var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined') {
        source = e.target;
    } else if (typeof e.srcElement != 'undefined') {
        source = e.srcElement;
    } else {
        return;
    }
    source.style.border='1px solid ';
}
function oninputblur(e) {
    if (typeof e == 'undefined') {
        var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined') {
        source = e.target;
    } else if (typeof e.srcElement != 'undefined') {
        source = e.srcElement;
    } else {
        return;
    }
    source.style.border='1px solid ';
}

