// --------------------------------
// !Load Indicator
// --------------------------------
(function($) {

	$.fn.GYROLoadIndicator = function(config) {

		// default config values
		var defaults = {
			"containerId": "#load-indicator",
			"content": {
				"text": "Loading..."
			}				
		};

		var loadIndicator;

		// override defaults with any matching config passed in		
		if (config) {
			$.extend(defaults, config);
		}

		// ------------------------------------------------------
		//
		// ------------------------------------------------------
		this.setLoadStart = function() {
			loadIndicator.stop();
			loadIndicator.slideDown();
		};
		
		// ------------------------------------------------------
		//
		// ------------------------------------------------------
		this.setLoadComplete = function() {
			loadIndicator.stop();
			loadIndicator.slideUp();
		};

		this.update = function() {};

		// ------------------------------------------------------
		// !Initialize
		// ------------------------------------------------------ 
		return this.each(function() {
				
			// see if the container already exists
			loadIndicator = jQuery(defaults.containerId);
	
			// if it doesn't already exist		
			if (loadIndicator.length === 0) {					
		
				// create load indicator container
				$("body").append("<div id=\"" + defaults.containerId.substring(1) + "\"></div>");				
				loadIndicator = $(defaults.containerId);
				loadIndicator.hide();
				
				// add image if defined
				if (typeof(defaults.content) === "object" && typeof(defaults.content.imageSrc) === "string") {
					loadIndicator.append("<img src=\"" + defaults.content.imageSrc + "\"/>");				
				}
				
				// add text if defined
				if (typeof(defaults.content) === "object" && typeof(defaults.content.text) === "string") {
					loadIndicator.append(defaults.content.text);			
				}
			
			} else {
				
				// !TO-DO: what happens if the container already exists?
				// - cannot simply override 

			}

			$.log("Finished initializing GYROLoadIndicator");
		
		});	

	};
	
})(jQuery)
