Event.observe(document, 'dom:loaded', function()
{
    // hide hidden elements
    $$('.hidden').invoke('hide').invoke('removeClassName', 'hidden');

    // run only if rot13 is defined
    if (typeof rot13 == "function")
    {
        // process scrobled emails
        $$('a.email-scrambled').each(function(el)
        {
            if (el.readAttribute('rel'))
            {
                el.innerHTML = rot13(el.readAttribute('rel'));
                el.writeAttribute('href', 'mailto:' + el.innerHTML);
            }
        });

        $$('a.image-scrambled').each(function(el)
        {
            if (el.readAttribute('rel'))
            {
                el.writeAttribute('href', 'mailto:' + rot13(el.readAttribute('rel')));
            }
        });
    }

    // TODO: Make it as part of the framework
    window.requestData = function(url, params, callback)
    {
        var token;
    
        if (token = readCookie('session'))
        {
            if (typeof params == 'string')
            {
                params = params + '&token=' + token;
            }
            else
            {
                params = $H(params).merge({"token": token});
            }

        }
    
        new Ajax.Request(url+'.json',
        {
            'method': 'post',
            'parameters': params,
            'requestHeaders': {'Accept': 'application/json'},
            'onSuccess': function(transport)
            {
                // eval received json
                var jsonData = transport.responseText.evalJSON(true);
                callback(jsonData);
            }
        });
    }

    Event.fire(document, 'core:ready');

});

/* from: http://www.quirksmode.org/js/cookies.html */

function createCookie(name, value, days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else
    {
        var expires = "";
    }

    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');

    for (var i=0;i < ca.length;i++)
    {
        var c = ca[i];

        while (c.charAt(0)==' ')
        {
            c = c.substring(1,c.length);
        }

        if (c.indexOf(nameEQ) == 0)
        {
            return c.substring(nameEQ.length,c.length);
        }
    }

    return null;
}

function eraseCookie(name)
{
    createCookie(name, "", -1);
}
