
/**
 * provide a loader widget for jquery
 *
 * @return void
 * @author Dan Bryant <db@leadingtone.org>
 * @copyright LearningChange LLC - Dan Bryant (Shared Source Initiave/Dual Ownership),  7 April, 2009
 * @package jquery.loader.js
 * @version: 1.0
 * @perams:
 *	
 **/
jQuery.extend({

	loader: function(fn,options){

		// plugin defaults
		var defaults = {
			image: 'default'									// the name of the default loader image
			,message:'loading&hellip;'							// the dafeualt loader message
			,startVisible:false									// start visible
			,version:'1.1'										// plugin version
			,pluginPath:GBL.ROOTURL+'js/jquery/plug/loader/'	// the path to the plugin folder. this is added to version to get the full pluginPath
			,autoReset:true										// automatically reset after calling hide?
		};

		// merge inoming vars with 
		var opts = jQuery.extend(defaults, options);

		var image = opts.image;
		var message = opts.message;
		var startVisible = opts.startVisible;
		var version = opts.version;
		var pluginPath = opts.pluginPath;
		var autoReset = opts.autoReset;

		switch(fn){

			case 'show':
				jQuery('.loader_widget').fadeIn('fast');
			break;

			case 'hide':
				jQuery('.loader_widget').fadeOut('slow');
				if(autoReset){
					jQuery.loader('reset');					
				}
			break;	
			
			case 'init': // initialize the plugin
			
				var visibility = (!startVisible) ? ' style="display:none;"' : '';

				var imagetag = (image) ? 
					'<img class="loader_image" src="'+pluginPath+version+'/img/loaders/'+image+'.gif" alt="progam activite" />' 
					: '<img class="loader_image" src="'+pluginPath+version+'/img/loaders/none.gif" alt="progam activite" />';

				var loader = '<div class="loader_widget"'+visibility+'>\
					<table>\
					<tr>\
						<td class="tl"></td>\
						<td></td>\
						<td class="tr"><td>\
					</tr>\
					<tr>\
						<td></td>\
						<td>'+imagetag+'<span class="message"></span></td>\
						<td></td>\
					</tr>\
					<tr>\
						<td class="bl"></td>\
						<td></td>\
						<td class="br"><td>\
					</tr>\
					</table>\
				</div>';
			
				jQuery('body').prepend(loader);
			
				jQuery('.loader_widget .message').html(message);
			
			break;
			
			case 'reset': // reset the plugin to its default settings
				jQuery('.loader_widget .message').html(defaults.message);
				jQuery('.loader_widget .loader_image').attr({'src':pluginPath+version+'/img/loaders/'+defaults.image+'.gif'});							
			break;
			
			default: // set

				jQuery('.loader_widget .message').html(message);

				if(image){
					jQuery('.loader_widget .loader_image').attr({'src':pluginPath+version+'/img/loaders/'+image+'.gif'});				
				}else{
					jQuery('.loader_widget .loader_image').attr({'src':pluginPath+version+'/img/loaders/none.gif'});
				}
				
			break;
		}

	}
			
});

jQuery(document).ready(function() {
	// comment out to stop auto initialization
	jQuery.loader('init');
});

