function getMyChart(id,params,className,methodName,pluginName)
{		
	var ajaxReader  = new WikiAjax(false);
	ajaxReader.setMethodTOPOST();
	var afterGettingMyChart = new AfterGettingMyChart(id);
	ajaxReader.setCallback(afterGettingMyChart.process);
	var req = createRequest(createManagerMethod(methodName, params,className,pluginName));
	ajaxReader.addField("reqdata", req);
	ajaxReader.send();
}
	
function AfterGettingMyChart(id)
{
	this.id = id;
	this.process = process;
	
	function process( responseDOM, errorMessage, responseText )
	{
		var obj = parseResponse(responseDOM);

		if(obj == null)
		{
			alert(generalMsgLocalizer.getMessage("response_not_well"));
		}
		else
		{
			if(obj.statusCode == "200")
			{ 
				if(obj.output +"" != "")
				{
					var xml=obj.output;
					if(xml.indexOf('<Error>') > 0)
					{
						document.getElementById(id).innerHTML=xml;
						return;
					}

					var agt=navigator.userAgent.toLowerCase();
					var is_ie=((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

					if(is_ie)
					{
						xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
						xmlDoc.async="false";
						xmlDoc.loadXML(xml);
					}
					else
					{
						parser=new DOMParser();
						xmlDoc=parser.parseFromString(xml,"text/xml");
					}					

					var chartData = xmlDoc.getElementsByTagName("Data")[0].childNodes[0].nodeValue + "";

					chartData = chartData.split('^');
					var myData = new Array(chartData.length);
					
					for(var i = 0; i < chartData.length; i++)
					{
						myData[i] = eval(chartData[i]);
					}
					
					var color = new Array(myData.length);
					var fixTwentyColor = ['#44A622','#A7B629','#CAD857','#E4DB7B','#ECDE49','#ECC049','#EC9649','#D97431','#D95531','#B10000','#C56A6A','#D60301','#FBE000','#CA107C','#BCEA29','#33B9D7','#6B720C','#206183','#68AED2','#3489B6'];
					for(var k=0;k<myData.length;k++)
					{
						if(k<20)
						{
							color[k] = fixTwentyColor[k];
						}
						else
						{
							color[k]=genHex();						
						}
					}

					var myChart;

					if(xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'dbpie' || xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'pie')
					{
						
						myChart = new JSChart(id,'pie');
						myChart.setDataArray(myData);
						myChart.colorizePie(color);
						myChart.setPiePosition(200,170);
						myChart.setPieRadius(100);
						myChart.setPieUnitsColor('#555');
						myChart.setSize(parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('width')), parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('height')));
					}
					
					if(xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'dbbar' || xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'bar')
					{
						myChart = new JSChart(id,'bar');
						myChart.setDataArray(myData);
						myChart.colorizeBars(color);
						myChart.setAxisNameX(xmlDoc.getElementsByTagName("Type")[0].getAttribute('xlabel'));
						myChart.setAxisNameY(xmlDoc.getElementsByTagName("Type")[0].getAttribute('ylabel'));
						myChart.setAxisColor('#000000');
						myChart.setAxisNameFontSize(10);
						myChart.setAxisNameColor('#000000');
						myChart.setAxisValuesColor('#000000');
						myChart.setBarValuesColor('#000000');
						myChart.setAxisPaddingTop(60);
						myChart.setBarOpacity(0.8);
						myChart.setAxisPaddingRight(30);
						myChart.setAxisPaddingLeft(80);
						myChart.setAxisPaddingBottom(40);
						myChart.setBarBorderWidth(1);
						myChart.setBarBorderColor('#C4C4C4');
						myChart.setBarSpacingRatio(50);
						myChart.setBarValues(true);
						myChart.setGrid(true);
						myChart.setSize(parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('height')), parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('width')));
					}
					
					myChart.setTitle(xmlDoc.getElementsByTagName("Type")[0].getAttribute('title'));
					myChart.setTitleColor('#000000');
					myChart.setTitleFontSize(10);
					myChart.setTextPaddingTop(30);
					myChart.setTextPaddingLeft(35);
					
					myChart.draw();
				}
				
			}
			
		}
	}
}

function genHex()
{
	colors = new Array(14)
	colors[0]="0"
	colors[1]="1"
	colors[2]="2"
	colors[3]="3"
	colors[4]="4"
	colors[5]="5"
	colors[5]="6"
	colors[6]="7"
	colors[7]="8"
	colors[8]="9"
	colors[9]="a"
	colors[10]="b"
	colors[11]="c"
	colors[12]="d"
	colors[13]="e"
	colors[14]="f"

	digit = new Array(5)
	color=""
	for (i=0;i<6;i++){
	digit[i]=colors[Math.round(Math.random()*14)]
	color = color+digit[i]
	}

	return "#"+color;
}

function postChartDraw(data,id)
{
	var xml=data;
	xml = xml.replace(/~_~/g, "'");
	if(xml.indexOf('<Error>') > 0)
	{
		document.getElementById(id).innerHTML=xml;
		return;
	}

	var agt=navigator.userAgent.toLowerCase();
	var is_ie=((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

	if(is_ie)
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(xml);
	}
	else
	{
		parser=new DOMParser();
		xmlDoc=parser.parseFromString(xml,"text/xml");
	}					
    try
	{
		var chartData = xmlDoc.getElementsByTagName("Data")[0].childNodes[0].nodeValue + "";

		chartData = chartData.split('^');
		var myData = new Array(chartData.length);
		
		for(var i = 0; i < chartData.length; i++)
		{
			myData[i] = eval(chartData[i]);
		}
		
		var color = new Array(myData.length);
		var fixTwentyColor = ['#44A622','#A7B629','#CAD857','#E4DB7B','#ECDE49','#ECC049','#EC9649','#D97431','#D95531','#B10000','#C56A6A','#D60301','#FBE000','#CA107C','#BCEA29','#33B9D7','#6B720C','#206183','#68AED2','#3489B6'];
		for(var k=0;k<myData.length;k++)
		{
			if(k<20)
			{
				color[k] = fixTwentyColor[k];
			}
			else
			{
				color[k]=genHex();						
			}
		}

		var myChart;

		if(xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'dbpie' || xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'pie')
		{
			
			myChart = new JSChart(id,'pie');
			myChart.setDataArray(myData);
			myChart.colorizePie(color);
			myChart.setPiePosition(200,170);
			myChart.setPieRadius(100);
			myChart.setPieUnitsColor('#555');
			myChart.setSize(parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('width')), parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('height')));
		}
		
		if(xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'dbbar' || xmlDoc.getElementsByTagName("Type")[0].getAttribute('name') == 'bar')
		{
			myChart = new JSChart(id,'bar');
			myChart.setDataArray(myData);
			myChart.colorizeBars(color);
			myChart.setAxisNameX(xmlDoc.getElementsByTagName("Type")[0].getAttribute('xlabel'));
			myChart.setAxisNameY(xmlDoc.getElementsByTagName("Type")[0].getAttribute('ylabel'));
			myChart.setAxisColor('#000000');
			myChart.setAxisNameFontSize(10);
			myChart.setAxisNameColor('#000000');
			myChart.setAxisValuesColor('#000000');
			myChart.setBarValuesColor('#000000');
			myChart.setAxisPaddingTop(60);
			myChart.setBarOpacity(0.8);
			myChart.setAxisPaddingRight(30);
			myChart.setAxisPaddingLeft(80);
			myChart.setAxisPaddingBottom(40);
			myChart.setBarBorderWidth(1);
			myChart.setBarBorderColor('#C4C4C4');
			myChart.setBarSpacingRatio(50);
			myChart.setBarValues(true);
			myChart.setGrid(true);
			myChart.setSize(parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('height')), parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('width')));
		}
		
		myChart.setTitle(xmlDoc.getElementsByTagName("Type")[0].getAttribute('title'));
		myChart.setTitleColor('#000000');
		myChart.setTitleFontSize(10);
		myChart.setTextPaddingTop(30);
		myChart.setTextPaddingLeft(35);
		//myChart.setSize(parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('height')), parseInt(xmlDoc.getElementsByTagName("Type")[0].getAttribute('width')));
		myChart.draw();
	}
	catch(err)
	{
	}
}