// 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 muestra(tipo,id,destino){
    if(tipo=='listacursos'){
        $('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);
                if($('archivo1')!=null){
                    new AjaxUpload('archivo1', {
                        action: 'req/upload-handler.php',
                        onSubmit : function(file , ext){
                            if (! (ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){
                                // extension is not allowed
                                alert('Lo sentimos solo se aceptan imágenes de formato: jpg, png o gif.');
                                // cancel upload
                                return false;
                            }
                        },
                        onComplete: function(file, response) {
                            if(response=='ok'){
                                $('foto').value=file;
                            }else{
                                alert('no se ha podido subir');
                            }
                        }
                    });
                    new AjaxUpload('archivo2', {
                        action: 'req/upload-handler.php',
                        onSubmit : function(file , ext){
                            if (! (ext && /^(doc|pdf|txt)$/i.test(ext))){
                                // extension is not allowed
                                alert('Lo sentimos solo se aceptan curriculums de formato: doc, pdf o txt');
                                // cancel upload
                                return false;
                            }
                        },
                        onComplete: function(file, response) {
                            if(response=='ok'){
                                $('cv').value=file;
                            }else{
                                alert('no se ha podido subir');
                            }
                        }
                    });
                }
            }
        }
        );
}
function mandaform(id){
    if(validar($(id))){
        params=$(id).serialize()+'&'+'id='+$(id).name;
        var myAjax=new Ajax.Request(
            'req/formularios.php',
            {
                method:"get",
                parameters:params,
                onComplete:function(req){
                    $(id).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(',');
        for(i=0;i<tipo.length;i++){
            if($(element).readAttribute('mostrar')!='si'){
                todos=$('contenido').descendants();
                for ( var int = 0; int < todos.length; int++) {
                    todos[int].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 validar(formu){
    var correcto=true;
    var correctuno=true;
    var lista=formu.getElements();
    for(var i=0;i<lista.length;i++){
        if(lista[i].readAttribute('validar')!=null){
            lista[i].writeAttribute('fallo','no');
            var valis=lista[i].readAttribute('validar').split(',');
            for(var 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 {
            $(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=/^\d{9}$/;
        if (regx.test($F(campo))){
            $(campo).setStyle({
                'border':''
            })
            $('error'+campo.name).update("");
            return (true);
        } else {
            $(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_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'];
    if(!(/^\d{8}[A-Z]$/.test(valor)) || (valor.charAt(8) != letras[(valor.substring(0, 8))%23]) ) {
        $(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);
    }
}
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 selectLocalidad(){
    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'){
        $('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('Á','A');
    salida=salida.replace('É','E');
    salida=salida.replace('Í','I');
    salida=salida.replace('Ó','O');
    salida=salida.replace('Ú','U');
    salida=salida.replace(' ','_');
    return salida;
}
