/**
* Left Navigation
* @class jkiLeftNav
* @author jki
*/
var jkiLeftNav = new Class
(/** @lends jkiLeftNav.prototype */{

	name: 'jkiLeftNav',

	/**
	* @constructor
	* @member jkiLeftNav
	*/
	initialize: function()
	{
		this.leftNav = $('leftNav');

		this.navs = new Hash({
		
			'first' : this.leftNav.getElement('li.first'),
			'second' : this.leftNav.getElement('li.second'),
			'third' : this.leftNav.getElement('li.third'),
			'fourth' : this.leftNav.getElement('li.fourth'),
			'fifth' : this.leftNav.getElement('li.fifth'),
			'sixth' : this.leftNav.getElement('li.sixth')
		
		});
		
		this.colors = {
		
			'first' : '#00b1ac',
			'second' : '#ada59e',
			'third' : '#ac9fbc',
			'fourth' : '#b5bdcd',
			'fifth' : '#99b7e1',
			'sixth' : '#a6c1b7'
		
		};
		
		this.currentItem = false;
		this.currentIndex = false;
		this.links = {};
		this.subNavs = new Hash();
		this.listItemPosition = {};
		this.linkPositions = {};
		this.enter = {};
		this.addRollover();
		
	},
	
	prepNodes: function(item,index)
	{
		
		this.links[index] = item.getElement('a');
		this.links[index].erase('title');
		this.listItemPosition[index] = item.getCoordinates(this.leftNav);
		this.linkPositions[index] = this.links[index].getCoordinates(item);
		
		//make adjustments here
		this.listItemPosition[index].paddingLeft = item.getStyle('padding-left');
		this.listItemPosition[index].paddingRight = item.getStyle('padding-right');
		
		var checkNode = item.getElement('ul.subNav');
		if (checkNode) this.subNavs[index] = checkNode;
		
	},
	
	pushAnimations: function (item,index)
	{
		
		this.enter[index] = {};
		this.enter[index].shrinkBar = new Fx.Morph(item,{duration:'short',transition: Fx.Transitions.Back.easeInOut});
		this.enter[index].growType = new Fx.Morph(this.links[index],{duration:'long',transition: Fx.Transitions.Elastic.easeOut});
		
		if (this.subNavs[index])
			this.enter[index].pushDown = new Fx.Morph(this.subNavs[index],{duration:'short',transition: Fx.Transitions.Elastic.easeOut});
		
	},
	
	setEvents: function(item,index)
	{
		
		this.links[index].addEvents({
		
			'mouseenter' : function(){
				
				this.rollOver(this.links[index],item,index);
				this.currentItem = item;
				this.currentIndex = index;
			
			}.bind(this)
		
		});
		return true;
		
	},
	
	addRollover: function()
	{

		$each(this.navs,function(item,index){
			
			this.prepNodes(item, index);
			
		}.bind(this));
		
		$each(this.navs,function(item,index){
			
			this.pushAnimations(item, index);
			if (!item.hasClass('on')) 
				this.setEvents(item, index);
			
		}.bind(this));
		
	},
	
	rollOver: function(link,item,index)
	{
		
		if (item.hasClass('on')) return false;
		this.enter[index].shrinkBar.start({
			
			'width' : 19,
			'padding' : 0
				
		}).chain(function(){
			
			this.enter[index].growType.start({
				
				'color' : this.colors[index],
				'font-size' : 19,
				'width' : this.linkPositions[index].width + 75,
				'position' : 'absolute'
				
			});
		
			if ($defined(this.enter[index].pushDown)) {
				
				this.enter[index].pushDown.set({
					
					'opacity' : 0
					
				});
				link.getParent('li').addClass('on');
				this.enter[index].pushDown.start({
					
					'opacity' : 1
					
				});
				
			}
			
			link.setStyle('font-weight','normal');
			
		}.bind(this));
				
	}
	
});

window.addEvent('domready', function()
{

	var leftNav = new jkiLeftNav();
	
});