var navSelDiv; var navSelDivFx; var navShowDiv; var navShowDivFx; var navShowIn; var navShowInFx;
var conSelDiv; var conSelDivFx; var conShowDiv; var conShowDivFx; var conShowIn; var conShowInFx; var conDivFx; var conBar; var conBarFx;
var conScroll; var conArr;
var currentContent = '';
var aboutDiv = ''; var aboutFx; var workDiv; var workFx; var contactDiv; var contactFx;
var myItem; var myIndex;
var myDuration = 500;
var mySpace = 200;

window.addEvent('domready', function() {
	if(Browser.Engine.trident){
		$('slide').setStyles({
			'position':'relative'
		});
	}
	else {
		$$('form .text').each(function(myText){
			if(myText.get('tag') == 'input'){
				fixTextWidth.run(myText);
			}
			
			myText.addEvent('mouseenter', function(){
				myText.addClass('hover');
			});
			myText.addEvent('mouseleave', function(){
				myText.removeClass('hover');
			});
			myText.addEvent('focus', function(){
				myText.addClass('focus');
			});
			myText.addEvent('blur', function(){
				myText.removeClass('focus');
				if(myText.get('tag') == 'input'){
					fixTextWidth.delay(10, null, myText);
				}
			});
			myText.addEvent('click', function(e){
				myText.select();
			});
			myText.addEvent('keydown', function(e){
				if(myText.get('tag') == 'input'){
					fixTextWidth.delay(10, null, myText);
				}
			});
		});
		
		aboutDiv = $('about');
		aboutFx = new Fx.Morph(aboutDiv, {duration:myDuration});
		workDiv = $('work');
		workFx = new Fx.Morph(workDiv, {duration:myDuration});
		contactDiv = $('contact');
		contactFx = new Fx.Morph(contactDiv, {duration:myDuration});
		
		var navInHtml = $('nav').get('html');
		navSelDiv = new Element('div', {'class':'select'});
		navShowDiv = new Element('div', {'class':'show'});
		navSelDiv.inject($('nav'));
		navShowDiv.inject(navSelDiv);
		navShowDiv.set('html', navInHtml);
		navShowIn = navShowDiv.getChildren()[0];
		
		navShowDiv.getElements('.click').each(function(myIn){
			myIn.removeClass('click');
		});
		
		navSelDivFx = new Fx.Morph(navSelDiv, {duration:myDuration});
		navShowDivFx = new Fx.Morph(navShowDiv, {duration:myDuration});
		navShowInFx = new Fx.Morph(navShowIn, {duration:myDuration});
		
		
		conArr = new Array();
		conArr.push($('about'));
		conArr.push($('work'));
		conArr.push($('contact'));
		
		var conInHtml = $('slide').get('html');
		conSelDiv = new Element('div', {'class':'select'});
		conShowDiv = new Element('div', {'class':'show'});
		conSelDiv.inject($('slide'));
		conShowDiv.inject(conSelDiv);
		conShowDiv.set('html', conInHtml);
		conShowIn = conShowDiv.getChildren()[0];
		conShowDiv.getElements('div').each(function(myIn){
			if(myIn.get('id') == 'bar'){
				myIn.dispose();
			}
			if(myIn.hasClass('text')){
				myIn.setStyle('opacity', 0);
			}
		});
		conShowDiv.getElements('a').each(function(myIn){
			if(myIn.getProperty('rel') && myIn.getProperty('rel').test("milkbox", "i")){
				myIn.removeProperty('rel');
			}
		});
		conBar = $('bar');
		
		conDivFx = new Fx.Morph($('slide'), {duration:myDuration, 'link':'cancel'});
		conBarFx = new Fx.Morph(conBar, {duration:myDuration});
		conSelDivFx = new Fx.Morph(conSelDiv, {duration:myDuration});
		conShowDivFx = new Fx.Morph(conShowDiv, {duration:myDuration});
		conShowInFx = new Fx.Morph(conShowIn, {duration:myDuration});
		
		$$('#nav a').each(function(myNav, index){
			if(myNav.getParent('ul').hasClass('click')){
				if(currentContent == ''){
					currentContent = myNav;
				}
				else{
					var myFade = getFade.run(myNav.get('text'));
					myFade.set({'opacity': 0});
				}
			}
			myNav.addEvent('click', function(E){
				if(E){
					E.stop();
				}
				if(this.getParent('ul').hasClass('click')){
					changeNav.run([this,index]);
				}
			});
		});
		
		aboutDiv.getElement('h1').setStyle('opacity', 0);
		workDiv.getElement('h1').setStyle('opacity', 0);
		contactDiv.getElement('h1').setStyle('opacity', 0);
		
		resizeContent.run();
	}
});

var getCurrentDiv = function(){
	var text = currentContent.get('text');
	var myCur = false;
	switch(text){
		case 'about nimble':
		myCur = aboutDiv;
		break;
		
		case 'work samples':
		myCur = workDiv;
		break;
		
		case 'contact info':
		myCur = contactDiv;
		break;
	}
	return myCur;
}
var getCurrentIndex = function(){
	var text = currentContent.get('text');
	var myCur = false;
	switch(text){
		case 'about nimble':
		myCur = 0;
		break;
		
		case 'work samples':
		myCur = 1;
		break;
		
		case 'contact info':
		myCur = 2;
		break;
	}
	return myCur;
}
var getDivIndex = function(div){
	var myCur = false;
	var text = div.get('class');
	switch(text){
		case 'about':
		myCur = 0;
		break;
		
		case 'work':
		myCur = 1;
		break;
		
		case 'contact':
		myCur = 2;
		break;
	}
	return myCur;
}

var getFade = function(text){
	var myFade;
	switch(text){
		case 'about nimble':
		myFade = aboutFx;
		break;
		
		case 'work samples':
		myFade = workFx;
		break;
		
		case 'contact info':
		myFade = contactFx;
		break;
	}
	return myFade;
}

var changeNav = function(item, index){
	if(item != currentContent){
		myItem = item;
		myIndex = index;
		var myFade = getFade.run(currentContent.get('text'));
		myFade.start({'opacity':0}).chain(
			function(){
				currentContent = myItem;
				repositionContent.run(myIndex);
			}
		);
	}
	else{
		repositionContent.run(myIndex);
	}
}

var repositionContent = function(myIndex){
	navSelDivFx.start({'top':(myIndex*33)+mySpace});
	navShowInFx.start({'top':-(myIndex*33)});
	conSelDivFx.start({'top':conArr[myIndex].getPosition($('slide')).y+15});
	conBarFx.start({'top':conArr[myIndex].getPosition($('slide')).y+16});
	conShowDivFx.start({'top':-conArr[myIndex].getPosition($('slide')).y-15});
	conDivFx.start({'top':-conArr[myIndex].getPosition($('slide')).y+(myIndex*33)}).chain(
		function(){
			var myFade2 = getFade.run(currentContent.get('text'));
			myFade2.start({'opacity':1});
		}
	);
}

var resizeContent = function(){
	$$('#content div.text').each(function(myText){
		var myPar = myText.getParent('div');
		var myIndex = getDivIndex(myPar);
		myText.setStyle('height', $(document.body).getSize().y-(myIndex*33)-mySpace-myPar.getStyle('padding-top').toInt()-myPar.getStyle('padding-bottom').toInt()-myText.getStyle('padding-top').toInt()-myText.getStyle('padding-bottom').toInt());
	});
}

window.addEvent('resize', function(){
	resizeContent.run();
	if(currentContent != ''){
		currentContent.fireEvent('click', null, myDuration);
	}
});

var hideNavTimer;

var fixTextWidth = function(myText){
	$('textsize').set('text', myText.get('value'));
	myText.setStyle('width', $('textsize').getSize().x+1);
}
