
var _scrollInterval;
var _timelineScroll = 0;
var _to = 'alexeytarutin';
var _projectBoxWH = 140;
var _projectBoxWHZoom = 150;
var _projectBoxMargin = 5;
var _numProject = 0;
var _showProject = false;
var _firstRun = true;
var _bg = 'i/projects/fakt/bg.jpg';
var _projects = {
		freshfitness: ['1', '2', '3', '4', '5'],
		niisa: ['1', '2', '3', '4'],
		chevrolet: ['1', '2', '3', '4'],
		michelin: ['1', '2', '3', '4', '5'],
		//visokosniygod: [],
		confood: ['1', '2', '3'],
		nestle: ['1', '2', '3'],
		brs: ['1', '2', '3', '4'],
		amex: ['1'],
		chocotouch: ['1', '2', '3', '4', '5'],
		onecafe: ['1', '2', '3', '4', '5', '6', '7', '8'],
		buketon: ['1', '2'],
		eurasiashuttle: ['1', '2', '3'],
		artstroy: ['1', '2', '3', '4', '5'],
		albi: ['1', '2', '3'],
		mts: ['1', '2', '3', '4', '5', '6']
};
var _comments = {
	mts : "    - <a target='_blank' href='http://shiroka.ru/'>Strana</a>"
};

function x807501()
{
	$('.f-email-link, .email').html('<a'+' href='+'"mai'+'lto:'+_to+'@'+'gmail'+'.com">'+_to+'@'+'gmail'+'.com<'+'/a>');
	//$('.email').html('<a'+' href='+'"mai'+'lto:'+_to+'@'+'adfakt'+'.ru"><img width="75" height="9" src="i/email-black.png"/><'+'/a>');
}

function getUrl(v)
{
	var url = location.href.split('#')[1];
	return (url == undefined) ? false : url.split('/')[v];
}

function goTo(u)
{
	window.location.href = u;
}

function setPositionProjects()
{
	if(_showProject == false)
	{
		_positionProjects = $(window).height() / 2 - $('#projects').height() / 2 - $('#footer').height()/2;
		_positionProjectsX = $(window).width() / 2 - $('#projects').width() / 2;
		_positionProjects = _positionProjects < 30 ? 30 : _positionProjects;

		if(_firstRun == true) {
			$('#projects').stop().animate({'top':_positionProjects}, 1000).css('left', _positionProjectsX);
			$('#footer').show('slow').css('top', _positionProjects+$('#projects').height()).stop().animate({'top':_positionProjects+$('#projects').height()+20}, 1000).css('left', _positionProjectsX);
			_firstRun = false;
		}
		else {
			$('#projects').stop().animate({'top':_positionProjects, 'left':_positionProjectsX}, 1000);
			$('#footer').stop().show('slow').animate({'top':_positionProjects+$('#projects').height()+20, 'left':_positionProjectsX}, 1000);
		}
	}
}

function appendProjects()
{
	_w = $(window).width();
	_h = $(window).height();
	
	for (var name in _projects)
	{
		$('#projects').append("<div id='item' project='" + name + "' bg='i/projects/" + name + "/bg.jpg'><div id='back'></div><div id='front'></div><img src='i/projects/" + name + "/logo.png'/></div>");
		$('#content').append("<div id='photos' class='project-" + name + "'><table height='" + _h + "'><tr class='trp'></tr></table></div>");
	}
}

function appendBg()
{
	$('body').append("<div id='bg' style='background:url(" + _bg + ");'></div>");
}

function setFrontMouseEvent()
{
	$('#item > div, #item > a').bind('mouseover', function() {
		$(this).prev('#back').stop().animate({'width':_projectBoxWHZoom, 'height':_projectBoxWHZoom, 'top':-_projectBoxMargin, 'left':-_projectBoxMargin}, 100).css('background', '#111');
	}).mouseout(function() {
		$(this).prev('#back').stop().animate({'width':_projectBoxWH, 'height':_projectBoxWH, 'top':0, 'left':0}, 100).css('background', '#000');
	});
}

function blackNWhiteChange(_color)
{
	if(_color == '#fff') { _loading = 'i/loading-black.gif'; _fakt = 'i/fakt-white.png'; }
	else { _loading = 'i/loading.gif'; _fakt = 'i/fakt-black.png'; }

	$('#loading > img').attr('src', _loading);
}

function loadBg()
{
	$('#bg, #site').css({'width':$(window).width(), 'height':$(window).height()});
}

function loadProject(_nameProject)
{
	_pImgs = [];
	_showProject = true;
	$('#content, #loading').show();
	_searchNumProject = _projects[_nameProject].indexOf(getUrl(1));
	_numProject = _searchNumProject != '-1' ? _searchNumProject-1 : -1;
	_numProjectMax = _projects[_nameProject].length-1;

	_bgSrc = $('div[project='+_nameProject+']').attr('bg');
	$('.f-comment').text('');
	if(_comments[_nameProject]) $('.f-comment').html(_comments[_nameProject]);
	$('#bg').css('background-image', 'url('+_bgSrc+')');
	var preload = new Image();
	preload.src = _bgSrc;

	$('#footer').stop().animate({'top':3000}, 1000).hide();
	$('#projects').stop().animate({'top':-3000}, 1000, function()
	{
		for(var photo in _projects[_nameProject])
		{
			_pImgs.push("i/projects/" + _nameProject + "/b/" + _projects[_nameProject][photo] + ".jpg");
			$('.trp').append("<td><a onclick='return false;' href='i/projects/" + _nameProject + "/b/" + _projects[_nameProject][photo] + ".jpg'><img src='i/projects/" + _nameProject + "/s/" + _projects[_nameProject][photo] + ".jpg'/></a></td>");
		}
		
		jQuery.preLoadImages(_pImgs);

		$('.project-' + _nameProject + ' img')
			.reflect({height:0.2, opacity:0.3})
			.live('mouseover', function() {
				$('#doubleclick').effect('pulsate', { times: 1000 }, 2000).show();
			})
			.live('mouseout', function() {
				$('#doubleclick').hide();
			})
			.live('mousemove', function(e) {
	      		$('#doubleclick').css({'left':e.pageX+15, 'top':e.pageY-8});
			});
		
		timeline();

		//if(preload.complete)
		//{
			$('#bg').stop().fadeIn('slow');
			$('.project-' + _nameProject).fadeIn(function()
			{
				$('.f-project-name').attr('src', 'i/projects/'+_nameProject+'/logo.png');
				$('#project-footer').show().stop().animate({'bottom':0}, 1000);
				$('#lg, #rg').fadeIn();
				$('#loading').hide();
			});
		//}
		
	});
	
}

function urlLoadProject()
{
	if(getUrl(0) && getUrl(0) != 'projects')
	{
		_nameProject = getUrl(0);
		$.history.load(_nameProject);
		loadProject(_nameProject);
	}
}

function checkLoadSite()
{
	$(window).bind('load', function()
	{
		$('#loading').hide();
		$('#site').show();
	});
}

function htmlHeight()
{
	$('html').css('height', $(document).height());
}

function mouseLoad()
{
   $().mousemove(function(e)
   {
		$('#loading').css({'left':e.pageX+10, 'top':e.pageY+20});
   });
}

function setProjectFooterPosition()
{
	if(!_showProject) return false;
	$('#project-footer').css({'top':$(window).height()-65/*, 'left':$(window).width()-244*/});
}

var autoScroll = function()
{
	if(_timelineScroll < 0 && _timelineScroll > $('#content #photos').width()+200) return false;
	
	if(_scrollDirection == 'right' && _timelineScroll < $('#content #photos').width()+200) _timelineScroll += 10;
	if(_scrollDirection == 'left' && _timelineScroll > 0) _timelineScroll -= 10;
	$('#content #photos').stop().scrollLeft(_timelineScroll);
}
			
function timeline()
{
	$('#content #photos').scrollLeft(0).mousedown(function (event) {
	    $(this)
	        .data('down', true)
	        .data('x', event.clientX)
	        .data('scrollLeft', this.scrollLeft)
	        .stop();
	    return false;
	}).mouseup(function (event) {
	    $(this).data('down', false);
	    if($(this).data('scrollLeft') != $(this).scrollLeft())
	    {
	    	if($(this).data('scrollLeft') < $(this).scrollLeft())
	    		$(this).animate({scrollLeft:$(this).scrollLeft()+150}, 1000, function() {
	    			_timelineScroll = $(this).scrollLeft();
	    		});
	    	else
	    		$(this).animate({scrollLeft:$(this).scrollLeft()-150}, 1000, function() {
	    			_timelineScroll = $(this).scrollLeft();
	    		});
	    }
	}).mousemove(function (event) {
	    if ($(this).data('down') == true) {
	        this.scrollLeft = $(this).data('scrollLeft') + $(this).data('x') - event.clientX;
			_timelineScroll = $(this).scrollLeft();
	    }
	}).mousewheel(function (event, delta) {
	    this.scrollLeft -= (delta * 30);
			_timelineScroll = $(this).scrollLeft();
	}).css({
	    'overflow' : 'hidden',
	    'cursor' : '-moz-grab'
	});
	
	$(window).mouseout(function (event) {
	    if ($('#content #photos').data('down')) {
	        try {
	            if (event.originalTarget.nodeName == 'BODY' || event.originalTarget.nodeName == 'HTML') {
	                $('#content #photos').data('down', false);
	            }                
	        } catch (e) {}
	    }
	});
}

function setPhotosDivWidth()
{
	_w = $(window).width();
	$('#photos').css({'width':_w});
}

function setContentSize()
{
	_w = $(window).width();
	_h = $(window).height();
	
	$('#rg, #lg').css('height', _h);
	$('#rg').css('left', _w-134);
	$('#content table').css({'width':_w, 'height':_h});
}

function scrollTimeline()
{
	$('#rg').live('mouseover', function()
	{
		_scrollDirection = 'right';
		_scrollIntervalR = setInterval(autoScroll, 1);
	}).live('mouseout', function()
	{
		clearInterval(_scrollIntervalR);
	});

	$('#lg').live('mouseover', function()
	{
		_scrollDirection = 'left';
		_scrollIntervalL = setInterval(autoScroll, 1);
	}).live('mouseout', function()
	{
		clearInterval(_scrollIntervalL);
	});
}

function setBack2ProjectsEvent()
{
	$('.f-back-link').click(function()
	{
		//goTo('#');
		//$.history.load('');
		_showProject = false;
		$('#project-footer').stop().animate({'bottom':-102}, 1000);
		$('#photos, #bg, #project-footer').fadeOut();
		$('#content #photos').empty();
		$('#projects').empty().show();
		$('#lg, #rg').fadeOut();
		appendProjects();
		setPositionProjects();
		setFrontMouseEvent();
		setFrontClickEvent();
	});
}

function callback(hash)
{
	if(hash != '')
	{
		_nameProject = hash;
		$('.trp').empty();
		loadProject(_nameProject);
	}

	if(hash == '')
	{
		_showProject = false;
		$('#project-footer').stop().animate({'bottom':-102}, 1000);
		$('#photos, #bg, #project-footer').fadeOut();
		$('#content #photos').empty();
		$('#projects').empty().show();
		$('#lg, #rg').fadeOut();
		appendProjects();
		setPositionProjects();
		setFrontMouseEvent();
		setFrontClickEvent();
	}
}

function setFrontClickEvent()
{
	$('#item > div').bind('click', function()
	{
		_nameProject = $(this).parent().attr('project');
		goTo('#' + _nameProject);
		$.history.load(_nameProject);
		loadProject(_nameProject);
	});
}

function qTipInit()
{
	$('.tip').qtip({
		content: $(this).attr('alt'),
		style:
		{ 
			padding:4,
			background: '#000',
			color: 'aqua',
			textAlign: 'center',
			border:
			{
				width:6,
				radius:0,
				color: '#000'
			},
			tip:
			{
				corner: 'bottomMiddle',
				color: '#000',
				size: {x:10,y:8}
			},
			name: 'dark'
		},
		position:
		{
			corner:
			{
				target: 'topMiddle',
				tooltip: 'bottomMiddle'
			}
		}
	});
}

function tipsyInit()
{
	$('.tip').tipsy({gravity:'s', title:'alt'});
}

$(function()
{
	if($.browser.msie && $.browser.version == '6.0') goTo('/light/');
	$('#beta').effect('pulsate', { times: 1000 }, 2000);
	mouseLoad();
	checkLoadSite();
	appendProjects();
	appendBg();

	$(window).bind('load', function()
	{
		$.history.init(callback);
		//$(window).scrollTo('#site', 1000);
		jQuery(document.body).imageZoom();
		//$(document).pngFix({blankgif:'i/blank.gif'});
		loadBg();
		htmlHeight();
		x807501();
		setContentSize();
		setFrontMouseEvent();
		setBack2ProjectsEvent();
		setFrontClickEvent();
		setPositionProjects();
		urlLoadProject();
		scrollTimeline();
		//qTipInit();
		tipsyInit();
	});
	
	$(window).bind('resize', function()
	{
		htmlHeight();
		loadBg();
		setPositionProjects();
		setPhotosDivWidth();
		setContentSize();
	});
	
	var cache = [];
	$.preLoadImages = function(_imgs)
	{
		var args_len = _imgs.length;
		for (var i = args_len; i--;)
		{
			var cacheImage = document.createElement('img');
			cacheImage.src = _imgs[i];
			cache.push(cacheImage);
		}
	}
});
