function refreshContainer(container, url, data)
{
	//$(container).hide();
	showLoader(container);

	if(data.start_date)
		data.start_date = convertDate(data.start_date);
	if(data.end_date)
		data.end_date = convertDate(data.end_date);

	//alert(data.start_date+' - '+data.end_date)

	$(container).load(url, data, function() {
		//$(container).show();
	});
}

function convertDate(dt)
{
	if(dt.length == 0) return '';

	var newDate = dt.split('/');
	return newDate[2] + "-" + newDate[0] + "-" + newDate[1];
}

function drawTable(id, cols, data, sortCol, sortOrder)
{
	var tbl = '#'+id;

	$(tbl).find('thead').empty();
	$(tbl).find('tbody').empty();

	var colValues = new Array();
	var colTypes = new Array();

	var headerHTML = '<tr>';

	$.each(cols, function(i, colData) {
		colValues.push(colData.id);
		colTypes.push(colData.type);
		headerHTML += '<th>'+colData.title+'</th>';
	});
	headerHTML += '</tr>';
	$(tbl).find('thead').html(headerHTML);

	if(data.length)
	{
		var sortOrderVal = true;
		if(sortOrder == 'DESC' || sortOrder == 'desc') sortOrderVal = false;

		var rowHTML = '';
		$.each(data, function(i, rowData) {

			var links = new Array();
			if(rowData.href != null)
			{
				$.each(rowData.href, function(colName, destination) {
					links[colName] = destination;
				});
			}

			rowHTML += '<tr>';
			$.each(colValues, function(i, colName) {
				if(links[colName] != null)
					rowHTML += '<td><a href="" mytarget="'+links[colName]+'" class="report-link">'+rowData[colName]+'</a></td>';
				else
					rowHTML += '<td>'+rowData[colName]+'</td>';
			});
			rowHTML += '</tr>';

		});
		$(tbl).find('tbody').html(rowHTML);
	}

	if(id!='overall_div')
	{
		//var pagerHTML = '<div id="'+id+'_pager" class="pager"><form><img src="/jquery.tablesorter/addons/pager/icons/first.png" class="first"/><img src="/jquery.tablesorter/addons/pager/icons/prev.png" class="prev"/><input type="text" class="pagedisplay"/><img src="/jquery.tablesorter/addons/pager/icons/next.png" class="next"/><img src="/jquery.tablesorter/addons/pager/icons/last.png" class="last"/><select class="pagesize"><option selected="selected"  value="10">10 per page</option><option value="20">20 per page</option><option value="30">30 per page</option><option  value="40">40 per page</option><option  value="50">50 per page</option></select></form></div>';
		var pagerHTML = '<div id="'+id+'_pager"class="pager"><form><img src="/mottie-tablesorter/addons/pager/icons/first.png" class="first"/><img src="/mottie-tablesorter/addons/pager/icons/prev.png" class="prev"/><span class="pagedisplay"></span><img src="/mottie-tablesorter/addons/pager/icons/next.png" class="next"/><img src="/mottie-tablesorter/addons/pager/icons/last.png" class="last"/><select class="pagesize"><option selected="selected" value="10">10 per page</option><option value="25">25 per page</option><option value="50">50 per page</option><option value="100">100 per page</option><option value="250">250 per page</option><option value="500">500 per page</option><option value="1000">1000 per page</option></select></form></div><br class="clear">';
		$('#'+id+'_pager').remove();
		$(tbl).after(pagerHTML);

		//$(tbl).tablesorter({widthFixed: true, widgets: ['zebra']}).tablesorterPager({container: $('#'+id+'_pager')});

		$(tbl)
		.tablesorter({
			widthFixed: false,
			widgets: ['uitheme', 'zebra'],
			widgetZebra: { css: ["ui-state-default", "ui-widget-content"] },
			widgetUitheme: { css: ["ui-icon-carat-2-n-s", "ui-icon-carat-1-s", "ui-icon-carat-1-n"] }
		})
		.tablesorterPager({
			container: $('#'+id+'_pager'),
			output: '{startRow} to {endRow} ({totalRows})',
			updateArrows: true,
			removeRows: false
		});

		$(tbl).trigger("update");
		$(tbl).trigger("appendCache");
		$(tbl).trigger("applyWidgets");
		$("th",tbl).addClass('pointer');
	}
	else
	{

		$("th",tbl).addClass('{sorter: false}');
		$(tbl)
		.tablesorter({
			widthFixed: false,
			widgets: ['uitheme', 'zebra'],
			widgetZebra: { css: ["ui-state-default", "ui-widget-content"] },
			widgetUitheme: { css: ["ui-icon-carat-2-n-s", "ui-icon-carat-1-s", "ui-icon-carat-1-n"] }
		})



		$(tbl).trigger("update");
		$(tbl).trigger("appendCache");
		$(tbl).trigger("applyWidgets");

		$("th",tbl).unbind("hover mouseenter mouseleave");
		$("th",tbl).addClass('header');
		$("th span.ui-icon",tbl).remove();


	}
}

function drawTableGOOGLE(id, cols, data, sortCol, sortOrder)
{
	var tbl = new google.visualization.DataTable();

	var colValues = new Array();
	var colTypes = new Array();

	$.each(cols, function(i, colData) {
		colValues.push(colData.id);
		colTypes.push(colData.type);
		tbl.addColumn(colData.type, colData.title);
	});

	if(data.length)
	{
		var sortOrderVal = true;
		if(sortOrder == 'DESC' || sortOrder == 'desc') sortOrderVal = false;

		tbl.addRows(data.length);

		//tbl.setTableProperty('size', 'small');
		//document.body.appendChild( prettyPrint( tbl.getRowProperties(1), {} ));
		//alert(tbl.getRowProperties(1));



		for(i=1;i<data.length;i++)
		{
			//tbl.setRowProperty(i, 'style', 'background-color:#FF0000');
		}


		//tbl.setRowProperty(1, 'style', 'background-color:#FF0000');

		$.each(data, function(i, rowData) {

			var links = new Array();
			if(rowData.href != null)
			{
				$.each(rowData.href, function(colName, destination) {
					links[colName] = destination;
				});
			}

			$.each(rowData, function(colName, val) {
				var colIndex = $.inArray(colName, colValues);

				if(colIndex>=0)
				{
					var display = val;
					var value = val;

					if(colTypes[colIndex] == 'number')
						value = parseInt(val.replace(/\D/g,''));
					else if(colTypes[colIndex] == 'string')
						value = val;

					if(links[colName] != null)
					{
						display = '<a href="'+links[colName]+'">'+display+'</a>';
					}
					tbl.setCell(i, colIndex, value, display);
				}
			});
		});

		var view = new google.visualization.DataView(tbl);

		//if(hideCol!=null)
		//	view.hideColumns([parseInt(hideCol)]);

		var table = new google.visualization.Table(document.getElementById(id));

		//var imgPrev='<img height="30" width="60" src="Previous.jpg">';
        //var imgNext='<img height="30" width="60" src="Next.jpg">';
		var imgPrev='Prev';
        var imgNext='Next';

		table.draw(view, {allowHtml:true, page:'enable', pageSize:15, sortColumn:$.inArray(sortCol, colValues), sortAscending:sortOrderVal, pagingSymbols: {prev: imgPrev, next: imgNext}});
	}
}

function drawChart(id, cols, data, fullScreen, titleVal )
{
	if(fullScreen == 0)
		var widthVal = 640;
	else
		var widthVal = 910;

	var heightVal = 300;
	var chartData = new google.visualization.DataTable();

	var colValues = new Array();
	var colTypes = new Array();

	$.each(cols, function(i, colData) {
		colValues.push(colData.id);

		if(colData.type == 'timestamp') colData.type = 'string';
		colTypes.push(colData.type);

		chartData.addColumn(colData.type, colData.title);
	});

	if(data.length)
	{
		chartData.addRows(data.length);

		$.each(data, function(i, rowData) {
			$.each(rowData, function(colName, val) {
				var colIndex = $.inArray(colName, colValues);

				if(colIndex>=0)
				{
					if(colTypes[colIndex] == 'number')
						chartData.setCell(i, colIndex, parseInt(val.replace(/\D/g,'')), val);
					else if(colTypes[colIndex] == 'string')
					{
						if(colValues[colIndex] == 'timestamp')
						{
							var dt = new Date(val*1000);
							var day = dt.getDate();
							var month = getShortMonth(dt.getMonth());
							var year = dt.getFullYear();
							chartData.setCell(i, colIndex, val, month+'-'+day+'-'+year);
						}
						else
							chartData.setCell(i, colIndex, val);
					}
				}
			});
		});

		var chart = new google.visualization.AreaChart(document.getElementById(id));
		chart.draw(chartData, {width: widthVal, height: heightVal, title: titleVal, pointSize:5, curveType: 'function', legend: 'none', vAxis: {viewWindow:{min:0}, logScale:false}, hAxis: {slantedText:false, maxAlternation:1}, chartArea: {width:"92%", height: heightVal-100} });
	}
}

function drawChartTimeline(cols, data)
{
	var chartData = new google.visualization.DataTable();

	var colValues = new Array();
	var colTypes = new Array();

	$.each(cols, function(i, colData) {
		colValues.push(colData.id);
		colTypes.push(colData.type);
		chartData.addColumn(colData.type, colData.title);
	});

	$.each(data, function(i, rowData) {
		var row = new Array();
		$.each(rowData, function(colName, val) {
			var colIndex = $.inArray(colName, colValues);
			if(colIndex>=0)
			{
				if(colTypes[colIndex] == 'date')
					row[colIndex] = new Date(val*1000);
				if(colTypes[colIndex] == 'number')
					row[colIndex] = parseInt(val.replace(/\D/g,''));
				else if(colTypes[colIndex] == 'string')
					row[colIndex] = val;
			}
		});
		chartData.addRow(row);
	});

	var chart = new google.visualization.AnnotatedTimeLine(document.getElementById('chart_div'));

	setTimeout(function(){
		chart.draw(chartData, {displayAnnotations: false});
	},0);
}

function getShortMonth(index)
{
	var months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
	return months[index];
}

