]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/blobdiff - wradmin/static/yui/charts/charts.js
Remove yui.
[philipp/winterrodeln/wradmin.git] / wradmin / static / yui / charts / charts.js
diff --git a/wradmin/static/yui/charts/charts.js b/wradmin/static/yui/charts/charts.js
deleted file mode 100644 (file)
index 32a8d19..0000000
+++ /dev/null
@@ -1,2322 +0,0 @@
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-/*extern ActiveXObject, __flash_unloadHandler, __flash_savedUnloadHandler */
-/*!
- * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
- *
- * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- * @namespace YAHOO
- */
-
-YAHOO.namespace("deconcept"); 
-       
-YAHOO.deconcept = YAHOO.deconcept || {};
-
-if(typeof YAHOO.deconcept.util == "undefined" || !YAHOO.deconcept.util)
-{
-       YAHOO.deconcept.util = {};
-}
-
-if(typeof YAHOO.deconcept.SWFObjectUtil == "undefined" || !YAHOO.deconcept.SWFObjectUtil)
-{
-       YAHOO.deconcept.SWFObjectUtil = {};
-}
-
-YAHOO.deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey)
-{
-       if(!document.getElementById) { return; }
-       this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
-       this.skipDetect = YAHOO.deconcept.util.getRequestParameter(this.DETECT_KEY);
-       this.params = {};
-       this.variables = {};
-       this.attributes = [];
-       if(swf) { this.setAttribute('swf', swf); }
-       if(id) { this.setAttribute('id', id); }
-       if(w) { this.setAttribute('width', w); }
-       if(h) { this.setAttribute('height', h); }
-       if(ver) { this.setAttribute('version', new YAHOO.deconcept.PlayerVersion(ver.toString().split("."))); }
-       this.installedVer = YAHOO.deconcept.SWFObjectUtil.getPlayerVersion();
-       if (!window.opera && document.all && this.installedVer.major > 7)
-       {
-               // only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE
-               YAHOO.deconcept.SWFObject.doPrepUnload = true;
-       }
-       if(c)
-       {
-               this.addParam('bgcolor', c);
-       }
-       var q = quality ? quality : 'high';
-       this.addParam('quality', q);
-       this.setAttribute('useExpressInstall', false);
-       this.setAttribute('doExpressInstall', false);
-       var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
-       this.setAttribute('xiRedirectUrl', xir);
-       this.setAttribute('redirectUrl', '');
-       if(redirectUrl)
-       {
-               this.setAttribute('redirectUrl', redirectUrl);
-       }
-};
-
-YAHOO.deconcept.SWFObject.prototype =
-{
-       useExpressInstall: function(path)
-       {
-               this.xiSWFPath = !path ? "expressinstall.swf" : path;
-               this.setAttribute('useExpressInstall', true);
-       },
-       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 = [];
-               var key;
-               var variables = this.getVariables();
-               for(key in variables)
-               {
-                       if(variables.hasOwnProperty(key))
-                       {
-                               variablePairs[variablePairs.length] = key +"="+ variables[key];
-                       }
-               }
-               return variablePairs;
-       },
-       getSWFHTML: function() {
-               var swfNode = "";
-               var params = {};
-               var key = "";
-               var pairs = "";
-               if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
-                       if (this.getAttribute("doExpressInstall")) {
-                               this.addVariable("MMplayerType", "PlugIn");
-                               this.setAttribute('swf', this.xiSWFPath);
-                       }
-                       swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'"';
-                       swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
-                       params = this.getParams();
-                       for(key in params)
-                       {
-                               if(params.hasOwnProperty(key))
-                               {
-                                       swfNode += [key] +'="'+ params[key] +'" ';
-                               }
-                       }
-                       pairs = this.getVariablePairs().join("&");
-                       if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
-                       swfNode += '/>';
-               } else { // PC IE
-                       if (this.getAttribute("doExpressInstall")) {
-                               this.addVariable("MMplayerType", "ActiveX");
-                               this.setAttribute('swf', this.xiSWFPath);
-                       }
-                       swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" style="'+ this.getAttribute('style') +'">';
-                       swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
-                       params = this.getParams();
-                       for(key in params)
-                       {
-                               if(params.hasOwnProperty(key))
-                               {
-                                       swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
-                               }
-                       }
-                       pairs = this.getVariablePairs().join("&");
-                       if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
-                       swfNode += "</object>";
-               }
-               return swfNode;
-       },
-       write: function(elementId)
-       {
-               if(this.getAttribute('useExpressInstall')) {
-                       // check to see if we need to do an express install
-                       var expressInstallReqVer = new YAHOO.deconcept.PlayerVersion([6,0,65]);
-                       if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
-                               this.setAttribute('doExpressInstall', true);
-                               this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
-                               document.title = document.title.slice(0, 47) + " - Flash Player Installation";
-                               this.addVariable("MMdoctitle", document.title);
-                       }
-               }
-               if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version')))
-               {
-                       var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
-                       n.innerHTML = this.getSWFHTML();
-                       return true;
-               }
-               else
-               {
-                       if(this.getAttribute('redirectUrl') !== "")
-                       {
-                               document.location.replace(this.getAttribute('redirectUrl'));
-                       }
-               }
-               return false;
-       }
-};
-
-/* ---- detection functions ---- */
-YAHOO.deconcept.SWFObjectUtil.getPlayerVersion = function()
-{
-       var axo = null;
-       var PlayerVersion = new YAHOO.deconcept.PlayerVersion([0,0,0]);
-       if(navigator.plugins && navigator.mimeTypes.length)
-       {
-               var x = navigator.plugins["Shockwave Flash"];
-               if(x && x.description)
-               {
-                       PlayerVersion = new YAHOO.deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
-               }
-       }
-       else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0)
-       { // if Windows CE
-               var counter = 3;
-               while(axo)
-               {
-                       try
-                       {
-                               counter++;
-                               axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter);
-//                             document.write("player v: "+ counter);
-                               PlayerVersion = new YAHOO.deconcept.PlayerVersion([counter,0,0]);
-                       }
-                       catch(e)
-                       {
-                               axo = null;
-                       }
-               }
-       }
-       else
-       { // Win IE (non mobile)
-               // do minor version lookup in IE, but avoid fp6 crashing issues
-               // see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
-               try
-               {
-                       axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
-               }
-               catch(e)
-               {
-                       try
-                       {
-                               axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
-                               PlayerVersion = new YAHOO.deconcept.PlayerVersion([6,0,21]);
-                               axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
-                       }
-                       catch(e)
-                       {
-                               if(PlayerVersion.major == 6)
-                               {
-                                       return PlayerVersion;
-                               }
-                       }
-                       try
-                       {
-                               axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
-                       }
-                       catch(e) {}
-               }
-               
-               if(axo !== null)
-               {
-                       PlayerVersion = new YAHOO.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
-               }
-       }
-       return PlayerVersion;
-};
-
-YAHOO.deconcept.PlayerVersion = function(arrVersion)
-{
-       this.major = arrVersion[0] !== null ? parseInt(arrVersion[0], 0) : 0;
-       this.minor = arrVersion[1] !== null ? parseInt(arrVersion[1], 0) : 0;
-       this.rev = arrVersion[2] !== null ? parseInt(arrVersion[2], 0) : 0;
-};
-
-YAHOO.deconcept.PlayerVersion.prototype.versionIsValid = function(fv)
-{
-       if(this.major < fv.major)
-       {
-               return false;
-       }
-       if(this.major > fv.major)
-       {
-               return true;
-       }
-       if(this.minor < fv.minor)
-       {
-               return false;
-       }
-       if(this.minor > fv.minor)
-       {
-               return true;
-       }
-       if(this.rev < fv.rev)
-       {
-               return false;
-       }
-       return true;
-};
-
-/* ---- get value of query string param ---- */
-YAHOO.deconcept.util =
-{
-       getRequestParameter: function(param)
-       {
-               var q = document.location.search || document.location.hash;
-               if(param === null) { return q; }
-               if(q)
-               {
-                       var pairs = q.substring(1).split("&");
-                       for(var i=0; i < pairs.length; i++)
-                       {
-                               if (pairs[i].substring(0, pairs[i].indexOf("=")) == param)
-                               {
-                                       return pairs[i].substring((pairs[i].indexOf("=") + 1));
-                               }
-                       }
-               }
-               return "";
-       }
-};
-
-/* fix for video streaming bug */
-YAHOO.deconcept.SWFObjectUtil.cleanupSWFs = function()
-{
-       var objects = document.getElementsByTagName("OBJECT");
-       for(var i = objects.length - 1; i >= 0; 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 some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/
-if(YAHOO.deconcept.SWFObject.doPrepUnload)
-{
-       if(!YAHOO.deconcept.unloadSet)
-       {
-               YAHOO.deconcept.SWFObjectUtil.prepUnload = function()
-               {
-                       __flash_unloadHandler = function(){};
-                       __flash_savedUnloadHandler = function(){};
-                       window.attachEvent("onunload", YAHOO.deconcept.SWFObjectUtil.cleanupSWFs);
-               };
-               window.attachEvent("onbeforeunload", YAHOO.deconcept.SWFObjectUtil.prepUnload);
-               YAHOO.deconcept.unloadSet = true;
-       }
-}
-
-/* add document.getElementById if needed (mobile IE < 5) */
-if(!document.getElementById && document.all)
-{
-       document.getElementById = function(id) { return document.all[id]; };
-}
-
-
-/**
- * Wraps Flash embedding functionality and allows communication with SWF through
- * attributes.
- *
- * @namespace YAHOO.widget
- * @class FlashAdapter
- * @uses YAHOO.util.AttributeProvider
- */
-YAHOO.widget.FlashAdapter = function(swfURL, containerID, attributes)
-{
-       // set up the initial events and attributes stuff
-       this._queue = this._queue || [];
-       this._events = this._events || {};
-       this._configs = this._configs || {};
-       attributes = attributes || {};
-       
-       //the Flash Player external interface code from Adobe doesn't play nicely
-       //with the default value, yui-gen, in IE
-       this._id = attributes.id = attributes.id || YAHOO.util.Dom.generateId(null, "yuigen");
-       attributes.version = attributes.version || "9.0.45";
-       attributes.backgroundColor = attributes.backgroundColor || "#ffffff";
-       
-       //we can't use the initial attributes right away
-       //so save them for once the SWF finishes loading
-       this._attributes = attributes;
-       
-       this._swfURL = swfURL;
-       this._containerID = containerID;
-       
-       //embed the SWF file in the page
-       this._embedSWF(this._swfURL, this._containerID, attributes.id, attributes.version,
-               attributes.backgroundColor, attributes.expressInstall, attributes.wmode);
-       
-       /**
-        * Fires when the SWF is initialized and communication is possible.
-        * @event contentReady
-        */
-       //Fix for iframe cross-domain issue with FF2x 
-       try
-       {
-               this.createEvent("contentReady");
-       }
-       catch(e){}
-};
-
-YAHOO.extend(YAHOO.widget.FlashAdapter, YAHOO.util.AttributeProvider,
-{
-       /**
-        * The URL of the SWF file.
-        * @property _swfURL
-        * @type String
-        * @private
-        */
-       _swfURL: null,
-
-       /**
-        * The ID of the containing DIV.
-        * @property _containerID
-        * @type String
-        * @private
-        */
-       _containerID: null,
-
-       /**
-        * A reference to the embedded SWF file.
-        * @property _swf
-        * @private
-        */
-       _swf: null,
-
-       /**
-        * The id of this instance.
-        * @property _id
-        * @type String
-        * @private
-        */
-       _id: null,
-
-       /**
-        * Indicates whether the SWF has been initialized and is ready
-        * to communicate with JavaScript
-        * @property _initialized
-        * @type Boolean
-        * @private
-        */
-       _initialized: false,
-       
-       /**
-        * The initializing attributes are stored here until the SWF is ready.
-        * @property _attributes
-        * @type Object
-        * @private
-        */
-       _attributes: null, //the intializing attributes
-
-       /**
-        * Public accessor to the unique name of the FlashAdapter instance.
-        *
-        * @method toString
-        * @return {String} Unique name of the FlashAdapter instance.
-        */
-       toString: function()
-       {
-               return "FlashAdapter " + this._id;
-       },
-
-       /**
-        * Nulls out the entire FlashAdapter instance and related objects and removes attached
-        * event listeners and clears out DOM elements inside the container. After calling
-        * this method, the instance reference should be expliclitly nulled by implementer,
-        * as in myChart = null. Use with caution!
-        *
-        * @method destroy
-        */
-       destroy: function()
-       {
-               //kill the Flash Player instance
-               if(this._swf)
-               {
-                       var container = YAHOO.util.Dom.get(this._containerID);
-                       container.removeChild(this._swf);
-               }
-               
-               var instanceName = this._id;
-               
-               //null out properties
-               for(var prop in this)
-               {
-                       if(YAHOO.lang.hasOwnProperty(this, prop))
-                       {
-                               this[prop] = null;
-                       }
-               }
-               
-       },
-
-       /**
-        * Embeds the SWF in the page and associates it with this instance.
-        *
-        * @method _embedSWF
-        * @private
-        */
-       _embedSWF: function(swfURL, containerID, swfID, version, backgroundColor, expressInstall, wmode)
-       {
-               //standard SWFObject embed
-               var swfObj = new YAHOO.deconcept.SWFObject(swfURL, swfID, "100%", "100%", version, backgroundColor);
-
-               if(expressInstall)
-               {
-                       swfObj.useExpressInstall(expressInstall);
-               }
-
-               //make sure we can communicate with ExternalInterface
-               swfObj.addParam("allowScriptAccess", "always");
-               
-               if(wmode)
-               {
-                       swfObj.addParam("wmode", wmode);
-               }
-               
-               //again, a useful ExternalInterface trick
-               swfObj.addVariable("allowedDomain", document.location.hostname);
-
-               //tell the SWF which HTML element it is in
-               swfObj.addVariable("elementID", swfID);
-
-               // set the name of the function to call when the swf has an event
-               swfObj.addVariable("eventHandler", "YAHOO.widget.FlashAdapter.eventHandler");
-
-               var container = YAHOO.util.Dom.get(containerID);
-               var result = swfObj.write(container);
-               if(result)
-               {
-                       this._swf = YAHOO.util.Dom.get(swfID);
-                       //if successful, let's add an owner property to the SWF reference
-                       //this will allow the event handler to communicate with a YAHOO.widget.FlashAdapter
-                       this._swf.owner = this;
-               }
-               else
-               {
-               }
-       },
-
-       /**
-        * Handles or re-dispatches events received from the SWF.
-        *
-        * @method _eventHandler
-        * @private
-        */
-       _eventHandler: function(event)
-       {
-               var type = event.type;
-               switch(type)
-               {
-                       case "swfReady":
-                               this._loadHandler();
-                               this.fireEvent("contentReady");
-                               return;
-                       case "log":
-                               return;
-               }
-               
-               //be sure to return after your case or the event will automatically fire!
-               this.fireEvent(type, event);
-       },
-
-       /**
-        * Called when the SWF has been initialized.
-        *
-        * @method _loadHandler
-        * @private
-        */
-       _loadHandler: function()
-       {
-               this._initialized = false;
-               this._initAttributes(this._attributes);
-               this.setAttributes(this._attributes, true);
-               
-               this._initialized = true;
-       },
-       
-       set: function(name, value)
-       {
-               //save all the attributes in case the swf reloads
-               //so that we can pass them in again
-               this._attributes[name] = value;
-               YAHOO.widget.FlashAdapter.superclass.set.call(this, name, value);
-       },
-       
-       /**
-        * Initializes the attributes.
-        *
-        * @method _initAttributes
-        * @private
-        */
-       _initAttributes: function(attributes)
-       {
-               //should be overridden if other attributes need to be set up
-
-               /**
-                * @attribute wmode
-                * @description Sets the window mode of the Flash Player control. May be
-                *              "window", "opaque", or "transparent". Only available in the constructor
-                *              because it may not be set after Flash Player has been embedded in the page.
-                * @type String
-                */
-                
-               /**
-                * @attribute expressInstall
-                * @description URL pointing to a SWF file that handles Flash Player's express
-                *              install feature. Only available in the constructor because it may not be
-                *              set after Flash Player has been embedded in the page.
-                * @type String
-                */
-
-               /**
-                * @attribute version
-                * @description Minimum required version for the SWF file. Only available in the constructor because it may not be
-                *              set after Flash Player has been embedded in the page.
-                * @type String
-                */
-
-               /**
-                * @attribute backgroundColor
-                * @description The background color of the SWF. Only available in the constructor because it may not be
-                *              set after Flash Player has been embedded in the page.
-                * @type String
-                */
-                
-               /**
-                * @attribute altText
-                * @description The alternative text to provide for screen readers and other assistive technology.
-                * @type String
-                */
-               this.getAttributeConfig("altText",
-               {
-                       method: this._getAltText
-               });
-               this.setAttributeConfig("altText",
-               {
-                       method: this._setAltText
-               });
-               
-               /**
-                * @attribute swfURL
-                * @description Absolute or relative URL to the SWF displayed by the FlashAdapter. Only available in the constructor because it may not be
-                *              set after Flash Player has been embedded in the page.
-                * @type String
-                */
-               this.getAttributeConfig("swfURL",
-               {
-                       method: this._getSWFURL
-               });
-       },
-       
-       /**
-        * Getter for swfURL attribute.
-        *
-        * @method _getSWFURL
-        * @private
-        */
-       _getSWFURL: function()
-       {
-               return this._swfURL;
-       },
-       
-       /**
-        * Getter for altText attribute.
-        *
-        * @method _getAltText
-        * @private
-        */
-       _getAltText: function()
-       {
-               return this._swf.getAltText();
-       },
-
-       /**
-        * Setter for altText attribute.
-        *
-        * @method _setAltText
-        * @private
-        */
-       _setAltText: function(value)
-       {
-               return this._swf.setAltText(value);
-       }
-});
-
-/**
- * Receives event messages from SWF and passes them to the correct instance
- * of FlashAdapter.
- *
- * @method YAHOO.widget.FlashAdapter.eventHandler
- * @static
- * @private
- */
-YAHOO.widget.FlashAdapter.eventHandler = function(elementID, event)
-{
-       var loadedSWF = YAHOO.util.Dom.get(elementID);
-       if(!loadedSWF.owner)
-       {
-               //fix for ie: if owner doesn't exist yet, try again in a moment
-               setTimeout(function() { YAHOO.widget.FlashAdapter.eventHandler( elementID, event ); }, 0);
-       }
-       else
-       {
-               loadedSWF.owner._eventHandler(event);
-       }
-};
-
-/**
- * The number of proxy functions that have been created.
- * @static
- * @private
- */
-YAHOO.widget.FlashAdapter.proxyFunctionCount = 0;
-
-/**
- * Creates a globally accessible function that wraps a function reference.
- * Returns the proxy function's name as a string for use by the SWF through
- * ExternalInterface.
- *
- * @method YAHOO.widget.FlashAdapter.createProxyFunction
- * @static
- * @private
- */
-YAHOO.widget.FlashAdapter.createProxyFunction = function(func)
-{
-       var index = YAHOO.widget.FlashAdapter.proxyFunctionCount;
-       YAHOO.widget.FlashAdapter["proxyFunction" + index] = function()
-       {
-               return func.apply(null, arguments);
-       };
-       YAHOO.widget.FlashAdapter.proxyFunctionCount++;
-       return "YAHOO.widget.FlashAdapter.proxyFunction" + index.toString();
-};
-
-/**
- * Removes a function created with createProxyFunction()
- * 
- * @method YAHOO.widget.FlashAdapter.removeProxyFunction
- * @static
- * @private
- */
-YAHOO.widget.FlashAdapter.removeProxyFunction = function(funcName)
-{
-       //quick error check
-       if(!funcName || funcName.indexOf("YAHOO.widget.FlashAdapter.proxyFunction") < 0)
-       {
-               return;
-       }
-       
-       funcName = funcName.substr(26);
-       YAHOO.widget.FlashAdapter[funcName] = null;
-};
-
-/**
- * The Charts widget provides a Flash control for displaying data
- * graphically by series across A-grade browsers with Flash Player installed.
- *
- * @module charts
- * @requires yahoo, dom, event, datasource
- * @title Charts Widget
- * @experimental
- */
-/****************************************************************************/
-/****************************************************************************/
-/****************************************************************************/
-
-/**
- * Chart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class Chart
- * @uses YAHOO.widget.FlashAdapter
- * @constructor
- * @param type {String} The char type. May be "line", "column", "bar", or "pie"
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.Chart = function(type, containerId, dataSource, attributes)
-{
-       YAHOO.widget.Chart.superclass.constructor.call(this, YAHOO.widget.Chart.SWFURL, containerId, attributes);
-       
-       this._type = type;
-       this._dataSource = dataSource;
-       
-       /**
-        * Fires when the user moves the mouse over the bounds of an item renderer in the chart.
-        *
-        * @event itemMouseOverEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemMouseOverEvent");
-       
-       /**
-        * Fires when the user moves the mouse out of the bounds of an item renderer in the chart.
-        *
-        * @event itemMouseOutEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemMouseOutEvent");
-       
-       /**
-        * Fires when the user clicks an item renderer in the chart with the mouse.
-        *
-        * @event itemClickEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemClickEvent");
-       
-       /**
-        * Fires when the user double-clicks an item renderer in the chart with the mouse.
-        *
-        * @event itemDoubleClickEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemDoubleClickEvent");
-       
-       /**
-        * Fires when the user presses the mouse down on an item to initiate a drag action.
-        *
-        * @event itemDragStartEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemDragStartEvent");
-       
-       /**
-        * Fires when the user moves the mouse during a drag action.
-        *
-        * @event itemDragEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemDragEvent");
-
-       /**
-        * Fires when the user releases the mouse during a drag action.
-        *
-        * @event itemDragEndEvent
-        * @param event.type {String} The event type
-        * @param event.item {Object} The data displayed by the renderer
-        * @param event.index {Number} The position within the series that the item appears.
-        * @param event.seriesIndex {Number} The position within the series definition that the series appears.
-        * @param event.x {Number} The horizontal position of the mouse, relative to the SWF.
-        * @param event.y {Number} The vertical position of the mouse, relative to the SWF.
-        */
-       this.createEvent("itemDragEndEvent");
-};
-
-YAHOO.extend(YAHOO.widget.Chart, YAHOO.widget.FlashAdapter,
-{
-       /**
-        * The type of this chart instance.
-        * @property _type
-        * @type String
-        * @private
-        */
-       _type: null,
-
-       /**
-        * The id returned from the DataSource's setInterval function.
-        * @property _pollingID
-        * @type Number
-        * @private
-        */
-       _pollingID: null,
-
-       /**
-        * The time, in ms, between requests for data.
-        * @property _pollingInterval
-        * @type Number
-        * @private
-        */
-       _pollingInterval: null,
-
-       /**
-        * Stores a reference to the dataTipFunction created by
-        * YAHOO.widget.FlashAdapter.createProxyFunction()
-        * @property _dataTipFunction
-        * @type String
-        * @private
-        */
-       _dataTipFunction: null,
-       
-       /**
-        * Stores references to series labelFunction values created by
-        * YAHOO.widget.FlashAdapter.createProxyFunction()
-        * @property _seriesLabelFunctions
-        * @type Array
-        * @private
-        */
-       _seriesLabelFunctions: null,
-
-       /**
-        * Public accessor to the unique name of the Chart instance.
-        *
-        * @method toString
-        * @return {String} Unique name of the Chart instance.
-        */
-       toString: function()
-       {
-               return "Chart " + this._id;
-       },
-       
-       /**
-        * Sets a single style value on the Chart instance.
-        *
-        * @method setStyle
-        * @param name {String} Name of the Chart style value to change.
-        * @param value {Object} New value to pass to the Chart style.
-        */
-       setStyle: function(name, value)
-       {
-               //we must jsonify this because Flash Player versions below 9.0.60 don't handle
-               //complex ExternalInterface parsing correctly
-               value = YAHOO.lang.JSON.stringify(value);
-               this._swf.setStyle(name, value);
-       },
-       
-       /**
-        * Resets all styles on the Chart instance.
-        *
-        * @method setStyles
-        * @param styles {Object} Initializer for all Chart styles.
-        */
-       setStyles: function(styles)
-       {
-               //we must jsonify this because Flash Player versions below 9.0.60 don't handle
-               //complex ExternalInterface parsing correctly
-               styles = YAHOO.lang.JSON.stringify(styles);
-               this._swf.setStyles(styles);
-       },
-       
-       /**
-        * Sets the styles on all series in the Chart.
-        *
-        * @method setSeriesStyles
-        * @param styles {Array} Initializer for all Chart series styles.
-        */
-       setSeriesStyles: function(styles)
-       {
-               //we must jsonify this because Flash Player versions below 9.0.60 don't handle
-               //complex ExternalInterface parsing correctly
-               for(var i = 0; i < styles.length; i++)
-               {
-                       styles[i] = YAHOO.lang.JSON.stringify(styles[i]);       
-               }
-               this._swf.setSeriesStyles(styles);
-       },
-       
-       destroy: function()
-       {
-               //stop polling if needed
-               if(this._dataSource !== null)
-               {
-                       if(this._pollingID !== null)
-                       {
-                               this._dataSource.clearInterval(this._pollingID);
-                               this._pollingID = null;
-                       }
-               }
-               
-               //remove proxy functions
-               if(this._dataTipFunction)
-               {
-                       YAHOO.widget.FlashAdapter.removeProxyFunction(this._dataTipFunction);
-               }
-               
-               //call last
-               YAHOO.widget.Chart.superclass.destroy.call(this);
-       },
-       
-       /**
-        * Initializes the attributes.
-        *
-        * @method _initAttributes
-        * @private
-        */
-       _initAttributes: function(attributes)
-       {
-               YAHOO.widget.Chart.superclass._initAttributes.call(this, attributes);
-
-               /**
-                * @attribute request
-                * @description Request to be sent to the Chart's DataSource.
-                * @type String
-                */
-               this.getAttributeConfig("request",
-               {
-                       method: this._getRequest
-               });
-               
-               this.setAttributeConfig("request",
-               {
-                       method: this._setRequest
-               });
-               
-               /**
-                * @attribute dataSource
-                * @description The DataSource instance to display in the Chart.
-                * @type DataSource
-                */
-               this.getAttributeConfig("dataSource",
-               {
-                       method: this._getDataSource
-               });
-               
-               this.setAttributeConfig("dataSource",
-               {
-                       method: this._setDataSource
-               });
-               
-               /**
-                * @attribute series
-                * @description Defines the series to be displayed by the Chart.
-                * @type Array
-                */
-               this.getAttributeConfig("series",
-               {
-                       method: this._getSeriesDefs
-               });
-               
-               this.setAttributeConfig("series",
-               {
-                       method: this._setSeriesDefs
-               });
-               
-               /**
-                * @attribute categoryNames
-                * @description Defines the names of the categories to be displayed in the Chart..
-                * @type Array
-                */
-               this.getAttributeConfig("categoryNames",
-               {
-                       method: this._getCategoryNames
-               });
-               
-               this.setAttributeConfig("categoryNames",
-               {
-                       validator: YAHOO.lang.isArray,
-                       method: this._setCategoryNames
-               });
-               
-               /**
-                * @attribute dataTipFunction
-                * @description The string representation of a globally-accessible function
-                * that may be called by the SWF to generate the datatip text for a Chart's item.
-                * @type String
-                */
-               this.getAttributeConfig("dataTipFunction",
-               {
-                       method: this._getDataTipFunction
-               });
-               
-               this.setAttributeConfig("dataTipFunction",
-               {
-                       method: this._setDataTipFunction
-               });
-
-               /**
-                * @attribute polling
-                * @description A numeric value indicating the number of milliseconds between
-                * polling requests to the DataSource.
-                * @type Number
-                */
-               this.getAttributeConfig("polling",
-               {
-                       method: this._getPolling
-               });
-
-               this.setAttributeConfig("polling",
-               {
-                       method: this._setPolling
-               });
-       },
-       
-       /**
-        * Called when the SWF is ready for communication. Sets the type, initializes
-        * the styles, and sets the DataSource.
-        *
-        * @method _loadHandler
-        * @private
-        */
-       _loadHandler: function()
-       {
-               //the type is set separately because it must be first!
-               this._swf.setType(this._type);
-               
-               //set initial styles
-               if(this._attributes.style)
-               {
-                       var style = this._attributes.style;
-                       this.setStyles(style);          
-               }
-               
-               YAHOO.widget.Chart.superclass._loadHandler.call(this);
-               
-               if(this._dataSource)
-               {
-                       this.set("dataSource", this._dataSource);
-               }
-       },
-
-       /**
-        * Sends (or resends) the request to the DataSource.
-        *
-        * @method refreshData
-        */
-       refreshData: function()
-       {
-               if(!this._initialized)
-               {
-                       return;
-               }
-               
-               if(this._dataSource !== null)
-               {
-                       if(this._pollingID !== null)
-                       {
-                               this._dataSource.clearInterval(this._pollingID);
-                               this._pollingID = null;
-                       }
-                       
-                       if(this._pollingInterval > 0)
-                       {
-                               this._pollingID = this._dataSource.setInterval(this._pollingInterval, this._request, this._loadDataHandler, this);
-                       }
-                       this._dataSource.sendRequest(this._request, this._loadDataHandler, this);
-               }
-       },
-
-       /**
-        * Called when the DataSource receives new data. The series definitions are used
-        * to build a data provider for the SWF chart.
-        *
-        * @method _loadDataHandler
-        * @private
-        */
-       _loadDataHandler: function(request, response, error)
-       {
-               if(this._swf)
-               {
-                       if(error)
-                       {
-                       }
-                       else
-                       {
-                               var i;
-                               if(this._seriesLabelFunctions)
-                               {
-                                       var count = this._seriesLabelFunctions.length;
-                                       for(i = 0; i < count; i++)
-                                       {
-                                               YAHOO.widget.FlashAdapter.removeProxyFunction(this._seriesLabelFunctions[i]);
-                                       }
-                                       this._seriesLabelFunction = null;
-                               }
-                               this._seriesLabelFunctions = [];
-
-                               //make a copy of the series definitions so that we aren't
-                               //editing them directly.
-                               var dataProvider = [];  
-                               var seriesCount = 0;
-                               var currentSeries = null;
-                               if(this._seriesDefs !== null)
-                               {
-                                       seriesCount = this._seriesDefs.length;
-                                       for(i = 0; i < seriesCount; i++)
-                                       {
-                                               currentSeries = this._seriesDefs[i];
-                                               var clonedSeries = {};
-                                               for(var prop in currentSeries)
-                                               {
-                                                       if(YAHOO.lang.hasOwnProperty(currentSeries, prop))
-                                                       {
-                                                               if(prop == "style")
-                                                               {
-                                                                       if(currentSeries.style !== null)
-                                                                       {
-                                                                               clonedSeries.style = YAHOO.lang.JSON.stringify(currentSeries.style);
-                                                                       }
-                                                               }
-
-                                                               else if(prop == "labelFunction")
-                                                               {
-                                                                       if(currentSeries.labelFunction !== null &&
-                                                                               typeof currentSeries.labelFunction == "function")
-                                                                       {
-                                                                               clonedSeries.labelFunction = YAHOO.widget.FlashAdapter.createProxyFunction(currentSeries.labelFunction);
-                                                                               this._seriesLabelFunctions.push(clonedSeries.labelFunction);
-                                                                       }
-                                                               }
-
-                                                               else
-                                                               {
-                                                                       clonedSeries[prop] = currentSeries[prop];
-                                                               }
-                                                       }
-                                               }
-                                               dataProvider.push(clonedSeries);
-                                       }
-                               }
-
-                               if(seriesCount > 0)
-                               {
-                                       for(i = 0; i < seriesCount; i++)
-                                       {
-                                               currentSeries = dataProvider[i];
-                                               if(!currentSeries.type)
-                                               {
-                                                       currentSeries.type = this._type;
-                                               }
-                                               currentSeries.dataProvider = response.results;
-                                       }
-                               }
-                               else
-                               {
-                                       var series = {type: this._type, dataProvider: response.results};
-                                       dataProvider.push(series);
-                               }
-                               this._swf.setDataProvider(dataProvider);
-                       }
-               }
-       },
-
-       /**
-        * Storage for the request attribute.
-        * 
-        * @property _request
-        * @private
-        */
-       _request: "",
-       
-       /**
-        * Getter for the request attribute.
-        *
-        * @method _getRequest
-        * @private
-        */
-       _getRequest: function()
-       {
-               return this._request;
-       },
-       
-       /**
-        * Setter for the request attribute.
-        *
-        * @method _setRequest
-        * @private
-        */
-       _setRequest: function(value)
-       {
-               this._request = value;
-               this.refreshData();
-       },
-
-       /**
-        * Storage for the dataSource attribute.
-        * 
-        * @property _dataSource
-        * @private
-        */
-       _dataSource: null,
-       
-       /**
-        * Getter for the dataSource attribute.
-        *
-        * @method _getDataSource
-        * @private
-        */
-       _getDataSource: function()
-       {
-               return this._dataSource;
-       },
-
-       /**
-        * Setter for the dataSource attribute.
-        *
-        * @method _setDataSource
-        * @private
-        */
-       _setDataSource: function(value)
-       {       
-               this._dataSource = value;
-               this.refreshData();
-       },
-       
-       /**
-        * Storage for the series attribute.
-        * 
-        * @property _seriesDefs
-        * @private
-        */
-       _seriesDefs: null,
-       
-       /**
-        * Getter for the series attribute.
-        *
-        * @method _getSeriesDefs
-        * @private
-        */
-       _getSeriesDefs: function()
-       {
-               return this._seriesDefs;
-       },
-       
-       /**
-        * Setter for the series attribute.
-        *
-        * @method _setSeriesDefs
-        * @private
-        */
-       _setSeriesDefs: function(value)
-       {
-               this._seriesDefs = value;
-               this.refreshData();
-       },
-
-       /**
-        * Getter for the categoryNames attribute.
-        *
-        * @method _getCategoryNames
-        * @private
-        */
-       _getCategoryNames: function()
-       {
-               this._swf.getCategoryNames();
-       },
-
-       /**
-        * Setter for the categoryNames attribute.
-        *
-        * @method _setCategoryNames
-        * @private
-        */
-       _setCategoryNames: function(value)
-       {
-               this._swf.setCategoryNames(value);
-       },
-       
-       /**
-        * Setter for the dataTipFunction attribute.
-        *
-        * @method _setDataTipFunction
-        * @private
-        */
-       _setDataTipFunction: function(value)
-       {
-               if(this._dataTipFunction)
-               {
-                       YAHOO.widget.FlashAdapter.removeProxyFunction(this._dataTipFunction);
-               }
-               
-               if(value && typeof value == "function")
-               {
-                       value = YAHOO.widget.FlashAdapter.createProxyFunction(value);
-                       this._dataTipFunction = value;
-               }
-               this._swf.setDataTipFunction(value);
-       },
-
-       /**
-        * Getter for the polling attribute.
-        *
-        * @method _getPolling
-        * @private
-        */
-       _getPolling: function()
-       {
-               return this._pollingInterval;
-       },
-
-       /**
-        * Setter for the polling attribute.
-        *
-        * @method _setPolling
-        * @private
-        */
-       _setPolling: function(value)
-       {
-               this._pollingInterval = value;
-               this.refreshData();
-       }
-});
-
-/**
- * Storage for the dataTipFunction attribute.
- *
- * @property Chart.SWFURL
- * @private
- * @static
- * @final
- * @default "assets/charts.swf"
- */
-YAHOO.widget.Chart.SWFURL = "assets/charts.swf";
-
-/**
- * PieChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class PieChart
- * @uses YAHOO.widget.Chart
- * @constructor
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.PieChart = function(containerId, dataSource, attributes)
-{
-       YAHOO.widget.PieChart.superclass.constructor.call(this, "pie", containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.PieChart, YAHOO.widget.Chart,
-{
-       /**
-        * Initializes the attributes.
-        *
-        * @method _initAttributes
-        * @private
-        */
-       _initAttributes: function(attributes)
-       {       
-               YAHOO.widget.PieChart.superclass._initAttributes.call(this, attributes);
-               
-               /**
-                * @attribute dataField
-                * @description The field in each item that corresponds to the data value.
-                * @type String
-                */
-               this.getAttributeConfig("dataField",
-               {
-                       method: this._getDataField
-               });
-   
-               this.setAttributeConfig("dataField",
-               {
-                       validator: YAHOO.lang.isString,
-                       method: this._setDataField
-               });
-   
-               /**
-                * @attribute categoryField
-                * @description The field in each item that corresponds to the category value.
-                * @type String
-                */
-               this.getAttributeConfig("categoryField",
-               {
-                       method: this._getCategoryField
-               });
-   
-               this.setAttributeConfig("categoryField",
-               {
-                       validator: YAHOO.lang.isString,
-                       method: this._setCategoryField
-               });
-       },
-
-       /**
-        * Getter for the dataField attribute.
-        *
-        * @method _getDataField
-        * @private
-        */
-       _getDataField: function()
-       {
-               return this._swf.getDataField();
-       },
-
-       /**
-        * Setter for the dataField attribute.
-        *
-        * @method _setDataField
-        * @private
-        */
-       _setDataField: function(value)
-       {
-               this._swf.setDataField(value);
-       },
-
-       /**
-        * Getter for the categoryField attribute.
-        *
-        * @method _getCategoryField
-        * @private
-        */
-       _getCategoryField: function()
-       {
-               return this._swf.getCategoryField();
-       },
-
-       /**
-        * Setter for the categoryField attribute.
-        *
-        * @method _setCategoryField
-        * @private
-        */
-       _setCategoryField: function(value)
-       {
-               this._swf.setCategoryField(value);
-       }
-});
-
-/**
- * CartesianChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class CartesianChart
- * @uses YAHOO.widget.Chart
- * @constructor
- * @param type {String} The char type. May be "line", "column", or "bar"
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
- YAHOO.widget.CartesianChart = function(type, containerId, dataSource, attributes)
-{
-       YAHOO.widget.CartesianChart.superclass.constructor.call(this, type, containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.CartesianChart, YAHOO.widget.Chart,
-{
-       /**
-        * Stores a reference to the xAxis labelFunction created by
-        * YAHOO.widget.FlashAdapter.createProxyFunction()
-        * @property _xAxisLabelFunction
-        * @type String
-        * @private
-        */
-       _xAxisLabelFunction: null,
-       
-       /**
-        * Stores a reference to the yAxis labelFunction created by
-        * YAHOO.widget.FlashAdapter.createProxyFunction()
-        * @property _yAxisLabelFunction
-        * @type String
-        * @private
-        */
-       _yAxisLabelFunction: null,
-       
-       destroy: function()
-       {
-               //remove proxy functions
-               if(this._xAxisLabelFunction)
-               {
-                       YAHOO.widget.FlashAdapter.removeProxyFunction(this._xAxisLabelFunction);
-                       this._xAxisLabelFunction = null;
-               }
-               
-               if(this._yAxisLabelFunction)
-               {
-                       YAHOO.widget.FlashAdapter.removeProxyFunction(this._yAxisLabelFunction);
-                       this._yAxisLabelFunction = null;
-               }
-       
-               //call last
-               YAHOO.widget.CartesianChart.superclass.destroy.call(this);
-       },
-       
-       /**
-        * Initializes the attributes.
-        *
-        * @method _initAttributes
-        * @private
-        */
-       _initAttributes: function(attributes)
-       {       
-               YAHOO.widget.CartesianChart.superclass._initAttributes.call(this, attributes);
-
-               /**
-                * @attribute xField
-                * @description The field in each item that corresponds to a value on the x axis.
-                * @type String
-                */
-               this.getAttributeConfig("xField",
-               {
-                       method: this._getXField
-               });
-
-               this.setAttributeConfig("xField",
-               {
-                       validator: YAHOO.lang.isString,
-                       method: this._setXField
-               });
-
-               /**
-                * @attribute yField
-                * @description The field in each item that corresponds to a value on the x axis.
-                * @type String
-                */
-               this.getAttributeConfig("yField",
-               {
-                       method: this._getYField
-               });
-
-               this.setAttributeConfig("yField",
-               {
-                       validator: YAHOO.lang.isString,
-                       method: this._setYField
-               });
-
-               /**
-                * @attribute xAxis
-                * @description A custom configuration for the horizontal x axis.
-                * @type Axis
-                */
-               this.setAttributeConfig("xAxis",
-               {
-                       method: this._setXAxis
-               });
-
-               /**
-                * @attribute yAxis
-                * @description A custom configuration for the vertical y axis.
-                * @type Axis
-                */
-               this.setAttributeConfig("yAxis",
-               {
-                       method: this._setYAxis
-               });
-       },
-
-       /**
-        * Getter for the xField attribute.
-        *
-        * @method _getXField
-        * @private
-        */
-       _getXField: function()
-       {
-               return this._swf.getHorizontalField();
-       },
-
-       /**
-        * Setter for the xField attribute.
-        *
-        * @method _setXField
-        * @private
-        */
-       _setXField: function(value)
-       {
-               this._swf.setHorizontalField(value);
-       },
-
-       /**
-        * Getter for the yField attribute.
-        *
-        * @method _getYField
-        * @private
-        */
-       _getYField: function()
-       {
-               return this._swf.getVerticalField();
-       },
-
-       /**
-        * Setter for the yField attribute.
-        *
-        * @method _setYField
-        * @private
-        */
-       _setYField: function(value)
-       {
-               this._swf.setVerticalField(value);
-       },
-       
-       /**
-        * Setter for the xAxis attribute.
-        *
-        * @method _setXAxis
-        * @private
-        */
-       _setXAxis: function(value)
-       {
-               if(this._xAxisLabelFunction !== null)
-               {
-                       YAHOO.widget.FlashAdapter.removeProxyFunction(this._xAxisLabelFunction);
-                       this._xAxisLabelFunction = null;
-               }
-               
-               var clonedXAxis = {};
-               for(var prop in value)
-               {
-                       if(prop == "labelFunction")
-                       {
-                               if(value.labelFunction !== null)
-                               {
-                                       if(typeof value.labelFunction == "function")
-                                       {
-                                               clonedXAxis.labelFunction = YAHOO.widget.FlashAdapter.createProxyFunction(value.labelFunction);
-                                       }
-                                       else
-                                       {
-                                               clonedXAxis.labelFunction = value.labelFunction;
-                                       }
-                                       this._xAxisLabelFunction = clonedXAxis.labelFunction;
-                               }
-                       }
-                       else
-                       {
-                               clonedXAxis[prop] = value[prop];
-                       }
-               }
-               this._swf.setHorizontalAxis(clonedXAxis);
-       },
-
-       /**
-        * Getter for the yAxis attribute.
-        *
-        * @method _setYAxis
-        * @private
-        */
-       _setYAxis: function(value)
-       {
-               if(this._yAxisLabelFunction !== null)
-               {
-                       YAHOO.widget.FlashAdapter.removeProxyFunction(this._yAxisLabelFunction);
-                       this._yAxisLabelFunction = null;
-               }
-
-               var clonedYAxis = {};
-               for(var prop in value)
-               {
-                       if(prop == "labelFunction")
-                       {
-                               if(value.labelFunction !== null)
-                               {
-                                       if(typeof value.labelFunction == "function")
-                                       {
-                                               clonedYAxis.labelFunction = YAHOO.widget.FlashAdapter.createProxyFunction(value.labelFunction);
-                                       }
-                                       else
-                                       {
-                                               clonedYAxis.labelFunction = value.labelFunction;
-                                       }
-                                       this._yAxisLabelFunction = clonedYAxis.labelFunction;
-                               }
-                       }
-                       else
-                       {
-                               clonedYAxis[prop] = value[prop];
-                       }
-               }
-               this._swf.setVerticalAxis(clonedYAxis);
-       }
-});
-
-/**
- * LineChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class LineChart
- * @uses YAHOO.widget.CartesianChart
- * @constructor
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.LineChart = function(containerId, dataSource, attributes)
-{
-       YAHOO.widget.LineChart.superclass.constructor.call(this, "line", containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.LineChart, YAHOO.widget.CartesianChart);
-
-/**
- * ColumnChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class ColumnChart
- * @uses YAHOO.widget.CartesianChart
- * @constructor
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.ColumnChart = function(containerId, dataSource, attributes)
-{
-       YAHOO.widget.ColumnChart.superclass.constructor.call(this, "column", containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.ColumnChart, YAHOO.widget.CartesianChart);
-
-/**
- * BarChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class BarChart
- * @uses YAHOO.widget.CartesianChart
- * @constructor
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.BarChart = function(containerId, dataSource, attributes)
-{
-       YAHOO.widget.BarChart.superclass.constructor.call(this, "bar", containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.BarChart, YAHOO.widget.CartesianChart);
-
-/**
- * StackedColumnChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class StackedColumnChart
- * @uses YAHOO.widget.CartesianChart
- * @constructor
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.StackedColumnChart = function(containerId, dataSource, attributes)
-{
-       YAHOO.widget.StackedColumnChart.superclass.constructor.call(this, "stackcolumn", containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.StackedColumnChart, YAHOO.widget.CartesianChart);
-
-/**
- * StackedBarChart class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class StackedBarChart
- * @uses YAHOO.widget.CartesianChart
- * @constructor
- * @param containerId {HTMLElement} Container element for the Flash Player instance.
- * @param dataSource {YAHOO.util.DataSource} DataSource instance.
- * @param attributes {object} (optional) Object literal of configuration values.
- */
-YAHOO.widget.StackedBarChart = function(containerId, dataSource, attributes)
-{
-       YAHOO.widget.StackedBarChart.superclass.constructor.call(this, "stackbar", containerId, dataSource, attributes);
-};
-
-YAHOO.lang.extend(YAHOO.widget.StackedBarChart, YAHOO.widget.CartesianChart);
-
-/**
- * Defines a CartesianChart's vertical or horizontal axis.
- *
- * @namespace YAHOO.widget
- * @class Axis
- * @constructor
- */
-YAHOO.widget.Axis = function()
-{
-};
-
-YAHOO.widget.Axis.prototype = 
-{
-       /**
-        * The type of axis.
-        *
-        * @property type
-        * @type String
-        */
-       type: null,
-       
-       /**
-        * If true, the items on the axis will be drawn in opposite direction.
-        *
-        * @property reverse
-        * @type Boolean
-        */
-       reverse: false,
-       
-       /**
-        * A string reference to the globally-accessible function that may be called to
-        * determine each of the label values for this axis. Also accepts function references.
-        *
-        * @property labelFunction
-        * @type String
-        */
-       labelFunction: null,
-       
-       /**
-        * The space, in pixels, between labels on an axis.
-        *
-        * @property labelSpacing
-        * @type Number
-        */
-       labelSpacing: 2,
-       
-       /**
-        * The text that will appear next to the axis to indicate information about the data that it displays.
-        *
-        * @property title
-        * @type String
-        */
-       title: null 
-};
-
-/**
- * A type of axis whose units are measured in numeric values.
- *
- * @namespace YAHOO.widget
- * @class NumericAxis
- * @extends YAHOO.widget.Axis
- * @constructor
- */
-YAHOO.widget.NumericAxis = function()
-{
-       YAHOO.widget.NumericAxis.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.NumericAxis, YAHOO.widget.Axis,
-{
-       type: "numeric",
-       
-       /**
-        * The minimum value drawn by the axis. If not set explicitly, the axis minimum
-        * will be calculated automatically.
-        *
-        * @property minimum
-        * @type Number
-        */
-       minimum: NaN,
-       
-       /**
-        * The maximum value drawn by the axis. If not set explicitly, the axis maximum
-        * will be calculated automatically.
-        *
-        * @property maximum
-        * @type Number
-        */
-       maximum: NaN,
-       
-       /**
-        * The spacing between major intervals on this axis.
-        *
-        * @property majorUnit
-        * @type Number
-        */
-       majorUnit: NaN,
-
-       /**
-        * The spacing between minor intervals on this axis.
-        *
-        * @property minorUnit
-        * @type Number
-        */
-       minorUnit: NaN,
-       
-       /**
-        * If true, the labels, ticks, gridlines, and other objects will snap to
-        * the nearest major or minor unit. If false, their position will be based
-        * on the minimum value.
-        *
-        * @property snapToUnits
-        * @type Boolean
-        */
-       snapToUnits: true,
-       
-       /**
-        * Series that are stackable will only stack when this value is set to true.
-        *
-        * @property stackingEnabled
-        * @type Boolean
-        */
-       stackingEnabled: false,
-
-       /**
-        * If true, and the bounds are calculated automatically, either the minimum or
-        * maximum will be set to zero.
-        *
-        * @property alwaysShowZero
-        * @type Boolean
-        */
-       alwaysShowZero: true,
-
-       /**
-        * The scaling algorithm to use on this axis. May be "linear" or "logarithmic".
-        *
-        * @property scale
-        * @type String
-        */
-       scale: "linear",
-       
-       /**
-        * Indicates whether to round the major unit.
-        * 
-        * @property roundMajorUnit
-        * @type Boolean
-        */
-       roundMajorUnit: true 
-});
-
-/**
- * A type of axis whose units are measured in time-based values.
- *
- * @namespace YAHOO.widget
- * @class TimeAxis
- * @constructor
- */
-YAHOO.widget.TimeAxis = function()
-{
-       YAHOO.widget.TimeAxis.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.TimeAxis, YAHOO.widget.Axis,
-{
-       type: "time",
-       
-       /**
-        * The minimum value drawn by the axis. If not set explicitly, the axis minimum
-        * will be calculated automatically.
-        *
-        * @property minimum
-        * @type Date
-        */
-       minimum: null,
-
-       /**
-        * The maximum value drawn by the axis. If not set explicitly, the axis maximum
-        * will be calculated automatically.
-        *
-        * @property maximum
-        * @type Number
-        */
-       maximum: null,
-       
-       /**
-        * The spacing between major intervals on this axis.
-        *
-        * @property majorUnit
-        * @type Number
-        */
-       majorUnit: NaN,
-       
-       /**
-        * The time unit used by the majorUnit.
-        *
-        * @property majorTimeUnit
-        * @type String
-        */
-       majorTimeUnit: null,
-       
-       /**
-        * The spacing between minor intervals on this axis.
-        *
-        * @property majorUnit
-        * @type Number
-        */
-       minorUnit: NaN,
-       
-       /**
-        * The time unit used by the minorUnit.
-        *
-        * @property majorTimeUnit
-        * @type String
-        */
-       minorTimeUnit: null,
-
-       /**
-        * If true, the labels, ticks, gridlines, and other objects will snap to
-        * the nearest major or minor unit. If false, their position will be based
-        * on the minimum value.
-        *
-        * @property snapToUnits
-        * @type Boolean
-        */
-       snapToUnits: true,
-
-       /**
-        * Series that are stackable will only stack when this value is set to true.
-        *
-        * @property stackingEnabled
-        * @type Boolean
-        */
-       stackingEnabled: false
-});
-
-/**
- * A type of axis that displays items in categories.
- *
- * @namespace YAHOO.widget
- * @class CategoryAxis
- * @constructor
- */
-YAHOO.widget.CategoryAxis = function()
-{
-       YAHOO.widget.CategoryAxis.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.CategoryAxis, YAHOO.widget.Axis,
-{
-       type: "category",
-       
-       /**
-        * A list of category names to display along this axis.
-        *
-        * @property categoryNames
-        * @type Array
-        */
-       categoryNames: null,
-       
-       /**
-        * Indicates whether or not to calculate the number of categories (ticks and labels)
-        * when there is not enough room to display all labels on the axis. If set to true, the axis 
-        * will determine the number of categories to plot. If not, all categories will be plotted.
-        *
-        * @property calcualateCategoryCount
-        * @type Boolean
-        */
-       calculateCategoryCount: false 
-});
-
-/**
- * Functionality common to most series. Generally, a <code>Series</code> 
- * object shouldn't be instantiated directly. Instead, a subclass with a 
- * concrete implementation should be used.
- *
- * @namespace YAHOO.widget
- * @class Series
- * @constructor
- */
-YAHOO.widget.Series = function() {};
-
-YAHOO.widget.Series.prototype = 
-{
-       /**
-        * The type of series.
-        *
-        * @property type
-        * @type String
-        */
-       type: null,
-       
-       /**
-        * The human-readable name of the series.
-        *
-        * @property displayName
-        * @type String
-        */
-       displayName: null
-};
-
-/**
- * Functionality common to most series appearing in cartesian charts.
- * Generally, a <code>CartesianSeries</code> object shouldn't be
- * instantiated directly. Instead, a subclass with a concrete implementation
- * should be used.
- *
- * @namespace YAHOO.widget
- * @class CartesianSeries
- * @uses YAHOO.widget.Series
- * @constructor
- */
-YAHOO.widget.CartesianSeries = function() 
-{
-       YAHOO.widget.CartesianSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.CartesianSeries, YAHOO.widget.Series,
-{
-       /**
-        * The field used to access the x-axis value from the items from the data source.
-        *
-        * @property xField
-        * @type String
-        */
-       xField: null,
-       
-       /**
-        * The field used to access the y-axis value from the items from the data source.
-        *
-        * @property yField
-        * @type String
-        */
-       yField: null
-});
-
-/**
- * ColumnSeries class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class ColumnSeries
- * @uses YAHOO.widget.CartesianSeries
- * @constructor
- */
-YAHOO.widget.ColumnSeries = function() 
-{
-       YAHOO.widget.ColumnSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.ColumnSeries, YAHOO.widget.CartesianSeries,
-{
-       type: "column"
-});
-
-/**
- * LineSeries class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class LineSeries
- * @uses YAHOO.widget.CartesianSeries
- * @constructor
- */
-YAHOO.widget.LineSeries = function() 
-{
-       YAHOO.widget.LineSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.LineSeries, YAHOO.widget.CartesianSeries,
-{
-       type: "line"
-});
-
-
-/**
- * BarSeries class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class BarSeries
- * @uses YAHOO.widget.CartesianSeries
- * @constructor
- */
-YAHOO.widget.BarSeries = function() 
-{
-       YAHOO.widget.BarSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.BarSeries, YAHOO.widget.CartesianSeries,
-{
-       type: "bar"
-});
-
-
-/**
- * PieSeries class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class PieSeries
- * @uses YAHOO.widget.Series
- * @constructor
- */
-YAHOO.widget.PieSeries = function() 
-{
-       YAHOO.widget.PieSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.PieSeries, YAHOO.widget.Series,
-{
-       type: "pie",
-       
-       /**
-        * The field used to access the data value from the items from the data source.
-        *
-        * @property dataField
-        * @type String
-        */
-       dataField: null,
-       
-       /**
-        * The field used to access the category value from the items from the data source.
-        *
-        * @property categoryField
-        * @type String
-        */
-       categoryField: null,
-
-       /**
-        * A string reference to the globally-accessible function that may be called to
-        * determine each of the label values for this series. Also accepts function references.
-        *
-        * @property labelFunction
-        * @type String
-        */
-       labelFunction: null
-});
-
-/**
- * StackedBarSeries class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class StackedBarSeries
- * @uses YAHOO.widget.CartesianSeries
- * @constructor
- */
-YAHOO.widget.StackedBarSeries = function() 
-{
-       YAHOO.widget.StackedBarSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.StackedBarSeries, YAHOO.widget.CartesianSeries,
-{
-       type: "stackbar"
-});
-
-/**
- * StackedColumnSeries class for the YUI Charts widget.
- *
- * @namespace YAHOO.widget
- * @class StackedColumnSeries
- * @uses YAHOO.widget.CartesianSeries
- * @constructor
- */
-YAHOO.widget.StackedColumnSeries = function() 
-{
-       YAHOO.widget.StackedColumnSeries.superclass.constructor.call(this);
-};
-
-YAHOO.lang.extend(YAHOO.widget.StackedColumnSeries, YAHOO.widget.CartesianSeries,
-{
-       type: "stackcolumn"
-});
-
-YAHOO.register("charts", YAHOO.widget.Chart, {version: "2.7.0", build: "1799"});