/** * FusionCharts: Flash Player detection and Chart embed  *  * Morphed from SWFObject (http://blog.deconcept.com/swfobject/) under MIT License: * http://www.opensource.org/licenses/mit-license.php * */if(typeof infosoftglobal == "undefined") var infosoftglobal = new Object();if(typeof infosoftglobal.FusionChartsUtil == "undefined") infosoftglobal.FusionChartsUtil = new Object();infosoftglobal.FusionCharts = function(swf, id, w, h, debugMode, registerWithJS, c, scaleMode, lang){if (!document.getElementById) { return; }//Flag to see whether data has been set initiallythis.initialDataSet = false;//Create container objectsthis.params = new Object();this.variables = new Object();this.attributes = new Array();//Set attributes for the SWFif(swf) { this.setAttribute('swf', swf); }if(id) { this.setAttribute('id', id); }if(w) { this.setAttribute('width', w); }if(h) { this.setAttribute('height', h); }//Set background colorif(c) { this.addParam('bgcolor', c); }//Set Quality	this.addParam('quality', 'high');//Add scripting access parameterthis.addParam('allowScriptAccess', 'always');//Pass width and height to be appended as chartWidth and chartHeightthis.addVariable('chartWidth', w);this.addVariable('chartHeight', h);//Whether in debug modedebugMode = debugMode ? debugMode : 0;this.addVariable('debugMode', debugMode);//Pass DOM ID to Chartthis.addVariable('DOMId', id);//Whether to registed with JavaScriptregisterWithJS = registerWithJS ? registerWithJS : 0;this.addVariable('registerWithJS', registerWithJS);//Scale Mode of chartscaleMode = scaleMode ? scaleMode : 'noScale';this.addVariable('scaleMode', scaleMode);//Application Message Languagelang = lang ? lang : 'EN';this.addVariable('lang', lang);}infosoftglobal.FusionCharts.prototype = {setAttribute: function(name, value){this.attributes[name] = value;},getAttribute: function(name){return this.attributes[name];},addParam: function(name, value){this.params[name] = value;},getParams: function(){return this.params;},addVariable: function(name, value){this.variables[name] = value;},getVariable: function(name){return this.variables[name];},getVariables: function(){return this.variables;},getVariablePairs: function(){var variablePairs = new Array();var key;var variables = this.getVariables();for(key in variables){variablePairs.push(key +"="+ variables[key]);}return variablePairs;},getSWFHTML: function() {var swfNode = "";if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"  ';swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';var params = this.getParams(); for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }var pairs = this.getVariablePairs().join("&"); if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }swfNode += '/>';} else { // PC IE			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';var params = this.getParams();for(var key in params) { swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';}var pairs = this.getVariablePairs().join("&");			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}swfNode += "</object>";}return swfNode;},setDataURL: function(strDataURL){//This method sets the data URL for the chart.//If being set initiallyif (this.initialDataSet==false){this.addVariable('dataURL',strDataURL);//Update flagthis.initialDataSet = true;}else{//Else, we update the chart data using External Interface//Get reference to chart objectvar chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id'));chartObj.setDataURL(strDataURL);}},setDataXML: function(strDataXML){//If being set initiallyif (this.initialDataSet==false){//This method sets the data XML for the chart INITIALLY.this.addVariable('dataXML',strDataXML);//Update flagthis.initialDataSet = true;}else{//Else, we update the chart data using External Interface//Get reference to chart objectvar chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id'));chartObj.setDataXML(strDataXML);}},render: function(elementId){var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;n.innerHTML = this.getSWFHTML();return true;		}}// ------------ Fix for Out of Memory Bug in IE in FP9 ---------------///* Fix for video streaming bug */infosoftglobal.FusionChartsUtil.cleanupSWFs = function() {if (window.opera || !document.all) return;var objects = document.getElementsByTagName("OBJECT");for (var i=0; i < objects.length; i++) {objects[i].style.display = 'none';for (var x in objects[i]) {if (typeof objects[i][x] == 'function') {objects[i][x] = function(){};}}}}// Fixes bug in fp9infosoftglobal.FusionChartsUtil.prepUnload = function() {__flash_unloadHandler = function(){};__flash_savedUnloadHandler = function(){};if (typeof window.onunload == 'function') {var oldUnload = window.onunload;window.onunload = function() {infosoftglobal.FusionChartsUtil.cleanupSWFs();oldUnload();}} else {window.onunload = infosoftglobal.FusionChartsUtil.cleanupSWFs;}}if (typeof window.onbeforeunload == 'function') {var oldBeforeUnload = window.onbeforeunload;window.onbeforeunload = function() {infosoftglobal.FusionChartsUtil.prepUnload();oldBeforeUnload();}} else {window.onbeforeunload = infosoftglobal.FusionChartsUtil.prepUnload;}/* Add Array.push if needed (ie5) */if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}/* Function to return Flash Object from ID */infosoftglobal.FusionChartsUtil.getChartObject = function(id){  if (window.document[id]) {      return window.document[id];  }  if (navigator.appName.indexOf("Microsoft Internet")==-1) {    if (document.embeds && document.embeds[id])      return document.embeds[id];   } else {    return document.getElementById(id);  }}/* Aliases for easy usage */var getChartFromId = infosoftglobal.FusionChartsUtil.getChartObject;var FusionCharts = infosoftglobal.FusionCharts;
