function scrollToContent(event) {
    Event.stop(event);
    var element = Event.element(event);
    var sTo = element.title;
    new Effect.ScrollTo(sTo);
}

function initSidebarBottom() {
    aSidebarBottom = $$('#sidebar_buttons_bottom a');
    for (var i = 0; i < aSidebarBottom.length; i++) {
        aSidebarBottom[i].stopObserving();
        aSidebarBottom[i].observe('click', scrollToContent);
    }
}

function initSidebarTop() {
    aSidebarTop = $$('#sidebar_buttons_top a');
    for (var i = 0; i < aSidebarTop.length; i++) {
        aSidebarTop[i].stopObserving();
        aSidebarTop[i].observe('click', doToggle);
    }

    initSidebarBottom();
}

var aSidebarTop;

function doToggle(event) {
    //////////////////////////////
    //return true; // temp bypass because toggling is messed up

    //////////////////////////

    var element = Event.element(event);

    // added:
    Event.stop(event);
    // end
    element.blur();
    var sBodyClass = '';


    var sToWhat = '';
    if (element.hasClassName('selected')) {
        return;
    } else {
        var aTempClasses = $w(element.className);
        for (i = 0; i < aTempClasses.length; i++) {
            if (aTempClasses[i] !== 'faded') {
                sToWhat = aTempClasses[i];
                break;
            }
        }
    }

    element.stopObserving();
    new Effect.Fade('content', { duration: 0.4 });
    new Effect.BlindUp('sidebar', {
        duration: 0.4,
        afterFinish: function() {
            $('sidebar').removeClassName(sOverrideSidebar);
            $('sidebar').addClassName(sToWhat);

            sBodyClass = $('body').readAttribute('class');
            sWhatUrl = $('body').readAttribute('class') + '/' + sToWhat;

            //console.log(sWhatUrl);


            new Ajax.Updater('content', WWW_URL + '/' + sWhatUrl, {
                method: 'get',
                onComplete: function() {
                    if (sToWhat == 'video' || sToWhat == 'screenshots' || sToWhat == 'conceptart') {
                        fixLightWindow(sToWhat);
                    }
                }
                });



            new Ajax.Updater('sidebar', WWW_URL + '/sidebar/getData?sToWhat=' + sToWhat, {
                method: 'get',
                onComplete: function() {
                    $('sidebar').setStyle({
                        'backgroundImage': 'url("' + FILES_URL + '/images/' + sToWhat + '_background.jpg")'
                    });
                    new Effect.Appear('content', { duration: 0.4 });
                    new Effect.BlindDown('sidebar', {
                        duration: 0.4,
                        afterFinish: function() {
                            sOverrideSidebar = sToWhat;
                            initSidebarTop();
                        }
                    });
                }
            });


        }
    });

}

function fixLightWindow(sToWhat) {
    var bIsVideo = false;
    if (sToWhat == 'video' || sToWhat == 'media') {
        // because doDOMLoaded gives media
        bIsVideo = true;
    }
    var aLightItems = $$('.lightwindow');
    var iLength = aLightItems.length;
    for (i = 0; i < iLength; i++) {
        Event.observe(aLightItems[i], 'click', function(event) {
            var oElement = Event.element(event);
            if (false === bIsVideo) {
                Event.stop(event);
                // image
                oElement = oElement.up('a');
                myLightWindow.activateWindow({
                    href: oElement.readAttribute('href')
                });
                return;
            } else {
                return;
                // link
                var sHref = oElement.readAttribute('href');
                sHref = sHref.substr(0, sHref.length - 3) + 'html';// was -3 + 'flv';
                sHref = WWW_URL + '/lightwindow/' + escape(sHref);
                myLightWindow.activateWindow({
                    href: sHref,
                    //height: 410,
                    //width: 600,
                    type: 'page'
                });
            }
        });
    }

}

function log(what) {
    if (typeof console != 'undefined') {
        console.log(what);
    }
}

function to(what) {
    if (sCurrentMainPage === what || sOverrideSidebar == what) {
        return false;
    }

    if (what === 'frontpage') {
        //alert('frontpage detected');
        sCurrentMainPage = 'frontpage';
        sOverrideSidebar = 'frontpage';

        new Ajax.Updater('content', WWW_URL + '/?nocache=1', {
                method: 'get',
                onComplete: function() {
                    doSIFR();
                    //sIFR.replace(neosans,{selector:'.tab_frontpage h2',wmode:'transparent',fitExactly:true,forceClear:true,css:'.sIFR-root { background-color: #0000000; color: #9D9D9D; }'});sIFR.replace(neosans,{selector:'#payload span',wmode:'transparent',fitExactly:true,forceClear:true,forceSingleLine:true,css:'.sIFR-root { background-color: #000000; color: #9D9D9D; font-size: 20px;}'});
                    doDOMLoaded();
                    updateNav();
                }
            });

        $('sidebar').removeClassName('frontpage');

        $('sidebar').setStyle({
            'backgroundImage': 'none'
        });

        // update shit

        return false;
    }

    // normal pages: load content, load sidebar, run scripts

    if (typeof iClearBigImageClock != 'undefined') {
        iClearBigImageClock.stop();
    }
    // what = js-based, so gameinfo   sCurrentMainPage = PHP-based.
    sCurrentMainPage = what;
    sOverrideSidebar = what;
    sToWhat = what;
    var sWhatUrl = what;

    /*
    if (sCurrentMainPage === 'gameinfo') {
        sWhatUrl = 'game-info';
    }
    */
    if (sToWhat === 'maps') {
        sToWhat = 'lakehouse';
        sOverrideSidebar = 'lakehouse';
    } else if (sToWhat === 'characters') {
        sToWhat = 'spy';
        sOverrideSidebar = 'spy';
    } else if (sToWhat === 'media') {
        sToWhat = 'screenshots';
        sOverrideSidebar = 'screenshots';
    }


    $('content').update('');
    $('sidebar').update('');

    new Ajax.Updater('content', WWW_URL + '/' + sWhatUrl + '?nocache=1', {
        method: 'get',
        //evalScripts: true,
        onComplete: function() {
            //doSIFR();
            if (sWhatUrl == 'contact') {
                inputCaptcha($('myrecaptchadata').innerHTML);
            }

            if (sToWhat == 'screenshots' || sToWhat == 'video' || sToWhat == 'conceptart') {
                fixLightWindow(sToWhat);
            }
        }
    });
    new Ajax.Updater('sidebar', WWW_URL + '/sidebar/getData?sToWhat=' + sToWhat, {
        method: 'get',
        evalScripts: true,
        onComplete: initSidebarTop
    });
    $('sidebar').removeClassName($('sidebar').readAttribute('class'));

    $('sidebar').addClassName(sToWhat);

    $('sidebar').setStyle({
        'backgroundImage': 'url("' + FILES_URL + '/images/' + sToWhat + '_background.jpg")'
    });
    updateNav();

    return false;

    // update normaal
}
