function hoverBotones() {
    $(".fg-button").hover(
        function() {
            $(this).addClass("ui-state-hover");
        },
        function() {
            $(this).removeClass("ui-state-hover");
        }
        );
}

//comprueba la extensión de un fichero (3 últimos caracteres).
//Se pasan por parámetro la ruta/nombre del fichero y la extensión que se quiere comprobar
function comprobarExtension(fichero, extension){
       var devolver = false;
       var largo = fichero.length;
       if(fichero.substring(largo-3, largo) == extension)
           devolver = true;

       return devolver;
   }

/*
 * compara dos fechas que se pasan como parámetro.
 * para comparar con la fecha del sistema, se debe pasar la cadena 'sysdate' como sengundo parametro
 * fec0 (string) : es la primera fecha a commparar
 * fec1 (string) : es la segunda fecha a comparar
 * comparacion (string) : tipo de comparacion (<, >, =, <=, >=, !=)
 * devuelve true en caso de que las fechas cumplan con la condición a comparar
 * y false en caso contrario
 */
function comparaFechas(fec0, fec1, comparacion){
	var devolver= false;
    var sAno0 = fec0.substring(6, 10);
    var sMes0 = fec0.substring(3, 5);
    var sDia0 = fec0.substring(0, 2);
	var sHora0 = fec0.substring(11, 13);
	var sMinuto0 = fec0.substring(14, 16);
    var myDate0 = new Date(sAno0, sMes0 - 1, sDia0, sHora0, sMinuto0);	
    if(fec1 == 'sysdate')
        var myDate1 = new Date();
    else{
        var sDia1 = fec1.substring(0, 2);
        var sMes1 = fec1.substring(3, 5);
        var sAno1 = fec1.substring(6, 10);		
		var sHora1 = fec1.substring(11, 13);
		var sMinuto1 = fec1.substring(14, 16);
        var myDate1 = new Date(sAno1, sMes1 - 1, sDia1, sHora1, sMinuto1);
    }
    //alert(myDate0+' ---- '+myDate1);
    switch(comparacion){
        case '=':
            if(myDate0 == myDate1) devolver = true;
            break;
        case '>':
            if(myDate0 > myDate1) devolver = true;
            break;
        case '<':
            if(myDate0 < myDate1) devolver = true;
            break;
        case '<=':
            if(myDate0 < myDate1 || myDate0 == myDate1) devolver = true;
            break;
        case '>=':
            if(myDate0 > myDate1 || myDate0 == myDate1) devolver = true;
            break;
        case '!=':
            if(myDate0 != myDate1) devolver = true;
            break;
    }
    return devolver;
}

//Devuelve true si el parámetro sText es un número. False en caso contrario
function IsNumeric(sText){
    var ValidChars = "0123456789";
    var IsNumber=true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;
}

//hace comprobaciones del nif/nie (longitud, caracteres correctos, situacion de las letras...)
function validaNif(dni) {
    numero = dni.substr(0,dni.length-1);
    let = dni.substr(dni.length-1,1);
    numero = numero % 23;
    letra='TRWAGMYFPDXBNJZSQVHLCKET';
    letra=letra.substring(numero,numero+1);
    if (letra!=let.toUpperCase())
        return false;
    else
        return true;
}

//Valida un DNI de 9 dígitos.
function validaDNI(a) {
    var temp = a.toUpperCase();
    rgx = /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/;
    return rgx.test(temp);
}

function validaNie(a) {
    var temp = a.toUpperCase();
    rgx = /^[x|X][0-9][0-9][0-9][0-9][0-9][0-9][0-9][a-zA-Z]$/;
    return rgx.test(temp);
}

/**
 * funcion para comprobar si una año es bisiesto
 * argumento anyo > año extraido de la fecha introducida por el usuario
 */
function anyoBisiesto(anyo) {
    /**
     * si el año introducido es de dos cifras lo pasamos al periodo de 1900. Ejemplo: 25 > 1925
     */
    if (anyo < 100)
        var fin = anyo + 1900;
    else
        var fin = anyo ;

    /*
     * primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
     * es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
     */
    if (fin%4 != 0)
        return false;
    else {
        if (fin % 100 == 0) {
            /**
             * si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
             */
            if (fin%400 == 0){
                return true;
            }
            /**
             * si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
             */
            else {
                return false;
            }
        }
        /**
         * si es divisible por 4 y no es divisible por 100 > el año es bisiesto
         */
        else {
            return true;
        }
    }
}

function validarEntero(valor) {
    //intento convertir a entero.
    //si era un entero no le afecta, si no lo era lo intenta convertir
    //Compruebo si es un valor numérico
    if (isNaN(valor)) {
        //entonces (no es numero) devuelvo el valor cadena vacia
        return false;
    }
    else {
        //En caso contrario (Si era un número) devuelvo el valor
        return true;
    }
}

/**
 * funcion principal de validacion de la fecha
 * argumento el objeto fecha
 */
function validaFecha(fecha) {
    /**
     * obtenemos la fecha introducida y la separamos en dia, mes y año
     */
    a = fecha.value;
    dia = a.split("/")[0];
    mes = a.split("/")[1];
    anyo = a.split("/")[2];

    if (!validarEntero(dia) || !validarEntero(mes) || !validarEntero(anyo)) {
        return false;
    }

    if(anyoBisiesto(anyo))
        febrero=29;
    else
        febrero=28;

    /**
     * si el mes introducido es negativo, 0 o mayor que 12 > alertamos y detenemos ejecucion
     */
    if ((mes<1) || (mes>12)) {
        return false;
    }

    /**
     * si el mes introducido es febrero y el dia es mayor que el correspondiente
     * al año introducido > alertamos y detenemos ejecucion
     */
    if ((mes==2) && ((dia<1) || (dia>febrero))) {
        return false;
    }

    /**
     * si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
     */
    if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31))) {
        return false;
    }

    /**
     * si el mes introducido es de 30 dias y el dia introducido es mayor de 301 > alertamos y detenemos ejecucion
     */
    if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30))) {
        return false;
    }

    /**
     * si el mes año introducido es menor que 2002 o mayor que 2020 > alertamos y detenemos ejecucion
     * NOTA: estos valores son a eleccion vuestra, y no constituyen por si solos fecha erronea
     */
    if ((anyo<2002) || (anyo>2020)) {
        return false;
    }

    /**
     * en caso de que todo sea correcto > enviamos los datos del formulario
     * para ello debeis descomentar la ultima sentencia
     */
    else {
        return true;
    }
}

//Funcion principal de validacion de la hora.
function validaHora(hora) {
    /**
     * obtenemos la hora introducida y la separamos en horas y minutos
     */
    a = hora.value;
    horas = a.split(":")[0];
    minutos = a.split(":")[1];

    if (!validarEntero(horas) || !validarEntero(minutos)) {
        return false;
    }

    /**
     * si las horas introducidas son negativas, ó mayor que 23 > alertamos y detenemos ejecucion
     */
    if ((horas<0) || (horas>23)) {
        return false;
    }

    /**
     * si los minutos introducidos son negativas, ó mayor que 59 > alertamos y detenemos ejecucion
     */
    if ((minutos<0) || (minutos>59)) {
        return false;
    }

    return true;
}

function guardarFavoritos() {
    if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
        var url="http://www.educarm.es/index.html";
        var titulo="Consejeria Educación, Formación y Empleo Murcia";
        window.external.AddFavorite(url,titulo);
    }
    else {
        if(navigator.appName == "Netscape") {
            alert("Presione Crtl+D para agregar este sitio en sus Marcadores");
        }
    }
    return false;
}

function MM_preloadImages() { //v3.0
    var d=document; if(d.images){
        if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
            if (a[i].indexOf("#")!=0){
                d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];
            }
            }
}

function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
    }
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
        if ((x=MM_findObj(a[i]))!=null){
            document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
        }
}

function MM_goToURL() { //v3.0
    var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
    for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function validaEmail(email){
    return email.match(/^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i)
}

function validaTlfMovil(telefonoMovil){
    if((telefonoMovil.length > 0 && telefonoMovil.length < 9) || !telefonoMovil.match(/^6/))
        return false;
    else
        return true;
}


