single series, 2=> multi-series, 5=>Gantt (
# For Future Use : 3=> scatter and bubble, 4=> MSStacked
var $seriesType;
# Charts Atribute array
var $chartParams = array(); #List of Chart Parameters
var $chartParamsCounter; #Number of Chart parameters
var $categoriesParam; # Categories Parameter Setting
var $categoryNames = array(); # Category array for storing Category set
var $categoryNamesCounter; # Category array counter
var $dataset = array(); # dataset array
var $datasetParam = array(); # dataset parameter setting array
var $datasetCounter; # dataset array counter
var $setCounter; # set array counter
# trendLines array
var $trendLines = array(); # trendLines array
var $tLineCounter; # trendLines array counter
#chart messages
var $chartMSG;
var $chartSWF = array(); # Charts SWF array
var $arr_FCColors = array(); # Color Set to be applied to dataplots
var $UserColorON; # User define color define true or false
var $userColorCounter;
// Cache Control
var $noCache;
var $DataBaseType; # DataBase Type
var $encodeChars; # XML for dataXML or dataURL
#############============ For Gantt Chart ============================
# Gantt categories
var $GT_categories = array();
var $GT_categories_Counter;
var $GT_categoriesParam = array();
var $GT_subcategories_Counter;
# Gantt processes
var $GT_processes = array();
var $GT_processes_Counter;
var $GT_processes_Param;
# Gantt Tasks
var $GT_Tasks = array();
var $GT_Tasks_Counter;
var $GT_Tasks_Param;
# Gantt Connectors
var $GT_Connectors = array();
var $GT_Connectors_Counter;
var $GT_Connectors_Param;
# Gantt Milestones
var $GT_Milestones = array();
var $GT_Milestones_Counter;
var $GT_Milestones_Param;
# Gantt datatable
var $GT_datatable = array();
var $GT_datatable_Counter;
var $GT_datatableParam;
var $GT_dataColumnParam = array();
var $GT_subdatatable_Counter;
#------- For Futute Use (start)----------------
# Gantt legend
var $GT_legend = array();
var $GT_legend_Counter;
var $GT_legend_Param;
#------- For Futute Use (end)----------------
var $wMode;
# Advanced Chart settings
var $JSC = array();
#############============ For Future Use (start)============================
# dataset for MSStackedColumn2D
var $MSSDataset = array(); # dataset array for MSStackedColumn2D
var $MSSDatasetParams = array(); # MSSDataset parameter setting
var $MSSDatasetCounter; # MSSDataset array counter
var $MSSSubDatasetCounter; # ms sub dataset array counter
var $MSSSetCounter; # msset array counter
# lineset
var $lineSet = array(); # lineSet array
var $lineSetParam = array(); # lineSet Parameter setting array
var $lineCounter; # line array counter
var $lineSetCounter; # lineset array counter
var $lineIDCounter; # lineID counter;
# vtrendLines array
var $vtrendLines = array(); # vtrendLines array
var $vtLineCounter; # vtrendLines array counter
# style array
var $styles = array(); # styles array
var $styleDefCounter; # define counter
var $styleAppCounter; # apply counter
#############============ For Future Use (end)============================
# FusionCharts Constructor, its take 4 Parameters.
# when we create object of FusionCharts, then Constructor will auto run and initialize
# chats array parameter like chartType, width, height, chartsID
function FusionCharts($chartType="column2d",$width="400",$height="300",$chartID="",$isTransparent=""){
$this->wMode=$isTransparent;
# Setting All Charts Array
$this->setChartArrays();
#initialise colorList
$this->colorInit();
# Setting Chart name
$this->chartType=strtolower($chartType);
# Getting Charts Series Type
$this->getSeriesType();
# Setting Charts Width and Height
$this->width=$width;
$this->height=$height;
# Setting ChartID, Defult is Charts Name
if ($chartID==""){
$chartCounter=@$_SESSION['chartcount'];
if($chartCounter<=0 || $chartCounter==NULL){
$chartCounter=1;
}
$this->chartID=$chartType . $chartCounter;
$_SESSION['chartcount']=++$chartCounter;
}else{
$this->chartID=$chartID;
}
# Setting Defult Parameter Delimiter to ';'
$this->del=";";
# Setting Default SWF Path
$this->SWFPath="";
$this->SWFFile=$this->SWFPath . "FCF_" . $this->chartSWF[$this->chartType][0] . ".swf";
# Initialize categoriesParam
$this->categoriesParam="";
$this->categoryNamesCounter=1;
# Creating Category Array
$this->createCategory($this->categoryNamesCounter);
# Initialize Dataset Variables
$this->datasetCounter=0;
$this->setCounter= 0;
if($this->seriesType>1){
$this->setCounter++;
}
# Initialize MSSDataset Variables
if($this->seriesType==4){
$this->MSSDatasetCounter=0;
$this->MSSSubDatasetCounter=0;
$this->MSSSetCounter=0;
$this->lineCounter=0;
$this->lineSetCounter=0;
$this->lineIDCounter=0;
}
# vTrendLines Array inisialize
if($this->seriesType==3){
$this->vtLineCounter=1;
$this->createvTrendLines($this->vtLineCounter);
}
# TrendLines Array inisialize
$this->tLineCounter=1;
$this->createTrendLines($this->tLineCounter);
# Styles Array inisialize
$this->styleDefCounter=1;
$this->styleAppCounter=1;
$this->createStyles("definition");
$this->createSubStyles("definition","style");
$this->createSubStylesParam("definition","style",$this->styleDefCounter);
$this->GT_categories_Counter=0;
$this->GT_subcategories_Counter=0;
$this->GT_processes_Counter=0;
$this->GT_processes_Param="";
$this->GT_Tasks_Counter=0;
$this->GT_Tasks_Param="";
# Gantt Connectors
$this->GT_Connectors_Counter=0;
$this->GT_Connectors_Param="";
# Gantt datatable
$this->GT_datatable_Counter=0;
$this->GT_datatableParam="";
$this->GT_subdatatable_Counter=0;
# Gantt legend
$this->GT_legend_Counter=0;
$this->GT_legend_Param="";
$this->chartMSG="";
# XML store Variables
$this->strXML="";
$this->UserColorON = false;
$this->userColorCounter=0;
$this->noCache=false;
$this->DataBaseType="mysql";
// JS Constructor
$this->JSC["debugmode"]=false; # debugmode default is false
$this->JSC["registerwithjs"]=false; # registerwithJS default is false
$this->JSC["bgcolor"]=""; # bgcolor default not set
$this->JSC["scalemode"]="noScale"; # scalemode default noScale
$this->JSC["lang"]="EN"; # Language default EN
// dataXML type encode
$this->encodeChars=true;
}
##------------ PUBLIC FUNCTIONS ----------------------------------------------------------------
# Special Character
function encodeXMLChars($option=true){
$this->$encodeChars=$option;
}
# Setting Parameter Delimiter, Defult Parameter Separator is ";"
function setParamDelimiter($strDel){
$this->del=$strDel;
}
# Database type set like ORACLE and MYSQL
function setDataBaseType($dbType){
$this->DataBaseType=strtolower($dbType);
}
# Setting path of SWF file. file name like FCF_Column3D.swf. where FCF_ is common for all SWF file
function setSWFPath($SWFPath){
$this->SWFPath=$SWFPath;
$this->SWFFile=$this->SWFPath . "FCF_" . $this->chartSWF[$this->chartType][0] . ".swf";
}
# We can add or change single Chart parameter by setChartParam function
# its take Parameter Name and its Value
function setChartParam($paramName, $paramValue){
$this->chartParams[$paramName]=$this->encodeSpecialChars($paramValue);
}
# We can add or change Chart parameter sets by setChartParams function
# its take parameterset [ caption=xyz caption;subCaption=abcd abcd abcd;xAxisName=x axis;yAxisName=y's axis;bgColor=f2fec0;animation=1 ]
# Defult Parameter Separator is ";"
function setChartParams($strParam){
$listArray=explode($this->del,$strParam);
foreach ($listArray as $valueArray) {
$paramValue=explode("=",$valueArray,2);
if($this->validateParam($paramValue)==true){
$this->chartParams[$paramValue[0]]=$this->encodeSpecialChars($paramValue[1]);
}
}
}
# Setting Categories Parameter into categoriesParam variables
function setCategoriesParams($strParam){
$this->categoriesParam .= $this->ConvertParamToXMLAttribute($strParam);
}
# Function addCategoryFromDatabase adding Category from dataset
function addCategoryFromDatabase($query_result, $categoryColumn){
if($this->DataBaseType=="mysql"){
# fetching recordset till eof
while($row = mysql_fetch_array($query_result)){
# add category
$this->addCategory($row[$categoryColumn],"","" );
}
}elseif($this->DataBaseType=="oracle"){
# fetching recordset till eof
while(OCIFetchInto($query_result, $row, OCI_ASSOC)){
# add category
$this->addCategory($row[$categoryColumn],"","" );
}
}
}
# Function addCategoryFromArray adding Category from Array
function addCategoryFromArray($categoryArray){
# convert array to category set
foreach ($categoryArray as $value) {
# adding category
$this->addCategory($value);
}
}
# Function for create set and catagory, dataset , set from array
function addChartDataFromArray($dataArray, $dataCatArray=""){
if(is_array($dataArray)){
if ($this->seriesType==1){
# Single series Array
# aa[..][..]="name" aa[..][..]="value"
foreach($dataArray as $arrayvalue){
if(is_array($arrayvalue)){
$this->addChartData($arrayvalue[1],"name=" . $arrayvalue[0] );
}
}
}else{
# Multi series Array
if(is_array($dataCatArray)){
foreach($dataCatArray as $value){
$this->addCategory($value);
}
}
foreach($dataArray as $arrayvalue){
if(is_array($arrayvalue)){
$i=0;
$aaa[0]="";$aaa[1]="";
foreach($arrayvalue as $value){
if($i>=2){
$this->addChartData($value);
}else{
$aaa[$i]=$value;
}
if($i==1){
$this->addDataset($aaa[0],$aaa[1]);
}
$i++;
}
}
}
}
}
}
# Function addCategory adding Category and vLine element
function addCategory($label="",$catParam="",$vlineParam = "" ){
$strCatXML="";
$strParam="";
$label=$this->encodeSpecialChars($label);
# cheking vlineParam equal blank
if($vlineParam==""){
# cheking catParam not blank
if($catParam!=""){
$strParam = $this->ConvertParamToXMLAttribute($catParam);
}
# adding label and parameter set to category
$strCatXML ="";
}else{
$strParam = $this->ConvertParamToXMLAttribute($vlineParam);
# adding parameter set to vLine
$strCatXML="";
}
# storing into categoryNames array
$this->categoryNames[$this->categoryNamesCounter]=$strCatXML;
# Increase Counter
$this->categoryNamesCounter++;
}
# adding dataset array element
function addDataset($seriesName, $strParam=""){
$this->datasetCounter++;
$this->createDataset($this->datasetCounter);
$this->setCounter++;
$this->createDataValues($this->datasetCounter,"_" . $this->setCounter);
$seriesName=$this->encodeSpecialChars($seriesName);
# creating seriesName and dataset parameter set
$tempParam="";
$tempParam ="seriesName='" . $seriesName . "' ";
$tempParam .= $this->ConvertParamToXMLAttribute($strParam);
$colorParam="";
$pos = strpos(strtolower($tempParam), " color");
if ($pos === false) {
$colorParam=" color='" . $this->getColor($this->datasetCounter-1) . "'";
}
# setting datasetParam array
$this->datasetParam[$this->datasetCounter]=$tempParam . $colorParam;
}
# Function addChartData adding set data element
function addChartData($value="",$setParam="",$vlineParam = "" ){
$strSetXML="";
# Choosing dataset depend on seriesType and getting XML set
if($this->seriesType>=1 and $this->seriesType<=2){
$strSetXML=$this->setSSMSDataArray($value,$setParam,$vlineParam);
}elseif ($this->seriesType==3){
$strSetXML=$this->setScatterBubbleDataArray($value,$setParam,$vlineParam);
}elseif (($this->seriesType==4)){
$strSetXML=$this->setSSMSDataArray($value,$setParam,$vlineParam);
}
# Adding xml set to dataset array and Increase set counter
if ($this->seriesType==1){
$this->dataset[$this->setCounter]=$strSetXML;
$this->setCounter++;
}elseif($this->seriesType>1 and $this->seriesType<4){
$this->dataset[$this->datasetCounter]["_" . $this->setCounter]=$strSetXML;
$this->setCounter++;
}elseif($this->seriesType==4){
$this->MSSDataset[$this->MSSDatasetCounter][$this->MSSSubDatasetCounter][$this->MSSSetCounter]=$strSetXML;
$this->MSSSetCounter++;
}
}
# The addDatasetsFromDatabase() function adds dataset and set elements from -
# database, by Default, from MySql recordset. You can use setDatabaseType() function -
# to set the type of database to work on.
function addDatasetsFromDatabase($query_result, $ctrlField, $valueField,$datsetParamArray="",$link=""){
# Initialize variables
$paramset="";
$tempContrl="";
if(is_array($datsetParamArray)==false){
$datsetParamArray=array();
}
# Calculate total no of array elements in datsetParamArray
$arrLimit=count($datsetParamArray);
$i=1;
$tempParam="";
if($this->DataBaseType=="mysql"){
##### For My SQL Connection
$FieldArray=explode($this->del,$valueField);
if(count($FieldArray)>1){
### Muli Series
# fetching recordset
while($row = mysql_fetch_array($query_result)){
# Add Category
$this->addCategory($row[$ctrlField]);
}
$k=0;
# Add daatset for multiple fields
foreach ($FieldArray as $FieldName) {
if($k<$arrLimit){
$tempParam = $datsetParamArray[$k];
}else{
$tempParam="";
}
# Add Dataset with adddataset() function
$this->addDataset($FieldName,$tempParam);
# rewind query result
mysql_data_seek($query_result,0);
while($row = mysql_fetch_array($query_result)){
# Generating URL link
if($link==""){
$paramset="";
}else{
# Generating URL link from getLinkFromPattern
$paramset="link=" . urlencode($this->getLinkFromPattern($row,$link));
}
# add value to dataset
$this->addChartData($row[$FieldName], $paramset, "");
}
$k++;
}
}else{
### Single Series
# fetching recordset
while($row = mysql_fetch_array($query_result)){
# Creating Control break depending on ctrlField
# if ctrlField value changes then dataset will be Generated
if ($tempContrl!=$row[$ctrlField]){
if($i<=$arrLimit){
$tempParam = $datsetParamArray[$i-1];
}else{
$tempParam="";
}
# Add Dataset with adddataset() function
$this->addDataset($row[$ctrlField],$tempParam);
$tempContrl=$row[$ctrlField];
$i++;
}
# Generating URL link
if($link==""){
$paramset="";
}else{
# Generating URL link from getLinkFromPattern
$paramset="link=" . urlencode($this->getLinkFromPattern($row,$link));
}
# add value to dataset
$this->addChartData($row[$valueField], $paramset, "");
}
}
}elseif($this->DataBaseType=="oracle"){
# For Oracle Connection
# fetching recordset
while(OCIFetchInto($query_result, $row, OCI_ASSOC)){
# Create Control break depending on ctrlField
# if ctrlField value changes then dataset will be Generated
if ($tempContrl!=$row[$ctrlField]){
if($i<=$arrLimit){
$tempParam = $datsetParamArray[$i-1];
}else{
$tempParam="";
}
# add Dataset
$this->addDataset($row[$ctrlField],$tempParam);
$tempContrl=$row[$ctrlField];
$i++;
}
# Generating URL link
if($link==""){
$paramset="";
}else{
# Generating URL link from getLinkFromPattern
$paramset="link=" . urlencode($this->getLinkFromPattern($row,$link));
}
# add value to dataset
$this->addChartData($row[$valueField], $paramset, "");
}
}
}
# addDataFromDatabase funcion take 5 parameter like query_result, label field, value field
# and initialize dataset variables and link
function addDataFromDatabase($query_result, $db_field_ChartData,$db_field_CategoryNames="", $strParam="",$LinkPlaceHolder=""){
$paramset="";
if($this->DataBaseType=="mysql"){
# fetching recordset till eof
while($row = mysql_fetch_array($query_result)){
if($LinkPlaceHolder==""){
$paramset="";
}else{
# Getting link
$paramset="link=" . urlencode($this->getLinkFromPattern($row,$LinkPlaceHolder));
}
if ($strParam=""){
$strParam=$paramset;
}else{
$strParam .= ";" . $paramset;
}
# covert to set element and save to $partXML
if($db_field_CategoryNames==""){
$data=@$row[$db_field_ChartData];
if($strParam!="")
$this->addChartData($this->encodeSpecialChars($data),$strParam);
else
$this->addChartData($this->encodeSpecialChars($data));
}
else{
$data=@$row[$db_field_ChartData];
$label=@$row[$db_field_CategoryNames];
$this->addChartData($this->encodeSpecialChars($data),"name=" . $this->encodeSpecialChars($label) . ";" .$strParam,"" );
}
}
}elseif($this->DataBaseType=="oracle"){
# fetching recordset till eof
while(OCIFetchInto($query_result, $row, OCI_ASSOC)){
if($LinkPlaceHolder==""){
$paramset="";
}else{
# Getting link
$paramset="link=" . urlencode($this->getLinkFromPattern($row,$LinkPlaceHolder));
}
if ($strParam=""){
$strParam=$paramset;
}else{
$strParam .= ";" . $paramset;
}
# covert to set element and save to $partXML
if($db_field_CategoryNames==""){
$data=@$row[$db_field_ChartData];
if($strParam!="")
$this->addChartData($this->encodeSpecialChars($data),$strParam);
else
$this->addChartData($this->encodeSpecialChars($data));
}
else{
$data=@$row[$db_field_ChartData];
$label=@$row[$db_field_CategoryNames];
$this->addChartData($this->encodeSpecialChars($data),"name=" . $this->encodeSpecialChars($label) . ";" .$strParam,"" );
}
}
}
}
# setTLine create TrendLine parameter
function addTrendLine($strParam){
$listArray=explode($this->del,$strParam);
foreach ($listArray as $valueArray) {
$paramValue=explode("=",$valueArray,2);
if($this->validateParam($paramValue)==true){
$this->trendLines[$this->tLineCounter][$paramValue[0]]=$this->encodeSpecialChars($paramValue[1]);
}
}
$this->tLineCounter++;
}
#this function sets chart messages
function setChartMessage($strParam){
$this->chartMSG="?";
$listArray=explode($this->del,$strParam);
foreach ($listArray as $valueArray) {
$paramValue=explode("=",$valueArray,2);
if($this->validateParam($paramValue)==true){
$this->chartMSG.=$paramValue[0] . "=" . $this->encodeSpecialChars($paramValue[1]) . "&";
}
}
$this->chartMSG=substr($this->chartMSG,0,strlen($this->chartMSG)-1);
}
#### - This function is mostly for Future USE -----------------------------
# set JS constructor of FusionCharts.js
function setAddChartParams($debugMode, $registerWithJS=0, $c="", $scaleMode="", $lang=""){
$this->JSC["debugmode"]=$debugMode;
$this->JSC["registerwithjs"]=$registerWithJS;
$this->JSC["bgcolor"]=$c;
$this->JSC["scalemode"]=$scaleMode;
$this->JSC["lang"]=$lang;
}
# The function SetInitParam() adds extra chart settings
function setInitParam($tname,$tvalue){
$trimName= strtolower(str_replace(" ","",$tname));
$this->JSC[$trimName]=$tvalue;
}
# getXML render all class arrays to XML output
function getXML(){
$this->strXML="";
$strChartParam="";
$strChartParam=$this->getChartParamsXML();
if($this->seriesType==1){
if(gettype(strpos($this->chartType,"line"))!="boolean"){
if(strpos($strChartParam,"lineColor")===false){
$colorSet=$this->getColor(0);
$this->setChartParams("lineColor=" . $colorSet );
}
}
if(gettype(strpos($this->chartType,"area"))!="boolean"){
if(strpos($strChartParam,"areaBgColor")===false){
$colorSet=$this->getColor(0);
$this->setChartParams("areaBgColor=" . $colorSet );
}
}
}
# calling getChartParamsXML function for chart parameter
$this->strXML = "getChartParamsXML() . " >";
if ($this->seriesType >= 0 and $this->seriesType <= 4) {
# calling getCategoriesXML function for Category element
$this->strXML .= $this->getCategoriesXML();
# calling getDatasetXML function for set element
$this->strXML .= $this->getDatasetXML();
# calling getvTrendLinesXML function for vTrendLines element
if($this->seriesType==3){
$this->strXML .= $this->getvTrendLinesXML();
}
# Calling getLinesetXML
if($this->seriesType==4){
$this->strXML .= $this->getLinesetXML();
}
# calling getTrendLinesXML function for TrendLines element
$this->strXML .= $this->getTrendLinesXML();
# calling getStylesXML function for Styles element
$this->strXML .= $this->getStylesXML();
}else if($this->seriesType == 5) {
$this->strXML .= $this->getGanttCategoriesXML();
$this->strXML .= $this->getProcessesXML();
$this->strXML .= $this->getGanttDatatableXML();
$this->strXML .= $this->getTasksXML();
$this->strXML .= $this->getConnectorsXML();
$this->strXML .= $this->getMilestonesXML();
# calling getTrendLinesXML function for TrendLines element
$this->strXML .= $this->getTrendLinesXML();
# calling getStylesXML function for Styles element
$this->strXML .= $this->getStylesXML();
$this->strXML .= $this->getLegendXML();
}
# Closing Chart element
$this->strXML .= "";
# Return XML output
return $this->strXML;
}
# set wMode
function setwMode($isTransparent=""){
$this->wMode=$isTransparent;
}
# Function getXML render all class arrays to XML output
function renderChart($isHTML=false, $display=true){
$this->strXML=$this->getXML();
$this->SWFFile=$this->SWFPath . "FCF_" . $this->chartSWF[$this->chartType][0] . ".swf";
if($this->noCache==true){
if($this->chartMSG==""){
$this->chartMSG = "?nocache=" . microtime();
}else{
$this->chartMSG .= "&nocache=" . microtime();
}
}
# print the charts
if($isHTML==false){
if($display){
print $this->renderChartJS($this->SWFFile . $this->chartMSG,"",$this->strXML,$this->chartID, $this->width, $this->height,$this->JSC["debugmode"], $this->JSC["registerwithjs"],$this->wMode);
}else{
return $this->renderChartJS($this->SWFFile . $this->chartMSG,"",$this->strXML,$this->chartID, $this->width, $this->height,$this->JSC["debugmode"], $this->JSC["registerwithjs"],$this->wMode);
}
}else{
if($display){
print $this->renderChartHTML($this->SWFFile . $this->chartMSG,"",$this->strXML,$this->chartID, $this->width, $this->height,$this->JSC["debugmode"], $this->JSC["registerwithjs"],$this->wMode);
}else{
return $this->renderChartHTML($this->SWFFile . $this->chartMSG,"",$this->strXML,$this->chartID, $this->width, $this->height,$this->JSC["debugmode"], $this->JSC["registerwithjs"],$this->wMode);
}
}
}
# Sets whether chart SWF files are not to be cached
function setOffChartCaching($swfNoCache=false){
$this->noCache=$swfNoCache;
}
# Renders Chart form External XML data source
function renderChartFromExtXML($dataXML){
print $this->renderChartJS($this->SWFFile,"",$dataXML,$this->chartID, $this->width, $this->height, $this->JSC["debugmode"], $this->JSC["registerwithjs"], $this->wMode);
}
// RenderChartJS renders the JavaScript + HTML code required to embed a chart.
// This function assumes that you've already included the FusionCharts JavaScript class
// in your page.
// $chartSWF - SWF File Name (and Path) of the chart which you intend to plot
// $strURL - If you intend to use dataURL method for this chart, pass the URL as this parameter. Else, set it to "" (in case of dataXML method)
// $strXML - If you intend to use dataXML method for this chart, pass the XML data as this parameter. Else, set it to "" (in case of dataURL method)
// $chartId - Id for the chart, using which it will be recognized in the HTML page. Each chart on the page needs to have a unique Id.
// $chartWidth - Intended width for the chart (in pixels)
// $chartHeight - Intended height for the chart (in pixels)
// $debugMode - Whether to start the chart in debug mode
// $registerWithJS - Whether to ask chart to register itself with JavaScript
// $setTransparent - Transparent mode
function renderChartJS($chartSWF, $strURL, $strXML, $chartId, $chartWidth, $chartHeight, $debugMode=false, $registerWithJS=false, $setTransparent="") {
//First we create a new DIV for each chart. We specify the name of DIV as "chartId"Div.
//DIV names are case-sensitive.
// The Steps in the script block below are:
//
// 1)In the DIV the text "Chart" is shown to users before the chart has started loading
// (if there is a lag in relaying SWF from server). This text is also shown to users
// who do not have Flash Player installed. You can configure it as per your needs.
//
// 2) The chart is rendered using FusionCharts Class. Each chart's instance (JavaScript) Id
// is named as chart_"chartId".
//
// 3) Check whether to provide data using dataXML method or dataURL method
// save the data for usage below
$strHTML="";
if ($strXML=="")
$tempData = "\t//Set the dataURL of the chart\n\tchart_$chartId.setDataURL(\"$strURL\");";
else
$tempData = "\t//Provide entire XML data using dataXML method\n\tchart_$chartId.setDataXML(\"$strXML\");";
// Set up necessary variables for the RENDERCHART
$chartIdDiv = $chartId . "Div";
$ndebugMode = $this->boolToNum($debugMode);
$nregisterWithJS = $this->boolToNum($registerWithJS);
$nsetTransparent=($setTransparent?"true":"false");
// Create a string for output by the caller
$strHTML .= "\n \n\n";
$strHTML .= "
\n";
$strHTML .= "\tChart.\n";
$strHTML .= "
\n";
$strHTML .= "\n\n";
$strHTML .= "\n";
return $strHTML;
}
//RenderChartHTML function renders the HTML code for the JavaScript. This
//method does NOT embed the chart using JavaScript class. Instead, it uses
//direct HTML embedding. So, if you see the charts on IE 6 (or above), you'll
//see the "Click to activate..." message on the chart.
// $chartSWF - SWF File Name (and Path) of the chart which you intend to plot
// $strURL - If you intend to use dataURL method for this chart, pass the URL as this parameter. Else, set it to "" (in case of dataXML method)
// $strXML - If you intend to use dataXML method for this chart, pass the XML data as this parameter. Else, set it to "" (in case of dataURL method)
// $chartId - Id for the chart, using which it will be recognized in the HTML page. Each chart on the page needs to have a unique Id.
// $chartWidth - Intended width for the chart (in pixels)
// $chartHeight - Intended height for the chart (in pixels)
// $debugMode - Whether to start the chart in debug mode
// $registerWithJS - Whether to ask chart to register itself with JavaScript
// $setTransparent - Transparent mode
function renderChartHTML($chartSWF, $strURL, $strXML, $chartId, $chartWidth, $chartHeight, $debugMode=false,$registerWithJS=false, $setTransparent="") {
// Generate the FlashVars string based on whether dataURL has been provided or dataXML.
$strHTML="";
$strFlashVars = "&chartWidth=" . $chartWidth . "&chartHeight=" . $chartHeight . "&debugMode=" . $this->boolToNum($debugMode);
$strFlashVars .= "&scaleMode=" . $this->JSC["scalemode"] . "&lang=" . $this->JSC["lang"];
if ($strXML=="")
// DataURL Mode
$strFlashVars .= "&dataURL=" . $strURL;
else
//DataXML Mode
$strFlashVars .= "&dataXML=" . $strXML;
$nregisterWithJS = $this->boolToNum($registerWithJS);
if($setTransparent!=""){
$nsetTransparent=($setTransparent==false?"opaque":"transparent");
}else{
$nsetTransparent="window";
}
$strHTML .= "\n\n\n";
$HTTP="http";
if(strtolower($_SERVER['HTTPS'])=="on")
{
$HTTP="https";
}
$Strval = $_SERVER['HTTP_USER_AGENT'];
$pos=strpos($Strval,"MSIE");
if($pos===false){
$strHTML .= "