var workWinnow = {
	currWinnow : null,
	currAnimating : false,
	currSwitching : false,
	animDuration : 400,
	animTransition : Fx.Transitions.Quad.easeIn,
	closeTimer : null,
	clientMenuState : false,
	clientMenuSpeed : 500,
	
	
	init : function() {
		var objClientLink = $('link_clients');
		var objClientMenu = $('client_menu');
		objClientLink.addEvent('click',workWinnow.toggleClients);
		
		// SETUP ANIMATIONS	
		workWinnow.ProjectsAnimation = new Fx.Tween($('projects'), {
			duration: workWinnow.animDuration,
			transition: workWinnow.animTransition
		});
		
		workWinnow.clientMenuAnimation = new Fx.Tween($('client_menu_container'), {
			duration: workWinnow.clientMenuSpeed,
			transition: workWinnow.animTransition
		});
		
		
		// LOAD THE DEFAULT VIEW
		var querystringArray = {};
		var querystring = location.search;
		
		if (querystring)  {
			var pairs = querystring.substring(1).split("&");  
			var splitPair;
			
			for (var i = 0; i < pairs.length; i++) {
				splitPair = pairs[i].split("=");  
				querystringArray[splitPair[0]] = splitPair[1];  
			}  
		}
		
		if(querystringArray['s'] == 'platforms') {
			workWinnow.setActiveLink('service_platforms');
			workWinnow.setVisibleProjects('service_platforms');
		}
		else if (querystringArray['s'] == 'programs') {
			workWinnow.setActiveLink('service_programs');
			workWinnow.setVisibleProjects('service_programs');				
		}
		
	},
	
	// CHANGES THE WINNOW OPTION
	setWinnow : function(winnowOption) {			
		if (! workWinnow.currSwitching ) {
			workWinnow.currSwitching = true;
			
			$('projects').setStyle('opacity',1);
			
			workWinnow.hideProjects();
			workWinnow.setActiveLink(winnowOption);
			workWinnow.setVisibleProjects.delay(workWinnow.animDuration, null, [winnowOption]);
			workWinnow.showProjects.delay(workWinnow.animDuration + 50);
		}
	},
	
	// CHANGES THE CLIENT WINNOW
	viewClient : function(clientOption) {
		workWinnow.setWinnow(clientOption);
	},
	
	// CHANGES THE ACTIVE WINNOW LINK
	setActiveLink : function(winnowOption) {
		var newLink = null;
		
		if (winnowOption.indexOf('client') == 0) 		{	newLink = 'link_clients';				}
		else if(winnowOption == 'featured') 			{	newLink = 'link_featured';				}
		else if(winnowOption == 'service_platforms') 	{	newLink = 'link_service_platforms';		}
		else if(winnowOption == 'service_programs') 	{	newLink = 'link_service_programs';		}
		
		var arrWinnowControlLinks = $('winnow_control').getElementsByTagName('li');
		
		for(i=0; i<arrWinnowControlLinks.length; i++) {
			$(arrWinnowControlLinks[i]).removeClass('active');
		}
		
		$(newLink).getParent().addClass('active');
	},	
	
	// FADE OUT PROJECTS
	hideProjects : function() {
		if (! workWinnow.currAnimating ) {
			workWinnow.currAnimating = true;
			workWinnow.ProjectsAnimation.start('opacity', 0).chain(
					function() {workWinnow.currAnimating = false; this.callChain();}
			);
		}
	},
	
	// FADE IN PROJECTS
	showProjects : function() {
		if (! workWinnow.currAnimating ) {
			workWinnow.currAnimating = true;
			workWinnow.ProjectsAnimation.start('opacity', 1).chain(
					function() {workWinnow.currAnimating = false; workWinnow.currSwitching = false; this.callChain();}
			);
		}
	},
	
	// SET THE VISIBLE PROJECTS
	setVisibleProjects : function(winnowOption) {
		var arrProjects = $$('#projects .project');

		for(i=0; i<arrProjects.length; i++) {
			objProject = $(arrProjects[i]);
			if(objProject.hasClass(winnowOption)) {
				objProject.setStyle('display', 'block');
			}
			else {
				objProject.setStyle('display', 'none');
			}
		}
	},
	
	// TOGGLE THE CLIENT DROP DOWN MENU
	toggleClients : function() {
		if( !workWinnow.currAnimating ) {
			if( !workWinnow.clientMenuState ) {
				workWinnow.openClients();
			}
			else {
				workWinnow.closeClients();
			}
		}
	},
	
	// OPEN THE CLIENT MENU
	openClients : function() {
		if( !workWinnow.currAnimating && !workWinnow.clientMenuState ) {
			workWinnow.currAnimating = true;
			var objClientMenu = $('client_menu_container');
			workWinnow.clientMenuAnimation.start('height', 161).chain(
				function() {workWinnow.currAnimating = false; this.callChain(); }													  
			);
			workWinnow.clientMenuState = true;
		}
	},
	
	// CLOSE THE CLIENT MENU
	closeClients : function() {
		if( !workWinnow.currAnimating ) {
			workWinnow.currAnimating = true;
			var objClientMenu = $('client_menu_container');
			
			workWinnow.clientMenuAnimation.start('height', 0).chain(
				function() {workWinnow.clientMenuState = false; this.callChain(); },
				function() {workWinnow.currAnimating = false; this.callChain(); }
			);
		}
	}
	
}

window.addEvent('domready', workWinnow.init);