/*
 * jQuery firefly plugin 0.1
 *
 * http://docs.jquery.com/Plugins/firefly
 *
 * Copyright (c) 2010 Dharmveer Motyar
 * http://motyar.blogspot.com
 * http://motyar.com
 *
 * $Id$
 * 
 * licensed under the MIT licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *  
 *
 * Creates a firefly effect.
 *
 * @example $.firefly();
 *
 * @name firefly
 * @type jQuery
 * @cat Plugins/firefly
 */


 
 (function($) { 
	/*
	 * Plugin defaults 
	 */
	var defaults = {
			images : ['http://dharmmotyar.googlecode.com/svn/trunk/images/spark.png', 'http://dharmmotyar.googlecode.com/svn/trunk/images//spark2.png',
			'http://dharmmotyar.googlecode.com/svn/trunk/images/spark3.png', 'http://dharmmotyar.googlecode.com/svn/trunk/images/spark4.png'],
			total : 40
	};
	
	
        
	
	$.firefly = function(settings) {
			$(document.body).append('<div id="flying_sparks"></div>');
                        $('#flying_sparks').append('<ul id="sparks"></ul>');
                        $.firefly.settings = $.extend({}, defaults, settings);
			if($.firefly.preloadImages()){
                            for (i = 0; i < $.firefly.settings.total; i++){
				 $('#sparks').append("<li id='spark_entry_" + i + "'class ='spark'></li>");
                                 $.firefly.fly($.firefly.create($.firefly.settings.images[$.firefly.random(($.firefly.settings.images).length)],i));
                            }
			}
			return;
	};
	
        
        
        
        
        
        
        
	/*
	 * Public Functions
	 */

	 $.firefly.create = function(img,i){
                                          spark_image = $('<img>').attr({'src' : img , 'class':'firefly', 'rel':'Name' + i}).hide();
                                          $('#spark_entry_' + i  ).append(spark_image);
                                         //$('#spark_entry_' + i  ).append('<span class="spark_caption" id="spark_caption_' + i + '"></span>');
                                         //$('#spark_caption_' + i ).append('Name_' + i).hide();
							return spark_image.css({
								            'position':'absolute',
                                                                             'width': '40px',
                                                                             'height': '56px',
										    'z-index': $.firefly.random(20),
											top: $.firefly.random(200),	//offsets
											left:  $.firefly.random(($(window).width()-150)) //offsets
                                                                                   
											}).show();		
	 }
    





$.firefly.fly = function(sp) {
  $(sp).animate({
	  top: $.firefly.random(200),	//offsets
	  left: $.firefly.random(($(window).width()-150))
  }, (($.firefly.random(10) + 5) * 1100),function(){  $.firefly.fly(sp) } );
  
  $(sp).hover (
		function() {
			$(sp).stop(true,false);
			$(sp).animate({height:'300',width:'214'},300);
                        },
		
                
                function() {
			$(sp).animate({width:'40', height:'44'},300);
			$.firefly.fly(sp);
		}
  	);
};



$.firefly.preloadImages = function() {
	var preloads = new Object();
	for (i = 0; i < ($.firefly.settings.images).length; i++){  
			preloads[i] = new Image(); preloads[i].src =  $.firefly.settings.images[i];
        }
	return true;
}

$.firefly.random = function(max) {
	return Math.ceil(Math.random() * max) - 1;
}
		
})(jQuery);


