﻿// JavaScript Document

var mostrando=new Array();
var historial=new Array();
var histindex=0;
var eshistoria=0;
function cambiarimgs(){
    $$('img[alt^=galeria]').each(function(e){
        if(!strpos(e.src,'thumb')){
            s=e.src;
            w=e.width;
            e.src='libs/thumb.php?imagen='+s+'&size='+w;
            e.alt='';
        }
    });
}
function muestratool(id){
    var mouse_x = Event.pointerX(this);
    var mouse_y = Event.pointerY(this);
    idelem=id.split('capa_').join('');
    var element = $(idelem);
    $(id).clonePosition(element,{
        setHeight:false,
        setWidth:false,
        offsetTop:20
    });
    $(id).show();
}
function ocultatool(id){
    $(id).hide();
}
function setStyles(x, y,tool_tip){
    // set the right styles to position the tool tip
    Element.setStyle(tool_tip, {
        position:'absolute',
        top:y + "px",
        left:x + "px",
        zindex:1000
    });
}
function getWindowHeight(){
    var innerHeight;
    if (navigator.appVersion.indexOf('MSIE')>0) {
        innerHeight = document.body.clientHeight;
    } else {
        innerHeight = window.innerHeight;
    }
    return innerHeight;	
}
 
function getWindowWidth(){
    var innerWidth;
    if (navigator.appVersion.indexOf('MSIE')>0) {
        innerWidth = document.body.clientWidth;
    } else {
        innerWidth = window.innerWidth;
    }
    return innerWidth;	
}
function muestra(tipo,id,destino){
    if(tipo=='listacursos' || tipo=='cursosProvin'){
        $('cuerpo').setStyle({
            'width':'98%'
        });
        $$('div.colderecha').each(function(e){
            e.setStyle({
                'width':'0'
            });
        });
    }
    else{
        $('cuerpo').setStyle({
            'width':''
        });
        $$('div.colderecha').each(function(e){
            e.setStyle({
                'width':''
            });
        });
    }
    $(destino).update('<img src="images/ajax-loading.gif">');
    var params='tipo='+tipo+'&noticia='+id;
    var myAjax=new Ajax.Request(
        'req/manejador.php',
        {
            method:"get",
            parameters:params,
            onComplete:function(req){
                $(destino).update(req.responseText);
                cambiarimgs.delay(3);
            }
        }
        );
}
function mandaform(id){
    if(validar($(id))){
        params=$(id).serialize()+'&'+'id='+$(id).name;
        var myAjax=new Ajax.Request(
            'req/formularios.php',
            {
                method:"post",
                parameters:params,
                onComplete:function(req){
                    $('lightwindow_contents').update(req.responseText);
                }
            }
            );
    }
}
function observar(event){
    var element = event.element();
    if($(element).getAttribute('tipo')){
        hist=strrep($(element).innerHTML);
        dhtmlHistory.add(hist,$(element).id);
        tipo=$(element).readAttribute('tipo').split(',');
        id=$(element).readAttribute('id').split(',');
        destino=$(element).readAttribute('destino').split(',');
        if($(element).readAttribute('rel')=='notilista'){
            $$('div[rel="cuerpolista"]').each(function(e){
                e.hide();
            });
            $(element).next('div[rel="cuerpolista"]').show();
        }
        for(i=0;i<tipo.length;i++){
            if($(element).readAttribute('mostrar')!='si'){
                todos=$('container').descendants();
                for ( var j = 0; j < todos.length; j++) {
                    todos[j].writeAttribute('mostrar','no');
                }
                if(i==(tipo.length-1)){
                    $(element).writeAttribute('mostrar','si');
                };
                $(destino[i]).update('');
                muestra(tipo[i],id[i],destino[i]);
            } else{
                if(i==(tipo.length-1)){
                    $(element).writeAttribute('mostrar','no');
                }
                ocultar(destino[i]);
            }
        }
    }
}

function historia(e){
    if(eshistoria==0){
        elem=Array();
        tipo=$(e).readAttribute('tipo').split(','),
        id=$(e).readAttribute('id').split(',');
        destino=$(e).readAttribute('destino').split(',');
        for(i=0;i<tipo.length;i++){
            elem[i]="muestra('"+tipo[i]+"','"+id[i]+"','"+destino[i]+"');";
        }
        dhtmlHistory.add(histindex,elem);
        histindex++;
    }else{
        histindex--;
        eshistoria=0;
        historyStorage.remove(histindex);
    }
}
/*window.dhtmlHistory.create({
	toJSON: function(o) {
	return Object.toJSON(o);
}
, fromJSON: function(s) {
	return s.evalJSON();
}
});

var yourListener = function(newLocation, historyData) {
	eshistoria=1;
	historyData.each(function(i){eval(i);});
	eval(historyData);
}

/*Event.observe(window, 'load', function() {
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(yourListener);
	dhtmlHistory.add(histindex,['window.location="index.php"']);
});*/

function ocultar(destino){
    if(destino!='cuerpo' && destino!='itemFlash'){
        $(destino).update('');
    }
}
function flashMuestra(tipo,id,destino){
    $$('div[rel="cuerpolista"]').each(function(e){
        e.hide();
    });
    var params='tipo='+tipo+'&noticia='+id;
    var myAjax=new Ajax.Request(
        'req/manejador.php',
        {
            method:"get",
            parameters:params,
            onComplete:function(req){
                $(destino).update(req.responseText);
                $(destino).show();
                cambiarimgs.delay(3);
            }
        }
        );
}
function validar(formu){
    correcto=true;
    correctuno=true;
    lista=formu.getElements();
    for(i=0;i<lista.length;i++){
        if(lista[i].readAttribute('validar')!=null){
            lista[i].writeAttribute('fallo','no');
            valis=lista[i].readAttribute('validar').split(',');
            for(j=0;j<valis.length;j++){
                correctuno=eval('validar_'+valis[j]+'(lista[i])');
                if(correcto==true){
                    correcto=correctuno;
                }
            }
        }
    }
    return correcto;
}
function validar_requerido(campo){
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    if(campo.readAttribute('fallo')!='si'){
        if($F(campo)=='' || $F(campo)==null){
            $(campo).writeAttribute('fallo','si');
            $(campo).setStyle({
                'border':'1px solid red'
            })
            $('error'+campo.name).update("El campo es requerido");
            return false;
        }else{
            valor=$F(campo);
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return true;
        }
    }
}
function validar_email(campo) {
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    if(campo.readAttribute('fallo')!='si'){
        regx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z_])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
        if (regx.test($F(campo))){
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        } else {
            if($('error'+campo.name).innerHTML==''){
                $(campo).setStyle({
                    'border':'1px solid red'
                });
                $('error'+campo.name).update("El formato del email no es correcto");
                $(campo).writeAttribute('fallo','si');
            }
            return (false);
        }
    }
}
function validar_telefono(campo){
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    if(campo.readAttribute('fallo')!='si'){
        regx=/^[6,9,8]\d{8}$/;
        if (regx.test($F(campo))){
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        } else {
            if($('error'+campo.name).innerHTML==''){
                $(campo).setStyle({
                    'border':'1px solid red'
                });
                $('error'+campo.name).update("El formato de telefono no es correcto");
                $(campo).writeAttribute('fallo','si');
            }
            return (false);
        }
    }
}
function validar_fecha(campo){
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    if(campo.readAttribute('fallo')!='si'){
        regx=/^\d{2}-\d{2}-\d{4}$/;
        if (regx.test($F(campo))){
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        } else {
            if($('error'+campo.name).innerHTML==''){
                $(campo).setStyle({
                    'border':'1px solid red'
                });
                $('error'+campo.name).update("El formato de fecha no es correcto, debe usar: dd-mm-aaaa");
                $(campo).writeAttribute('fallo','si');
            }
            return (false);
        }
    }
}
function validar_cp(campo){
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    if(campo.readAttribute('fallo')!='si'){
        regx=/^\d{5}$/;
        if (regx.test($F(campo))){
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        } else {
            if($('error'+campo.name).innerHTML==''){
                $(campo).setStyle({
                    'border':'1px solid red'
                });
                $('error'+campo.name).update("El formato de código postal no es correcto");
                $(campo).writeAttribute('fallo','si');
            }
            return (false);
        }
    }
}
function validar_dni(campo){
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    valor =$F(campo);
    var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];
    var temp=valor.toUpperCase();
    if (/^[XYZxyz]{1}/.test(temp))
    {
        //var pos = str_replace(['X', 'Y', 'Z'], ['0','1','2'], temp).substring(0, 8) % 23;
        valor=valor.replace(/^[Xx]{1}/, '0');
        valor=valor.replace(/^[Yy]{1}/, '1');
        valor=valor.replace(/^[Zz]{1}/, '2');
        while(valor.substring(0,1)=='0'){
            valor=valor.substring(1,(valor.length));
        }
        if(valor.charAt((valor.length)-1) != letras[parseInt(valor.substring(0, (valor.length)-1))%23]){
            if($('error'+campo.name).innerHTML==''){
                $(campo).setStyle({
                    'border':'1px solid red'
                });
                $('error'+campo.name).update("El NIE no es correcto");
                $(campo).writeAttribute('fallo','si');
            }
            return false;
        }else{
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        }
    }
    if((/^\d{8}[A-Z]$/.test(temp))){
        while(temp.substring(0,1)=='0'){
            temp=temp.substring(1,(temp.length));
        }
        if((temp.charAt((temp.length)-1) != letras[parseInt(temp.substring(0, (temp.length)-1))%23])) {
            if($('error'+campo.name).innerHTML==''){
                $(campo).setStyle({
                    'border':'1px solid red'
                });
                $('error'+campo.name).update("El DNI no es correcto");
                $(campo).writeAttribute('fallo','si');
            }
            return false;
        }else{
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        }
    }else{
        if($('error'+campo.name).innerHTML==''){
            $(campo).setStyle({
                'border':'1px solid red'
            });
            $('error'+campo.name).update("El DNI no es correcto");
            $(campo).writeAttribute('fallo','si');
        }
        return false;
    }
}
function validar_ss(campo){
    if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    valor =$F(campo);
    if(valor.length!=12 && valor.length!=11){
        $(campo).writeAttribute('fallo','si');
        $(campo).setStyle({
            'border':'1px solid red'
        })
        $('error'+campo.name).update("El numero de seguridad social no es correcto");
        return false
    }
    var a=parseInt(valor.substring(0,2));
    var b=valor.substring(2,(valor.length-2));
    var c=parseInt(parseFloat(valor.substring((valor.length-2),(valor.length))));
    var cero=b.substring(0,1);
    if(cero=='0'){
            b=b.substring(1,(b.length));
        }
    var d=parseInt(a+''+b);
    var valor=d%97;
    if(c!=valor){
        if($('error'+campo.name).innerHTML==''){
            $(campo).writeAttribute('fallo','si');
            $(campo).setStyle({
                'border':'1px solid red'
            })
            $('error'+campo.name).update("El numero de seguridad social no es correcto");
        }
        return false
    }else{
        $(campo).setStyle({
            'border':''
        })
        $('error'+campo.name).update("");
        return (true);
    }
}
function validar_cif(campo){
   if($('error'+campo.name)==null){
        $(campo).up().insert('<span id="error'+campo.name+'" style="color:red"></span>');
    }
    // ZAMBRANO valor = campo;
	valor =$F(campo);
	var up = valor.toUpperCase();
	//////////////////////////////////////////////////////////////////////////////////////////
	//PRIMERO HABRIA Q COMPROBAR QUE TIPO DE NÚMERO ES PARA VER SI HAY DNI O DNI EXTRANJERO //
	//////////////////////////////////////////////////////////////////////////////////////////
    
	if ((!/^[A-Za-z0-9]{9}$/.test(up)) || (!/^[ABCDEFGHJKLMNPQRSUVW]/.test(up))){
        
		if($('error'+campo.name).innerHTML==''){
            $(campo).writeAttribute('fallo','si');
            $(campo).setStyle({'border':'1px solid red'})
            $('error'+campo.name).update("El cif no es correcto");
		  	}
		//ZAMBRANO	
		//Al no tener letra al principio de la cadena compruebo si es un DNI y este me dara el true o false a devolver
		if(validar_dni(campo)==false)
		{
			//alert("No es DNI");
			return false;
		}else{
			//alert("Es un DNI");
			return true;
		}
		//ACABA ZAMBRANO
        //return false;
    }
	var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
    var letras = new Array('J','A','B','C','D','E','F','G','H','I');
    var temp = 0;
    //Hace el calculo de suma de pares con impares sueltos multiplicados por 2
	for( var i = 2; i<7; i += 2 )
    {
        temp = temp + v1[ parseInt(valor.substr(i-1,1))];
        temp = temp + parseInt(valor.substr(i,1));
    }
    temp = temp + v1[ parseInt(valor.substr(7,1))];
	//alert("Valor de la suma de pares e impares sueltos multiplicados por 2: "+temp);
    
	temp = (10 - ( temp % 10));
    //alert("Digito de control: "+temp);
	
	if( temp == 10 ){
        if(valor.substr(valor.length-1, 1)=='J' ||valor.substr(valor.length-1, 1)=='0'){
            
			//alert("Devuelve true");
			$(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
			
            return true;
        }else{
            if($('error'+campo.name).innerHTML==''){
               //alert("Devuelve false");
				$(campo).writeAttribute('fallo','si');
                $(campo).setStyle({
                    'border':'1px solid red'
                })
                $('error'+campo.name).update("El cif no es correcto");
			  }
			//alert("Devuelve false");
            return false;
        }
    }
    if(temp!=10){
        if(valor.substr(valor.length-1, 1)==temp || valor.substr(valor.length-1, 1)==letras[temp]){
            
			$(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
			
			//alert("Devuelve true")
            return true;
        }else{
			
            if($('error'+campo.name).innerHTML==''){
                $(campo).writeAttribute('fallo','si');
                $(campo).setStyle({
                    'border':'1px solid red'
                })
                $('error'+campo.name).update("El cif no es correcto");
            }
			//alert("Devuelve false")
            return false;
        }
    }
    return true;
}

function buscar(){
    palabras=$('busqueda').value;
    params='tipo=buscador&palabras='+palabras;
    var myAjax=new Ajax.Request(
        'req/manejador.php',
        {
            method:"get",
            parameters:params,
            onComplete:function(req){
                mostrando['cuerpo']=0;
                $('cuerpo').update(req.responseText);
            }
        }
        );
}

function filtracursos(idform){
    params=$(idform).serialize();
    params2='tipo=buscacursos';
    $('prin_cursos').update('<img src="images/ajax-loading.gif">');
    var myAjax=new Ajax.Request(
        'req/manejador.php?'+params2,
        {
            method:"post",
            parameters:params,
            onComplete:function(req){
                $('cuerpo').update(req.responseText);
            }
        }
        );
}
var PageController = Class.create();
Object.extend(Object.extend(PageController.prototype),
{					
    initialize : function(pars,obj,pager,num){
        this.pars=pars;
        this.elems=$$(pars+' '+obj);
        this.obj=obj;
        this.pager=pager;
        this.num=num;
        this.totalpags=(this.elems.length/this.num).ceil();
        if(this.totalpags>1){
            this.numpags(this.totalpags,this.pager);
            this.paginar(this.elems,this.num);
            this.pagactual=1;
            $(this.pagactual+'').toggleClassName('elegido');
        }
    },
    paginar : function(elems,num){
        cont=0;
        elems.each(function(Element){
            if(cont>=num){
                Element.hide();
            }
            cont++;
        });
    },
    numpags:function(totalpags,pager){
        var salida=new Element('div',{
            "class":"numeros_pag"
        });
        var nums=new Array();
        for(i=1;i<=totalpags;i++){
            nums[i]=new Element('a',{
                'id':i
            });
            nums[i].update(i+'&nbsp;');
            nums[i].observe('click',this.irapag.bindAsEventListener(this));
            salida.insert(nums[i]);
        }
        ant=new Element('div',{
            "class":"pag_ant",
            "style":"display:none"
        });
        sig=new Element('div',{
            "class":"pag_sig"
        });
        sig.observe('click',this.pagsig.bindAsEventListener(this));
        ant.observe('click',this.pagant.bindAsEventListener(this));
        $(pager).insert(ant);
        $(pager).insert(salida);
        $(pager).insert(sig);
    },
    pagsig:function(){
        $(this.pagactual+'').toggleClassName('elegido');
        this.pagactual++;
        $(this.pagactual+'').toggleClassName('elegido');
        this.muestra(this);
        if(this.pagactual==this.totalpags){
            sig.hide();
        }
        if(ant.getStyle('display')=='none'){
            ant.show();
        }
    },
    pagant:function(){
        $(this.pagactual+'').toggleClassName('elegido');
        this.pagactual--;
        $(this.pagactual+'').toggleClassName('elegido');
        this.muestra(this);
        if(this.pagactual==1){
            ant.hide();
        }
        if(sig.getStyle('display')=='none'){
            sig.show();
        }
    },
    muestra:function(c){
        cont=1;
        ult=this.pagactual*this.num;
        prim=((this.pagactual-1)*this.num);
        this.elems.each(function(Element){
            Element.hide();
            if(prim<cont && cont<=ult){
                Element.show();
            }
            cont++;
        });
    },
    irapag:function(e){
        $(this.pagactual+'').toggleClassName('elegido');
        elem=Event.element(e);
        this.pagactual=(elem.id);
        $(this.pagactual+'').toggleClassName('elegido');
        this.muestra(this);
        ant.show();
        sig.show();
        if(this.pagactual==1){
            ant.hide();
        }
        if(this.pagactual==this.totalpags){
            sig.hide();
        }
					
    }
});
function strpos (haystack, needle, offset) {
    // Finds position of first occurrence of a string within another  
    // 
    // version: 909.322
    // discuss at: http://phpjs.org/functions/strpos    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Onno Marsman    
    // +   bugfixed by: Daniel Esteban
    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
    // *     returns 1: 14    var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
    var i = (haystack+'').indexOf(needle, (offset ? offset : 0));
    return i === -1 ? false : i;
}
function svelectLocalidad(){
    palabras=$('cg').value;
    params='provincia='+palabras;
    var myAjax=new Ajax.Request(
        'req/selectlocalidad.php',
        {
            method:"get",
            parameters:params,
            onComplete:function(req){
                $('select_localidad').update(req.responseText);
                $('localidad').show();
            }
        }
        );
}
function selectModo(){
    mod=$('modalidad').value;
    if(mod=='T'){
        $('provincia').setValue('');
        $('localidad').setValue('');
        $('localidad').hide();
        $('provincia').hide();
    }else{
        $('provincia').value='';
        $('provincia').show();
    }
}
function strrep(pal){
    salida=pal.replace('á','a');
    salida=salida.replace('é','e');
    salida=salida.replace('í','i');
    salida=salida.replace('ó','o');
    salida=salida.replace('ú','u');
    salida=salida.replace(' ','_');
    return salida;
}
function cambiames(m,y,c){
    params="m="+m+'&y='+y+'&c='+c;
    var myAjax=new Ajax.Request(
        'req/cambiacal.php',
        {
            method:"get",
            parameters:params,
            onComplete:function(req){
                $('calendario').update(req.responseText);
            }
        }
        );
}
//Object.extend(Prototype, {UID: 1});
//Element.Storage = {
//  get: function(uid) {
//    return (this[uid] || (this[uid] = {}));
//  },
//
//  init: function(item) {
//    return (item.uid || (item.uid = Prototype.UID++));
//  }
//}
var objetos=new Array;
function esconde(id){
    var capa=$(id);
    objetos[id]=capa.remove();
}
function restaura(capa,donde){
    $(donde).appendChild(objetos[capa]);
}
function str_replace(search, replace, subject) {
    var f = search, r = replace, s = subject;
    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
    while (j = 0, i--) {
        if (s[i]) {
            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
        }
    };
    return sa ? s : s[0];
}

