var newState;
var oldState;
var shortcut_menu = null;
var les_shortcut;

function setLanguage(language) {
    var i = 0;
    var t = null;
    var e = null;
    
    /*
    *   Some trickery needed here because one of
    *   the sections should only be available from
    *   the dutch language only.
    */
    if( shortcut_menu == null ) {
        les_shortcut = this.document.getElementById('shortcut-les');
        shortcut_menu = les_shortcut.parentNode;
        shortcut_menu.removeChild( les_shortcut );
    } else if (language == this.language) {
        /* nothing changed so leave */
        return;
    }
    
    /*
    *   State LES only for dutch language
    */
    if (language != 'nl') {
        if (this.state == 'LES') {
            exitState( this.state );
            enterState( 'COVER' );
        }
        /* remove dutch-only shortcut when switch from dutch to other language */
        if( this.language == 'nl' ) {
            shortcut_menu.removeChild( les_shortcut );
        }
    } else {
        /* (re)insert the shortcut where we want it for dutch language */
        shortcut_menu.insertBefore( les_shortcut, shortcut_menu.lastChild );
    }
    
    for (i = 0; i < sections.length; i++) {
        t = this.document.getElementById(sections[i]+'-content');
    
        if (t.childNodes.length > 0) {
            var h = this.document.getElementById('section-container');
            var re = t.firstChild;
            
            t.removeChild(re);
            h.appendChild(re);
        }

        e = this.document.getElementById(sections[i]+'-'+language);
        t.appendChild(e);
    }
    
    /* highlight and store new language */
    hilightLanguage(language);
    this.language = language;
}

function hilightLanguage(language) {
    var menu = this.document.getElementById('languages');
    var ch = menu.firstChild;
    
    do {
        if ((ch.nodeType == 1) && (ch.nodeName == 'DIV')) {
            if (ch.id == language) {
                ch.style.backgroundColor = '#777777';
                ch.style.color = '#d6d6d6';
            } else {
                ch.style.backgroundColor = '';
                ch.style.color = '#777777';
            }
        }
        
        ch = ch.nextSibling;
    } while (ch != null);
}

function changeCursor(element,event) {
    if (event == "over") {
        element.style.cursor = "hand";
    } else if (event == "out") {
        element.style.cursor = "url('images/bow.cur')";
    }
}

function enterState(st) {
    var element = null;
    this.state = st;
    
    if (st == "COVER") {
        element = document.getElementById("cover");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width  = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'hidden';        
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        return;
    } else if (st == "BIOGRAPHY") {
        element = document.getElementById("bio-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        
        element = document.getElementById("shortcut-bio");
    } else if (st == "PROGRAM") {
        element = document.getElementById("program-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        
        element = document.getElementById("shortcut-program");
    } else if (st == "EVENTS") {
        element = document.getElementById("events-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        
        element = document.getElementById("shortcut-events");
    } else if (st == "CONTACT") {
        element = document.getElementById("contact-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        
        element = document.getElementById("shortcut-contact");
    } else if (st == "LES") {
        element = document.getElementById("les-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        
        element = document.getElementById("shortcut-les");
    } else if (st == "QUOTES") {
        element = document.getElementById("quotes-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width  = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'visible';
        
        element = document.getElementById("shortcut-quotes");
    } else if (st == "MARSYAS") {
        element = document.getElementById("marsyas-content");
        element.style.visibility = 'visible';
        element.style.height = element.originalHeight+element.heightUnit;
        element.style.width  = element.originalWidth+element.widthUnit;
        element.style.top    = element.originalTop+element.topUnit;
        element.style.left   = element.originalLeft+element.leftUnit;
        
        /* paging icons */
        element = document.getElementById("prev-page");
        element.style.visibility = 'visible';
        element = document.getElementById("next-page");
        element.style.visibility = 'hidden';
        
        element = document.getElementById("shortcut-marsyas");
    }
    
    element.style.color = '#bc3555';
}

function exitState(st) {
    var element = null;
    this.state = st;
    
    if (st == "COVER") {
        element = document.getElementById("cover");
        element.style.visibility = 'hidden';
        element.style.height = 1;
        return;

    } else if (st == "BIOGRAPHY") {
        element = document.getElementById("bio-content");
        element.style.visibility = 'hidden';
        element.style.overflow = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-bio");

    } else if (st == "PROGRAM") {
        element = document.getElementById("program-content");
        element.style.visibility = 'hidden';
        element.style.overflow = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-program");

    } else if (st == "EVENTS") {
        element = document.getElementById("events-content");
        element.style.visibility = 'hidden';
        element.style.overflow = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-events");

    } else if (st == "CONTACT") {
        element = document.getElementById("contact-content");
        element.style.visibility = 'hidden';
        element.style.overflow = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-contact");

    } else if (st == "LES") {
        element = document.getElementById("les-content");
        element.style.visibility = 'hidden';
        element.style.overflow = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-les");

    } else if (st == "QUOTES") {
        element = document.getElementById("quotes-content");
        element.style.visibility = 'hidden';
        element.style.overflow = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-quotes");

    } else if (st == "MARSYAS") {
        element = document.getElementById("marsyas-content");
        element.style.visibility = 'hidden';
        element.style.height = 1;
        element = document.getElementById("shortcut-marsyas");
    }
    
    element.style.color = '#777777';
}

function animationCompleted(el, effect) {
    exitState( oldState );
    enterState( newState );
    newState = "";
}

function switchState( ns ) {
    var el = null;
    oldState = this.state;

    /* no change needed */
    if (oldState == ns)
    {
        return;
    }
    
    if (oldState == "COVER") {
        el = document.getElementById('cover');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "BIOGRAPHY") {
        el = document.getElementById('bio-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "PROGRAM") {
        el = document.getElementById('program-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "EVENTS") {
        el = document.getElementById('events-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "CONTACT") {
        el = document.getElementById('contact-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "LES") {
        el = document.getElementById('les-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "QUOTES") {
        el = document.getElementById('quotes-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

    } else if (oldState == "MARSYAS") {
        el = document.getElementById('marsyas-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
    }
    
    newState = ns;
}

function advanceState() {
    var el = null;
    oldState = this.state;
    newState = oldState;
    
    if (oldState == "COVER") {
        el = document.getElementById('cover');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "BIOGRAPHY";

    } else if (oldState == "BIOGRAPHY") {
        el = document.getElementById('bio-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "PROGRAM";

    } else if (oldState == "PROGRAM") {
        el = document.getElementById('program-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "EVENTS";

    } else if (oldState == "EVENTS") {
        el = document.getElementById('events-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "CONTACT";

    } else if (oldState == "CONTACT") {
        el = document.getElementById('contact-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "QUOTES";

    } else if (oldState == "QUOTES") {
        el = document.getElementById('quotes-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );

        /* skip LES section for non-dutch languages */
        if( this.language == 'nl' ) {
            newState = "LES";
        } else {
            newState = "MARSYAS";
        }

    } else if (oldState == "LES") {
        el = document.getElementById('les-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "MARSYAS";

    } else if (oldState == "MARSYAS") {
        el = document.getElementById('marsyas-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "MARSYAS";
    }
}

function reverseState() {
    var el = null;
    oldState = this.state;
    newState = oldState;
    
    if (oldState == "COVER") {
        	newState = "COVER";
    
	} else if (oldState == "BIOGRAPHY") {
        el = document.getElementById('bio-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "COVER";

    } else if (oldState == "PROGRAM") {
        el = document.getElementById('program-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "BIOGRAPHY";

    } else if (oldState == "EVENTS") {
        el = document.getElementById('events-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "PROGRAM";

    } else if (oldState == "CONTACT") {
        el = document.getElementById('contact-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "EVENTS";

    } else if (oldState == "QUOTES") {
        el = document.getElementById('quotes-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "CONTACT";

    } else if (oldState == "LES") {
        el = document.getElementById('les-content');
        el.style.overflow = 'hidden';
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        newState = "QUOTES";

    } else if (oldState == "MARSYAS") {
        el = document.getElementById('marsyas-content');
        el.style.overflow = 'hidden';
        
        window.animator.setCompleteCallback( window );
        window.animator.animate( el, 0x11 );
        /* skip LES section for non-dutch languages */

        if( this.language == 'nl' ) {
            newState = "LES";
        } else {
            newState = "QUOTES";
        }
    }
}

function shortCutME( el, e )
{
}

