//all scripts for client side chart generation should be placed in this file
document.write('<script language="JavaScript" src="http://chartgizmo.com/scripts/prototype.js" type="text/javascript"></script>');
//if (!jQuery){
    document.write('<script language="JavaScript" src="http://chartgizmo.com/scripts/jquery.js" type="text/javascript"></script>');
//}
document.write('<script type="text/javascript">jQuery.noConflict();</script>');

var chartGizmo = {
    showChart:function(){
        var dataStr = "";
        if (chartGizmo.data) {
           dataStr= "&D=" + Object.toJSON(chartGizmo.data);
        }
        document.write("<img title='Generated by ChartGizmo.com' src='http://chartgizmo.com/GenerateChart?id=" + chartGizmo.chartId + dataStr + "&dummy="+chartGizmo.random()+"'/>");
        chartGizmo.data=undefined;
        chartGizmo.chartId=undefined;
        jQuery("script.chartGizmo:first").remove();
    },
    
    captureData:function (){
        if( !chartGizmo.tableClass && chartGizmo.tabelClass) chartGizmo.tableClass=chartGizmo.tabelClass;
        if (!chartGizmo.tableClass) chartGizmo.tableClass="CSource";
        var result = new Object();
        result.l = new Array();
        result.v = new Array();

        var tds = jQuery("." + chartGizmo.tableClass + " tr:first td");
        var li = tds.index(jQuery('.CLabels'));
        var indexes = new Array();

        jQuery('.CValues').each(function()
        {
            indexes.push(tds.index(this));
            result.v.push(new Array());
        });

        jQuery("." + chartGizmo.tableClass + " tr:gt(0)").each(function()
        {
            var t = jQuery(this).find('td:eq(' + li + ')').text();
            if (!t) t="";
            t=chartGizmo.trim(t);
            result.l.push(t);
            for (var i = 0; i < indexes.length; i++)
            {
                var d = jQuery(this).find('td:eq(' + indexes[i] + ')').text();
                if (!d) d='0';
                d=chartGizmo.trim(d);
                result.v[i].push(d);
            }
        });
//        alert(Object.toJSON(result));
        chartGizmo.data=result;
        chartGizmo.tableClass=undefined;
        chartGizmo.showChart();
        return result;
    },
    random: function(){
        return Math.floor(Math.random() * 1000000);
    },
    trim: function (str) {
        return str.replace(/^\s+|\s+$/g, '');
    },
    chartId:undefined,
    data:undefined,
    tabelClass:undefined,
    tableClass:undefined
};