$(document).ready(function() {
	if(typeof initInitialAnimation != "undefined"){
		onInitialReady();
	}
});	

var previousPosition = new Array(0,0);
var $targetX = 15;
var $targetY = 19;
var $targetWidth = 160;
var $targetHeight = 54;
var initialAnimationSpeed=5;
var initialAnimationSpeedAlpha=15;
var initialAnimationInterval=100;
var isAnimating = false;
var toStopAnimation = false;
var lengthAnimation = 2000;
var animationCount = 0;

function onInitialComplete(){
	//alert('remove');
	$('#animationContainer').remove();
}

function onInitialAnimation($target1,$target2,$targetX,$targetY,$targetWidth,$targetHeight,$target2Alpha){
	
	/*
	$posX = convertStringPxToNumber($target.css('marginLeft')) + (($targetX-convertStringPxToNumber($target.css('marginLeft')))/initialAnimationSpeed);
	$posY = convertStringPxToNumber($target.css('marginTop')) + (($targetY-convertStringPxToNumber($target.css('marginTop')))/initialAnimationSpeed);
	$width = convertStringPxToNumber($target.css('width')) + (($targetWidth-convertStringPxToNumber($target.css('width')))/initialAnimationSpeed);
	$height = convertStringPxToNumber($target.css('height')) + (($targetHeight-convertStringPxToNumber($target.css('height')))/initialAnimationSpeed);
	
	if(Math.abs($targetX - $posX)<1 && Math.abs($targetY - $posY)<1 && Math.abs($targetHeight - $height)<1 && Math.abs($targetWidth - $width)<1){
		$target.css('marginLeft',$targetX + 'px');
		$target.css('marginTop',$targetY + 'px');
		$target.css('width',$targetWidth + 'px');
		$target.css('height',$targetHeight + 'px');
	}else{
		//alert($target + "," + $posX + "," + $posY + "," + $width + "," + $height);
		$target.css('marginLeft',$posX + 'px');
		$target.css('marginTop',$posY + 'px');
		$target.css('width',$width + 'px');
		$target.css('height',$height + 'px');
		setTimeout(onInitialAnimation,initialAnimationInterval,$target,$targetX,$targetY,$targetWidth,$targetHeight);
	}*/
	
	onAnimateProperty($target1,'marginLeft',$targetX,initialAnimationSpeed);
	onAnimateProperty($target1,'marginTop',$targetY,initialAnimationSpeed);
	onAnimateProperty($target1,'width',$targetWidth,initialAnimationSpeed);
	onAnimateProperty($target1,'height',$targetHeight,initialAnimationSpeed);
	onAnimateProperty($target2,'opacity',$target2Alpha,initialAnimationSpeedAlpha);
	
	if(!toStopAnimation){
		setTimeout(onInitialAnimation,initialAnimationInterval,$target1,$target2,$targetX,$targetY,$targetWidth,$targetHeight,$target2Alpha);
	}else{
		$('#originalLogo').animate({opacity:1},1000);
		$('#animation').animate({opacity:0},1000,function(){$('#animation').remove();$('#animationContainer').remove();});
	}
	
}

function onAnimateProperty($target,$property,$targetPropertyValue,$easing){
	//alert($property);
	if($property == 'opacity'){
		$currentValue = Number($target.css($property));
	}else{
		$currentValue = convertStringPxToNumber($target.css($property));
	}
	$currentValue += ($targetPropertyValue - $currentValue)/$easing;
	if($property != 'opacity'){
		$currentValue = Number($currentValue) + 'px';
	}else{
		$currentValue = Number($currentValue);
	}
	$target.css($property,$currentValue);
}

function onInitialResize(){

	var valueX = convertStringPxToNumber($('#animation').css('marginLeft'));
	var valueY = convertStringPxToNumber($('#animation').css('marginTop'));
	previousPosition = [valueX,valueY];
	previousSize = [$(document).width(),$(document).height()];
	//alert(previousPosition);
    $('#animationContainer').css('width',$(window).width() + "px");
    $('#animationContainer').css('height',$(document).height() + "px");
    //$('#animationContainer').css('marginTop',$(document).scrollTop()+"px");
	
	valueX = (($(document).width() - convertStringPxToNumber($('#animation').css('width')))/2);
	valueY = $(window).scrollTop() + (($(window).height() - convertStringPxToNumber($('#animation').css('height')))/2);
	if(!isAnimating){
		$('#animation').css('marginLeft',valueX + "px");	
		$('#animation').css('marginTop',valueY + "px");
	}else{
		var ratioX = previousPosition[0]/previousSize[0];
		var ratioY = previousPosition[1]/previousSize[1];
		valueX = ratioX * ($(document).width());
		valueY = ratioY * ($(document).height());
		$('#animation').css('marginLeft',valueX + "px");	
		$('#animation').css('marginTop',valueY + "px");
	}
	setTimeout(	onInitialResize,100 );
}

function onInitialCall(){
    $(document).resize(onInitialResize);
    $(document).scroll(onInitialResize);
	isAnimating = true;
	//onInitialAnimation($('#animation'),$targetX,$targetY,$targetWidth,$targetHeight);
	/*$('#animationContainer').animate({opacity:0.001},2000,onInitialComplete);
	$('#animation').animate({magrinLeft:$targetX,marginTop:$targetY,width:$targetWidth,height:$targetHeight},2000);*/
	//onInitialAnimation($('#animation'),$('#animationContainer'),$targetX,$targetY,$targetWidth,$targetHeight,0.01);
	//setTimeout(function(){toStopAnimation = true;},lengthAnimation);
	$('#animation').animate({width:$targetWidth,height:$targetHeight,marginLeft:$targetX,marginTop:$targetY},{duration: lengthAnimation});
	$('#animationContainer').animate({opacity:0.01},lengthAnimation,"easeInCubic");
	setTimeout(
	function(){
		$('#originalLogo').animate({opacity:1},500);
		$('#animation').animate({opacity:0},500,function(){$('#animation').remove();$('#animationContainer').remove();});
	},lengthAnimation);
	$('#originalLogo').css('opacity',0);
}

function onInitialReady(){
	//alert("just initioal");
	$('#animation').css('display','block');
    setTimeout(onInitialCall,1000);
	onInitialResize();
}


// homepage imagemap items
function homeButtonOver(elem){
	var item = '.' + $(elem).attr('id') + '-img';
	$(item).css('display', 'inline');
}

function homeButtonOut(elem){
	var item = '.'+$(elem).attr('id')+'-img';
	if (!$(item).hasClass('selected')) {
		$(item).css('display', 'none');
	}
}

function switchTransparency(displayObject,targetTransparency){
	if(targetTransparency==1){
            displayObject.className="crossBrowserNonTransparent";
	}else{
            displayObject.className="crossBrowserTransparent";
	}
}
