// Javascript source file
function ac_f_size(size){
    switch(size) {
        case 3:
            var c = 'large';
            break;
        case 2:
            var c = 'medium';
            break;
        case 1:
            var c = 'small';
            break;
        default:
            var c = 'medium';
            break;
    }
    b = $('body');
    b.removeClassName('small');
    b.removeClassName('medium');
    b.removeClassName('large');
    b.addClassName(c);
    settings.set('font-size', size);
}
function showEmail() {
    var el = $('send_favourites');
    if (el.visible()) {
        Effect.SlideUp(el, { duration: 0.25 });
    } else {
        Effect.SlideDown(el, { duration: 0.25 });
    }
}
function delAll() {
    if (confirm('Are you sure?')){
        new Ajax.Request(   'backend.php',{ 
                            method: 'post',
                            parameters: { module: 'favourites', action: 'delall' },
                            onSuccess: function(transport){ checkResponse(transport); }
                            }
                        );
    }
}
function delFav(id) {
    new Ajax.Request(   'backend.php',{ 
                        method: 'post',
                        parameters: { module: 'favourites', action: 'del', id: id },
                        onSuccess: function(transport){ checkResponse(transport); }
                        }
                    );
}
function setFav(id,label){
    new Ajax.Request(   'backend.php', { 
                        method: 'post',
                        parameters: { module: 'favourites', action: 'add', id: id, label: label },
                        onSuccess: function(transport){ checkResponse(transport); }
                        });
}
function checkResponse(transport){
    json = transport.responseText.evalJSON();
    if(json.status=='ok'){
        buildFavourites();
    }
    else if (json.status=='error'){
        displayError(json.message);
    }
}
function displayError(message){
    
}
function buildFavourites(){
    $$('#favourites ul li').each(function(el){
        el.remove();
    });
    ul = $A($$('#favourites ul')).shift();
    favs = Cookie.get('tld-favs') || false;
    if (favs) {
        favs = favs.evalJSON();
        for(var el in favs){
            var img = new Element('img', {src:'images/icons/delete-small.png', border: 0});
            var aimg = new Element('a', {href:'javascript: void(true)'});
            aimg.appendChild(img);
            Event.observe(aimg, 'click', function(){
                delFav(el);
            });
            var label = favs[el].gsub(/\+/, ' ');
            var a = new Element('a', { href: el + '.php'}).update(label);
            var li = new Element('li');
            li.appendChild(document.createTextNode('['));
            li.appendChild(aimg);
            li.appendChild(document.createTextNode('] '));
            li.appendChild(a);
            ul.appendChild(li);
        }
        var a = new Element('a', {href:'javascript: void(true)'}).update('Clear All Favourites');
        Event.observe(a, 'click', function(){
            delAll();
        });
        //var li1 = new Element('li');
        //li1.addClassName('spacer');
        var li2 = new Element('li');
        li2.appendChild(a);
        //ul.appendChild(li1);
        ul.appendChild(li2);
    }
    else {
        var li = new Element('li').update('Drag and drop page titles here to save them for later');
        ul.appendChild(li);
    }
}
var settings = null;
Event.observe(window, 'load', function(){
    settings = new Settings();
    if (settings.get('font-size')){
        ac_f_size(settings.get('font-size'));
    }
    new Draggable('content_heading', { revert: true, starteffect: false, endeffect: false });
    Droppables.add('favourites',    {   accept: 'draggable',
                                        hoverclass: 'droppable',
                                        onDrop: function(element)
                                                { setFav($('content_id').innerHTML,$('content_label').innerHTML); }
                                    } );
    buildFavourites();
    Event.observe('font_large', 'click', function(){
        ac_f_size(3);
        return false;
    });
    Event.observe('font_medium', 'click', function(){
        ac_f_size(2);
        return false;
    });
    Event.observe('font_small', 'click', function(){
        ac_f_size(1);
        return false;
    });
    
    // Hilighting
    //dp.SyntaxHighlighter.ClipboardSwf = 'src/hiliter/clipboard.swf';
    //dp.SyntaxHighlighter.HighlightAll('code');
    
});
