function displayPie() {
		//alert("Executing jensonpie.js");
    var paper = Raphael("pieholder", 700, 700),
        rad = Math.PI / 180;
    function sector(cx, cy, r, startAngle, endAngle, params) {
        var x1 = cx + r * Math.cos(-startAngle * rad),
            x2 = cx + r * Math.cos(-endAngle * rad),
            y1 = cy + r * Math.sin(-startAngle * rad),
            y2 = cy + r * Math.sin(-endAngle * rad);
        return paper.path(params).moveTo(cx, cy).lineTo(x1, y1).arcTo(r, r, (endAngle - startAngle > 180 ? 1 : 0), 0, x2, y2).andClose();
    }
    function pie(values) {
        var angle = 0,
            total = 0,
            cx = 350,
            cy = 350;
            process = function (j) {
                var value = values[j],
                    angleplus = 360 * value / total,
                    popangle = angle + (angleplus / 2),
                    color = Raphael.getColor(),
                    ms = 200,
                    delta = 30,
                    p = sector(cx, cy, 200, angle, angle + angleplus, {fill: color, stroke: "#000"}),
                    bcolor = Raphael.rgb2hsb(color);
                bcolor = Raphael.hsb2rgb(bcolor.h, bcolor.s, 1).hex;
                var txt = paper.text(cx + (200 + delta + 55) * Math.cos(-popangle * rad), cy + (200 + delta + 25) * Math.sin(-popangle * rad), labels[j]).attr({fill: color, stroke: "none", opacity: 0, "font-family": '"Georgia"', "font-size": "20px"});
               $(p[0]).mouseover(function () {
                    var dt = (new Date()).getTime(),
                        x = 0,
                        y = 0;
                    p.attr({fill: bcolor});
                    (function () {
                        var ndt = (new Date()).getTime();
                        if (ndt - dt < ms) {
                            var d = delta * (ndt - dt) / ms,
                                x1 = d * Math.cos(-popangle * rad),
                                y1 = d * Math.sin(-popangle * rad);
                            p.translate(x1 - x, y1 - y);
                            x  = x1;
                            y = y1;
                            txt.attr({opacity: (ndt - dt) / ms});
                            setTimeout(arguments.callee, 0);
                        } else {
                            txt.attr({opacity: 1});
                        }
                    })();
                }).mouseout(function () {
                    var dt = (new Date()).getTime(),
                        x = 0,
                        y = 0;
                    (function () {
                        var ndt = (new Date()).getTime();
                        if (ndt - dt < ms) {
                            var d = delta * (ndt - dt) / ms,
                                x1 = d * Math.cos(-popangle * rad),
                                y1 = d * Math.sin(-popangle * rad);
                            p.translate(x - x1, y - y1);
                            x  = x1;
                            y = y1;
                            txt.attr({opacity: 1 - ((ndt - dt) / ms)});
                            setTimeout(arguments.callee, 0);
                        } else {
                            var offset = p.translate();
                            p.translate(-offset.x, -offset.y).attr({fill: color});
                            txt.attr({opacity: 0});
                        }
                    })();
                });
                angle += angleplus;
            };
        for (var i = 0, ii = values.length; i < ii; i++) {
            total += values[i];
        }
        for (var i = 0, ii = values.length; i < ii; i++) {
            process(i);
        }
    }
    var values = [],
        labels = [];
    $("tr").each(function () {
        values.push(parseInt($("td", this).text(), 10));
        labels.push($("th", this).text());
    });
    $("table").hide();
    pie(values);
		var elem = document.getElementById("pieholder")
		if (!elem) return;
    elem.style.visibility = "visible";
}

function hidePie(){
	var elem = document.getElementById("pieholder")
	if (!elem) return;
	elem.style.visibility = "hidden";
}

// Safari does not render the SVG correctly so display an alternative
var safariElement;
function displaySafariElement(){
	if (safariElement){
		safariElement.style.visibility = "visible";
		return;
	}
	var safariDiv = document.getElementById("safaritechnologycontent");
	safariDiv.style.visibility = "visible";
	document.getElementById("technologycontent").style.visibility = "hidden";	
}
function hideSafariElement(){
	if (!safariElement)return;
	safariElement.style.visibility = "hidden";	
}
