var Spark = function() {
  var self = this;
  this.b = 'sparks/';
  this.s = ['spark.png', 'spark2.png', 'spark3.png', 'spark4.png', 'spark5.png', 'spark6.png']; 
  this.i = this.s[this.random(this.s.length)];
  this.f = this.b + this.i; 
  this.n = document.createElement('img');  
          
  this.newSpeed().newPoint().display().newPoint().fly();
};

Spark.prototype.display = function() {
  $(this.n)
   .attr('src', this.f)
   .css('position', 'absolute')
   .css('z-index', this.random(20))
   .css('top', this.pointY)
   .css('left', this.pointX);
                
  $(document.body).append(this.n);
  
  return this;
};

Spark.prototype.fly=function ()
{
	var self=this;
	$(this.n).animate({ //delay don't do anything...
		top: this.pointY,
		left: this.pointX
	},this.speed,"linear",function ()
	{
		self.newSpeed().newPoint().fly();
	});
};

Spark.prototype.newSpeed = function() {
  this.speed = (this.random(10) + 5) * 1300;
  
  return this;
};

Spark.prototype.newPoint = function() {
  this.pointX = this.random(window.innerWidth - 0);  //indow.innerWidth - 100);
  this.pointY = this.random(1000); // max height of floating area
        
  return this;
};

Spark.prototype.random = function(max) {
  return Math.ceil(Math.random() * max) - 1;
}

$(function ()
{
	
	if($.browser["msie"] && $.browser["version"]<9)
	{ return; }

	// Sparks
	var totalSparks=30; //30 is ok.
	var sparks=[];

	for(i=0;i<totalSparks;i++)
	{
		sparks[i]=new Spark();
	}
});

