(function () {
	YAHOO.namespace('ll.page.work');
	
	var Util = ll.global.Util;
	var ProjectDetailPanel = ll.page.work.ProjectDetailPanel;
	
	var WorkPageController = (ll.page.work.WorkPageController = function ()
	{
		var _mediumLinks,
			_mediumLinkActiveClazz = 'work_project-medium-link-active',
			
			_projects = ll.page.work.projects;
		
		var _onProjectDetailClick = function ()
		{
			var idPrefix = 'work_project-detail-link-';
			ProjectDetailPanel.show(this.id.substr(idPrefix.length));
		};
		
		var _getProjectElFromId = function (projectId)
		{
			return $('work_project-' + projectId);
		};
		
		var _onMediumClick = function (evt)
		{
			Dom.removeClass(_mediumLinks, _mediumLinkActiveClazz);
			Dom.addClass(this, _mediumLinkActiveClazz);
			
			var idPrefix = 'work_project-medium-link-';
			var mediumId = this.id.substr(idPrefix.length);
			
			for(var projectId in _projects)
			{
				if(_projects.hasOwnProperty(projectId))
				{
					var el = _getProjectElFromId(projectId);
					
					if(mediumId === "-1" || _projects[projectId].mediumId === mediumId)
					{
						Dom.setStyle(el, 'display', 'block');
					}
					else
					{
						Dom.setStyle(el, 'display', 'none');
					}
				}
			}
		};
		
		var _preCacheImages = function ()
		{
			for (var projectId in _projects)
			{
				if (_projects.hasOwnProperty(projectId))
				{
					for (var i = 0; i < _projects[projectId].images.length; i++)
					{
						for (var image in _projects[projectId].images[i])
						{
							if (_projects[projectId].images[i].hasOwnProperty(image))
							{
								var tmp = new Image();
								tmp.src = _projects[projectId].images[i][image];
							} 
						}
					}
				}
			}
		};
	
		return {
			onDomReady : function ()
			{
				Util.makeExternalUrl($$('gbl_external-url', 'a', 'work_projects'));
				
				var projectDetailLinks = $$('work_project-detail-link', 'a', 'work_projects');
				
				if (projectDetailLinks.length)
				{				
					Event.on(projectDetailLinks, 'click', _onProjectDetailClick);
				}
				
				_mediumLinks = $$('work_project-medium-link', 'a', 'gbl_page-meta-data');
				
				Event.on(_mediumLinks, 'click', _onMediumClick);
				
				Dom.addClass('work_project-medium-link--1', _mediumLinkActiveClazz);
				
				setTimeout(_preCacheImages, 1500);
				
				//set the first descirption pargraph to bold for print project itmes
				var els = $$('work_Print-project', 'li', 'work_projects');
				for (var i = 0; i < els.length; i++)
				{
					Dom.setStyle($$('work_description-paragraph', 'p', els[i])[0], 'font-weight', 'regular');
				}
			}
		};
	}());
	
	Event.onDOMReady(WorkPageController.onDomReady, WorkPageController, true);
})();
