//= require <lib/swfobject>
//= require <lib/swfaddress>

//{{{ CookieManager
var CookieManager = {
    cookies: new Array(),
    cached: '',
    accepts: undefined,

    set: function(name, value, expires_days) {
        if (!this.accepts && this.accepts != undefined) {
            if (!this.check()) {
                return false;
            }
        }

        var expires = new Date(new Date().getTime() + (expires_days * 24 * 60 * 60 * 1000));
        var cookie_str = name + "=" + escape(value);
        if (expires_days) {
            cookie_str += ";expires=" + expires.toGMTString();
        }
        cookie_str += ";path=/;";

        document.cookie = cookie_str;
        return true;
    },

    get: function(name) {
        this.cache();
        var value = null;
        if (this.cookies[name] != undefined) {
            value = this.cookies[name];
        }
        return value;
    },

    remove: function(name) {
        this.set(name, '', -1);
    },

    check: function() {
        if (this.accepts != undefined) {
            return this.accepts;
        }

        if (document.cookie == 'undefined') {
            this.accepts = false;
            return false;
        }

        this.set('test_cookie_name', 'test_cookie_value');
        if (this.get('test_cookie_name') != 'test_cookie_value') {
            this.accepts = false;
            return false;
        }
        this.remove('test_cookie_name');
        
        this.accepts = true;
        return true;
    },

    cache: function() {
        // Already cached
        if (this.cached == document.cookie) {
            return;
        }

        this.cookies = new Array();
        this.cached = document.cookie;
        var pairs = this.cached.split("; ");
        var name = '', value = '';
        
        for (var i = 0; i < pairs.length; i++) {
            var parts = pairs[i].split('=');
            if (parts.length > 1) {
                value = unescape(parts[1]);
            }

            name = unescape(parts[0]);
            if (name) {
                this.cookies[name] = value;
            }
        }
    }
};
//}}}

//{{{ wheel(event)
function wheel(event) {
    if (!this.movie) {
        this.movie = window['lasouris_swf'] || document['lasouris_swf'];
        if (!this.movie) return;
    }

    var delta = 0;
    if (!event) event = window.event;
    if (event.wheelDelta) {
        delta = event.wheelDelta/120;
        if (window.opera) delta = -delta;
    } else if (event.detail) {
        delta = -event.detail/3;
    }

    if( /AppleWebKit/.test(navigator.userAgent) ) {
        delta /= 3;	
    }

    if (delta) {
        this.movie.jsWheel(delta);
    }

} //}}}

//{{{ openWindow(url, name, options)
function openWindow(url, name, options) {
    var w = (window.screen.width - 100) || 800;
    var h = (window.screen.height - 150) || 600;
    options = options || "width=" + w + ",height=" + h + ",toolbar=1,menubar=1";
    if (window.open(url, name, options)) {
        return true;
    }
    return false;
} //}}}

window.onload = function() {
    if (window.addEventListener) {
        window.addEventListener('DOMMouseScroll', wheel, false);
    }
    window.onmousewheel = document.onmousewheel = wheel;
}
