/*
             \|/
            .-*-
           / /|\
          _L_
        ,"   ".
    (\ /  O O  \ /)
     \|    _    |/
       \  (_)  /
       _/.___,\_
     (_/ doom  \_)
         ready, the end is near
*/

    var doomready = new Object();
    
    doomready = {
        add: function(fn) {
            if (doomready.loaded) return fn();
            var observers = doomready.observers;
            if (!observers) observers = doomready.observers = [];
            observers[observers.length] = fn; // Arraypush is not supported by Mac IE 5
            if (doomready.callback) return;
            doomready.callback = function() {
                if (doomready.loaded) return;
                doomready.loaded = true;
                if (doomready.timer) {
                    clearInterval(doomready.timer);
                    doomready.timer = null;
                }
                var observers = doomready.observers;
                for (var i = 0, length = observers.length; i < length; i++) {
                    var fn = observers[i];
                    observers[i] = null;
                    fn(); // make 'this' as window
                }
                doomready.callback = doomready.observers = null;
            };
    
            var ie = !!(window.attachEvent && !window.opera);
            var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1;
            if (document.readyState && webkit) { // Apple WebKit (Safari, OmniWeb, ...)
                doomready.timer = setInterval(function() {
                    var state = document.readyState;
                    if (state == 'loaded' || state == 'complete') {
                        doomready.callback();
                    }
                }, 50);
            }
            else if (document.readyState && ie) { // Windows IE
                var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)';
                document.write(
                    '<script type="text/javascript" defer="defer" src="' + src + '" ' +
                    'onreadystatechange="if (this.readyState == \'complete\') doomready.callback();"' +
                    '><\/script>');
            }
            else {
                if (window.addEventListener) { // for Mozilla browsers, Opera 9
                    document.addEventListener("DOMContentLoaded", doomready.callback, false);
                    window.addEventListener("load", doomready.callback, false); // Fail safe
                }
                else if (window.attachEvent) {
                window.attachEvent('onload', doomready.callback);
                }
                else { // Legacy browsers (e.g. Mac IE 5)
                    var fn = window.onload;
                    window.onload = function() {
                        doomready.callback();
                        if (fn) fn();
                    }
                }
            }
        }
    }


/*-- spam protection --*/

    function getAdr(prefix, postfix, text) {
        document.write('<a href="mailto:' + prefix + '@' + postfix + '">' + (text ? text.replace(/&quot;/g, '"').replace(/%EMAIL%/, prefix + '@' + postfix) : prefix + '@' + postfix) + '</a>');
    }


/*-- swap image --*/

    function swapImage(element, newimage) {
        var oldsrc = element.src;
        element.src = newimage;
        if (!element.onmouseout) {
            element.onmouseout = function () {
                swapImage(this, oldsrc);
            }
        }
    }


/*-- add/remove class --*/

    function addClass(obj, newclass) {
        if(obj.className.indexOf(newclass) == -1)
            obj.className += " " + newclass;
    }
    
    function removeClass(obj, oldclass) {
        var classes = obj.className.split(' ');
        for(i=0; i<classes.length; i++) {
            if(classes[i].indexOf(oldclass) > -1)
                classes[i] = "";
        }
        obj.className = classes.join(' ');
    }


/*-- alternativ x-menu --*/

    var navImagesNormal = new Array();
    var navImagesHover = new Array();
    function init_nav() {
        if(document.getElementById('nav')) {
            var nav = document.getElementById('nav');
            var lis = nav.getElementsByTagName('li');
            for(var i = 0; i < lis.length; i++) {
                if(lis[i].parentNode.id == 'nav') {
                    lis[i].number = i;
                    lis[i].onmouseover = function() {
                        addClass(this, 'hover');
                        var img = this.getElementsByTagName('img');
                        if(img[0] && navImagesHover[this.number])
                            img[0].src = navImagesHover[this.number];
                    }
                    lis[i].onmouseout = function() {
                        removeClass(this, 'hover');
                        var img = this.getElementsByTagName('img');
                        if(img[0] && navImagesNormal[this.number])
                            img[0].src = navImagesNormal[this.number];
                    }
                    var img = lis[i].getElementsByTagName('img');
                    if(img[0] && img[0].onmouseover) {
                        navImagesNormal[i] = img[0].src;
                        img[0].onmouseover();
                        navImagesHover[i] = img[0].src;
                        img[0].onmouseout();
                        img[0].onmouseover = function() {};
                        img[0].onmouseout = function() {};
                    }
                    var anchors = lis[i].getElementsByTagName('A');
                    for(j=0; j<anchors.length; j++) {
                        anchors[j].title = '';
                    }
                }
            }
        }
    }

    doomready.add(function() {
        init_nav();
    });


/*-- check resolution --*/

    var check_resolution_elements = new Array();
    check_resolution_elements.push(new Array('page_bg_right', '1', '1004'));
    check_resolution_elements.push(new Array('page_bg_left', '1', '1004'));
    check_resolution_elements.push(new Array('container_bg', '1', '1004'));

    function check_resolution() {
        for (i = 0; i < check_resolution_elements.length; i++) {
            var id = document.getElementById(check_resolution_elements[i][0]);
            if (id) {
                var size = check_resolution_elements[i][1];
                var px = check_resolution_elements[i][2];
                if (size == 1) {
                    var viewport = document.body.offsetWidth;
                }
                else {
                    var viewport = document.body.offsetHeight;
                }
                if (viewport < px) {
                    id.style.display='none';
                }
                else {
                    id.style.display='block';
                }
            }
        }
    }

    window.onresize = function() {
        check_resolution();
    }

    doomready.add(function() {
        check_resolution();
    });


