var currencyGraph = null;

function removeLineBreaks(string) { 
  return string.replace('\n', '/'); 
} 

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function drawChart(xmlData, container, prefix, width, height, topMargin, suffix) {
	var xml = "<chart palette='2'  showLimits='0'  caption='' xAxisName='' showValues='0' setAdaptiveYMin='1' baseFontColor='#000000' outCnvbaseFontSize='9' bgColor='#FF0000' bgAlpha='0' lineColor='#FF0000' lineThickness='2' divLineColor='#ADAAAA' numVDivLines='10' divLineThickness='1' divLineAlpha='20' alternateHGridColor='#CFCFCF' alternateHGridAlpha='10' canvasBorderColor='#E0E0E0' canvasBorderThickness='1' canvasbgAlpha='100' showBorder='0'  drawAnchors='1' anchorAlpha='100' chartLeftMargin='0' chartTopMargin='" + topMargin + "' chartRightMargin='25' chartBottomMargin='1' numberSuffix='"+ suffix +"' numberPrefix='" + prefix + "' >";
	
	xml += xmlData;
	
	xml += "<styles>";
		xml += "  <definition>";
		xml += "      <style name='myAnim1' type='animation' param='_xScale' start='0' duration='1'/>";
		xml += "      <style name='myAnim2' type='animation' param='_alpha' start='0' duration='1'/>";
		xml += "  </definition>";
		xml += "  <application>"
		xml += "      <apply toObject='HGRID' styles='myAnim1, myAnim2' />";
		xml += "      <apply toObject='DIVLINES' styles='myAnim1' />";
		xml += "  </application>";
   	xml += " </styles>";	
	xml += "</chart>";
	
	currencyGraph = new FusionCharts("/skin/frontend/default/jm_ores/FusionCharts_Developer/Charts/Line.swf", "FactorySum", width, height, "0", "0");
	currencyGraph.setDataXML(xml);
	currencyGraph.setTransparent(true);
	currencyGraph.render(container);
	
}

function showCurrencyData(type, width, height, topMargin, currencyUrl) {
	if (!topMargin)
		topMargin = '0';
		
	var endDate = new Date();
	var mseconds = endDate.getTime();

	var startDate = new Date();
	startDate.setTime(mseconds - (parseInt(10) + 30) * 24 * 60 * 60 * 1000);
	startDate = startDate.getFullYear() + '-' + (startDate.getMonth() + 1) + '-' + startDate.getDate();

	endDate = endDate.getFullYear() + '-' + (endDate.getMonth() + 1) + '-' + endDate.getDate();

	var xmlData = '';
	
	jQuery.getJSON(currencyUrl + '?Curr=' + type + '&DateStart=' + startDate + '&DateEnd=' + endDate + '&callback=?', function(data) {
		var step = Math.ceil(data.data.length / 3);
		
		for (var index = 0; index < data.data.length; index++)
		{
			if ((index == 0 || index == data.data.length - 1 || (index % step == 0 && (data.data.length - 1 - index) > step / 2)))
				xmlData += "<set label='" + data.data[index].Date + "' value='" + data.data[index].Value + "' anchorBgColor='FFFFFF' anchorBorderColor='000000' anchorBorderThickness='1' toolText='" + removeLineBreaks(data.data[index].Date) + " "+ roundNumber(data.data[index].Value, 2) + ' zł' +"' />";
			else
				xmlData += "<set label='' value='" + data.data[index].Value + "' anchorAlpha='0' toolText='" + removeLineBreaks(data.data[index].Date) + " "+ roundNumber(data.data[index].Value, 2) + ' zł' +"' />";
		}
		
		drawChart(xmlData, 'currencyGraphDiv', '', width, height, topMargin,' PLN');
	});
}

function showMetalData(type, width, height, topMargin, metalUrl, curr) {
	if (!topMargin)
		topMargin = '0';
	
	var endDate = new Date();
	var mseconds = endDate.getTime();

	var startDate = new Date();
	startDate.setTime(mseconds - (parseInt(0) + 30) * 24 * 60 * 60 * 1000);
	startDate = startDate.getFullYear() + '-' + (startDate.getMonth() + 1) + '-' + startDate.getDate();

	endDate = endDate.getFullYear() + '-' + (endDate.getMonth() + 1) + '-' + endDate.getDate();
	
	if (document.getElementById('metal_from') != null)
	{
		if ($('#metal_from').val() != '')
			startDate = $('#metal_from').val();
		else
			$('#metal_from').val(startDate);
		
		if ($('#metal_to').val() != '')
			endDate = $('#metal_to').val();
		else
			$('#metal_to').val(endDate);
	}
	
	var xmlData = '';
	
	jQuery.getJSON(metalUrl + '?Type=' + type + '&Curr='+ curr+ '&DateStart=' + startDate + '&DateEnd=' + endDate + '&callback=?', function(data) {
		var step = Math.ceil(data.data.length / 3);
		
		for (var index = 0; index < data.data.length; index++)
		{
			if ((index == 0 || index == data.data.length - 1 || (index % step == 0 && (data.data.length - 1 - index) > step / 2)))
				xmlData += "<set label='" + data.data[index].Date + "' value='" + data.data[index].Value + "' anchorBgColor='FFFFFF' anchorBorderColor='000000' anchorBorderThickness='1' toolText='" + removeLineBreaks(data.data[index].Date) + " "+ roundNumber(data.data[index].Value, 2) + '' +"' />";
			else
				xmlData += "<set label='' value='" + data.data[index].Value + "' anchorAlpha='0' toolText='" + removeLineBreaks(data.data[index].Date) + " "+ roundNumber(data.data[index].Value, 2) + '' +"' />";
		}
		
		drawChart(xmlData, 'metalGraphDiv', '', width, height, topMargin, '');
	});
}

function showDiamondData(type, width, height, topMargin, currencyUrl) {
	if (!topMargin)
		topMargin = '0';
		
	var endDate = new Date();
	var mseconds = endDate.getTime();

	var startDate = new Date();
	startDate.setTime(mseconds - (parseInt(60) + 120) * 24 * 60 * 60 * 1000);
	startDate = startDate.getFullYear() + '-' + (startDate.getMonth() + 1) + '-' + startDate.getDate();

	endDate = endDate.getFullYear() + '-' + (endDate.getMonth() + 1) + '-' + endDate.getDate();

	var xmlData = '';
	
	jQuery.getJSON(currencyUrl + '?DateStart=' + startDate + '&DateEnd=' + endDate + '&callback=?', function(data) {
		var step = Math.ceil(data.data.length / 3);
		
		for (var index = 0; index < data.data.length; index++)
		{
			if ((index == 0 || index == data.data.length - 1 || (index % step == 0 && (data.data.length - 1 - index) > step / 2)))
				xmlData += "<set label='" + data.data[index].Date + "' value='" + data.data[index].Value + "' anchorBgColor='FFFFFF' anchorBorderColor='000000' anchorBorderThickness='1' toolText='" + removeLineBreaks(data.data[index].Date) + " "+ roundNumber(data.data[index].Value, 2) + ' $' +"' />";
			else
				xmlData += "<set label='' value='" + data.data[index].Value + "' anchorAlpha='0' toolText='" + removeLineBreaks(data.data[index].Date) + " "+ roundNumber(data.data[index].Value, 2) + ' $' +"' />";
		}
		
		drawChart(xmlData, 'diamondGraphDiv', '$', width, height, topMargin,'');
	});
}
