var mouseX = 0;
var mouseY = 0;
var topMenuShowed = false;
      	var topMenuInitY = 0;
var topMenuWrapper;

//TopMenuBarFunctions
function showTopMenu() {
	debugMessage('on showTopMenu topMenuShowed = ' + topMenuShowed);
	if(!topMenuShowed) {
		topMenuShowed = true;
		Ext.get('topNav').setY(topMenuInitY, true);
	}
}

function hideTopMenu() {
	debugMessage('on hideTopMenu topMenuShowed = ' + topMenuShowed);
	if(topMenuShowed) {
		topMenuShowed = false;
		Ext.get('topNav').setY(topMenuInitY + 28, true);
	}
}

function mouseOverMenu(name) {
	makeAllTabsUnactive();
	Ext.get(name).query("a.unactive").each(
		function (e) {
			e.removeClassName("unactive");
			e.addClassName("current");
		}
	);
	showButtonsBox('quick_' + name);
}

function makeAllTabsUnactive() {
	Ext.get('topNav').query("a.current").each(
			function (e) {
				e.removeClassName("current");
				e.addClassName("unactive");
			}
		);
}

//Navigation Boxes Functions
var lastBoxOpened;

function showButtonsBox(boxName) {
	debugMessage('on showButtonsBox ' +
		'boxName = ' + boxName + ' lastBoxOpened = ' + lastBoxOpened);
	if(lastBoxOpened != null) {
		Ext.get(lastBoxOpened).setStyle("display","none");
	}
	Ext.get(boxName).show();
	lastBoxOpened = boxName;
	Ext.get('homeNavDefButtons').setStyle("display","none");
}

function hideButtonsBox() {
	debugMessage('on hideButtonsBox ' +
		'lastBoxOpened = ' + lastBoxOpened);
	if(lastBoxOpened != null) {
		Ext.get(lastBoxOpened).setStyle("display","none");
	}
	Ext.get('homeNavDefButtons').show();
}


function checkHideTopMenu (evt) {
	var box = topMenuWrapper.getBox();
	var box2 = Ext.get('topNavButtons').getBox();
	var iswithinb1 = isXYWithin(mouseX, mouseY, box);
	var iswithinb2 = isXYWithin(mouseX, mouseY, box2);
	debugMessage('on checkHideTopMenu ' +
		'iswithinb1 = ' + iswithinb1 + ' iswithinb2 = ' + iswithinb2);
	if(!iswithinb1 && !iswithinb2) {
		hideTopMenu();
		hideButtonsBox();
		makeAllTabsUnactive();
	}
}

//Utility Functions

function recordMouseMovements(evt) {
	mouseX = evt.getPageX();
	mouseY = evt.getPageY();
}

function isXYWithin(x, y, box) {
	if(x >= box.x && x <= box.right && y >= box.y && y <= box.bottom)
		return true;
	return false;
}

var messagesCounter = 1;
function debugMessage(text) {
	//Ext.get("messages").insertHtml("afterBegin", messagesCounter++ + " - " + text + "<br/>");
}

//Wiring up all events
Ext.onReady(function() {
	//Initialization
	topMenuWrapper = Ext.get('topNav').wrap();
	topMenuWrapper.setStyle('height', '36px');
	topMenuWrapper.setStyle('padding', '0');
	topMenuWrapper.setStyle('margin', '0');
	topMenuWrapper.setStyle('overflow', 'hidden');
	topMenuWrapper.setStyle('z-index', '1');
	topMenuWrapper.setStyle('position', 'relative');
	//topMenuWrapper.setStyle('border', '1px solid red');
	Ext.get('topNav').setStyle('z-index', '2');
	Ext.get('topNavButtons').setStyle('z-index', '100');

	topMenuInitY = Ext.get('topNav').getY();

	Ext.get('topNav').setY(topMenuInitY + 28, true);
	Ext.getDoc().on("mousemove", recordMouseMovements);

	Ext.get('topNav').addListener("mouseover", showTopMenu);
	Ext.get('topNav').addListener("mouseout", checkHideTopMenu, null, { delay: 500 });
	Ext.get('topNavButtons').addListener("mouseover", showTopMenu);
	Ext.get('topNavButtons').addListener("mouseout", checkHideTopMenu, null, { delay: 500 });

	Ext.get('green').addListener("mouseover", function (e) { mouseOverMenu("green"); });
	Ext.get('orange').addListener("mouseover", function (e) { mouseOverMenu("orange"); });
	Ext.get('purple').addListener("mouseover", function (e) { mouseOverMenu("purple"); });
	Ext.get('teal').addListener("mouseover", function (e) { mouseOverMenu("teal"); });
	Ext.get('red').addListener("mouseover", function (e) { mouseOverMenu("red"); });
	Ext.get('greenButton').addListener("mouseover", function (e) { mouseOverMenu("green"); });
	Ext.get('orangeButton').addListener("mouseover", function (e) { mouseOverMenu("orange"); });
	Ext.get('purpleButton').addListener("mouseover", function (e) { mouseOverMenu("purple"); });
	Ext.get('tealButton').addListener("mouseover", function (e) { mouseOverMenu("teal"); });
	Ext.get('redButton').addListener("mouseover", function (e) { mouseOverMenu("red"); });
	
});

// Frame Buster

if (window.self !== window.top && top.location.hostname !== 'new.oberlin.edu') {
	top.location.replace(window.location.pathname); 
}

