//create an array of the primary navigation elements
var firstNavElements = $$('ul.first li');
var navKey = 0;
var navSize = firstNavElements.length;
var hiding_first = false;


//functions and variables to handle the loading of the sub navs
var sub_nav_changing = false;
var first_nav_changing = true;
var sub_nav_showing = "";
var send_sub_away = false;


function slideInFirstNav(key){
	if(key < navSize){
		new Effect.Move(firstNavElements[key], 
				{ 
					x: 426, 
					y: 0, 
					duration:.15,
					afterFinish:function(){ 
						if(key == navSize - 1){
							first_nav_changing = false;
						}
						key = key+1; 
						slideInFirstNav(key);
					}
		});
	}
}


function setEvents(){
	sizeWindow();
	firstNavElements.each(
		function(navLink,cnt){
			if($('sub_nav_' + (cnt+1))){
				size_check = $('sub_nav_' + (cnt+1)).select('li a');
				//if((cnt != 6) && (size_check.length > 0)){ //we don't want the last two items triggering a sub-nav
                if(size_check.length > 0){
					Event.observe(navLink, 'click', showSubNav, false);
				}
				//Event.observe(navLink, 'click', swapBG, false);
				Event.observe(navLink, 'mouseover', swapBG, false);
			} else {
				Event.observe(navLink, 'mouseover', swapBG, false);
			}
	});
	Event.observe($('faile_header'), 'click', headerClick, false);

}

function sizeWindow(){
	var resize = false;
	var avail_width = document.viewport.getWidth();
	var avail_height = document.viewport.getHeight();
	if(avail_width >= 1584){ avail_width = 1584; resize = true; }
	if(avail_height >= 1056){ avail_height = 1056; resize = true; }
	if(resize){
		$('faile').setStyle({ overflow:'hidden' });
		ResizeToInner(avail_width,avail_height);
	}
}


function swapBG(e){
	var clickedElement = Event.element(e).id;
	var proper_array = eval(clickedElement + '_bg');
    var r = Math.floor(Math.random()*proper_array.length);
    $('faile').setStyle({ backgroundImage:'url(img/background/' + proper_array[r] + ')' });
}



function showSubNav(e){
	Event.stop(e);
	var clickedElement = Event.element(e);

	//if there's not a transition in progress...
	if(sub_nav_changing === false){
		sub_nav_changing = true;

		if(sub_nav_showing == 'sub_' + clickedElement.id){
			$(clickedElement.id).removeClassName('selected');
			hide_sub_nav(true);
			sub_nav_showing = "";

		} else if(sub_nav_showing != 'sub_' + clickedElement.id){
			if(sub_nav_showing != ""){				
				$(sub_nav_showing.replace('sub_','')).removeClassName('selected');
				hide_sub_nav();
			}
			sub_nav_showing = 'sub_' + clickedElement.id;
			$(clickedElement.id).addClassName('selected');
			slideSubNav('sub_' + clickedElement.id);
		}
	}
}


function hide_sub_nav(dest){
	if(!dest){ dest = false; }
	subnavArray = $(sub_nav_showing).select('li a');
	subnavArray.each(
		function(item,key){
			new Effect.Move(item,
					{ 
						//x: -847,
						x: 1584,
						y: 0, 
						duration:.20,
						afterFinish:function(){
							item.setStyle({ 'left':'0px' });
							if(key == subnavArray.length - 1 && dest){
								sub_nav_changing = false;
							}
						}
			});

		}

	)

}


function slideSubNav(subnav,key){
	if(!key){ key = 0; }
	subnavArray = $(subnav).select('li a');
	if(key < subnavArray.length){

        moveX = 847;
        if(sub_nav_showing == 'sub_nav_7'){ moveX = 914; }

        new Effect.Move(subnavArray[key],
				{ 
					x: moveX,
					y: 0, 
					duration:.20, 
					afterFinish:function(){
						key = key+1;
						if(key == subnavArray.length){
							sub_nav_changing = false;
						}
						slideSubNav(subnav, key);
					}
		});
	}
}



function hide_first_nav(){
	firstNavElements.each(
		function(item,key){
			new Effect.Move(item,
					{ 
						x: -426, 
						y: 0, 
						duration:.20, 
						afterFinish:function(){
							if(key == firstNavElements.length -1){
								first_nav_changing = false;
							}
						}
			});
		}
	)
}


function headerClick(e){
	Event.stop(e);
	if(first_nav_changing === false && sub_nav_changing === false){
		first_nav_changing = true;
		sub_nav_changing = true;
		if(hiding_first){
			slideInFirstNav(0);
			hiding_first = false;
		} else {
			hide_first_nav();
			hiding_first = true;
		}

		if(sub_nav_showing != ""){
			$(sub_nav_showing.replace('sub_','')).removeClassName('selected');
			hide_sub_nav(true);
			sub_nav_showing = "";
		} else {
			sub_nav_changing = false;
		}
	}
}



function GetInnerSize () {
	var x,y;
	if (self.innerHeight){
		x = self.innerWidth;
		y = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight){
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	} else if (document.body){
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return [x,y];
}

function ResizeToInner (w, h, x, y) {
	if (x==undefined) x = window.screenLeft || window.screenX;
	if (y==undefined) y = window.screenTop || window.screenY;
	window.moveTo(0,0);
	window.resizeTo(screen.availWidth,screen.availHeight);
	var inner = GetInnerSize();
	var ox = screen.availWidth-inner[0];
	var oy = screen.availHeight-inner[1];
	window.resizeTo(w+ox, h+oy);
	window.moveTo(x,y);
}


//setup onload and domonload events...
Event.observe(document, 'dom:loaded', setEvents);
Event.observe(window, 'load', function(){ slideInFirstNav(0); });
