//swfchart v2.1 - 14/03/07
//se la modalità SWFCHART_CFG_BUILD_STATIC_DATA_MODE è attiva viene impostata automaticamente la modalità SWFCHART_ALWAYS_QUERY a 1
var SWFCHART_CFG_BUILD_STATIC_DATA_MODE=0; //if this is enabled swfchart will build php source code to create static graph data via post call 
var SWFCHART_ALWAYS_QUERY=0; //do not use g.pl chart caching
var SWFCHART_SUPER_DEBUG=0; //do not use g.pl chart caching

function g(sObjId) {
  return document.getElementById(sObjId);
}

function swfc_parseParams(sParams) {
  var ap=sParams.split(';');
  var retParams=[];
  for (var z=0;z<ap.length;z++) {
    var acp=ap[z].split(':');
    retParams[acp[0]]=acp[1];
  }
  return retParams;
}

function graphLoadingInit(sObjId,w,h,doNotResizeDestDiv) {
  var obj=g(sObjId);
  if (!doNotResizeDestDiv) {
    obj.style.width=w;
    obj.style.height=h;
  }
  obj.innerHTML='<table width=100% height=100%><tr><td width=100% align=center height=100%><img align=middle src="/charts/images/t.gif"></td></tr></table>';
}

function Loaded_Chart(chartId) {
  var isIE=0
  var tt=navigator.appName;
  if (tt.indexOf('Microsoft') != -1)
    isIE=1
  var chartSwfObject;
  if (!isIE)
    chartSwfObject=document.getElementById('ff_'+chartId);
  else 
    chartSwfObject=document.getElementById('ie_'+chartId);
  var tt=navigator.appName;
  var chartXmlData=document.getElementById('chartXmlData_'+chartId).value+'';
  chartSwfObject.SetVariable('update_xml',chartXmlData);
}


function swfc_doGraph(graphId,defConfig,destObject,params,userCallBackFunction,doNotResizeDestDiv,resetStaticData) {
  var destObj;
  try {
    if (!destObject)
      destObj=g('destdiv').value;
    else
      destObj=destObject;
  } catch(er) {
  }

  var NOT_A_GRAPH=0;
  if (!destObj)
    NOT_A_GRAPH=1;

  if (!defConfig)
    defConfig='';

  var gw,gh,ogb,tfv,ttv;

  try {
    if (!params) {
      gw=g('ggw').value;
      gh=g('ggh').value;
      tfv=g('tf').value;
      ttv=g('tt').value;
    } else {
       gw=params['ggw'];
       gh=params['ggh'];
      tfv=params['tf'];
      ttv=params['tt'];
    }
  } catch(er) {
  } 

  var autoTitle='';
  var vowel;
  switch(ttv) {
    case('count'):autoTitle+='Attivit&agrave;';vowel='a';break;
    case('traffic'):autoTitle+='Traffico';vowel='o';break;
  }
  switch(tfv) {
    case('hour'):autoTitle+=' orari'+vowel;break;
    case('day'):autoTitle+=' giornalier'+vowel;break;
    case('week'):autoTitle+=' settimanale';break;
    case('month'):autoTitle+=' mensile';break;
    case('year'):autoTitle+=' annuale';break;
  }

  if (!NOT_A_GRAPH)
    graphLoadingInit(destObj,gw,gh,doNotResizeDestDiv);
  var gconfig=[
    "<chart_pref rotation_x='15' rotation_y='0' />",
    "<chart_transition type='slide_down' delay='0' duration='0.75' order='series' />",
    "<chart_rect positive_color='DADACE' positive_alpha='50' negative_alpha='25'/>",
    "<legend_rect x='5' y='5' width='"+(gw-5)+"' height='10' margin='5' fill_color='FFFFFF' fill_alpha='50' line_thickness='0'/>", 
    "<draw><text v_align='bottom' y='-10' h_align='center' x='20'>"+autoTitle+"</text></draw>",
    "<chart_border color='888888' top_thickness='0' bottom_thickness='0' left_thickness='0' right_thickness='0' />"
  ];
  try {
    var ox=g('igd');
    ox.value=gconfig.join(''); //inline config
    ox.value+=defConfig; //default config
    ox.value+='\n\n\n'+g('ttc').value; //user config
  /*
    //tag subst init
    var currentChartConfig=ox.value;
    var re =new RegExp('W([\/\*\+\-]\d)','g');
    var re1=new RegExp('H([\/\*\+\-]\d+)','g');
    alert(currentChartConfig);
    var matches=re.exec(currentChartConfig);
    alert(matches);
    //currentChartConfig=currentChartConfig.replace(re,alert("$1"));
    //currentChartConfig=currentChartConfig.replace(/H([\+\-])(\d+)/g,parseData('H',gh,matchs));
    //alert(currentChartConfig); 
    //tag subst end
    return;
  */
    ox.value=ox.value.replace(/W\/2/g,gw/2);
    var cnf=ox.value.replace(/[\r\n]/g,'');
    memData[destObj]=ox.value;
    var sparams="params['ggw']="+gw+";\nparams['ggh']="+gh+";\nparams['tf']=\'"+tfv+"\';\nparams['tt']=\'"+ttv+"\';\n";
    g('tasrc1').value="//Include swfchart.js\n\nvar params=[];\n"+sparams+"\nvar gfxConf=\""+cnf+"\";\nswfc_doGraph("+graphId+",gfxConf,'destdiv',params);\n<div id=\"destdiv\"></div>";
  } catch(er) {
  }
  if (!userCallBackFunction)
    userCallBackFunction='';
  var pu='';;
  try {  
    pu=params['user'];
  } catch(er) {};  
  if (!pu) pu='';
  if (!resetStaticData)
    resetStaticData='';
  if (SWFCHART_ALWAYS_QUERY)
    resetStaticData='reset';

  var overR;
  if (params) {
    overR=params['style_override'];
    if (!overR)
      overR='';
  } else {
    overR='';
  }

  if (SWFCHART_CFG_BUILD_STATIC_DATA_MODE) //check if we are building static code
    SWFCHART_ALWAYS_QUERY=1; //since this will be called via cron or similar we want this data always be refreshed

  var GETDATA='overrideChartStyle='+overR+'&resetsd='+resetStaticData+'&userparams='+pu+'&charttype='+ttv+'&period='+tfv+'&params='+pu+';ucf:'+userCallBackFunction+';notAGraph:'+NOT_A_GRAPH+';destobj:'+destObj+'&gwidth='+gw+'&gheight='+gh+'&mode=buildgraph&chartid='+graphId;

  if (SWFCHART_CFG_BUILD_STATIC_DATA_MODE) { //build static code
    var ta=document.getElementById('swfchart_cactus');
    if (!ta) {
      ta=document.createElement('textarea');
      ta.id='swfchart_cactus';
      ta.style.position='absolute';
      ta.style.left=100;
      ta.style.top=100;
      ta.style.width=400;
      ta.style.height=400;
      document.body.appendChild(ta);
    }
    oo=ta;
    oo.value+='\n$data=array("gd"=>\"'+ox.value+'");\n';
    var URL='/cgi-bin/g.pl?sd='+SWFCHART_SUPER_DEBUG+'&'+GETDATA; 
    oo.value+="do_post_request('www.datawasher.it','"+URL+"',http_build_query($data));\n";
  }

  if (!SWFCHART_CFG_BUILD_STATIC_DATA_MODE) {
    return doPost('/cgi-bin/g.pl?sd='+SWFCHART_SUPER_DEBUG+'&'+GETDATA,g('fGraphConfig'),'initGraphsResponse',1); 
  }
}


def_config_pie=[
  "<chart_border top_thickness='0' bottom_thickness='0' left_thickness='0' right_thickness='0'/>",
  "<chart_grid_h alpha='0'/><chart_grid_v alpha='0'/>",
  "<chart_transition type='drop' delay='0' duration='1.5' order='series'/>",
  "<chart_rect width='W/2' positive_alpha='0'/>",
  "<chart_pref rotation_x='30' rotation_y='0'/>"
];

function initGraphsResponse(http) {
  var aRet=http.responseText.split('|');

  var aParams=swfc_parseParams(aRet[0]);
  var destObj=g(aParams['destobj']);
  var notAGraph=parseInt(aParams['notAGraph']);
  var ucf=aParams['ucf']; //user defined call back function

  currentChartId=aParams['chartId'];
  
  aRet[1]=aRet[1].replace(/^chartId:.*/m,'');

  var sqlQuery=aParams['sqlQuery'];
  if (!notAGraph) {
    if (aRet[1])
      destObj.innerHTML=aRet[1];
    else  
      destObj.innerHTML='';
  }  

  if (ucf) {
    eval(ucf+'(http,aParams,aRet[1]);');
  }
  try {
    g('tadebug').value=sqlQuery+'\n\n'+http.responseText;
  } catch(er) {
  }
}
