$(document).ready(function(){
	if(!$.browser.msie) $('#menu .bubble').fadeTo(0,0);
});

function trackPageView(url)
{
	_gaq.push(['_trackPageview', url]);
}

$(window).load(function() {
	
	force_hide_loading();
	
	window.genericWindow = new GenericWindow({
		el		: $('.generic_window')
	});
	
	$(document).bind('selectstart', function(evt){
		evt.preventDefault();
		evt.stopPropagation();
		return false;
	});
	
	if(!$.browser.msie)loadLogo();
	else initCanvas();
});


/****************** LOGO *********************/

function loadLogo()
{
	$('canvas#main').fadeTo(0,0);
	
	logo_all = $('<img class="all" />')
	logo_all.bind('load', logoPartOnLoad);
	
	logo_txt = $('<img class="txt" />')
	logo_txt.bind('load', logoPartOnLoad);
	
	logo_yellow = $('<img class="yellow" />')
	logo_yellow.bind('load', logoPartOnLoad);
	
	logo_blue = $('<img class="blue" />')
	logo_blue.bind('load', logoPartOnLoad);
	
	logo_red = $('<img class="red" />')
	logo_red.bind('load', logoPartOnLoad);
	
	logo_all.attr('src', 'fe/includes/im/logo.png');
	logo_txt.attr('src', 'fe/includes/im/logo_bates.png');
	logo_yellow.attr('src', 'fe/includes/im/logo_yellow.png');
	logo_blue.attr('src', 'fe/includes/im/logo_blue.png');
	logo_red.attr('src', 'fe/includes/im/logo_red.png');
}

function logoPartOnLoad(evt)
{
	$(evt.currentTarget).attr('loaded', '1');
	
	if(logo_all.attr('loaded') 
			&& logo_txt.attr('loaded') 
			&& logo_yellow.attr('loaded') 
			&& logo_blue.attr('loaded') 
			&& logo_red.attr('loaded'))
	{
		$('#logo_intro').append(logo_all);
		$('#logo_intro').append(logo_txt);
		$('#logo_intro').append(logo_yellow);
		$('#logo_intro').append(logo_blue);
		$('#logo_intro').append(logo_red);
		
		logo_all.attr('orig_top', logo_all.css('marginTop'));
		logo_txt.attr('orig_top', logo_txt.css('marginTop'));
		logo_yellow.attr('orig_top', logo_yellow.css('marginTop'));
		logo_blue.attr('orig_top', logo_blue.css('marginTop'));
		logo_red.attr('orig_top', logo_red.css('marginTop'));
		
		doLogoAnimation();
	}
}

function doLogoAnimation()
{	
	logo_txt.css('marginTop', parseInt(logo_txt.css('marginTop').replace(/px/g, '')) + 20);
	logo_yellow.css('marginTop', parseInt(logo_yellow.css('marginTop').replace(/px/g, '')) + 20);
	logo_blue.css('marginTop', parseInt(logo_blue.css('marginTop').replace(/px/g, '')) + 20);
	logo_red.css('marginTop', parseInt(logo_red.css('marginTop').replace(/px/g, '')) + 20);
	
	logo_txt.animate({
		marginTop	: logo_txt.attr('orig_top'),
		opacity		: 1
	}, 300);
	
	logo_blue.delay(200).animate({
		marginTop	: logo_blue.attr('orig_top'),
		opacity		: 1
	}, 300);
	
	logo_yellow.delay(300).animate({
		marginTop	: logo_yellow.attr('orig_top'),
		opacity		: 1
	}, 300);
	
	logo_red.delay(400).animate({
		marginTop	: logo_red.attr('orig_top'),
		opacity		: 1
	}, 300, function(){
		logo_red.css('display', 'none');
		logo_yellow.css('display', 'none');
		logo_blue.css('display', 'none');
		logo_txt.css('display', 'none');
		logo_all.fadeTo(0,1);
		initCanvas();
	});
}

function updateMenuRatio()
{
	var total = window.contentPieces._onScreenContentTypeCount.news + window.contentPieces._onScreenContentTypeCount.about + window.contentPieces._onScreenContentTypeCount.work + window.contentPieces._onScreenContentTypeCount.thought + window.contentPieces._onScreenContentTypeCount.contact;
	var fontSize;
	
	var percentages = [
	                   {
	                	   type		: 'news',
	                	   percent	: window.contentPieces._onScreenContentTypeCount.news / total
	                   },
	                   {
	                	   type		: 'about',
	                	   percent	: window.contentPieces._onScreenContentTypeCount.about / total
	                   },
	                   {
	                	   type		: 'work',
	                	   percent	: window.contentPieces._onScreenContentTypeCount.work / total
	                   },
	                   {
	                	   type		: 'thought',
	                	   percent	: window.contentPieces._onScreenContentTypeCount.thought / total
	                   },
	                   {
	                	   type		: 'contact',
	                	   percent	: window.contentPieces._onScreenContentTypeCount.contact / total
	                   }
	];
	
	percentages.sort(function(a, b){
		return b.percent-a.percent;
	});
	
	var fontSizes = [33, 21, 19, 17, 12];
	
	for(var i=0; i<percentages.length; i++)
	{
		
		$('.menu_item_'+percentages[i].type).css({
			'fontSize'		: fontSizes[i] + 'px',
			'lineHeight'	: (fontSizes[i] - 3) + 'px'
		});
	}
	
	
	
	/*
	fontSize = ;
	if(fontSize < 12) fontSize = 12;
	else if(fontSize > 30) fontSize = 30;
	$('.menu_item_news').css({
		'fontSize'		: fontSize + 'px',
		'lineHeight'	: (fontSize - 3) + 'px'
	});
	
	fontSize = Math.abs();
	if(fontSize < 12) fontSize = 12;
	else if(fontSize > 30) fontSize = 30;
	$('.menu_item_about').css({
		'fontSize'		: fontSize + 'px',
		'lineHeight'	: (fontSize - 3) + 'px'
	});
	
	fontSize = Math.abs();
	if(fontSize < 12) fontSize = 12;
	else if(fontSize > 30) fontSize = 30;
	$('.menu_item_work').css({
		'fontSize'		: fontSize + 'px',
		'lineHeight'	: (fontSize - 3) + 'px'
	});
	
	fontSize = Math.abs(window.contentPieces._onScreenContentTypeCount.thought / total * 100);
	if(fontSize < 12) fontSize = 12;
	else if(fontSize > 30) fontSize = 30;
	$('.menu_item_thought').css({
		'fontSize'		: fontSize + 'px',
		'lineHeight'	: (fontSize - 3) + 'px'
	});
	
	fontSize = Math.abs( * 100);
	if(fontSize < 12) fontSize = 12;
	else if(fontSize > 30) fontSize = 30;
	$('.menu_item_contact').css({
		'fontSize'		: fontSize + 'px',
		'lineHeight'	: (fontSize - 3) + 'px'
	});
	*/
}


/****************** CANVAS *********************/
function initCanvas()
{
	if(!$.browser.msie)
	{
		$('body').bind('initItemLoaded', function(){
			
			window.loadedInitItems ++;
			
			if(window.loadedInitItems == 2)
			{
				
				$('canvas#main').fadeTo(200, 1, function(){
					$('#logo_intro').css('display', 'none');
				});
			}
		});
	}
	else
	{
		$('#logo_intro').css('display', 'none');
		$('canvas#main').css('display', 'block');
	}
	
	$('body').bind('contentClicked', {}, function(evt, contentPiece){
		genericWindow.showURL(baseURL + '/content_piece/details/' + contentPiece._id, contentPiece.getClassName() + '_generic_window');
		trackPageView('/'+contentPiece._data.type+'/' + contentPiece._id);
	});
	
	window.mainCanvas = new Canvas({
		ele		: $('#main'),
		scale	: 1
	});
	
	window.mapCanvas = new MapCanvas({
		ele		: $('#map'),
		scale	: 0.2
	});
	
	window.parallaxCanvas = new ParallaxCanvas({
		ele		: $('#parallax'),
		scale	: 1
	});
	
	window.mapCanvas.bind('objectRendered', {}, function(evt, contentPiece, x, y){
		window.mainCanvas.renderObject(contentPiece, x, y);
		window.contentPieces.updateOnScreen();
	});
	
	window.mainCanvas.bind('translate', {}, function(evt, x, y){
		window.contentPieces.updateOnScreen();
		window.mapCanvas.translate(x*window.mapCanvas._scale, y*window.mapCanvas._scale);
		window.parallaxCanvas.translate(x*0.3, y*0.3);
	});
	
	window.mainCanvas.bind('inertiaComplete', {}, function(){
		updateMenuRatio();
	});
	
	window.contentPieces = new ContentPieceFactory(contentPiecesData);
	window.mapCanvas.render();
	window.parallaxCanvas.render();
	window.contentPieces.updateOnScreen();
	updateMenuRatio();
	
	if(!$.browser.msie) $('#menu .bubble').fadeTo(700,1);
	else $('#menu .bubble').css('display', 'block');
	
	/*
	animate({
		'width'			: $('#menu .bubble').attr('orig_width'),
		'height'		: $('#menu .bubble').attr('orig_height'),
		'marginLeft'	: 0,
		'marginTop'		: 0
	}, 600);
	*/
	$(window).resize(function(){
		
		window.mapCanvas.onWindowResize();
		window.mainCanvas.onWindowResize();
		window.parallaxCanvas.onWindowResize();
		
		window.mapCanvas.render();
		window.mainCanvas.render();
		window.parallaxCanvas.render();
		
	});
}
