var uiState = [1, 0, 0, 0, 0];

setUiState = function(state) {
    for (i = 0; i < uiState.length; i++)
        uiState[i] = 0;

    uiState[state] = 1;
}

navPressed = function(nav) {
    switch (nav) {
        case 1: // games
            if (uiState[1] == 1) { // reset games
		mainnavGamesMove.collapse();
                contentGamesTrans.toggle(0);
		logoTrans.toggle(1);
                mainnavCompanyTrans.toggle(1);
                mainnavSupportTrans.toggle(1);
                mainnavContactTrans.toggle(1);
                setUiState(0);
            }
            else {
                if (uiState[0] == 1) { // set games
		    logoTrans.toggle(0);
		    mainnavCompanyTrans.toggle(0);
		    mainnavSupportTrans.toggle(0);
		    mainnavContactTrans.toggle(0);
                }
                else if (uiState[2] == 1) { // reset company / set games
                    mainnavCompanyMove.collapse();
		    mainnavCompanyTrans.toggle(0);
		    contentCompanyTrans.toggle(0);
		    mainnavGamesTrans.toggle(1);
                }
                else if (uiState[3] == 1) { // reset support / set games
                    mainnavSupportMove.collapse();
		    mainnavSupportTrans.toggle(0);
		    contentSupportTrans.toggle(0);
		    mainnavGamesTrans.toggle(1);
                }
                else if (uiState[4] == 1) { // reset contact / set games
                    mainnavContactMove.collapse();
		    mainnavContactTrans.toggle(0);
		    contentContactTrans.toggle(0);
		    mainnavGamesTrans.toggle(1);
                }
		mainnavGamesMove.expand();
                contentGamesTrans.toggle(1);
                setUiState(nav);
            }
            break;
        case 2: // company
            if (uiState[2] == 1) { // reset company
                mainnavCompanyMove.collapse();
                contentCompanyTrans.toggle(0);
		logoTrans.toggle(1);
                mainnavGamesTrans.toggle(1);
                mainnavSupportTrans.toggle(1);
                mainnavContactTrans.toggle(1);
                setUiState(0);
            }
            else {
                if (uiState[0] == 1) { // set company
		    logoTrans.toggle(0);
		    mainnavGamesTrans.toggle(0);
		    mainnavSupportTrans.toggle(0);
		    mainnavContactTrans.toggle(0);
                }
                else if (uiState[1] == 1) { // reset games / set company
                    mainnavGamesMove.collapse();
                    mainnavGamesTrans.toggle(0);
                    contentGamesTrans.toggle(0);
		    mainnavCompanyTrans.toggle(1);
                }
                else if (uiState[3] == 1) { // reset support / set company
                    mainnavSupportMove.collapse();
		    mainnavSupportTrans.toggle(0);
		    contentSupportTrans.toggle(0);
		    mainnavCompanyTrans.toggle(1);
                }
                else if (uiState[4] == 1) { // reset contact / set company
                    mainnavContactMove.collapse();
		    mainnavContactTrans.toggle(0);
		    contentContactTrans.toggle(0);
		    mainnavCompanyTrans.toggle(1);
                }
                mainnavCompanyMove.expand();
		contentCompanyTrans.toggle(1);
                setUiState(nav);
            }
            break;
        case 3: // support
            if (uiState[3] == 1) { // reset support
                mainnavSupportMove.collapse();
                contentSupportTrans.toggle(0);
		logoTrans.toggle(1);
                mainnavGamesTrans.toggle(1);
                mainnavCompanyTrans.toggle(1);
                mainnavContactTrans.toggle(1);
                setUiState(0);
            }
            else {
                if (uiState[0] == 1) { // set support
		    logoTrans.toggle(0);
		    mainnavGamesTrans.toggle(0);
		    mainnavCompanyTrans.toggle(0);
		    mainnavContactTrans.toggle(0);
                }
                else if (uiState[1] == 1) { // reset games / set support
                    mainnavGamesMove.collapse();
		    mainnavGamesTrans.toggle(0);
		    contentGamesTrans.toggle(0);
		    mainnavSupportTrans.toggle(1);
                }
                else if (uiState[2] == 1) { // reset company / set support
                    mainnavCompanyMove.collapse();
		    mainnavCompanyTrans.toggle(0);
		    contentCompanyTrans.toggle(0);
		    mainnavSupportTrans.toggle(1);
                }
                else if (uiState[4] == 1) { // reset contact / set support
                    mainnavContactMove.collapse();
		    mainnavContactTrans.toggle(0);
		    contentContactTrans.toggle(0);
		    mainnavSupportTrans.toggle(1);
                }
		mainnavSupportMove.expand();
                contentSupportTrans.toggle(1);
                setUiState(nav);
            }
            break;
        case 4: // contact
            if (uiState[4] == 1) { // reset contact
                mainnavContactMove.collapse();
                contentContactTrans.toggle(0);
		logoTrans.toggle(1);
                mainnavGamesTrans.toggle(1);
                mainnavCompanyTrans.toggle(1);
                mainnavSupportTrans.toggle(1);
                setUiState(0);
            }
            else {
                if (uiState[0] == 1) { // set contact
		    logoTrans.toggle(0);
		    mainnavGamesTrans.toggle(0);
		    mainnavCompanyTrans.toggle(0);
		    mainnavSupportTrans.toggle(0);
                }
                else if (uiState[1] == 1) { // reset games / set contact
                    mainnavGamesMove.collapse();
		    mainnavGamesTrans.toggle(0);
		    contentGamesTrans.toggle(0);
		    mainnavContactTrans.toggle(1);
                }
                else if (uiState[2] == 1) { // reset company / set contact
                    mainnavCompanyMove.collapse();
		    mainnavCompanyTrans.toggle(0);
		    contentCompanyTrans.toggle(0);
		    mainnavContactTrans.toggle(1);
                }
                else if (uiState[3] == 1) { // reset support / set contact
                    mainnavSupportMove.collapse();
		    mainnavSupportTrans.toggle(0);
		    contentSupportTrans.toggle(0);
		    mainnavContactTrans.toggle(1);
                }
		mainnavContactMove.expand();
                contentContactTrans.toggle(1);
                setUiState(nav);
            }
            break;
        default:
            // do nothing
            break;
    }
}

window.onload = function() {
    logoTrans = new fx.OpacityEn('logo');
    
    mainnavGamesMove = new fx.Move('mainnav_games');
    mainnavCompanyMove = new fx.Move('mainnav_company');
    mainnavSupportMove = new fx.Move('mainnav_support');
    mainnavContactMove = new fx.Move('mainnav_contact');
    
    mainnavGamesTrans = new fx.OpacityEn('mainnav_games');
    mainnavCompanyTrans = new fx.OpacityEn('mainnav_company');
    mainnavSupportTrans = new fx.OpacityEn('mainnav_support');
    mainnavContactTrans = new fx.OpacityEn('mainnav_contact');
    
    contentGamesTrans = new fx.OpacityEn('content_games');
    contentCompanyTrans = new fx.OpacityEn('content_company');
    contentSupportTrans = new fx.OpacityEn('content_support');
    contentContactTrans = new fx.OpacityEn('content_contact');
    
    contentGamesTrans.hide();
    contentCompanyTrans.hide();
    contentSupportTrans.hide();
    contentContactTrans.hide();
    
    var faqQuestions = document.getElementsByClassName('faqquestion');
    var faqAnswers = document.getElementsByClassName('faqanswer');
    var faqAccordion = new fx.Accordion(faqQuestions, faqAnswers);
    faqAccordion.showThisHideOpen(faqAnswers[0]);
    
    Tweeter.Request();
}

Fx.OpacityEn = Class.create();
Fx.OpacityEn.prototype = Object.extend(new Fx.Base(), {

	initialize: function(el, options) {
	    this.element = $(el);
	    this.setOptions(options);
	    this.now = 1;
	},
	
	toggle: function(state) {
	    if (this.element.style.display != "block") {
		this.element.style.display = "block";
		if(this.element.parentNode.id == "content") {
		    var newHeight = this.element.offsetTop + this.element.childNodes[3].offsetHeight; //(content_company TOP + content_company_main HEIGHT)
		    document.getElementById("content").style.height = newHeight+"px";
		}
		else if(this.element.parentNode.id == "mainnav") {
		    document.getElementById("content").style.height = "528px";
		}
	    }
	    if (state == 0) return this.custom(1, 0);
	    else return this.custom(0, 1);
	},
	
	setStyle: function(e, p, v){
	    if (v == 0 && e.style.display != "none") e.style.display = "none";
	    else if (e.style.display != "block") e.style.display = "block";
	    e.style.opacity = v;
	},

	show: function() {
	    return this.set(1);
	},
	
	increase: function() {
	    this.setStyle(this.element, 'opacity', this.now);
	}
	
});

fx.Move = Class.create();
fx.Move.prototype = Object.extend(new fx.Base(), {

	initialize: function(el, options) {
		this.element = $(el);
		this.setOptions(options);
		this.now = [];
		this.coordsPrev = [0, 0];
		this.coordsNextY = 25;
	},
	
	expand: function() {
		var x = this.element.offsetLeft;
		var y = this.element.offsetTop;
		var from = [x, y];
		var to = [x, this.coordsNextY];
		this.coordsPrev[0] = x;
                this.coordsPrev[1] = y;
		this.custom(from, to);
	},
	
	collapse: function() {
		var x = this.element.offsetLeft;
		var y = this.element.offsetTop;
		var from = [x, y];
		var to = [this.coordsPrev[0], this.coordsPrev[1]];
		this.coordsPrev[0] = x;
                this.coordsPrev[1] = y;
		this.custom(from, to);
	},
	
	setStyle: function(e, p, v){
		if (v == 0 && e.style.display != "none") e.style.display = "none";
		else if (e.style.display != "block") e.style.display = "block";
		e.style[p] = v+this.options.unit;
	},

	setNow: function() {
		for (i = 0; i < 2; i++)
			this.now[i] = Math.round(this.compute(this.from[i], this.to[i]));
	},

	increase: function() {
		this.setStyle(this.element, 'left', this.now[0]);
		this.setStyle(this.element, 'top', this.now[1]);
	}
	
});
