/*===================================	
	common.js
	www.juliendecaudin.com    
    by Julien Decaudin http://www.juliendecaudin.com
    22/08/2010
===================================*/

$('html').addClass('js');

/************* GLOBAL VARIABLES *************/
debug = false;
var sprFadeinSpeed = 1000;
var sprFadeoutSpeed = 3000;
var sprSpeed = 10000;

var sprPosition = new Array(6);
var sprItems = new Array('spr_cloud_1', 'spr_cloud_2', 'spr_cloud_3', 'spr_cloud_1_small', 'spr_cloud_2_small', 'spr_cloud_3_small', 'spr_cloud_x');

var lockedItem;
var lockedPosition;

//Sprites variables
var sprCloud1;

$(document).ready(function() {
    /*////////////////////////////////////// INIT */	
    // sprPosition: 0:top, 1:left, 2:end left, 3:speed
    sprPosition[0] = new Array(20, 0, 400, 18000);
    sprPosition[1] = new Array(60, 50, 500, 9000);
    sprPosition[2] = new Array(100, 200, 700, 14000);
    sprPosition[3] = new Array(140, 350, 450, 7000);
    sprPosition[4] = new Array(40, 400, 800, 12000);
    sprPosition[5] = new Array(120, 600, 900, 10000);
    
    
    LoadSprite();    
    LoadSprite();    
    LoadSprite();
});

function LoadSprite(){
	var iItemUniqueId = Math.floor(Math.random()*99999);
	var iItem = Math.floor(Math.random()*sprItems.length);
	var iPosition = Math.floor(Math.random()*sprPosition.length);
	
	if(debug){
			console.log('XX lockedItem: ' + sprItems[lockedItem] + ', lockedPosition:' + sprPosition[lockedPosition]);		
		}
	
	if(iItem != lockedItem && iPosition != lockedPosition){
		lockedItem = iItem;	
		lockedPosition = iPosition;
		
		//create the sprite
		if(iItem != 6){
			$('#spr_container').append('<div id="spr_' + iItemUniqueId + '" class="sprite ' + sprItems[iItem] + '">&nbsp;</div>');	
		}else{
			$('#spr_container').append('<div id="spr_' + iItemUniqueId + '" class="sprite ' + sprItems[iItem] + '"><a href="http://www.juliens.org" target="_blank">&nbsp;</a></div>');	
		}	
		
		var sprItem = $('#spr_' + iItemUniqueId);
		
		if(debug){
			console.log('item id:' + iItemUniqueId + ', item: ' + sprItems[iItem] + ', position:' + sprPosition[iPosition]);		
		}
		
		sprItem.css('top', sprPosition[iPosition][0]);	
		sprItem.css('left', sprPosition[iPosition][1]);	
	
		/*////////////////////////////////////// MOTION */		
		sprItem.show();
		
		sprItem.animate({
			opacity: 1
		}, {queue: false, duration: sprFadeinSpeed});
		
		sprItem.animate({
			left: sprPosition[iPosition][2]
		}, {queue: false, duration: sprPosition[iPosition][3], easing: 'linear', complete: function(){
				LoadSprite();
			}});
		
		var loadItemCall = function () { KillSprite(sprItem); };
	    var timeout = window.setTimeout(loadItemCall, parseInt(sprPosition[iPosition][3]) - parseInt(sprFadeoutSpeed));	
	}else{
		LoadSprite();
	}
}

function KillSprite(sprite){
	sprite.animate({
		opacity: 0
	}, {queue: false, duration: sprFadeoutSpeed, complete: function(){
			$(this).remove();
		}});
}
