﻿var Cookie = {
    data: {},
    options: { expires: 1, domain: "", path: "", secure: false },

    init: function(options, data) {
        Cookie.options = Object.extend(Cookie.options, options || {});

        var payload = Cookie.retrieve();
        if (payload) {
            Cookie.data = payload.evalJSON();
        }
        else {
            Cookie.data = data || {};
        }
        Cookie.store();
    },
    getData: function(key) {
        return Cookie.data[key];
    },
    setData: function(key, value) {
        Cookie.data[key] = value;
        Cookie.store();
    },
    removeData: function(key) {
        delete Cookie.data[key];
        Cookie.store();
    },
    retrieve: function() {
        var start = document.cookie.indexOf(Cookie.options.name + "=");

        if (start == -1) {
            return null;
        }
        if (Cookie.options.name != document.cookie.substr(start, Cookie.options.name.length)) {
            return null;
        }

        var len = start + Cookie.options.name.length + 1;
        var end = document.cookie.indexOf(';', len);

        if (end == -1) {
            end = document.cookie.length;
        }
        return unescape(document.cookie.substring(len, end));
    },
    store: function() {
        var expires = '';

        if (Cookie.options.expires) {
            var today = new Date();
            expires = Cookie.options.expires * 86400000;
            expires = ';expires=' + new Date(today.getTime() + expires);
        }

        document.cookie = Cookie.options.name + '=' + escape(Object.toJSON(Cookie.data)) + Cookie.getOptions() + expires;
    },
    erase: function() {
        document.cookie = Cookie.options.name + '=' + Cookie.getOptions() + ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
    },
    getOptions: function() {
        return (Cookie.options.path ? ';path=' + Cookie.options.path : '') + (Cookie.options.domain ? ';domain=' + Cookie.options.domain : '') + (Cookie.options.secure ? ';secure' : '');
    }
};



Event.observe(window, 'load', function() {
    // Cookie holder
    Cookie.init({ name: 'honda', expires: 90 });

    var link = $('login-collapser');
    var canClick = true;

    //if (typeof Cookie.getData('login-folded') != 'undefined' && Cookie.getData('login-folded') == true) {
    if (true) { //Collapsed by default
        $('login-bg').hide();
        $('login-collapser').firstDescendant().writeAttribute('src', '/images/newsearch/loginDOWN.jpg');  
    }

    link.observe('click', function(event) {
        if (canClick) {
            canClick = false;
            var img = Event.element(event);
            var state = img.getAttribute('src').indexOf('DOWN') > -1 ? 'DOWN' : 'UP';
            var newState = "";
            if (state == 'UP') {
                new Effect.BlindUp($('login-bg'), { duration: .2, afterFinish: afterFinish });
                newState = "DOWN";
                Cookie.setData('login-folded', true);
            } else {
                new Effect.BlindDown($('login-bg'), { duration: .2, afterFinish: afterFinish });
                newState = "UP";
                Cookie.setData('login-folded', false);
            }

            img.writeAttribute('src', '/images/newsearch/login' + newState + '.jpg');
        }
        event.stop();
    });

    function afterFinish() {
        canClick = true;
    }
});