/**
 * @author Vlad Yakovlev (red.scorpix@gmail.com)
 * @link www.scorpix.ru
 * @requires jQuery
 * @requires jCommon
 * @version 0.1
 * @date 2010-05-07
 */

$(function() {
	var
		rootEl = $('#content'),
		previewsEl = rootEl.find('.project_previews'),
		projectEls = rootEl.find('.project'),
		contentBackEls = rootEl.find('.content_back'),
		subNavEl = $('#subnavigation'),
		current = 0;

	$('.projectlink', rootEl[0]).live('click', changeProject);
	
	
	hrs = document.location.href.split(/#/);
	if (hrs.length>1)
	{
		s = $('span.projectlink.project_'+hrs[1]);
		if (s.length) { s.click(); };
	}
	


	function changeProject(evt) {
		var id = $c.attrSuffix($(this), 'project_');
		if (!id || id == current) return;
		
		prj = $('div.project.project_'+id);
		if (!prj.length)
		{
			dd = $('<div/>');
			dd.load('/our-works/'+id+'/read&ajax=1',function(){
				d = $($(this).html());
				d.appendTo('div#content div.main');
				projectEls = rootEl.find('.project'),
				$('span.project_'+id).click();
			});
			return;
		}
		
		hr = document.location.href.replace(/#.*/,'');
		hr += '#'+id;
		document.location = hr;

		var newProjectEl = projectEls.filter('.project_' + id);

		var f = function() {
			newProjectEl
				.css('display', 'none')
				.removeClass('hidden');

			if ($c.browser.msie && 8 > parseInt($c.browser.version)) {
				newProjectEl.css('display', 'block');
			} else {
				newProjectEl.fadeIn(600);
			}
		};

		contentBackEls.eq(1).css('background-image', newProjectEl.find('.back').css('background-image'));

		if (current) {
			if ($c.browser.msie && 8 > parseInt($c.browser.version)) {
				projectEls.filter('.project_' + current).css('display', 'none');
				f();
			} else {
				projectEls.filter('.project_' + current).fadeOut(600, f);
			}

			subNavEl.find('.selected').removeClass('selected');
		} else {
			previewsEl.fadeOut(600, f);
		}

		subNavEl.find('.project_' + id).closest('li').addClass('selected');
		contentBackEls.eq(0).fadeOut(600);
		contentBackEls.eq(1).fadeIn(600, function() {
			contentBackEls.eq(0).css({
				'background-image': contentBackEls.eq(1).css('background-image'),
				'display': 'block'
			});
			contentBackEls.eq(1).css('display', 'none');
		});

		current = id;

		return false;
	}
});
