var commodities = new (function() {
	var self = this;
	this.urlPrefix = common.urlPrefix;
	
	/**
	 * Wrapper function to hold events for Chart Controls
	 *
	 */
	this.initChartEvents = function(){
		
		//duration
		jQuery("#wsod_commoditiesChartSelectDuration").bind("change",function(e){
			self.updateChart(jQuery(this),{duration:jQuery(this).val()});
		});
		
		//primary
		jQuery("#wsod_commoditiesChartChartSelectCommodity").bind("change",function(e){
			self.updateChart(jQuery(this),{symbol:jQuery(this).val()});
		});
		
		//comparison
		jQuery("#wsod_commoditiesChartSelectComparison").bind("change",function(e){
			self.updateChart(jQuery(this),{comparisonSym:jQuery(this).val()});
		});
		
		jQuery("#wsod_commoditiesChart").find("img").load(function(){ common.hideLoading("wsod_commoditiesChart"); });
	
	};
	
	/**
	 * Updates chart display on stock snapshot page
	 *
	 * @param $el {jQuery} The Form Control
	 * @param options {Ojbect} Additional options
	 */
	this.updateChart = function($el,options,callback){
		
		var defaults = {
			symbol: 		jQuery("#wsod_commoditiesChartChartSelectCommodity").val(),
			duration: 		jQuery("#wsod_commoditiesChartSelectDuration").val(),
			comparisonSym:	jQuery("#wsod_commoditiesChartSelectComparison").val()
		};
		
		var paramObj = jQuery.extend(defaults,options);
		
		var container = "wsod_commoditiesChart";
		
		//refresh chart		
		if (this.request) { this.request.abort(); this.request = null; common.hideLoading(container); }
 
		//beforeSend{} doesn't work with jsonp
		common.showLoading(container);
		
		this.request = jQuery.ajax({
			data: paramObj,
			dataType: "jsonp",
			jsonp: "jsoncallback",
			url: self.urlPrefix+"commodities/buffer_chart.asp",
			success: function(results){
				//call back.
				if (callback){ callback(results); }
				//insert new view
				jQuery("#"+container).find("img").attr("src",results.cht);
				//hide loading is done on the image event handler
			},
			error:function(){
				common.hideLoading(container);
			}
		});		
	};
	
})();
 
/**
 * ready!
 *
 */
jQuery(document).ready(function(){
	commodities.initChartEvents();	
});
