var CAFWIDGET = typeof CAFWIDGET != 'undefined' && CAFWIDGET != null ? CAFWIDGET : {};

CAFWIDGET.Init = function(stocks, container)
{
	CAFWIDGET.container = jQuery('#' + container);
	
	var html = '<div class="caf-header" id="caf_title"></div>';
	html += '<div class="caf-subheader">';//<div class="caf-column0 widget-column ">Symbol</div>';
	html += '<div class="caf-columnhead1 widget-column ">Commodity</div>';
	html += '<div class="caf-columnhead2 widget-column">Last</div>';
	html += '<div class="caf-columnhead3 widget-column">Change</div><div class="widget-clear"></div></div>';
	html += '<div id="cat_tab_container"></div>'
	
	CAFWIDGET.container.html(html);
	
	CAFWIDGET.InitTab(stocks, 0);
}

CAFWIDGET.InitTab = function(data, index)
{
	if (data.length == 0)
		return;
		
	var title = '';
	
	for (var i = 0; i < data.length; i++)
	{
		title += '<div class="caf-tab' + (i == index ? ' caf-active-tab' : '') + '" tab_index="' + i + '">' + data[i].name + '</div>';
	}
	
	title += '<div class="widget-clear"></div>';
	
	jQuery('#caf_title').html(title);
	
	jQuery('.caf-tab').click(function() { 
		var index = this.getAttribute('tab_index');
		CAFWIDGET.InitTab(data, index);
	});
	
	if (data.length < index - 1)
		return;
	
	if (CAFWIDGET.ActiveRequest != null && CAFWIDGET.ActiveRequest.readyState != 4)
	{
		CAFWIDGET.ActiveRequest.abort();
	}
	
	jQuery('#cat_tab_container').html('<div class="caf-loading">Loading...</div>');
	
	CAFWIDGET.ActiveRequest = CAFWIDGET.RequestData(data[index].stocks, function(dataRes) {
		var html = '';
		
		for (var i = 0; i < dataRes.length; i++)
		{
			html += CAFWIDGET.GenerateHTML(dataRes[i], i % 2 == 0);
		}
		
		jQuery('#cat_tab_container').html(html);
	});
}

CAFWIDGET.RequestData = function(stocks, onLoad)
{
	jQuery.ajax({
			type: "GET",
			url: "/widget/commodity.php?stocks=" + escape(stocks.join('|')),
			dataType: "json",
			success: onLoad
	});
}

CAFWIDGET.GenerateHTML = function(data, odd)
{
	//var html = '<div' + (odd ? ' class="caf-odd"' : '') + '><div class="caf-column0 widget-column">' + (data.stock ?  data.stock : 'N/A') + '</div>';0
	var html = '<div' + (odd ? ' class="caf-odd"' : ' class="caf-even"') + '>';0
	html += '<div class="caf-column1 widget-column">' + (data.name ?  data.name : 'N/A') + '</div>';
	html += '<div class="caf-column2 widget-column' + (data.last_trade < 0 ? ' caf-trade-minus' : ' caf-trade-plus') + '">' + data.last + '</div>';
	html += '<div class="caf-column3 widget-column' +  (data.change < 0 ? ' caf-trade-minus' : ' caf-trade-plus')+ '">' + data.change + '</div><div class="widget-clear"></div></div>';
	
	return html;
}

jQuery(function(){
	CAFWIDGET.Init([{name: 'Energy', stocks: ['CLX10.NYM', 'HOX10.NYM', 'NGX10.NYM', 'PNV10.NYM', 'RBX10.NYM']},
					{name: 'Metals', stocks: ['ALV10.CMX', 'HGV10.CMX', 'ZGV10.CBT', 'GCV10.CMX', 'PAV10.NYM', 'PLV10.NYM', 'ZIZ10.CBT', 'SIV10.CMX']},
					{name: 'Grains', stocks: ['CZ10.CBT', 'OZ10.CBT', 'RRX10.CBT', 'SMV10.CBT', 'BOV10.CBT', 'SX10.CBT']},
					{name: 'Livestock', stocks: ['FCV10.CME', 'PBG10.CME', 'LHV10.CME', 'LCV10.CME']},
					{name: 'Softs', stocks: ['CCZ10.NYB', 'KCZ10.NYB', 'CTV10.NYB', 'LBX10.CME', 'OJX10.NYB', 'SBF10.NYB', 'SEU10.NYB']},
					{name: 'Indices', stocks: ['^DJC', 'GIU10.CME', '^XAU', 'RCIV10.CME']}
					], 'commodities');
});
