// JavaScript Document

var pie_t = {

DEFAULT_NAME : "pie_chart",
DEFAULT_HEIGHT : 200,
DEFAULT_WIDTH : 200,
DEFAULT_RADIUS : 190,


OnClick : function(ii, name) {
	if (isNaN(name)) name = pie_t.DEFAULT_NAME;


	var img = document.getElementById(name + "_img");
	
	if (document.getElementById(name + "_p" + ii).value == "down") 
		document.getElementById(name + "_p" + ii).value = "up";
	else 
		document.getElementById(name + "_p" + ii).value = "down";
		
	var i = 0;
	var get = "";
	var val = "";
	
	while (document.getElementById(name + "_p" + i)) {
		get += "p" + i + "=" + document.getElementById(name + "_p" +i).value + "&";
		i++;
	}
	
	img.src = "/scripts/piechart/pieimage.php?pieces=" + document.getElementById(name + "_pieces").value + "&" + get;
	
},
	
OnMouseOver : function(ii, name) {
	if (isNaN(name)) name = pie_t.DEFAULT_NAME;
	
	var img = document.getElementById(name + "_img");

	var i = 0;
	var get = "";
	var val = "";
	while (document.getElementById(name + "_p" + i)) {
		if (i == ii)  get += "p" + i + "=change&";
		else get += "p" + i + "=" + document.getElementById(name + "_p" + i).value + "&";
		i++;
	}
	img.src = "/scripts/piechart/pieimage.php?pieces=" + document.getElementById(name + "_pieces").value + "&" + get;

},
	
OnMouseOut : function(ii, name) {
	if (isNaN(name)) name = pie_t.DEFAULT_NAME;
	
	var img = document.getElementById(name + "_img");

	var i = 0;
	var get = "";
	var val = "";
	while (document.getElementById(name + "_p" + i)) {
		get += "p" + i + "=" + document.getElementById(name + "_p" + i).value + "&";
		i++;
	}
	img.src = "/scripts/piechart/pieimage.php?pieces=" + document.getElementById(name + "_pieces").value + "&" + get;
},
	
GetValue : function(name) {
	if (isNaN(name)) name = pie_t.DEFAULT_NAME;
	
	var i = 0;
	var counter = 0;
	var get = "";
	var val = "";
    var piece_selected = new Array()
    
	while (document.getElementById(name + "_p" + i)) {
		if (document.getElementById(name + "_p" + i).value == "down")
        {
            piece_selected[i] = 1;
            counter++;
        }
        else
            piece_selected[i] = 0;
		i++;
	}
	return counter;
},
	
SetValue : function(value, name) {
	if (isNaN(name)) name = pie_t.DEFAULT_NAME;
	
	var img = document.getElementById(name + "_img");
	var i = 0;
	var get = "";
	var val = "";
	while (document.getElementById(name + "_p" + i)) {
		if (i < value) document.getElementById(name + "_p" + i).value = "down";
		else document.getElementById(name + "_p" + i).value = "up";
		get += "p" + i + "=" + document.getElementById(name + "_p" + i).value + "&";
		i++;
	}
	img.src = "/scripts/piechart/pieimage.php?pieces=" + document.getElementById(name + "_pieces").value + "&" + get;
}
} // pie_t

function deg2rad(deg)
{
    pi = 355/113.0;
    return deg * pi / 180;
}

function rad2deg(rad)
{
    pi = 355/113.0;
    return rad * 180 / pi;
}

function implode (delim, str)
{
    var retstr = "";
    for (var i=0; i<str.length; i++)
    {
        if (retstr != "")
           retstr = retstr + ",";
        retstr = retstr + str[i];
    }
    return retstr;
    
}

function makePieChart(pieces) {
		name = "pie_chart";

		cx = pie_t.DEFAULT_WIDTH / 2;
		cy = pie_t.DEFAULT_HEIGHT / 2;
		nAngle = 360 / pieces;

		img = '<img id="' + name + '_img" border="0" src="/scripts/piechart/pieimage.php?pieces=' + pieces + '"'
				+' usemap="#'+ name +'_piemap" width="200" height="200">';

		map = '<map id="'+ name+'_piemap" name="' + name + '_piemap">';
        aMap = new Array();
        
		sys = "<input type='hidden' name='" + name + "_pieces' id='"+name+"_pieces' value='"+pieces+"' />";
		
		for (var i = 0; i < pieces; i++) {
			sys = sys + "<input type='hidden' name='"+name+"_p"+i+"' id='"+name+"_p"+i+"' value='up'>";

			x = cx + pie_t.DEFAULT_RADIUS/2* Math.cos(deg2rad(nAngle*i));
			y = cy - pie_t.DEFAULT_RADIUS/2* Math.sin(deg2rad(nAngle*i));

			aMap[i] = new Array(Math.round(cx), Math.round(cy), Math.round(x), Math.round(y),
									Math.round(cx + pie_t.DEFAULT_RADIUS/2*Math.cos(deg2rad(nAngle*i + nAngle*0.25))),
									Math.round(cy - pie_t.DEFAULT_RADIUS/2*Math.sin(deg2rad(nAngle*i + nAngle*0.25))),
									Math.round(cx + pie_t.DEFAULT_RADIUS/2*Math.cos(deg2rad(nAngle*i + nAngle*0.5))),
									Math.round(cy - pie_t.DEFAULT_RADIUS/2*Math.sin(deg2rad(nAngle*i + nAngle*0.5))),
									Math.round(cx + pie_t.DEFAULT_RADIUS/2*Math.cos(deg2rad(nAngle*i + nAngle*0.75))),
									Math.round(cy - pie_t.DEFAULT_RADIUS/2*Math.sin(deg2rad(nAngle*i + nAngle*0.75)))
									);

			if (i == 0) {
                continue;
            }
			else {
    			aMap[i-1].push( Math.round(x));
 			    aMap[i-1].push( Math.round(y));

				map = map + "<area shape=\"poly\" coords=\"" + implode(",", aMap[i-1]) + "\""
						 +" onfocus='javascript:blur()'"
						 +" onMouseOver='javascript:pie_t.OnMouseOver("+ (pieces - i) +", \""+name+"\")' "
						 +" onMouseOut='javascript:pie_t.OnMouseOut("+ (pieces - i) +", \""+name+"\")' "
						 +" href='javascript:pie_t.OnClick("+ (pieces - i) + ", \""+name+"\")' >\n";
			}
		}
		aMap[i-1].push(aMap[0][2]);
		aMap[i-1].push(aMap[0][3]);
		map = map + "<area shape=\"poly\" coords=\"" + implode(",", aMap[i-1]) + "\""
						 + " onMouseOver='javascript:pie_t.OnMouseOver("+ (pieces - i) +", \""+name+"\")' "
						 + " onMouseOut='javascript:pie_t.OnMouseOut("+ (pieces - i) +", \""+name+"\")' "
						 + " href='javascript:pie_t.OnClick("+ (pieces - i) + ", \""+name+"\")' >\n";

		map = map + "</map>";

		html = sys + img + map;

		return html;

	}

