
var request = {
    al_completar:'',
    ctrlAJAX:'divppal',

    get_htm:function(strurl,salida,pbody,oncomplet){

        informa.work(true);

        ctrlAJAX = salida;
        if (oncomplet==undefined){oncomplet=''}
        request.al_completar=oncomplet;

        var myRequest = new Request.HTML({
            url: strurl,
            method: 'post',
            data: pbody,
            onSuccess:this.response_srv,
            onFailure:this.response_srv_err
        });
        myRequest.send();
    },

    response_srv:function(responseTree, responseElements, responseHTML, responseJavaScript){
        informa.work(false);

        switch (responseHTML.split('_')[0])
        {
            case 'MSG':
                alert(responseHTML.substr(4));
                break;
            case 'POP':
                informa.aviso(responseHTML.substr(6),responseHTML.split('_')[1]);
                break;
            case 'PAG':
                pagina.aviso(responseHTML.substr(4),'cabecera');
                break;
            case 'REDIR':
                window.location = responseHTML.substr(6);
                break;
            case 'WIN':
                //alert(responseHTML.substr(4));
                window.open(responseHTML.substr(4));
                break;
            default:
                if (ctrlAJAX != '') {$(ctrlAJAX).innerHTML = responseHTML;}
                break;
        }

        if (request.al_completar.length >0) {
            paco=request.al_completar;
            request.al_completar='';
            eval(paco);
        }
    },

    response_srv_err:function(instance){
        informa.aviso(instance.responseText,2);
    }
}

var informa = {
    ef:0,
    icon:['icon_wait','icon_info','icon_error'],

    start:function(){
        if ($('dv_wait')){
            ef = new Fx.Morph($('dv_wait'), {duration: 200,link:'chain',onChainComplete:function(){informa.efect_end();}})
            $('dv_wait').addEvent('click', function(e){
                        informa.roller(false);
                    });
        }
    },

    work:function(si){
	    if (si==true)
	    {
		    document.body.style.cursor = "wait";
		    if ($('imgwork')) {$('imgwork').setStyle('display','block')};
	    }
	    else
	    {
		    document.body.style.cursor = "default";
		    if ($('imgwork')) {$('imgwork').setStyle('display','none')};
	    }
	    this.roller(si,'Espere por favor...');
    },
    aviso: function(tx,tipo){
        //ef.cancel;
        window.scrollTo(0,0);
        el=$('dv_wait');
        el.set('html', tx);

        desde=el.getStyle('marginTop').toInt();

        ef.start({
            'margin-top':[desde,0], 
            'backgroundColor':['#ccc','#eee']
        });
        informa.icono(tipo);
    },
    icono:function(cual){
        el=$('dv_wait');
        for (x=0;x<informa.icon.length;x++){
            el.removeClass(informa.icon[x]);
        }
        el.addClass(informa.icon[cual]);
    },
    roller: function(visible,tx){
        //ef.cancel;
	    if ($('dv_wait')){
            el = $('dv_wait');
            informa.icono(0);

            if (visible==true) {
		        if (tx!=null){el.set('html', tx);}
		        desde=el.getStyle('marginTop').toInt();
                ef.start({
                    'marginTop':[desde, 0],
                    'backgroundColor':['#ccc','#eee']
                });
            }
            else
            {
                $('dv_wait').setStyle('zIndex',0);
                ef.start({
                    'margin-top':[0,-el.getSize().y],
                    'background-Color': ['#eee','#ccc']
                });
	        }
	    }
    },
    efect_end:function(){
        el = $('dv_wait');
        if (el.getStyle('marginTop').toInt()<-1){
            el.setStyle('zIndex',0);
            el.set('html', '');
        }
        else
        {
            $('dv_wait').setStyle('zIndex',400);
        }
    }
}

var pagina={

    open: function(donde,top_mod){
        if (donde==undefined){donde='cabecera'}
        $('ddoverlay').setOpacity(0.4);
        $('ddoverlay').setStyle('display','block');

        $('pop_pagina').setStyles({
            top:$(donde).getTop()+$(donde).getHeight(),
            display:'block',
            height:0
        })
        
        lefti = $(donde).getLeft() + (950/2);
        
        if ($('dv_pagina').getWidth()>800){
            lefti-=600;
        }
        else
        {
            lefti-=(($('dv_pagina').getWidth()+40)/2);
        }

        elguiz=$('dv_pagina').getWidth()+40;
        if (elguiz>800){elguiz=800}
        
        $('pop_pagina').setStyles({
            left:lefti,
            width:elguiz
        })

        pagina.redim();
    },

    redim:function(){
        $('pop_pagina').set('tween', {duration: 300,
                onComplete:function(){
                    $('pop_pagina').scrollIntoView(false);
                }});
        $('pop_pagina').tween('height',$('dv_pagina').getHeight()+30);
    },

    close:function(no_vacies){
        $('ddoverlay').setStyle('display','none');
        $('pop_pagina').set('tween', {duration: 300,onComplete:function(){
                                                                    $('pop_pagina').setStyle('display','none');
                                                                    if (no_vacies==undefined){$('dv_pagina').empty();}}
                                                              });
        $('pop_pagina').tween('height',0);
    },
    aviso:function(txt,donde,info,delay){
        tex = new Element('div',{
                'class':'box_info',
                'text':txt,
                'styles': {
                        'margin-top': '30px',
                        'margin-bottom': '10px',
                        'min-width':'200px'
                    }
            });
        bot = new Element('div',{
                'class':'btn_gr',
                'text':'Cerrar',
                'events': {
                        'click': function(){
                            pagina.close();
                        }
                    }
            });
        $('dv_pagina').empty();
        $('dv_pagina').adopt(tex);
        if (info!=true) {$('dv_pagina').adopt(bot);}
        pagina.open(donde);
        if (delay){(function(){ pagina.close(); }).delay(5000);}
    },
    help:function(idhelp,donde){
        //pagina.redim();
        strafter='pagina.open($(\'' + donde + '\'));';
        request.get_htm('/cuv/func.aspx','dv_pagina','op=70&num='+idhelp,strafter);
    }
}

var func = {

    atras:function(){
        window.history.back();
    },
    toggle_ver:function(cual){
        if ($(cual).getStyle('display') == 'block'){
            $(cual).setStyle('display','none');
        }
        else
        {
            $(cual).setStyle('display','block');
        }
    },
    link_win:function(url){
        window.open(url);
    },
    seltab:function (cual){

        $$('.TabCellSelLeft')[0].className = 'TabCellLeft';
        $$('.TabCellSel')[0].className = 'TabCell';
        $$('.TabCellSelRight')[0].className = 'TabCellRight';
        $$('.pn_sel')[0].className = 'pn_nosel';

        $('sl_' + cual + '_1').className = 'TabCellSelLeft';
        $('sl_' + cual + '_2').className = 'TabCellSel';
        $('sl_' + cual + '_3').className = 'TabCellSelRight';
        $('sol_' + cual).className = 'pn_sel';

    },

    tree_start:function(){
        $$('.tree_padre').each(function(el, i){
	        el.addEvent('click', function(e){
	            func.toggle_ver(el.getNext());
	        });
	    })
	    $$('.tree_hijo,.tree_hijo_last').each(function(el, i){
		    el.addEvent('mouseenter', function(e){
			    el.set('morph', {duration: 300, link:'cancel'});
			    el.morph({color:'#000',backgroundColor:'#eee'});
		    });

		    el.addEvent('mouseleave', function(e){
			    el.set('morph', {duration: 300, link:'cancel'});
			    el.morph({color:'#333',backgroundColor:'#fff'});
		    });
        })

    }
}


