
var fallSpeed = 4;
var des;
var desDirection;
var desTarget;

$(function(){
	
	//if (navigator.appName.indexOf("Microsoft") != -1) {
	if($.browser.msie && $.browser.version < 9){
        des = window['ExternalInterfaceExample'];
    } else {
        des = document['ExternalInterfaceExample'];
    }
	
});
		
function positionChap(){

	var chap = $('#chap');

	var tPos = $('div.footer').position()['top'] - chap.height();
	var lPos = randomFooterPosition(chap);

	chap.css({
		top : tPos,
		left: lPos				
	});

}

function positionStone(){

	var stone = $('#stone');

	var tPos = $('div.footer').position()['top'] - stone.height();
	var lPos = randomFooterPosition(stone);

	stone.css({
		top : tPos,
		left: lPos				
	});

}

function kickStone(){
	
	var chap = $('#chap');
	
	var marginL = parseInt($('#whatsnewinner').css('margin-left').replace('px','')) * -1;

	var foundFirst = false;

	firstCol = null;

	$('#whatsnewinner a img').each(function(){

		if($(this).closest('a').position()['left'] == 0 && !foundFirst){
			foundFirst = true;
			firstCol = parseInt($(this).closest('a').attr('id').split('_')[1]);
		}
	});

	var block = null;

	var counter = 0;

	while(block==null && counter < 10){
		
		var randCol = Math.floor(Math.random()*6) + firstCol;
		var randRow = Math.floor(Math.random()*3) + 1;
		
		if($('#cloneOf'+randRow+'_'+randCol).length == 0){
			block = $('#'+randRow+'_'+randCol);
		}
		
		counter++;
	}
	
	if(block==null){
		// console.log('null block');
		return false;
	}
	
	desTarget = block;
	
	//console.log(parseInt(chap.offset()['left']+(chap.width()/2))+' '+block.offset()['left']);
	if((chap.offset()['left']+(chap.width()/2)) < block.offset()['left']){
		desDirection = 'right';
	}else{
		desDirection = 'left';
	}
	
	//console.log(desDirection+'StandingBall...');
	des.doAction(desDirection+'StandingBall');
	
	setTimeout(function(){
		//console.log(desDirection+'Kicking...');
		des.doAction(desDirection+'Kicking');
	},500);
		
}

function throwStone(){

	block = desTarget;

	var stone = $('#stone');

	if(desDirection=='right'){
		var leftPos = parseInt($('#chap').css('left').replace('px','')) + 120;
	}else{
		var leftPos = parseInt($('#chap').css('left').replace('px','')) + 0;
	}

	stone.css({
		top : parseInt(parseInt($('#chap').css('top').replace('px',''))+55)+'px',
		left : leftPos+'px'
	});

	

	var stoneSpeed = 1;

	xTarget = (block.position()['left'] + 20 + 220);
	yTarget = (block.offset()['top']+20);

	xDist = parseInt(stone.css('left').replace('px','')) - xTarget;
	if(xDist < 0){
		xDist *= -1;
	}

	yDist = parseInt(stone.css('top').replace('px','')) - yTarget;
	if(yDist < 0){
		yDist *= -1;
	}

	var dist = Math.sqrt((yDist*yDist) + (xDist*xDist));

	if(dist > 0){
		var duration = stoneSpeed * dist;

		stone.animate({
			//left: [xTarget,'easeInSine'],
			left: xTarget,
			top: yTarget

		}, duration,"linear",function(){
			fallToFooter($(block));


			xTarget = parseInt(stone.position()['left']);

			if(parseInt($('#chap').css('left').replace('px','')) < xTarget ){
				var xTarget = xTarget + Math.floor(Math.random()*50);
			}else{
				var xTarget = xTarget - Math.floor(Math.random()*50);
			}

			yTarget = $('div.footer').position()['top'] - stone.height();

			xDist = parseInt(stone.css('left').replace('px','')) - xTarget;
			if(xDist < 0){
				xDist *= -1;
			}

			yDist = parseInt(stone.css('top').replace('px','')) - yTarget;
			if(yDist < 0){
				yDist *= -1;
			}

			var dist = Math.sqrt((yDist*yDist) + (xDist*xDist));

			if(dist > 0){

				var duration = (fallSpeed * dist) + 500;

				stone.animate({
					left: [xTarget,'easeInSine'],
					top: yTarget

				}, duration,"easeOutBounce",function(){
					walkToStone();
				});
			}
		});
	}
}

function hideStone(){
	$('#stone').hide();
}

function showStone(){
	$('#stone').show();
}

function walkToStone(){

	showStone();

	var walkSpeed = 8;

	var chap = $('#chap');
	var stone = $('#stone');

	var currPos = parseInt(chap.css('left').replace('px',''));
	var newPos = parseInt(stone.css('left').replace('px',''));

	var dist = currPos - newPos;

	if(dist < 0){
		newPos = newPos - 95;
	}else{
		newPos = newPos - 15;
	}
	
	dist = currPos - newPos;

	if(dist < 0){
		dist *= -1;
		desDirection = 'right';
	}else{
		desDirection = 'left';
	}

	if(dist > 0){
		
		des.doAction(desDirection+'Walking');
		
		var duration = walkSpeed * dist;

		chap.animate({
			left: newPos+"px"
		}, duration,'linear',function(){
			
			//console.log(dist);
			
			if(desDirection=='left' && (parseInt(stone.css('left').replace('px','')) - newPos ) > 15){
				desDirection = 'right';
			}else if(desDirection=='right' && (parseInt(stone.css('left').replace('px','')) - newPos ) < -15){
				desDirection = 'left';
			}
			
			des.doAction(desDirection+'Bending');
			
			//throwStone();
		});

	}else{
		//throwStone();
	}
}

function randomFooterPosition(element){

	return $('div.footer').position()['left'] + Math.floor(Math.random()*($('div.footer').width() - element.width()));
}

function logoFall(){
	
	var element = $('#chap');
	
	var dest = $('div.footer').position()['top'] - $(element).height();

	var ypos = $(element).position()['top'];
	var dist = dest - ypos;

	var duration = fallSpeed * dist;

	$(element).animate({
		top: dest+"px"
	},duration,"easeOutBounce");
	
	var element = $('#stone');
	
	var dest = $('div.footer').position()['top'] - $(element).height();

	var ypos = $(element).position()['top'];
	var dist = dest - ypos;

	var duration = fallSpeed * dist;

	$(element).animate({
		top: dest+"px"
	},duration,"easeOutBounce");
	
	des.doAction('falling');
	
}

function fallToFooter(element){

	var clone = $(element).clone().insertAfter($(element));

	clone.html('').attr('href','#');

	var lPos = $(element).position()['left'] + 220;
	var tPos = $(element).position()['top'] + $('div.whatsnewcontent').position()['top'] + 10;

	$(element).remove().appendTo('div.container').css({
		position: 'absolute',
		top : tPos,
		left: lPos,
		zIndex : 990
	}).attr('id','cloneOf'+$(element).attr('id'));

	var dest = $('div.footer').position()['top'] - $(element).height();

	var ypos = $(element).position()['top'];
	var dist = dest - ypos;

	if(dist > 0){
		var duration = fallSpeed * dist;

		$(element).animate({
			top: dest+"px"
		},duration,"easeOutBounce",function(){
			
			$(element).addClass('cloneBlock');

		});

		/*
		var maxRotate = 180;
		var spinTime = duration / 3;
		var frameTime = 40;
		var frames = spinTime / frameTime;
		var rotateStep = maxRotate / frames;

		var currentRotation = 0;

		var spin = setInterval(function(){

			if(currentRotation > maxRotate){
				currentRotation = maxRotate;
				clearInterval(spin);
			}else{
				currentRotation += rotateStep;
			}
			$(element).css('-moz-transform','rotate('+currentRotation+'deg)');
			$(element).css('-webkit-transform','rotate('+currentRotation+'deg)');

		},frameTime);

		*/
	}

	definePortfolioBoxes();
}

var flying;

function startFlying(direction){

	flying = setInterval(function(){

		if($('#twitterBird').hasClass(direction+'Up')){
			$('#twitterBird').attr('class','');
			$('#twitterBird').addClass(direction+'Down');
		}else{
			$('#twitterBird').attr('class','');
			$('#twitterBird').addClass(direction+'Up');
		}
		
	},100);
}

function stopFlying(){
	
	clearInterval(flying);
	
}

function flyToBlock(){
	
	var birdSpeed = 5;
	var bird = $('#twitterBird');
		
	if($('.cloneBlock').length > 0){

		$('#twitterBird').data('flying','yes');
		
		var block = $('.cloneBlock:eq('+Math.floor(Math.random() * $('.cloneBlock').length)+')');

		block.removeClass('cloneBlock');
				
		xTarget = (block.position()['left']+50);
		yTarget = (block.position()['top']-bird.height() + 5);

		stopFlying();
		xDist = bird.position()['left'] - xTarget;
		//console.log(xDist);
		if(xDist < 0){
			startFlying('right');
			xDist *= -1;
		}else{
			startFlying('left');
		}

		yDist = bird.position()['top'] - yTarget;
		if(yDist < 0){
			yDist *= -1;
		}

		var dist = Math.sqrt((yDist*yDist) + (xDist*xDist));

		if(dist > 0){
			var duration = birdSpeed * dist;

			bird.animate({
				left: [xTarget,'easeInOutSine'],
				top: yTarget

			}, duration,'easeInOutQuad',function(){

				var space = $('#'+block.attr('id').replace('cloneOf',''));

				xTarget = (space.position()['left']) + 220;
				yTarget = space.position()['top'] + $('div.whatsnewcontent').position()['top'] + 15;

				xDist = block.position()['left'] - xTarget;
				if(xDist < 0){
					xDist *= -1;
				}

				yDist = block.position()['top'] - yTarget;
				if(yDist < 0){
					yDist *= -1;
				}

				var dist = Math.sqrt((yDist*yDist) + (xDist*xDist));
				var duration = birdSpeed * dist;
				
				block.animate({
					left: xTarget,
					top: yTarget

				}, duration,'easeInOutQuad',function(){
					
					block.removeAttr("style").remove().insertAfter(space);
					space.remove();
					block.attr('id',block.attr('id').replace('cloneOf',''));
				});
				
				bird.animate({
					left: xTarget+50,
					top: yTarget+5-bird.height()

				}, duration,'easeInOutQuad',function(){
					
					setTimeout(function(){
						flyToBlock();		
					},500);								
					
				});
			   
			});
		}
		
	}else{
	
		xTarget = 140;
		yTarget = $('#twitter_outer').position()['top'];

		xDist = bird.position()['left'] - xTarget;
		if(xDist < 0){
			xDist *= -1;
		}

		yDist = bird.position()['top'] - yTarget;
		if(yDist < 0){
			yDist *= -1;
		}

		var dist = Math.sqrt((yDist*yDist) + (xDist*xDist));
		
		if(dist > 0){

			stopFlying();
			startFlying('left');

			var duration = birdSpeed * dist;

			bird.animate({
				left: xTarget,
				top: yTarget

			}, duration,'easeInOutQuad',function(){

				$('#twitterBird').data('flying','no');

				stopFlying();
				$('#twitterBird').attr('class','leftDown');

			});

		}

	}
}


