var subscribe =
{
	//-- Variables generales -----
    date: new Date(),
    id: 'subscribe',
    id_sn: 'subscribe_notify',
    id_bg: 'sn_bg',
    id_body: 'sn_body',
    timer: null,
    
    first: function(ref)
    {
        this.help();
        ref.onclick = function() {
            subscribe.subscribe(ref);
        }
    },
    
    subscribe: function(obj)
    {
        subscribe.id = !obj.id ? this.id : obj.id;
        subscribe.loading();
        subscribe.setBg();
        subscribe.setPos();
        
        var url = $(subscribe.id).getAttributeNode('link').nodeValue;
        var ajax = new XHConn();
        ajax.connect('/suscripciones' + url + '?d=' + subscribe.date.getTime(), 'post', '', function(oXML)
        {
            var msg = oXML.responseText.split(':');
            subscribe.tabText('Cancelar Suscripción', subscribe.unsubscribe);
            $(subscribe.id).setAttribute('link', url.replace('/add/', '/delete/'));
            subscribe.notify(msg[0], msg[1]);
            $('sn_x').className = 'close';
            
            if (oXML.status == 200)
                subscribe.timer = setTimeout('subscribe.display(true)', 5000)
            else
                subscribe.display();
        });
        ajax = null;
    },
    
    unsubscribe: function(obj)
    {
        subscribe.id = !obj.id ? this.id : obj.id;
        subscribe.loading();
        subscribe.setBg();
        subscribe.setPos();
        
        var url = $(subscribe.id).getAttributeNode('link').nodeValue;
        var ajax = new XHConn();
        ajax.connect('/suscripciones' + url + '?d=' + subscribe.date.getTime(), 'post', '', function(oXML)
        {
            var msg = oXML.responseText.split(':');
            subscribe.tabText('¡Suscribete!', subscribe.subscribe);
            $(subscribe.id).setAttribute('link', url.replace('/delete/', '/add/'));
            subscribe.notify(msg[0], msg[1]);
            $('sn_x').className = 'close';
            
            if (oXML.status == 200)
                subscribe.timer = setTimeout('subscribe.display(true)', 5000)
            else
                subscribe.display();
        });
        ajax = null;
    },
    
    loading: function()
    {
        $('sn_x').className = 'close hide';
        $(this.id_body).className = 'loading';
        $(this.id_body).innerHTML = '<img src="http://images.mcanime.net:88/images/loading.gif" width="48" height="54" alt="[Cargando...]" />';
        $(this.id_sn).className = 'hide';
        this.display();
    },
    
    setBg: function()
    {
        $(this.id_bg).style.width = $(this.id_body).offsetWidth + 30 + 'px';
        $(this.id_bg).style.height = $(this.id_body).offsetHeight + 30 + 'px';
    },
    
    setPos: function()
    {
        $(this.id_sn).style.top = $(this.id).offsetTop + $(this.id).offsetHeight + 10 + 'px';
        $(this.id_sn).style.left = $(this.id).offsetLeft + (($(this.id).offsetWidth - $(this.id_sn).offsetWidth) / 2) + 'px';
    },
    
    tabText: function(txt, action)
    {
        $(this.id).innerHTML = txt;
        $(this.id).onclick = action;
    },
    
    notify: function(status, msg)
    {
        $(this.id_body).className = status;
        $(this.id_body).innerHTML = msg;
        
        this.setBg();
        this.setPos();
    },
    
    display: function(isAjax)
    {
        $(this.id_sn).className = ($(this.id_sn).className == 'hide' && !isAjax) ? '' : 'hide';
        if (typeof subscribe.timer == 'number') clearTimeout(subscribe.timer);
    },
    
    help: function()
    {
        $('subscribe_msg').className = '';
    },
    
    close: function()
    {
        $('subscribe_msg').className = 'hide';
    }
};

//-----------------------------------------------------------------------------

var panel = {
    list: null,
    listLen: 0,
    hl: '',
    
    init: function()
    {
        this.list = $('sb_left').getElementsByTagName('li');
        this.listLen = this.list.length;
        
        for (var x = 0; x < this.listLen; x++)
            this.list[x].onclick = this.highlight
    },
    
    highlight: function()
    {
        if (panel.hl != '')
            $(panel.hl).className = '';
        this.className = 'highlight';
        panel.hl = this.id;
    }
};