diff --git a/DocService/ResourceService.ashx b/DocService/ResourceService.ashx index 25e6aa40..907157b0 100644 --- a/DocService/ResourceService.ashx +++ b/DocService/ResourceService.ashx @@ -58,9 +58,29 @@ public class ResourceService : IHttpAsyncHandler Storage oStorage = new Storage(); TaskResult oTaskResult = new TaskResult(); - string sPath = context.Request.Params["path"]; + string sPathOriginal = context.Request.Params["path"]; + string sPath = null; + if (null != sPathOriginal) + { + sPath = sPathOriginal.Replace("../", "").Replace("..\\", ""); + if (sPathOriginal != sPath) + { + _log.Error("Possible XSS attack:" + sPathOriginal); + } + } + string sOutputFilename = context.Request.Params["filename"]; - string sDeletePath = context.Request.Params["deletepath"]; + + string sDeletePathOriginal = context.Request.Params["deletepath"]; + string sDeletePath = null; + if (null != sDeletePathOriginal) + { + sDeletePath = sDeletePathOriginal.Replace("../", "").Replace("..\\", ""); + if (sDeletePathOriginal != sDeletePath) + { + _log.Error("Possible XSS attack:" + sDeletePathOriginal); + } + } if (string.IsNullOrEmpty(sOutputFilename)) { if (null != sPath) diff --git a/LICENSE.txt b/LICENSE.txt index dba13ed2..2def0e88 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -658,4 +658,4 @@ specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see -. +. \ No newline at end of file diff --git a/ONLYOFFICE Online Editors-OE-v2.5.0.exe b/ONLYOFFICE Online Editors-OE-v2.5.0.exe index 4f2df3e8..84d4d9dd 100644 Binary files a/ONLYOFFICE Online Editors-OE-v2.5.0.exe and b/ONLYOFFICE Online Editors-OE-v2.5.0.exe differ diff --git a/OfficeWeb/sdk/Common/Charts/css/ModalDialog.css b/OfficeWeb/sdk/Common/Charts/css/ModalDialog.css deleted file mode 100644 index cff82948..00000000 --- a/OfficeWeb/sdk/Common/Charts/css/ModalDialog.css +++ /dev/null @@ -1,75 +0,0 @@ - /** - * Modal Dialog - */ - .modalBg { - position: absolute; - top: 0px; - left: 0px; - filter: Alpha(Opacity=50); - -moz-opacity: 0.5; - background-color: #ddd; - visibility: hidden; - width: expression(document.body.clientWidth); - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight); - z-index: 100; - } - - .modalDialog { - position: absolute; - top: 0px; - left: 0px; - visibility: hidden; - z-index: 101; - background-color: white; - top: expression(document.body.clientHeight / 2 - this.offsetHeight / 2); - left: expression(document.body.clientWidth / 2 - this.offsetWidth / 2); - border: 1px solid #777; - border-top: 0; - padding: 20px; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - } - - .modalDialog .modalDialogHeader { - margin:0; - padding: 0px; - color: #333; - font-weight: bold; - background-color: #ccc; - border: 1px solid #989898; - position: absolute; - top: 0px; - left: -1px; - height: 7px; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-bottomright: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-bottom-right-radius: 0; - } - - .modalShadow { - position: absolute; - background-color: black; - top: 0px; - left: 0px; - z-index: 99; - top: expression(document.body.clientHeight / 2 - this.offsetHeight / 2); - left: expression(document.body.clientWidth / 2 - this.offsetWidth / 2); - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - opacity: 0.5; - } - - /** - * This is not part of the core Modal Dialog styles, instead it's just so that the dialog looks - * respectable. - */ - h4 { - font-family: Verdana, Arial; - padding-top: 10px; - } \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/css/common.css b/OfficeWeb/sdk/Common/Charts/css/common.css deleted file mode 100644 index 5a2cdecb..00000000 --- a/OfficeWeb/sdk/Common/Charts/css/common.css +++ /dev/null @@ -1,299 +0,0 @@ -@font-face { - font-family: Delicious; - src: url('/Delicious-Roman.otf') -} - -/** -* Various -*/ -body { - margin: 0px; -} - -a { - text-decoration: none; -} - -code { - background-color: #dedede; - border: 1px dashed #aaaaaa; - padding: 3px; - display: block; - font-family: Monospace; -} - - -/** -* Datagrid stuff -*/ -table.datagrid { - border-collapse: collapse; - margin-left: 30px; -} - -table.datagrid th { - background-color: #ccc; - border: 1px solid #aaa; - padding: 2px; -} - -table.datagrid tr { - background-color: #ddd; -} - -table.datagrid tr.oddrow { - background-color: #eee; -} - -table.datagrid td { - border: 1px solid #aaa; - padding: 3px; -} - - -/** -* Master div -*/ -.master { - font-family: Georgia; -} - - -/** -* Header section -*/ -.header { - margin-right: 10px; - letter-spacing: 2px; - background-image: url(/images/hdrbg.jpg); - margin-left: 10px; -} - -.header h1 { - margin-top: 0px; -} - -.tagline { - font-size: 8pt; - position: relative; - top: -15px; - left: 15px; - letter-spacing: 0px; -} - - -/** -* Top nav -*/ -.topnav { - color: white; - background-color: #314657; /* Old */ - background-color: #2D4B33; - padding: 1px; - padding-left: 10px; -} - -.topnav a { - color: white; -} - - -/** -* Left nav -*/ -.leftnav, -.searchbox { - width: 180px; - color: black; - background-color: #FF5A18; - margin-left: 5px; - margin-top: 10px; - padding: 10px; - padding-top: 0; - padding-bottom: 0; - padding: expression('10px'); - border: 1px solid #B33E11; -} - -.leftnav { - - box-shadow: 0 0 15px #aaa; - -moz-box-shadow: 0 0 15px #aaa; - -webkit-box-shadow: 0 0 15px #aaa; - - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - width: 180px; - float: left; - hmargin: 5px; -} - -.leftnav h4 { - border-bottom: 1px solid black; -} -.leftnav a { - color: black; -} - -.leftnav ul { - margin-left: -20px; - margin-left: expression('20px'); - list-style-type: square; -} - - -/** -* Main body section -*/ -.mainbody { - margin-left: 220px; -} - -.borderedTable table { - border-collapse: collapse; -} - -.borderedTable th { - background-color: #dddddd; - border: 1px solid #aaaaaa; - font-size: 70%; - padding-left: 3px; - padding-right: 3px; -} - -.borderedTable td { - vertical-align: top; - font-size: 70%; - border: 1px solid #dddddd; -} - -.newsitem { - margin-bottom: 25px; -} - -.newsitem h2, -.newsitem h1 { - display: inline; -} - -.newsitem .date { - font-size: 70%; -} - -p.firstLetter:first-letter { - font-size: 200%; - font-style: italic; - font-weight: bold; - float: left; - padding-right: 3px; -} - -.newsitem p.update { - background-color: #efefef; - border: 1px dashed black; - padding: 5px; -} - - -/** -* Comments -*/ -.comment { - padding: 5px; - margin-bottom: 20px; - font-size: 80%; - background-color: #efefef; - border: 1px dashed #cccccc; -} - -.comment .body { - margin-top: 5px; - padding-left: 7px; -} - -.comment .quoteLink { - text-align: right; - font-size: 90%; -} - - -/** -* Errors -*/ -.error { - color: red; - font-style: italic; -} - - -/** -* Copyright text -*/ -.copyright { - text-align: right; - font-size: 75%; -} - - -/** -* Admin page -*/ -.adminPage table { - font-family: Verdana; - font-size: 10pt; -} - -.adminPage th { - background-color: #dddddd; -} - - -/** -* Tools page -*/ -#toolsPage th, -#toolsPage td { -} - -#toolsPage th { - font-weight: bold; - text-align: right; - white-space: nowrap; - vertical-align: top; - background-color: #ffffcc; -} - -#toolsPage textarea { - height: 200px; - width: 800px; - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr=#ffffff, endColorstr=#ffffcc); -} - -#shortcuts th { - -} - -#shortcuts th { - text-align: left; - background-color: #ededed; - padding: 2px; -} - -/** -* Download header/footer -*/ -div#download pre, -div#download pre a { - -} - -/** -* Code -*/ -div.boxout, -pre.code { - border: 2px dashed gray; - padding: 3px; - background-color: #eee; -} \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/css/index.html b/OfficeWeb/sdk/Common/Charts/css/index.html deleted file mode 100644 index 2b4a17c9..00000000 --- a/OfficeWeb/sdk/Common/Charts/css/index.html +++ /dev/null @@ -1,2 +0,0 @@ - - .OfficeExcel_tooltip { - // ... - } - - - +---------------------------------------------------------------------------------------+ - o [12-07-2011] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [02-07-2011] The Tradar chart has been renamed to the Radar chart. This will make more identifiable. You WILL - need to update you code to the new name! - o [25-06-2011] The HBar default colors have changed. - o [18-06-2011] The Rose chart has undergone significant changes, now supporting a "stacked" Rose chart as well as - a "non-equi-angular" variant. It also now supports chart.colors.sequential property and - the default chart.strokestyle value has been changed to rgba(0,0,0,0.5). You may need to set the - chart.colors.sequential (to true) to maintain BC. - - +---------------------------------------------------------------------------------------+ - o [04-06-2011] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [04-06-2011] MAJOR BREAK: The chart.gutter property has been split into four properties: - o chart.gutter.left - o chart.gutter.right - o chart.gutter.top - o chart.gutter.bottom - This affects all graph types (except the LED chart) so rigorous testing will be necessary if - you choose to upgrade. - o [14-05-2011] If you're using chart.width/chart.height, please switch to the individual gutter settings. These - provide finer grained and more intuitive control over the gutters and certain things are done for you - automatically, like for example adjusting coordinates for tooltips and resizing. The chart.width and - chart.height will cease to function starting immediately. - o [02-04-2011] The default color for background bars on the Scatter has changed from white to transparent. This was - necessary to facilitate background images - - +---------------------------------------------------------------------------------------+ - o [26-03-2011] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [12-03-2011] The OfficeExcel.Clear() API function now clears to transparent, not white. If you wanted it to clear to white - you could call this function from the new onclear event: - - function myClear(obj) - { - obj.context.beginPath(); - obj.context.fillStyle = 'white'; - obj.context.fillRect(-10,-10,obj.canvas.width + 20, obj.canvas.height + 20); - obj.context.fill(); - } - - DO NOT simply use the OfficeExcel.Clear() function in the onclear event listener function, as you will create an - infinite loop. - - o [06-03-2011] The OfficeExcel.getSegment() method has been moved to be a part of both the Pie and Rose objects. This means - that if you use it you will have to change your code slightly. This change was necessary to facilitate - Pie chart exploded segments. This change will also help prevent bugs in this function in the future. - - +---------------------------------------------------------------------------------------+ - o [28-01-2011] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [22-01-2011] The OfficeExcel.Clear() function now uses a square 2,000 pixels wide & high - o [15-01-2011] The Gantt adjusting array (kept in the OfficeExcel registry) now uses associative/textual keys instead of numeric ones - o [08-01-2011] The default number of Line chart X tickmarks has been altered ever-so-slightly: Now if you don't have chart.hmargin - set then the X tickmarks will line up with the points on the chart. See the first example on the line chart test - page for an example: http://dev.OfficeExcel.net/tests/_line.html - o [08-01-2011] The custom OfficeExcel event onannotatestart has been renamed to onannotatebegin. The previous name will still work, - but will eventually be removed. - - +---------------------------------------------------------------------------------------+ - o [24-12-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [04-12-2010] chart.key.vpos is now silently converted to chart.key.position.y (note that these two properies behave slightly - differently - chart.key.position.y is an absolute coordinate). ALSO; the key has been rewritten, so check that - your graphs are working as you expect - o [04-12-2010] The HBar labels (from chart.labels.above) now have an extra property (chart.labels.above.decimals) which controls - how many decimals are shown. This defaults to 0, and as a result you may need to set this if you're expecting decimals. - - +---------------------------------------------------------------------------------------+ - o [27-11-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [20-11-2010] For the line/bar/scatter, when the X axis is at the bottom and there is a background bar with a - negative start (or it results in a negative end value), you now get a warning. - o [13-11-2010] All line chart labels are now shown, regardless of how many points on the line there are. - o [06-11-2010] The HBar and Scatter have had their scaled handling changed slightly - now if you specify a maximum Y value, - that is what is used. - o [06-11-2010] The API function OfficeExcel.getSCale(max, obj) now takes two arguments - the maximum value and the graph object. - - +---------------------------------------------------------------------------------------+ - o [30-10-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [30-10-2010] The Scatter chart can now only have 1/3/5 labels - o [30-10-2010] The Line chart can now only have 1/3/5 labels - o [23-10-2010] The Bar chart can now only have 1/3/5/10 labels - o [23-10-2010] The default for chart.scale.decimals has changed, as such you may need to specify this: - myScatter.Set('chart.scale.decimals', 0); - o [09-10-2010] Scatter chart ticksize has changed behaviour slightly, you therefore may need to alter it slightly. - - +---------------------------------------------------------------------------------------+ - o [25-09-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [18-09-2010] For IE9 compatibility purposes, the IE8 DirectX shadow has been removed from the ModalDialog. This only affects - MSIE8. The background is still semi-opaque. - o [18-09-2010] The common function OfficeExcel.isIE9() has changed to OfficeExcel.isIE9up(). The old one will continue to work, but - not indefinitely. - o [11-09-2010] The Odometer properties chart.units.pre and chart.units.post have now changed to chart.value.units.pre - and chart.value.units.post. The properties chart.units.post and chart.units.pre are now used for the main - labels. - o [04-09-2010] HBar and Pie charts have been moved to DOM2 event registration for tooltips - o [04-09-2010] The OfficeExcel.number_format() function has had its argument list changed - o [04-09-2010] Now that OfficeExcel is moving to DOM2 event handlers, tooltips will be incompatible with IE8 - - +---------------------------------------------------------------------------------------+ - o [28-08-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [28-08-2010] Removed option to have the labels on the outside of a Meter. Now they're always on the inside of the Meter - and there's always 11 of them (including zero) - o [14-08-2010] Changed the HBar property chart.strokecolor to chart.strokestyle - o [07-08-2010] The Odometer property chart.needle.thickness has been changed to chart.needle.width. Work has been done on the - needle head. - o [07-08-2010] Progress bar has now been split into two different graph types: - o HProgress - o VProgress - o [07-08-2010] Progress bar property chart.color is now chart.colors, and should be an array - o [07-08-2010] Changed default Bipolar colors to just one - green - - +---------------------------------------------------------------------------------------+ - o [31-07-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [17-07-2010] Stepped line charts and their tickmarks have been marginally altered. No final tickmark is now shown (it looks - odd being isolated) - o [17-07-2010] Changed the Odo chart.needle.style to chart.needle.color - o [17-07-2010] The Odo properties chart.start, chart.end and chart.value have all been changed to internal properties: - obj.start, obj.end and obj.value - o [09-07-2010] With the Odometer the old property chart.needle.style has been renamed to be chart.needle.color - o [09-07-2010] The Progress bar has had it's properties chart.max and chart.value changed to class properties, this means - that if you want to make use of these, you will now need to use myProgress.value and myProgress.max. - myProgress being the name of your graph object. - - +---------------------------------------------------------------------------------------+ - o [26-06-2010] | Stable release | - +---------------------------------------------------------------------------------------+ - - o [08-05-2010] The Rose charts "chart.labels" property is now different to the "chart.key" property - o [01-05-2010] The Donut chart is now a variant of the Pie chart (chart.variant = donut) - o [24-04-2010] The radar chart has been renamed to Rose. The library is now called OfficeExcel.rose.js and the constructor has - been renamed. It has also been prettied up marginally and labels have been added. - o [17-04-2010] All charts have had their property "chart.tooltip.effect" renamed to "chart.tooltips.effect". - The Scatter chart has also had its property "chart.tooltip.hotspot" renamed to "chart.tooltips.hotspot" - o [17-04-2010] Default chart.tooltips bar chart property has changed from an empty array to null. - o [17-04-2010] The OfficeExcel.common.js library has now been split into 5 separate files because it had - become far too large. You can read the new implementation details here: - http://www.OfficeExcel.net/docs/index.html#implementation - o [10-04-2010] The "coords" arrays (for each object) have been unified. Now you no longer need to take - into account the margins. What you get in the coords arrays are as they are used on the - graph. - - +---------------------------------------------------------------------------------------+ - o [27-03-2010] | Initial stable release | - +---------------------------------------------------------------------------------------+ - -
- Bookmark with delicious - Follow _OfficeExcel on Twitter - -
- - - -
- - -
- \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/.CHANGELOG.txt b/OfficeWeb/sdk/Common/Charts/docs/.CHANGELOG.txt deleted file mode 100644 index e7f84f21..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/.CHANGELOG.txt +++ /dev/null @@ -1,2030 +0,0 @@ - 13th January 2012 (STABLE) - ================= - o [DOCS] Added HOWTO for making a transition effect - o [GAUGE] The positioning of the titls has been tweaked slightly. You can now also override the positioning completely - with chart.title.top.pos and chart.title.bottom.pos. These are decimals (which are null by default) and are - multiplied with the radius to get the exact position. - o [VPROGRESS} Properties to individually control the side title have been added: - o chart.title.side.bold - o chart.title.side.font - o chart.title.side.size - o chart.title.side.color - [WEBSITE] Added RSS feed for releases - - 6th January 2012 - ================ - o [LINE] Fixed slight bug with negative/filled Line charts: http://dev.OfficeExcel.net/tests/line/negative_filled.html - o [LINE] Slight adjustment to the Trace effect - now the key is revealed as well as the lines. - o [MISC] Fixed "conflict" with user events and tooltips - o [MODALDIALOG] The ModalDialog has been altered so that it is ALWAYS (re)created when it is shown - ie it is no - longer cached once it has been created - - 30th December 2011 - ================== - o [DOCS] Documented the Bar chart Wave2 effect - o [GANTT] Y axis title is now bold by default - o [GAUGE] Added chart.centerpin.radius - o [GAUGE] Added chart.tickmarks.small - o [GAUGE] Added chart.tickmarks.big - o [GAUGE] Added chart.title.align (default is top) - o [GAUGE] Added chart.title.x - o [GAUGE] Added chart.title.y - o [MISC] The test area is undergoing a revamp - if you would like me to add your chart to it please email it to - me at the support address. Keep in mind that the chart should be self-contained, and that the actual data - is largely irrelevant (so replace sensitive data with junk data). Keep in mind that the test area is not private. - o [MISC] The two scale properties chart.scale.point and chart.scale.thousand have been synchronised across all chart libraries. - - 18th December 2011 - ================== - o [BAR] Added new background images properties: - o chart.background.image.stretch - o chart.background.image.x - o chart.background.image.y - o chart.background.image.align - o [DOCS] Added basic example of the new pseudo-events - o [DOCS] Lots of documentation updates - in particular with object methods - o [DOCS] Added HOWTO regarding the various linking methods - o [DOCS] Added HOWTO regarding showing images in your charts - o [DOCS] Documented all the new obj.getValue() methods - o [DOCS] The dynamic example (http://www.OfficeExcel.net/docs/dynamic.html) scroll speed has been slowed down. This was - done by simply increasing the number of data points shown from 100 to 250. - o [EFFECTS] Added an opposite effect of Reveal - Conceal. These two effects can be combined to make a transition effect. - o [LINE] Added new background images properties: - o chart.background.image.stretch - o chart.background.image.x - o chart.background.image.y - o chart.background.image.align - o [MISC] The getValue() methods can either take an event object as its argument or a two element array - of the coordinates to return the value for. - o [SCATTER] Added new background images properties: - o chart.background.image.stretch - o chart.background.image.x - o chart.background.image.y - o chart.background.image.align - - Happy Christmas! - - 12th December 2011 - ================== - o [BAR] Added a .getValue() method to the Bar chart - o [BAR] Added chart.numxticks - o [BIPOLAR] Added chart.events.onclick and chart.events.mousemove - o [FUNNEL] Added chart.events.mousemove and chart.events.click - o [GANTT] Autofit for the background grid now defaults to being on - o [GANTT] Antialiasing should now be a little better for this chart - o [GANTT] chart.events.click and chart.events.mousemove have been added - o [GANTT] The Gantt chart default for chart.tooltips has been changed to null. - o [GANTT] Added chart.labels.align - o [GANTT] Added chart.tooltips.event - o [GANTT] Added a Grow effect for the Gantt chart - OfficeExcel.Effects.Gantt.Grow(obj) - o [HBAR] The HBar now supports the chart.events.click and chart.events.mousemove properties - o [HBAR] The HBar now has a .getValue() method for retrieving the value at the mouse cursor - o [HPROGRESS] The HProgress now supports the chart.events.click and chart.events.mousemove properties - o [HPROGRESS] The HProgress now has a .getValue() method for retrieving the value at the mouse cursor - o [LINE] Added a .getValue method to the Line chart - o [LINE] If you use a larger than default font the line chart will now handle this - o [RADAR] The Radar chart labels are no longer linked to the number of data points - ie you could have 12 datapoints - but only 4 labels and the labels will be spaced equally around the Radar chart. The labels are also now - place at a fixed radius around the chart. - o [RADAR] Added chart.radius - allowing you to set the size of the Radar chart - o [RADAR] The Radar chart .getPoint() method no longer checks to see if there is an appropriate tooltip defined - o [RADAR] Added chart.events.onclick and chart.events.mousemove - o [RADAR] Added chart.accumulative. This allows "stacked" Radar charts - o [ROSE] Added Explode effect - o [ROSE] Added Implode effect - o [ROSE] Added chart.events.onclick and chart.events.mousemove - o [RSCATTER] Added chart.events.onclick and chart.events.mousemove - o [RSCATTER] The RScatter .getPoint() method no longer checks to see if there is an associated tooltip defined for a particular point. - o [SCATTER] Added chart.events.onclick and chart.events.mousemove - o [SCATTER] Added a .getValue() method to the Scatter chart - o [THERMOMETER] Added a .getBar method that can be used within generic event listener functions to determine if the - thermometer itself was clicked on - o [THERMOMETER] Added chart.events.click and chart.events.mousemove - o [THERMOMETER] Added .getValue method. This returns the value at the point of the click regardless of whether it's - over the bar or not. - o [VPROGRESS] Added chart.events.mousemove and chart.events.click - o [VPROGRESS] Added obj.getValue() method for getting the value when the chart is (for example) clicked on - o [VPROGRESS] Added chart.title.side - o [WATERFALL] Added chart.events.onclick and chart.events.mousemove - - 3rd December 2011 - ================= - o [BAR] Implemented chart.events.click and chart.events.mousemove - o [BAR] Fixed chart.labels.above text appearing too low when used in-conjunction with chart.variant=3d - o [EFFECTS] Implemented the wave2 effect, which utilises the requestAnimationFrame() and .bing() functions. Fallbacks are - provided so that this effect works with Opera and Safari. - o [LINE] Implemented chart.events.click and chart.events.mousemove - o [PIE] Implemented chart.events.click and chart.events.mousemove - o [PIE] When exploding segments they will now be drawn on top of the title - o [RADAR] The origin is now the "North" axis, not the "East" axis - o [RADAR] When all datasets have the same number of points you can now have a stacked radar chart using chart.accumulative - - 26th November 2011 (STABLE) - ================== - o [ADJUSTING] The Rose chart adjusting has been removed - o [DOCS] Added an example of financial data represented using the Scatter chart: - http://www.OfficeExcel.net/docs/financial.html - o [DOCS] Added an example of getting data from an XML file on the server - o [EFFECTS] The slide in and slideout have each had the argument used to stipulate the direction renamed: - OfficeExcel.Effects.jQuery.Slide.In(obj, {'from': 'right'}); - OfficeExcel.Effects.jQuery.Slide.Out(obj, {'to': left'}); - o [LED] Added more punctuation characters - o [SCATTER] chart.boxplot.width is now a SCALE value, not a PIXEL value. Therefore, if your chart.xmax value is 28 (for four - weeks say) 1 week would be represented by a value of 7, whereas before that would simply be 7 pixels. - - 17th November 2011 - ================== - o [KEY] Separated out the key functionality into its own file - OfficeExcel.common.key.js. If you use the key you will need to - include this file. If you dn't use the key this will save roughly 30k. - o [MISC] The charts libraries have a new technique that avoids you getting blurry lines that appear to be thicker than a - single pixel. This roughly affects roughly 12 of the charts libraries. - o [ZOOM] Added chart.zoom.mode.thumbnail.fixed that fixes the thumbnail zoom window in the top left of the canvas - - 12th November 2011 - ================== - o [DOCS] Added paragraph to miscellaneous docs regarding log scales. - o [DONUT] The Donut chart is now done correctly instead of being a big white hole in the center of the Pie. If you use the - Donut - check your charts, particularly if you use a coloured center as it is no longer coloured. If desired - though, you can still get a coloured center by utilising the ondraw custom event to draw a big white circle - that's half the radius in size. The shadow will now work correctly. For an example see here: - http://www.OfficeExcel.net/examples/donut.html - o [GAUGE] Added four new peoperties for controlling the colors: chart.border.inner - chart.border.outer - chart.centerpin.color - chart.needle.color - o [LINE] When tooltips are triggered by the mouse X position only, the cursor will now only change if it's actually - over the point. - o [MISC] IE7 is now supported with ExCanvas - o [MISC] The latest stable Chrome (released on 10th November 2011 appears to be back up to speed when using the - requestAnimationFrame() function - as such the Pie chart animation on the front page has been improved. - o [PIE] There is now a Pie chart Wave effect - o [PIE] IMPORTANT: The Pie chart .getSegment(e) method now returns angles measured in radians, not in degrees. Roughly, 1 radian = 57.29 - degrees (or 180/Math.PI ). - o [ROSE] IMPORTANT: The Rose chart .getSegment(e) method now returns angles measured in radians, not in degrees. Roughly, 1 radian = 57.29 - degrees (or 180/Math.PI ). - o [WEBSITE] There's now an example of the Pie chart RoundRobin and Implode effect on the front page of the website - - 4th November 2011 - ================= - o [BAR] Added the Bar chart Wave animation. It's smoothest in MSIE9+ and FF7+ - o [FUEL] Rewrote the Fuel chart Grow animation. It now "Grows" from the last position - not zero all the time. NB To get - rid of the flicker when using the Grow animation you must set chart.icon to null - o [FUNNEL] Fixed the Funnel chart tapering when it shouldn't in MSIE - o [HPROGRESS] Added the HProgress Grow animation - o [LINE] Lines are now restroked (if they're filled and accumulative) - o [VPROGRESS] Added the VProgress Grow effect - - 27th October 2011 - ================ - o [BAR] The bar now has support for chart.colors.sequential with grouped and stacked charts - o [MISC] Animations in Chrome 15 can be rather slower than Chrome 14. jQuery (ie CSS) based animations are unaffected, as are some - canvas based animations. - o [ROSE] The Rose chart Grow frame rate is now set at 60 frames over 1 second - - 20th October 2011 - ================= - o [BAR] Added chart.ymin - regular and grouped bar charts are supported - not stacked - o [LINE] Multiple filled Line charts now work with the Trace effect - o [METER] Tweaked the Grow animation. Test your charts before upgrading (if you use the Grow animation) - o [MISC] IMPORTANT: Default positioning for titles has changed - see .BC.txt file - o [PIE] Added chart.key.interactive - - 15th October 2011 - ================= - o [GAUGE} Added Grow effect. Like the Odo (now) it animates from the last reading, not zero all the time. - o [LINE] Added FoldToCenter effect - o [MISC] Converted crosshairs to use DOM2 event handling - o [MISC] Added: chart.crosshairs.vlines - chart.crosshairs.hlines - o [ODO] Changed Grow animation function so that it animates from the last reading - not constantly from zero - o [PIE] Added .Explode() method to pie chart for programmatically exploding segments - o [RADAR] Added Grow effect - o [SCATTER] Added chart.ylabels.inside - o [WATERFALL] Added Grow effect - - 11th October 2011 - ================= - o [NOTE] The Pie chart chart.segments array is being removed (probably November or December) - use obj.angles instead. - o [PIE] IMPORTANT: The Pie chart has been altered so that the start point is now the "north"axis. Please check your - charts - particularly if you use the Pie chart internals. If you want to stick with the older version of the - Pie chart - it's in the libraries/ folder named OfficeExcel.pie.js.old and will be there for a few releases. - You're highly recommended to use the newer version though as the old version will bew only kept for a few - months. - o [PIE] Added OfficeExcel.Effects.Pie.Implode animation - combining it with the RoundRobin animation looks good - o [ROSE] The Rose chart Grow animation also now gradually increases the angle of the segments as well as their size. See - this page for an example: http://www.OfficeExcel.net/examples/index.html Regular and stacked Rose charts are supported - - 8th October 2011 - ================ - o [HBAR] Added easing to the HBar grow effect - the effect is very subtle - o [PIE] Added RoundRobin effect - o [MISC] Added chart.title.font chart.title.xaxis.font chart.title.yaxis.font - chart.title.size chart.title.xaxis.size chart.title.yaxis.size - chart.title.bold chart.title.xaxis.bold chart.title.yaxis.bold - o [SCATTER] Added Scatter chart boxplot tooltips - - 4th October 2011 - ================ - o [LINE] Added Trace animation - o [WEBSITE] Added more testimonials - - 1st October 2011 - ================ - o [FUNNEL] Added chart.taper for Funnels that don't taper to a point - o [FUNNEL] Added chart.labels.sticks that shows indicator lines for the labels - o [GANTT] Added the ability to have multiple "events" per line. For an example see here: - http://www.OfficeExcel.net/examples/gantt.html - Note that if you start adding multiple events then the tooltips order may need attention - o [GAUGE] Added Gauge chart - another meter variant - o [LINE] Added chart.tooltips.hotspot.xonly. This makes the tooltips trigger by the X mouse position only - o [MISC] Not very noticable, but the snap tooltip effect now uses jQuery if it's available. - o [ODO] Note that Firefox 7 had issue with the gradient used in the Odometer border - so you may find that it has changed very - very slightly - o [PIE] Fixed a pie chart bug which presented itself when clicking canvas tags that had nothing to do with OfficeExcel - - 24th September 2011 - =================== - o [WEBSITE] Social icons updated - - 22nd September 2011 (STABLE) - =================== - o [DOCS] Documented how to retrieve just the PNG image from the canvas - o [LICENSE] Added PayPal donation button. If you're covered by the free license but still want to contribute to - help keep OfficeExcel going you now can. All donations are gratefully received. - o [METER] Meter chart title size is now always two points larger than chart.text.size - o [METER] Fixed little bug with Meter chart grow animation not respecting minimum value - o [MISC] STABLE release - o [SCATTER DOCS] Documented chart.line.linewidth - o [WEBSITE] Added testimonial from Cisco Ireland - - 18th September 2011 - =================== - o [LICENSE] If you want to buy multiple licenses (eg you're a web designer with multiple clients that you want - to get OfficeExcel licenses for), then there's now a bulk licenses option with the discount increasing - the more you buy. If you're interested in this then you can inquire about it by emailing - licensing@OfficeExcel.net - o [LINE] Filled line charts and the X axis at the top now works correctly - o [METER] Added Meter chart Grow effect - - 12th September 2011 - =================== - o [HBAR] chart.background.grid.autofit has been turned on by default. - o [LINE] Added chart.curvy and chart.curvy.factor. Curvy lines are NOT exact, and the inaccuracy increases with - the severity of the curve. chart.curvy.factor can be a decimal from 0 (not curvy) to 0.5 (quite curvy) - - 9th September 2011 - ================== - o [BAR] The background grid autofit has been turned on by default. The number of horizontal grid lines has been - changed to 5. - o [EFFECTS] Fade in now operates over a period of 0.5 seconds - o [LICENSE] Revamped the license page - this should make it clearer - o [LINE] Added UnfoldFromCenter() animation - o [LINE] The background grid autofit has been turned on by default. The number of horizontal grid lines has been - changed to 5. - o [ODO] Added Grow animation effect - o [PIE ZOOM] A change has been made to the Pie chart when using tooltips and the full canvas zoom - please test your charts - if you're upgrading and you use tooltips in conjunction with the zoom. - o [PIE] Fixed a Pie chart label/seperation bug where chart.exploded is a number - o [ROSE] Added Grow() animation. This only works with regular and stacked Rose charts. - o [SCATTER] You can now have an X scale. If you specify that the X axis should be scaled then you don't have to specify an - xmax - one will be calculated for you. It may not be what you want though - so you might have to specify the - xmax anyway. - o [SCATTER] Minor bug fixed when hiding the lest tick when the X axis is at the right - o [SCATTER] The background grid autofit has been turned on by default. The number of horizontal grid lines has been - changed to 5. - o [WATERFALL] Added ability to have the X axis in the center - o [WATERFALL] The Waterfall property chart.background.grid.autofit now defaults to true (instead of false) - o [ZOOM] Changed the frame rate for the full canvas zoom - - 30th August 2011 - ================ - o [LINE] Added chart.animation.unfold.initial - o [MISC] Support is now via email - support@OfficeExcel.net - not the forum - - 27th August 2011 (STABLE) - ================ - o [MISC] Stable release - - 25th August 2011 - ================ - o [WEBSITE] Misc website changes - - 22nd August 2011 - ================ - o [LINE] Added OfficeExcel.Effects.Line.Rise(obj) animation function. This is a nice effect made simple because of the - .Animate() function - o [LINE] A bug has been fixed for stepped line chart, but please be cautious when upgrading - - 20th August 2011 - ================ - o [MISC] Changed the OfficeExcel.Clear() method to use .clearRect() method - o [LINE] IMPORTANT Significant change to the way that filled multi-line charts are drawn. Formerly - the lines were stacked on top of each other. Normally this wasn't too much of an issue - unless you wanted semi-transparent colours. Because the lines were stacked on top of - each other the colors wouldn't be exactly right. This has now changed so you CAN now use - semi-transparent colors. - - As a result the order in which the lines are drawn has been changed, so whilst the data - will remain the same, the "stacking" order if the datasets may change. Also, if you use - an array of shadow colors, they may need reversing. - o [MISC] The download archive now works "out-of-the-box" with IE9. Formerly the DOCTYPE wasn't the first line - in the files so it choked. Only offline IE9 was affected. - o [MISC] Added showcase of requestAnimationFrame(): http://dev.OfficeExcel.net/tests/anim.html - - 13th August 2011 - ================ - o [BAR] Added chart.numyticks - o [HPROGRESS] Added .getBar method - o [HPROGRESS] Added chart.strokestyle - o [LINE] Added chart.numyticks - o [METER] Added chart.segment.radius.start which allows you to specify a start point for the green/yellow/red coloured segments - o [METER] Added chart.border - o [METER] Added chart.linewidth.segments (for the lines between the segments - o [METER] Added chart.labels (a boolean controlling whether the labels are shown or not) - o [METER] Added chart.needle.linewidth - o [METER] Added chart.needle.radius - o [METER] Added chart.needle.tail - o [PIE] Added Pie chart Grow effect - o [RADAR] Completely removed chart.tooltips.coords.adjust - o [RADAR] Added .getPoint(e) method - o [RADAR] Fixed a bug with the __dataset__ property that is added to tooltips - o [RADAR] The chart.colors property has changed to: ['red', 'green', 'blue'] - o [RADAR] Added chart.labels.specific - o [RSCATTER} Converted to use a .getPoint(e) method for tooltips - o [SCATTER} Completely removed chart.tooltips.coords.adjust - o [SCATTER] Added chart.numyticks - o [VPROGRESS] Added .getBar method - o [VPROGRESS] Added chart.strokestyle - o [WATERFALL] Added chart.tooltips.event - o [WATERFALL] Added .getBar(e) method for tooltips - - 10th August 2011 - ================ - o [ANIM] Revamped the animation page and added the OfficeExcel.Effects object. This allows you to add animation and wipes - to your OfficeExcel charts. - - 6th August 2011 - =============== - o [BAR LINE] Tooltips highlighting now works with combined bar/line charts - o [METER] Added chart.centery, chart.centery and chart.radius - o [METER] Added chart.colors.ranges - an alternative to the red/yellow/green areas - o [METER] Added chart.strokestyle - default is null - o [SCATTER] Added chart.boxplot.capped - this controls the horizontal lines at the end of boxplots - o [THERMOMETER] The thermometer now supports a scale with chart.scale.visible, chart.scale.decimals and chart.ylabels.count - o [TOOLTIPS] The internal function OfficeExcel.getTooltipText() has been renamed to OfficeExcel.getTooltipTextFromDIV() - o [WEBSITE] Added animation samples to front page and example index page - - 29th July 2011 (STABLE) - ============== - o [BAR] Added chart.noendxtick - o [BAR] Fixed a bug with specific labels vertical positioning with a center X axis - o [LINE] Documented chart.noendxtick - o [LINE] Added chart.tickmarks.linewidth - o [LINE] When using specific labels and a ymin, the first label is now placed where "0" would go - - 25th July 2011 - ============== - o [CONTEXT] Added onbeforecontextmenu OfficeExcel event - o [KEY] Noted Line chart interactive key - o [PIE] Shadow now works correctly with exploded segments - o [SCATTER] Added chart.labels.above, chart.labels.above.size and chart.labels.above.decimals to the Scatter chart - - - 20th July 2011 - ============== - o [BIPOLAR] Converted tooltips to use the new obj.getBar(e) method. - o [PIE] The option chart.exploded can now be a number, which is then applied to each segment (as well as the prior array) - o [PIE] Outlining now works with exploded segments - http://www.OfficeExcel.net/docs/you-dont-need-to-spend-a-lot-of-money.html - o [BAR] When adding a line chart on top of a bar chart, the following are no longer set. - If you want them you will need to set them yourself (the former values are also shown): - - line.Set('chart.noaxes', true); - line.Set('chart.background.barcolor1', 'rgba(0,0,0,0)'); - line.Set('chart.background.barcolor2', 'rgba(0,0,0,0)'); - line.Set('chart.background.grid', false); - line.Set('chart.ylabels', false); - - There are a few things that are still set for you: - - chart.gutter.top - chart.gutter.bottom - chart.gutter.left - chart.gutter.right - chart.ymax - - o [FUNNEL] Converted tooltips to use the new obj.getSegment(e) method. - o [LINE] The Line chart now has a .__index2__ property which can be used in your ontooltip event handlers. This is the index - in the individual array for a particular line. If you're not using multiple lines in your chart, this won't affect - you. - - 17th July 2011 - ============== - o [BAR] Added chart.colors.reverse for reversing the order in which colors are used (stacked bar charts only) - o [FUNNEL] Added a .getSegment(e) method - which greatly simplifies retrieving the segment that has - been clicked on (or the mouse is over etc). - o [LINE] Added chart.key.interactive - this allows you click on a key item and it will be highlighted on the chart - o [TOOLTIPS] Small fix to snap effect when you have multiple charts one one page, both with tooltips - o [TOOLTIPS] The default CSS has been altered for tooltips. This affects all chart types. The changes are: - o There is now no CSS border to the tooltip - o The toltip is now transparent a small amount (opacity=0.9) - o The tooltip shadow X & Y offsets are now zero - - 12th July 2011 - ============== - o [MISC] Stable release - - 11th July 2011 - ============== - o [WEBSITE] Website updates - - 10th July 2011 - ============== - o [CONTEXT] Added the registry variable: OfficeExcel.Registry.Get('chart.contextmenu').__shape__ - This is the underlying hotspot (eg bar/segment/point), if any, that was clicked on. - - Objects that have a .getXXX() method now also have a .getShape() method, which is - exactly the same, but can be used if you don't know what object type you have, - (since it's the same name across all object types). - - 8th July 2011 - ============= - o [DOCS] Documentation updates - o [COMMON] Fixed a slight bug when formatting negative numbers at 1,000 and over - o [METER] Added Meter options: chart.value.label - chart.value.text.decimals - chart.value.text.units.pre - chart.value.text.units.post - - 29th June 2011 - ============== - o [WEBSITE] Website changes - - 28th June 2011 - ============== - o [RADAR] The Tradar has been renamed to Radar - you WILL need to update your code slightly. - o [RADAR] Fixed a bug with tooltips and multiple datasets - o [TOOLTIPS] The 'snap' effect now snaps on the first view, moving in from the top left - see the front page line chart - for an example of its use. - - 25th June 2011 - ============== - o [LINE] "10 labels" with a chart.ymin value now works with X axis at the top and bottom - o [PIE] The chart.tooltips.coords.adjust property has been removed - o [ZOOM] Added ability to fire the full canvas zoom by just a click - no context menu - - 23rd June 2011 - ============== - o [LINE] The chart.tooltips.coords.adjust property has been removed - o [ROSE] The Rose chart getSegment() return value has changed. Instead of just one radius value, there are now two - radius values - the start and end values. This change was necessary to facilitate stacked Rose charts. - Subsequent values have "moved up one" in the array (ie what was index 3 is now 4, what was 4 is now 5 - and what was 5 is now 6) - o [SCATTER] The chart.tooltips.coords.adjust property has been removed - - 21st June 2011 - ============== - o [DONUT] Added chart.variant.donut.color for the center hole - o [HBAR] The default colors have changed - o [HBAR] Added sequential color support to grouped and stacked HBars - - 18th June 2011 - ============== - o [HBAR] Added chart.colors.sequential for regular hbars (not stacked or grouped) - o [HBAR] Converted to .getBar(e) method for tooltips - o [LINE] Added triangle and filledtriangle tickmark types - o [ODO] Added chart.green.solid and documented - o [ODO] Added chart.yellow.solid and documented - o [ODO] Added chart.red.solid and documented - o [ODO] Documented chart.green.color - o [ODO] Documented chart.yellow.color - o [ODO] Documented chart.red.color - o [PIE] Added chart.variant.donut.color - this controls the color of the hole - o [ROSE] Implemented stacked Rose chart (see below) - o [ROSE] Added chart.colors.sequential (which, if you upgrade, you need to set to true to maintain BC) - o [ROSE] When using tooltips, the highlight will now appear "over" the axis labels. This makes the - highlighted segment more identifiable. - o [ROSE] Tooltips can now be a single function, or an array of functions as well as an array of strings - o [ROSE] Added chart.variant - the value can be either null (for a normal or stacked Rose chart) or "non-equi-angular" for a - Rose chart that has unequal segment sizes. See an example here: - - http://dev.OfficeExcel.net/tests/2011-07-30/non-equi-angular_rose.html - - o [ROSE] Added chart.labels.offset - o [ROSE] Added chart.tooltips.event - o [SCATTER] Added in-graph labels to Scatter chart - - The Rose chart has undergone significant changes in order to facilitate stacked and non-equi-angular charts. - In particular, the color handling has changed, and as such you may need to specify chart.colors.sequential in - your chart configurtion to get the colors to behave as they used to. Changing the way colors behave brings the Rose chart - into line with other chart types. Also, the Rose chart .getSegment() return value has changed - now instead of just one radius - value, you get a start radius and end radius value. - - 7th June 1011 - ============= - o [LINE] Documented chart.filled.accumulative - o [WEBSITE] Removed redundant checks from graph libraries - - 4th June 2011 (STABLE) - ============= - o [MISC] Stable release - see .BC.txt, and look through this files entries since the last stable release (25-03-2011) - - 28th May 2011 - ============= - o [LINE] You may need to adjust your titles vertical positioning using chart.title.vpos - o [MISC] Added example of adding a subtitle to your graph - - 21st May 2011 - ============= - o [BIPOLAR] Tooltip handling has changed. If none is set for a particular bar, none will now be shown - o [COMMON] Check your graph titles - the vertical positioning has changed. To reposition you can - use chart.title.vpos - o [HBAR]The X axis title positioning may have changed slightly - if you use it you should check your title is as you expect - o [HBAR] chart.labels.above has been fixed in respect of drawing text in a stacked HBar for sections that it shouldn't do - o [HBAR] Fixed a very minor bug when the chart is redrawn (after being drawn once) and the scale wasn't correctly reset - o [LINE] This chart type may be particularly buggy because of the gutter changes - o [MISC] Individual gutters are now settable with all graph types - o [MISC] The settings chart.width and chart.height are now deprecated in favour of the new individual gutter settings - o [ODO] Added key - helpful for multiple pointers - o [RESIZE] Repositioning the resize handle is no longer necessary with the introduction of independent gutter settings. - Starting with the May release this setting should no longer be used. - o [SCATTER] Added an obj.getPoint(e) method which eases getting the point (if any) that is currently being hovered over - o [WATERFALL] Documented chart.scale.formatter - - Keep in mind that individual gutter settings and using chart.width/chart.height are not meant - to be used together - chart.width/chart.height will cease to be user facing properties and will - (starting this release) stop functioning and be removed completely. The addition of individual - gutter settings is a fundamental change so testing of your graphs is imperative. The - requirement of translating to reclaim lost space is reduced (if not eliminated - entirely) with the addition of these settings. - - 7th May 2011 - ============ - o [API] Added OfficeExcel.Reset() function, which both clears the canvas AND resets any .translate() that has been performed - o [INVOICE] Improved the appearance of the invoice - o [LINE] Added individual gutter settings: - chart.gutter.left - chart.gutter.right - chart.gutter.top - chart.gutter.bottom - Keep in mind that these settings are experimental currently. In particular they may cause dynamic features - not to work 100% correctly. - o [MODALDIALOG] Added an example of covering the scroll bars to the ModalDialog page - o [ODO] Kength of extra pointers is now supported, eg: odo.Set('chart.needle.extra', [[16, 'yellow', 50]]); - o [WATERFALL] Added this new chart type - o [WEBSITE] Changed pages to use uncompressed version of ExCanvas - now works offline - - 30th April 2011 - =============== - o [METER] Added chart.scale.decimals - default is 0 - - 9th April 2011 - ============== - o [BAR] Added support for chart.background.image - o [BAR] Added ability to have X axis at the top for entirely negative data sets, eg: - obj.Set('chart.xaxispos', 'top'); - o [LED] Added chart.width and chart.height. Also changed the sizing so now the letters should always fit the canvas size - o [LINE] Added support for chart.background.image - o [LINE] Added ability to have X axis at the top for entirely negative data sets, eg: - obj.Set('chart.xaxispos', 'top'); - o [MSIE] MSIE 8 now clears to white by default, not transparent - o [PIE] Added chart.tooltips.coords.adjust - o [PIE] Segment separation is now available as a tooltip highlight mode (exploded segments) - o [SCATTER] Added support for chart.background.image - o [SCATTER] Documented chart.ylabels.invert - o [THERMOMETER] Added adjusting - o [THERMOMETER] Added chart.text.color - o [THERMOMETER] Added chart.value.label, which allows to not display the label (true/false) - - 25th March 2011 (STABLE) - =============== - o [COMMON] The default for chart.key.halign is now null, by default the position for the - key depends on the position of the Y axis - o [COMMON] Changed chart.title.yaxis.align to chart.title.yaxis.position - o [MSIE] Positioning tweaks for IE9 final - - 20th March 2011 - =============== - o [LINE] Added workaround for Chrome bug when specifying different line widths for lines - o [MISC] Added chart.key.halign (when using graph mode) which can be left or right (default) - o [TRADAR] Fixed tradar and interactive adjusting (thrown out by the addition of multiple datasets) - - 12th March 2011 - =============== - o [COMMON] The OfficeExcel.Clear() function has been changed to a transparent colour to transparent instead of white. Also, - a new event has been added called onclear which fires when the function is called. You can use this function - to draw a white (or a color of your choice) rectangle over the canvas. Effectively clearing the canvas to - your color, for example: - - function myClear(obj) - { - obj.context.beginPath(); - obj.context.fillStyle = 'white'; - obj.context.fillRect(-10,-10,obj.canvas.width + 20, obj.canvas.height + 20); - obj.context.fill(); - } - - DO NOT simply use the OfficeExcel.Clear() function in the onclear event listener function, as you will create an - infinite loop. - o [COMMON] Added chart.title.yaxis.align to the common background code. This is usable by: - - Bar - - Line - - Scatter - o [LINE] A bug has been fixed that is apparent when you're using chart.outofbounds and have null values. If you have this - combination, please test your graphs! An example is here: http://dev.OfficeExcel.net/tests/null.html - o [ODO] Added chart.border.color1 - o [ODO] Added chart.border.color2 - o [ODO] Added chart.border.color3 - o [ROSE] Corrected a bug in the Rose chart, introduced in the prior beta - o [METER] Added the following tickmark controls to the Meter chart: - chart.tickmarks.small.num - chart.tickmarks.big.num - chart.tickmarks.small.color - chart.tickmarks.big.color - o [RESIZING] Tooltips for the icons are now limited to Google Chrome and MSIE because of reliability issues. The cursor will - still change in all browsers though - o [THERMOMETER] Added chart.title.side - o [TRADAR] Added multiple dataset support. eg: http://www.OfficeExcel.net/examples/tradar.html - o [TRADAR] Added key - - 5th March 2011 - ============== - o [COMMON] The default color for by the OfficeExcel.Clear() function has been changed to transparent. - o [COMMON] The OfficeExcel.getSegment() function has been moved to be a method of both the Rose and the Pie charts, instead of part - of the common object. ie Supposing your object is called myObj, it will now be myObj.getSegment(e), instead of - OfficeExcel.getSegment(e) - o [INVOICE] Added Paypal button to invoice - o [PIE] Added exploded segments. http://www.OfficeExcel.net/docs/animation_segments.html Certain Pie chart options won't work - with this feature - o [THERMOMETER] Added initial implementation of this visual variation on the progress bar - - 26th February 2011 (STABLE) - ================== - [MISC] Stable release - - 19th February 2011 - ================== - o [BAR] Added chart.noaxes - chart.noxaxis - chart.noyaxis - o [KEY] Added new test example of an interactive key. This feature isn't finished yet and has limited use cases. - o [WEBSITE] Added facebook sharing icon - - 14th February 2011 - ================== - o [DOCS] Added example of persistent annotations - o [HBAR] Updated docs - - 11th February 2011 - ================== - o [HBAR] Added chart.xmin - o [MISC] Added chart.width and chart.height properties to remaining libraries - o [LINE] Fixed slight bug in line when multiple lines are specified as one argument - o [SCATTER] Added chart.labels.specific.align which allows you to center align labels - - 28th January 2011 (STABLE) - ================= - o [BAR] Added chart.background.grid.autofit.align, for making the grid lines line up with the ticks. Any chart.hmargin will - throw the alignment out. - o [DOCS] Added note to animation page about CSS vs animation - o [DOCS] Documented the custom event removall functions - o [LINE] Corrected a bug with null tickmarks and the mouseover event - o [LINE] Added chart.background.grid.autofit.align, for making the grid lines line up with the ticks. Any chart.hmargin will - throw the alignment out. - o [RESIZING] If the canvas has a CSS "border:", it is now preserved after a reset - - 22nd January 2011 - ================= - o [MISC] You can now revert the canvas back to tranparency with the OfficeExcel.Clear() function by specifying "transparent" as the color. - - 15th January 2011 - ================= - o [ADJUSTING] Converted the Gantt chart state array (which is kept in the registry) to textual keys instead of numeric ones. - o [API] Fixed slight bug with OfficeExcel.array_max which presented itself in a few rare instances - o [ANNOTATE] Converted annotating to DOM2 event registration - o [FUNNEL] Added chart.highlight.stroke and chart.highlight.fill - o [GANTT] You can now resize Gantt chart events (as well as move) by placing your cursor in the right five pixels of the appropriate - bar - o [HBAR] Added chart.xlabels - o [MISC] Added chart.highlight.fill and chart.highlight.stroke to all pertinent graph types - o [PROGRESS] Fully converted the progress bars to DOM2 - o [RESIZING] Converted to DOM2 for event registration - o [SCATTER] Added chart.ylabels.inverted - - 8th January 2011 - ================ - o [ADJUSTING] Converted all adjusting event handlers to DOM2 - o [API] Added OfficeExcel.GetWidth() and OfficeExcel.GetHeight() - o [BAR] Added chart.labels.above.angle, which can be from -90 to 90 (degrees) - o [BAR] Added chart.colors.sequential for regular bar charts (not stacked, not grouped, but the applicable variants work) - o [DOCS] Documentation updates - o [EVENTS] New events have been added - onresizebegin, onresizeend, onannotatecolor, onannotateclear - o [GANTT] Added seventh (border color) and eigth (linewidth) possible options to event options. - o [GANTT] Gantt chart is now adjustable. You can drag the existing events about. Altering the extent of an event to follow. - - 1st January 2011 - ================ - o [ADJUSTING] Added onadjustbegin and onadjustend events - o [API] OfficeExcel.RemoveCustomEventListener() has been added - o [API] OfficeExcel.RemoveAllCustomEventListeners() has been added. This function can optionally take a canvas id to limit the clearing to) - o [BAR] The bar chart now supports the chart.height and chart.width properties - o [BAR] The Bar chart now supports the chart.tooltips.highlight property - o [BAR] Added chart.highlight.fill (which is the fill color used for tooltips highlighting) - o [BAR] Added support for adjusting when the X axis is in the center - o [EVENTS] Added examples of each event to the events page - o [HBAR] This can now have tooltips triggered by the onmousemove event when using chart.tooltips.event - o [HPROGRESS] Added chart.tickmarks.zerostart for having tickmarks/labels start at zero - o [BAR] Added chart.width and chart.height - o [LINE] Added chart.width and chart.height - o [LINE] Added chart.outofbounds support to adjusting (for the line chart) - o [LINE] Added support for adjusting when the X axis is in the center - o [MISC] Text function, when multiple carriage returns are in use, has been fixed - o [ODO] Added border (the color of which is configurable with chart.needle.triangle.border) to the triangle pointer - o [RESIZING] Added chart.resize.handle.adjust - o [RESIZING] Added chart.resize.handle.background - o [SCATTER} Added chart.width and chart.height - o [SKELETON] Added chart.width and chart.height default properties (defaulting to null) - o [VPROGRESS] Added the chart.width and chart.height properties - o [VPROGRESS] Added adjusting to this chart type - o [VPROGRESS] Added an example to the VProgress example page (http://www.OfficeExcel.net/examples/vprogress.html) showing - a key in graph mode. There's an example of gutter mode for the HProgress on the this test page - -NB Different font sizes in charts for X/Y labels is now no longer going to be added since it is no longer - necessary with the new chart.width and chart.height properties. - - 24th December 2010 (STABLE) - ================== - o [ANNOTATING] Annotating has been changed to allow annotating to occur in the gutter - - 18th December 2010 - ================== - o [MSIE] MSIE 9 now uses the double click event to trigger the context menu - o [ZOOM] Added a note about making the zoom in thumdnail mode circular: - http://www.OfficeExcel.net/docs/zoom.html#thumbnail - - 11th December 2010 - ================== - o [API] Added pointer, in the docs, for how to add text to your charts - o [BAR] The Bar chart now converts null values to zero - o [BAR] You can now specify a textual scale with chart.ylabels.specific - o [GANTT] Fixed background bars when specifying an xmin - o [HPROGRESS] Labels can now be on top of the bar as well as the bottom - o [LINE] You can now specify a textual scale with chart.ylabels.specific - o [MISC] Added the OfficeExcel.SetConfig() function - http://www.OfficeExcel.net/docs/setconfig.html - o [MISC] Added chart.title.background to graph types that use a title - o [PIE] Added chart.highlight.style.2d.color - default is a semi-transparent white color - o [PIE] Added chart.tooltips.event - o [SCATTER] Crosshairs readout now works when the X axis is in the center - - 4th December 2010 - ================= - o [GANTT] Added chart.xmin (default is 0) - o [HBAR] Added chart.labels.above.decimals, defaulting to 0. You may need to set this to the number of desired decimals - if you're expecting decimals - o [LICENSING] If you prefer you can now use PayPal instead of Google Checkout to buy an OfficeExcel license: - http://www.OfficeExcel.net/docs/licensing.html#paypal - o [LINE] Fixed a bug with null points still showing tooltips - o [MISC] The key handling has been rewritten. There is now a documentation page about keys: - http://www.OfficeExcel.net/docs/keys.html - o [MISC] Added default key properties to all relevant graph types - the key has been completely rewritten and as such, - you should check your graphs are as you expect. You may neeed to slightly adjust your key coordinates for example. - o [SCATTER] Added option to have vertical bars (much like the horizontal bars option) - o [SKELETON] Added more default properties - o [VPROGRESS] You can now position the labels on the left of the chart instead of the (default) right. - - 27th November 2010 (STABLE) - ================== - o [BAR] When showing 10 Y labels, chart.scale.decimals is respected - o [DOCS] Add an example showing dynamic updating - o [DOCS] Added animation example using jQuery - o [LINE] When showing 10 Y labels, chart.scale.decimals is respected - o [MISC] Improved the jQuery animation example - o [MISC] Removed the "functions as colors" option - this may re-added at a later date - o [SCATTER] When showing 10 Y labels, chart.scale.decimals is respected - o [SKEL] Added lots more default default properties and functionality that common OfficeExcel functionality - uses, for example: chart.resizable. - - 20th November 2010 - ================== - o [API] Documented OfficeExcel.background.Draw(). - o [DOCS] Added note to AJAX section about types - o [DOCS] Added skeleton object which can be used to ease creating new graph types - o [DOCS] Added note to misc docs about debugging your graphs - o [LINE] Fixed line chart tooltips as separate arguments - o [MISC] Minor adjustments to placement and borders - o [MISC] For the line/bar/scatter, when the X axis is at the bottom and there is a background bar with a - negative start (or it results in a negative end value), you now get a warning. - o [MISC] Added animation example using jQuery - o [MSIE] Changed instances of document.all to OfficeExcel.isIE8() - o [RESIZING] Tweaked the positioning a little, so now nothing should move when you resize a canvas - o [SKEL] Added a skeleton file, which can be used as a base when creating new OfficeExcel libraries. - - 13th November 2010 - ================== - o [API] Added OfficeExcel.array_shift() function (removes an element from the beginning of an array) - o [LINE] Added chart.labels.above and chart.labels.above.size (default is 8) - o [LINE] All chart labels are now shown, regardless of how many points on the line there are. - o [LINE] Sets of line points can now be given as one big multi-dimensional array. This may make it easier to use in AJAX, eg: - http://dev.OfficeExcel.net/tests/line.arguments.html - o [LINE] In Google Chrome, the shadow fix is applied by default. An option exists to enable you to turn this off: chart.chromefix - In a few rare cases you will need to turn off shadow blurring (chart.shadow.blur=0) - o [MISC] Added more options for in-graph labels. See http://www.OfficeExcel.net/docs/ingraph.html - o [MISC] Added note about AJAX and types - o [VPROGRESS] Added chart.tooltips.coords.adjust - o [VPROGRESS] Added chart.min - o [VPROGRESS] Added chart.labels.count, chart.min, chart.scale.decimals - - 6th November 2010 - ================= - o [API] OfficeExcel.getScale() now takes the graph object as the second argument - o [BAR] Added chart.labels.above.decimals, defaulting to 0 - o [BAR] Added chart.labels.above.size, which if specified is used as the font size. An example of this and the above change is - here: http://dev.OfficeExcel.net/tests/above.bar.html - o [BIPOLAR] Added chart.gutter.center, which controls the space where the labels are - O [BIPOLAR] Added chart.scale.round - o [DOCS] Added note to API docs about references available - o [HBAR] Added chart.scale.decimals - o [HBAR] Added chart.scale.round - o [HPROGRESS] Added chart.min, for specifying a minimum value and chart.scale.decimals - o [LINE] Y labels can once again be 1/3/5/10 - o [LINE] Added chart.scale.round - o [LINE] chart.outofbounds is now usable in conjunction with chart.ymax - o [LINE] Added chart.chromefix - o [RESIZE] Resize now sets the placeholder DIVs 'position' CSS value as inline-block, thus reducing page re-organisation - o [ROSE] Added chart.scale.decimals - o [ROSE] Added chart.ymax - o [ROSE] Added chart.ymin (There's an example here: http://dev.OfficeExcel.net/tests/rose.ymin.html - o [RSCATTER] Added chart.scale.decimals // If you use the Rscatter, please test this with your graph(s) - o [RSCATTER] Added chart.scale.round // If you use the Rscatter, please test this with your graph(s) - o [RSCATTER] Added chart.ymin // If you use the Rscatter, please test this with your graph(s) - o [SCATTER] Y labels can once again be 1/3/5/10 - o [SCATTER] Added chart.scale.decimals - o [SCATTER] Added chart.scale.round - o [SCATTER] Scatter chart, translating and crosshairs now work when you tell OfficeExcel how you've translated using - chart.tooltips.coords.adjust - o [SCALE] Added chart.scale.round to: bar, bi-polar, line, rscatter, rose, scatter, tradar This means that scales produced are - rounded up, producing rounder values - o [SCALE] Re-added 10 Y labels to Line/Scatter. This may be best used In conjunction with chart.scale.round - o [TRADAR] Added chart.scale.round - - 30th October 2010 (STABLE) - ================= - o [DOCS] The combination example has been changed and extended. It now shows Pie charts in the tooltips, - which can be clicked on. - o [DOCS] Added note about using OfficeExcel.showPNG() without a context menu. - o [DOCS] OfficeExcel.showPNG() has had it's parameter list changed: http://www.OfficeExcel.net/docs/api.html - o [API] Added fix to crosshairs when coordinates are used in conjunction with an X minimum value - - - 23rd October 2010 - ================= - - Important: - The Line (and Scatter chart) chart have been PARTIALLY REVERTED, meaning that the number of labels is again a - choice between 1/3/5. The option to have 10 labels will be re-added, but for positive charts only, and - probably for scales with maximum values over 10. - - o [API] The OfficeExcel.showPNG() function can now accept the canvas to use as an (optional) argument, - allowing you to use the OfficeExcel.showPNG() function with an image, eg: - http://www.OfficeExcel.net/examples/tradar.html (1st graph) - o [BAR] Bar chart can now only have 1/3/5/10 labels - o [GANTT] Borders are now a little thinner (and less blurry) - o [KEY] Rounded key corners now lives behind an option: chart.key.rounded (default is false), also documented this - o [KEY] Filled keys now only cover the key with one layer of color - so transparency works better - o [PNG] URL is now selected by default - o [SCATTER] Box plot coords bug has been corrected - o [SCATTER] The default for chart.scale.decimals has been changed fr0m 0 (zero) to null. You may need to set this now - with: myScatter.Set('chart.scale.decimals', 0); - - 16th October 2010 - ================= - o [LINE] Y axis can now have an arbitrary number of labels: http://dev.OfficeExcel.net/tests/ymin.html - o [LINE] Made addition so that in Chrome a 1px linewidth is changed to 1.01 - o [MISC] Corners on the key (in graph mode) are now curvy - o [MISC] OfficeExcel.showPNG() now shows the data: URL to the image and makes it easy to copy it to the clipboard - - 9th October 2010 - ================ - o [LINE] Changed decimal handling - you may need to specify this: myLine.Set('chart.scale.decimals', 0); - o [LINE] Added chart.outofbounds (default is false) - o [LINE] Added obj.getPoint(e) method which simplifies getting the pertinent point on the line - chart in events (eg the onmousemove event, and now the Line chart uses it) - o [LINE] Line charts can now have custom tickmarks - o [SCATTER] Added facility for custom tickmarks - o [WEBSITE] Fixed favicon path - - 1st October 2010 - ================ - - In October, 25% of all license fees will be donated to Unicef - the International charity for children - - o [BAR] Added .getBar() method. This allows you to easily get the focused/selected bar. There is an example usage here: - o [DOCS] Documentation is no longer dynamic - o [FUNNEL] Shadows can now go upwards (ie any x/y offset is feasible) - o [FUNNEL] Converted this chart type to DOM2 for tooltips - o [GANTT] This chart has been moved to DOM2 for tooltips - o [HPROGRESS] This chart has been moved to DOM2 for tooltips - o [MISC] Colors can now be functions as well as well as strings/gradients. These colors are resolved once, at the start - of the .Draw() method - o [PIE] Documented method .getSegment(). Used for getting the pertinent - segment when the canvas is clicked on (for example), http://www.OfficeExcel.net/docs/pie.html#available.methods - o [ROSE] This chart has been moved to DOM2 for tooltips - o [ROSE] Documented method .getSegment(). Used for getting the pertinent - segment when the canvas is clicked on (for example), http://www.OfficeExcel.net/docs/rose.html#available.methods - o [RSCATTER] This chart has been moved to DOM2 for tooltips - o [SCATTER] This chart has been moved to DOM2 for tooltips - o [SCATTER] Added new properties: chart.yaxispos - chart.xaxis - chart.noendxtick - o [TOOLTIPS] Fixed a tooltip bug that probably only presented itself on the bar chart example page - o [TRADAR] Added chart.tooltips.highlight (default is true) - o [TRADAR] This chart has been moved to DOM2 for tooltips - o [VPROGRESS] This chart has been moved to DOM2 for tooltips - o [XML] Removed XML documentation - - 25th September 2010 (STABLE) - =================== - o [DOCS] Fleshed out the integration example - http://www.OfficeExcel.net/docs/index.html#mysql - o [DOCS] Added note to docs about line chart obj.original_data - - 18th September 2010 - =================== - o [ANNOTATE] Added onannotatestart and onannotateend events - o [CONTEXT] Fixed submenu offset in MSIE 9 - o [DOCS] Added MySQL integration example to integration docs - o [DOCS] Documented how to use a dynamically created canvas with ExCanvas - o [MODALDIALOG] Removed MSIE 8 DirectX shadow from ModalDialog - o [MODALDIALOG] Better MSIE 9 compatibility - o [PIE] Fixed Pie chart sticks for Chrome 6 - o [TOOLTIPS] If Y position is less than 0, tooltips are now shown below the cursor to mitigate this - o [WEBSITE] Added social networking icons to all pages - o [WEBSITE] "Preload" social networking icons - - 11th September 2010 - =================== - o [API] Updated docs for OfficeExcel.Redraw() slightly - o [LINE] Added chart.toltips.highlight - o [MISC] Updated the combined bar/line example - o [ODO] The chart.units.pre and chart.units.post properties have changed to chart.value.units.pre and chart.value.units.post. - The chart.units.pre and chart.units.post properties have changed functionally. - o [ODO] Added chart.needle.extra to allow you to specify extra needles. - o [RSCATTER] Added chart.toltips.highlight - o [SCATTER] Added chart.toltips.highlight - o [SCATTER] Added coordinates readout: chart.crosshairs.coords - chart.crosshairs.coords.fixed - chart.crosshairs.coords.fadeout - chart.crosshairs.coords.labels.x - chart.crosshairs.coords.labels.y - Example: http://dev.OfficeExcel.net/tests/crosshairs.html - o [ZOOM] Much improved the smoothness of the indicator box when in area mode - see http://www.OfficeExcel.net/docs/zoom.html - for an example of area mode - - 4th September 2010 - ================== - o [API] Changed OfficeExcel.number_format() functions arguments - o [API] Added OfficeExcel.getGutterSuggest() function, which is a suggestion based on the left labels (only) - for the chart.gutter setting. - o [API] Added OfficeExcel.showPNG() function, which makes it easy to get images of graphs. This is designed to be - used in conjunction with the context menu, and is therfore defined in the OfficeExcel.common.context.js file. - There's documentation about it here: http://www.OfficeExcel.net/docs/png.html - o [BAR] Added key shadow control - o [BAR] Added chart.scale.point and chart.scale.decimal - o [BIPOLAR] Added chart.scale.point and chart.scale.decimal - o [FUNNEL] Added key shadow control - o [HBAR] Moved to DOM 2 event handler functions - o [HBAR] Added chart.scale.point and chart.scale.decimal - o [LINE] Added key shadow control - o [LINE] Added warning about Chrome 6 shadow bug - o [LINE] Added chart.noyaxis - o [LINE] Added chart.scale.point and chart.scale.decimal - o [MISC] Added OfficeExcel.getGutterSuggest(). See the misc documentation for more detail - o [MSIE] Now that OfficeExcel is moving to DOM2, tooltips on graph libraries that have been changed will not function in MSIE8. - The graphs will still be shown, however tooltips will not function. MSIE9 will still work. - o [ODO] Pointer is now more pointy - o [PIE] Moved to DOM 2 event handler functions - o [ROSE] Added key shadow control - o [RSCATTER] Added key shadow control - o [SCATTER] Added chart.tooltips.coords.adjust - o [SCATTER] Added key shadow control - o [SCATTER] Added chart.scale.point and chart.scale.decimal - o [TRADAR] Added key shadow control - o [WEBSITE] Added code to async page that demonstrates the difference more - - 28th August 2010 - ================ - o [API] Updated the API docs a little with the correct data properties for some graph types - o [DOCS] Added information about AJAX requests to performance section - o [DOCS] Added information about the DOMContentLoaded event to the docs. - o [LINE] Fixed problem with chart.ylabels = false - o [METER] Added arrow head to the Meter - o [METER] Removed outer labels - o [METER] Increased number of labels to 11 - o [MSIE] A few small tweaks to the palette, the scatter chart, the context menu, and tooltips - o [ODO] A few fixes for the Odometer in Chrome 6, and a few minor enhancements to the appearance. - o [WEBSITE] Live site now uses images.OfficeExcel.net for the index page ** REVERTED ** - o [WEBSITE] Social networking icons are now combined into one image. - - 21st August 2010 - ================ - o [HBAR] Added chart.units.ingraph (for when your units are quite long) - o [MISC] Fixed various bugs in circular charts with Chrome 6 - o [MISC] Added note to front page about suitability for Chrome extensions - o [MSIE] Lots more fixes for MSIE 9 - - 14th August 2010 - ================ - o [BAR] Added chart.tooltips.coords.adjust which allows you to adjust tooltip coordinates when you translate - o [HBAR] HBar shadow is now "unified", so you can have an upwards shadow with a large offset and it still looks OK - o [HBAR] "chart.labels.abovebar" are now left aligned if they would go off the end of the canvas - o [HBAR] Fixed a bug with chart.strokecolor - renamed to chart.strokestyle - o [LINE] Added chart.tooltips.coords.adjust (for when you translate() first) - o [LINE] Tweaked filled/stepped line charts - stepped line charts show trailing line again - o [LINE] Tickmarks, as well as a string, can now also be an array of tickmark styles, eg: - http://dev.OfficeExcel.net/tests/test3.html - o [LINE] Added chart.ylabels.invert - o [MISC] You can now specify in-graph labels like this: - line4.Set('chart.labels.ingraph', [6,'July', 3, 'November']); - If you have a lot ofempty spaces, this will help. - o [MISC] Added type property(=common) to common objects - o [ODO] Improved the appearance of the Odometer border - o [SCATTER] Tickmarks are no longer drawn when the ticks are boxplots - o [SCATTER] Added chart.xmin (upgrade cautiously) - o [SCATTER] Boxplots are now usable when the X axis is in the center - - o [NOTE] Chrome 6 appears to have an issue with canvas shadows. Other browsers are fine. A workaround has been added to the - Line chart library, however it won't be a solution for all cases. In these cases, turn off shadow blurring. - - 7th August 2010 - =============== - o [BAR] Changed this graph type over to the DOM2 .addEventListener() for tooltips - o [BAR] Bar chart can now have an arbitrary number of labels - o [BAR] Added chart.ylabels.inside - o [BAR] Labels can now be at any angle - o [BIPOLAR] Changed the default colors to just one - green - o [EVENTS] Added more events: - o onmodaldialog - o onresize - o onadjust - o onannotate - o [HPROGRESS] Multiple segments are now supported - O [HPROGRESS] Added the ability to configure the number of inner tickmarks - o [LINE] Labels can now be at any angle - o [LINE] Changed this graph type to use the DOM2 .addEventListener() for tooltips - o [MISC] Added isOfficeExcel property to common objects - o [MISC] Added chart.title.hpos to all graph libraries - o [MODALDIALOG] Added onmodaldialog event - o [ODO] Outer shadow is now configurable - o [ODO] Inner shadow is now configurable - o [PROGRESS] This has now been split into the HProgress and VProgress - o [SCATTER] Labels can now be at any angle - o [TOOLTIPS] Added contract effect, similar to expand but in reverse - o [TRADAR] Background grid now matches RScatter in terms of width etc - o [VPROGRESS] Multiple segments are now supported - o [VPROGRESS] Added the ability to configure the number of inner tickmarks - - o [NOTE] Upgrading to the new H/VProgress should be done cautiously as they have undergone significant alterations - - 31st July 2010 - ============== - o [MISC] Stable release - o [DOCS] Added CSS class: OfficeExcel_palette - o [DOCS] Added simple example AJAX function to integration documentation: - http://www.OfficeExcel.net/docs/index.html#integration - o [ZOOM] Fixed a fade-in bug with full canvas zoom - - 24th July 2010 - ============== - o [LINE] This chart can now have text at any angle. Other graph types to follow - o [MISC] The minify script now accepts multiple arguments (filenames), - eg. ./minify file1 file2 file3 ... - - 17th July 2010 - ============== - o [BAR] Abovebar labels in GROUPED charts are now formatted - o [BIPOLAR] Moved this to use addeventListener() for events - this is a test case - o [EVENTS] Renamed the OfficeExcel functions OfficeExcel.AddEventListener() and OfficeExcel.FireEvent() - to OfficeExcel..AddCustomEventListener() and OfficeExcel.FireCustomEvent() - o [EVENTS] Added onbeforedraw event which fires at the start of the .Draw() function - o [EVENTS] Added onzoom event to all types of zoom. See docs for details - o [HBAR] Added formatting to above bar labels - o [HBAR] Fixed grouped HBars with shadows going upwards (partially) - o [ODO] Changed a few internal properties. Read more in the docs/.BC.txt file - o [ODO] Changed chart.needle.style to chart.needle.color - o [RSCATTER] Updated test script - o [TRADAR] Added chart.labels.axes - defaults to "nsew" - o [TRADAR] Added chart.ymax - o [BIPOLAR] Implemented chart.xtickinterval. If you specify this, X tickmark spacing is totally down to this setting - o [MISC] Added chart.tooltips.override (see tooltips docs for details) - - 9th July 2010 - ============= - o [API] Added __index__ to tooltip DIVs, which corresponds to the original tooltips array. If you're not using an array of strings - for your tooltips, this is not pertinent - o [API] The OfficeExcel.Tooltip() function now accepts an extra parameter - the index of the tooltip - o [MISC] Introduced event support. There are currently just three events - ontooltip - which naturally fires when - a tooltip is shown, oncontextmenu - which fires when the OfficeExcel context menu is shown and ondraw - which - fires when the .Draw() method is called.. More information is available here: - http://www.OfficeExcel.net/docs/events.html - o [MISC] Added snap tooltip effect for graph types where the tooltips are triggered using the onmousemove event, - ie Line, Rscatter, Scatter and the Tradar - o [MISC] MooTools compatibility fix - o [MISC] Added obj.isOfficeExcel boolean to all graph objects. This is documented on the misc docs page (docs/misc.html) - o [MSIE] MSIE9 compatibility work - o [ODO] You can now use textual labels instead of numbers, eg. N/S/E/W (using chart.labels) - o [ODO] Added chart.zerostart option determining whether the top label is zero or the end value - o [ODO] Fixed a pointer bug - o [ODO] Fixed a rounding issue and added chart.scale.decimals (default is 0) - o [ODO] Colors can now be configured with: chart.green.color, chart.yellow.color, chart.red.color - o [PROGRESS] Changed a few internal properties. Read more in the docs/.BC.txt file - o [TRADAR] Added background diagonal lines (going from the center outwards) - - - 26th June 2010 - ============== - o Stable release - - 18th June 2010 - ============== - o [BAR] Documented grid properties: chart.background.grid.autofit, chart.background.grid.autofit.numhlines, chart.background.grid.autofit.numvlines - o [DOCS] Documentation pages have been reorganised and a contents list added to each page - o [GANTT] Documented grid properties: chart.background.grid.autofit, chart.background.grid.autofit.numhlines, chart.background.grid.autofit.numvlines - o [HBAR] Documented grid properties: chart.background.grid.autofit, chart.background.grid.autofit.numhlines, chart.background.grid.autofit.numvlines - o [LINE] Documented grid properties: chart.background.grid.autofit, chart.background.grid.autofit.numhlines, chart.background.grid.autofit.numvlines - o [SCATTER] Documented grid properties: chart.background.grid.autofit, chart.background.grid.autofit.numhlines, chart.background.grid.autofit.numvlines - o [WEBSITE] Added warning about MSIE versions less than 8 - - 5th June 2010 - ============= - o [HBAR] Added the following properties: chart.title.xaxis - chart.title.yaxis - chart.title.xaxis.pos - chart.title.yaxis.pos - o [ROSE] Slightly increased the area recognised to initiate resizing the Rose (ie the size of the hotspot) - o [TRADAR] Added adjusting to the TRadar - - 29th May 2010 - ============= - o [BAR] Added adjusting - o [ODO] Added gray border effect - o [ODO] Added chart.tickmarks.highlight - o [PROGRESS] Added adjusting - o [ROSE] Added adjusting - o [SCATTER] Added chart.ymin - - 22nd May 2010 - ============= - o [LINE] Added interactive adjustments - - 15th May 2010 - ============= - o [API] Updated the .getSegment() for use with the Rose chart and Donut variant charts - o [API] Added OfficeExcel.array_pad() function - o [BAR] You can now have grouped bar charts with shadows going to the left - o [LINE] Linewidth can now, as well as being a single number, be an array of numbers, one for each line - o [LINE] You can now have labels on the inside of the Y axis as opposed to having them in the gutter - o [MISC] ModalDialog and zoom background DIVs are now much better in regards to page coverage (the semi-opaque background) - o [MISC] Removed OfficeExcel.getPageWidth() and OfficeExcel.getPageHeight() functions - o [MISC] You can now pass a color as the second argument to OfficeExcel.Redraw() which it will use - o [MISC] Resizing the window when zoomed no longer hides the zoom - o [ODO] Little bit of work on pointers and MSIE compatibility - o [ODO] Added "digital" readout option, as shown on the example page - o [PROGRESS] This chart type can now have an "in-bar" indicator - o [PIE] Converted this chart to use OfficeExcel.getSegment() for tooltips - o [ROSE] You can now set the strokestyle - o [ROSE] Converted this chart to use OfficeExcel.getSegment() for tooltips - o [SCATTER] Added chart.line.linewidth and, as with the line, it can be either a number or an array of numbers - o [SCATTER] chart.line.stepped can now, as well as simply true or false, be an array of booleans. This allows you to have - multiple lines, some stepped, some not. - - 8th May 2010 - ============ - o [MISC] You can now have multi-line labels by using the text "\r\n" in your label (without the quotes) - o [MISC] Resizing a graph no longer affects the page layout - o [ROSE] Added labels to this chart - o [ROSE] The Rose chart origin is now the "north" axis - o [WEBSITE] Re-arranged the front page - o [WEBSITE] Removed a lot of examples from the website and made the whole thing a little more streamlined - o [ZOOM] Once visible, you can now double click a zoomed area to expand it to a full size zoom. You can see - this on the line graph on the front page. - - 1st May 2010 - ============ - o [DONUT] This is no longer a seperate class, but now a variant of the Pie chart (chart.variant = donut) - o [MISC] Added note about copying the text in tooltips using Firefox - o [ROSE] Tooltip highlighted area is now "under" the labels (as opposed to "over") - - 25th April 2010 - =============== - o [MISC] Separated out resizing functionality into it's own file - OfficeExcel.common.resizing.js This further reduces the size of - OfficeExcel.common.core.js - o [MISC] In area zoom, you can now left-drag to move the zoom itself around, and right-drag to move the zoomed canvas around inside - the zoom - o [MISC] Added OfficeExcel_zoomed_area CSS class - o [MISC] Added chart.crosshairs.linewidth to bar, line and scatter - o [MISC] You can now have a single level of submenu items with the context menu - o [RADAR] This chart has been renamed to Rose and the appearance enhanced - - 17th April 2010 - =============== - o [BAR] This chart type can now use the onmousemove event for tooltips instead of the onmousedown - o [DOCS] Added tooltips documentation page - this explains tooltips and how you can specify them. There are now 4 methods available. - o [MISC] The zoomed area is now draggable once visible - o [MISC] Split out OfficeExcel.common.js into separate files, consisting of: - o OfficeExcel.common.core.js - o OfficeExcel.common.annotate.js - o OfficeExcel.common.context.js - o OfficeExcel.common.tooltips.js - o OfficeExcel.common.zoom.js - If you don't use any of the interactive features, the core common library is now roughly half the size. See - http://www.OfficeExcel.net/docs/index.html#implementation for details of the new way to implement OfficeExcel - o [MISC] You can now specify the CSS class that tooltips use (using chart.tooltips.css.class). If you have multiple - graphs on one page and want the tooltips to appear differently, this is how to do it - o [MISC] New tooltip effect - "none". Which, as the name implies, doesn't fade or expand. - - 10th April 2010 - =============== - o [MISC] Cleaned up each graphs coords array. If you use the coords arrays, you may need to adjust your numbers slightly. - The new coords may be off for you by one or two chart.margin (it can be hmargin or vmargin depending on your graph type) - o [MISC] Added details of backwards compatibility breaks - o [MISC] New zoom mode - area. You can see this on the front page line graph and on the zoom documentation page - o [MISC] Added resizing capability. Will not work with other dynamic features (except the context menu) - - 3rd April 2010 - ============== - o [BAR] Added new grid properties: chart.background.grid.autofit - chart.background.grid.autofit.numhlines - chart.background.grid.autofit.numvlines - o [BAR] Added chart.title.xaxis - o [BAR] Added chart.title.yaxis - o [BAR] Added chart.title.xaxis.pos - o [BAR] Added chart.title.yaxis.pos - o [GANTT] Adjusted the background grid, adding the required default properties - o [GANTT] Added new grid properties: chart.background.grid.autofit - chart.background.grid.autofit.numhlines - chart.background.grid.autofit.numvlines - o [HBAR] Added new grid properties: chart.background.grid.autofit - chart.background.grid.autofit.numhlines - chart.background.grid.autofit.numvlines - o [LINE] Multiple shadow colors are now facilitated (see example on front page) - o [LINE] Added new grid properties: chart.background.grid.autofit - chart.background.grid.autofit.numhlines - chart.background.grid.autofit.numvlines - o [LINE] Added chart.title.xaxis - o [LINE] Added chart.title.yaxis - o [LINE] Added chart.title.xaxis.pos - o [LINE] Added chart.title.yaxis.pos - o [LINE] Added chart.backdrop, chart.backdrop.alpha and chart.backdrop.size - o [LINE] Shadow color can now be an array of shadow colors. ie. A different one for each line - o [MISC] Added note about installing your own event handlers to misc documentation page - o [MISC] Added OfficeExcel.SetShadow() - a shortcut function for setting the shadow - o [ODO] Added option to not draw the pointer tail - o [ODO] Added chart.needle.type option. It can be "pointer" (default) or "triangle". - o [PROGRESS] Added chart.margin - o [PROGRESS] Added inner tickmarks (chart.tickmarks.inner) - o [PROGRESS] Made examples a bit better - o [SCATTER] Connecting lines can now be stepped (chart.line.stepped) - o [SCATTER] You can now specify the exact X point at which an X label is drawn - o [SCATTER] Added new grid properties: chart.background.grid.autofit - chart.background.grid.autofit.numhlines - chart.background.grid.autofit.numvlines - o [SCATTER] Added chart.title.xaxis - o [SCATTER] Added chart.title.yaxis - o [SCATTER] Added chart.title.xaxis.pos - o [SCATTER] Added chart.title.yaxis.pos - - -+------------------------------------------------------------------------------------------------------------+ -| STABLE RELEASE - 27th March 2010 | -+------------------------------------------------------------------------------------------------------------+ - - - 27th March 2010 - =============== - o [MISC] Just tweaks - nothing major - - 20th March 2010 - =============== - o [MISC] Reverted dark background color for zoom back to the lighter one - o [MODALDIALOG] Reverted the dark background color back to the lighter one - o [METER] Added more feint tickmarks - o [METER] Labels are now angled. This will be an option in the future - o [ODO] Added more feint tickmarks - o [ODO] Labels are now angled. This will be an option in the future - o [ODO] Significant changes to this see the docs page - http://www.OfficeExcel.net/docs/odo.html - - 13th March 2010 - =============== - o [MISC] Removed curvy corner from context menu - o [WEBSITE] Added Google Buzz social networking icon - o [MODALDIALOG] Darkened the background a little. You can set this back if you wish by using the ModalDialog_dialog CSS class - - 6th March 2010 - ============== - o [METER] Documented shadow properties - o [MISC] Added OfficeExcel.getPageWidth() which returns the page width, accommodating browser differences - o [MISC] Added OfficeExcel.getPageHeight() which returns the page height, accommodating browser differences - o [MODALDIALOG] Increased the radius of the corners (ie they're more rounded now) - o [MODALDIALOG] Documented the ModalDialog CSS classes and also added miscellaneous documentation - o [MSIE] Added context menu to the MSIE example - - 27th February 2010 - ================== - o [API] Added information about the coords array. - o [API] Added a little information about dynamically updating your graphs - o [MISC] Zoom in canvas mode now has a dark background option - chart.zoom.background - can be true or false and defaults to true - Note: If you use the full canvas zoom, this will affect you - if you don't like it, you will need to turn it off - o [MISC] Added OfficeExcel_zoomed_canvas CSS class. Also tweaked the default CSS for the two types of zoom - o [MISC] Tweaked the animation example - - 20th February 2010 - ================== - o [DOCS] Added reasonable caching strategy - o [DOCS] Expanded the API docs regarding the data properties - o [LINE] Removed chart.border property. You should use CSS on your canvas element instead. - o [LINE] Added chart.ymin property - o [LINE] Tickmarks are no longer drawn if the tick is outside the Y scale range - o [METER] Added shadow - o [WEBSITE] Removed most tables from the website - o [WEBSITE] Fixed the issue with the front page graphs, Google Chrome and missing text. This was done by NOT using - asynchronous processing. - - 9th February 2010 - ================= - o [PIE] Fixed pie chart sticks with athick white border - o [PIE] Added chart.labels.sticks.color - o [DOCS] Added link anchors to documentation pages, eg: http://www.OfficeExcel.net/docs/bar.html#chart.labels - - 7th February 2010 - ================= - o [BAR] Added ability to specify number of Y labels - 1, 3 or 5 (the default). - o [LINE] Added ability to specify number of Y labels - 1, 3 or 5 (the default). - o [LINE] Added a little missing documentation - o [LINE] Small fix to MSIE arrow style tickmarks - o [MISC] Optimisations to all chart libraries - o [MISC] Added OfficeExcel_zoom_window CSS class - the front page uses it if you want an example - o [SCATTER] Added ability to specify number of Y labels - 1, 3 or 5 (the default). - o [SCATTER] Added a little missing documentation - - 30th January 2010 - ================= - o [BAR] Performance tweaks. - o [DOCS] Made note about using tables for layout and how it can impact negatively on graph speed. - o [DOCS] Documented Pie chart label sticks. - o [LINE] Performance tweaks. - o [MISC] Opera (10.5) now supports the canvas text and shadow APIs - - 23rd January 2010 - ================= - o [LINE] Fix to arrow style tickmarks - o [MISC] Very minor change to tooltips and event handling - o [SCATTER] Added diamond shape tickmarks - - 16th January 2010 - ================= - o [BAR] Documented chart.ylabels - o [CONTEXT] Context menus are now positioned correctly when you specify a DOCTYPE in MSIE - o [LINE] Added and documented chart.ylabels - o [MODAL DIALOG] This is now completely static (when scrolling) in all browsers (Chrome, FF, MSIE, Safari, Opera), (MSIE requires that - you use a doctype. - o [ODO] Improved MSIE support (spurious circles are no longer drawn) - - 9th January 2010 - ================ - o [BAR] Added glass variant - o [BAR] Added sketch variant - o [DOCS] Documented getCanvasXY() function - o [MISC] Links now work in tooltips - o [MISC] Added standard box-shadow: CSS property where necessary - o [MISC] Slight border-radius change to context menu - o [PIE] Added small (optional) label sticks - o [PROGRESS] Added indicator arrows - - 2nd January 2010 - ================ - o [METER] Added this as a new chart type - o [MISC] More optimisations for Meter, Line and Bar charts - o [TRADAR] Added tooltips - o [TRADAR] Added ability to specify offsetx and offsety for labels - - 19th December 2009 - ================== - o [BAR] Added support for MSIE shadows. Shadow blurring is not available though - o [BAR] Fixed dot chart colours not showing correctly in MSIE - o [BIPOLAR] Added support for MSIE shadows. Shadow blurring is not available though - o [FUNNEL] Optimised this chart type a little - o [FUNNEL] Added support for MSIE shadows. Shadow blurring is not available though - o [LINE] Added support for MSIE shadows. Shadow blurring is not available though - o [MISC] The context menu for Safari, Opera and Firefox Mac is now triggered by a double click (left mouse button). - o [MSIE] Tooltips now work (albeit a little unreliably), but this browser is very slow at showing them. Using a doctype will - cause them to be ou of position. - o [PIE] Added support for MSIE shadows. Shadow blurring is not available though - o [PROGRESS] Added support for MSIE shadows. Shadow blurring is not available though - - 12th December 2009 - ================== - o [MSIE] Microsoft Internet Explorer is now supported in a limited fashion. You can see it in action here: - http://www.OfficeExcel.net/docs/msie.html This is not using Google Chrome Frame. - o [TRADAR] Rewrote so that it works with MSIE. This rewrite means that tooltips will be feasible (I'm yet to add them) - o [WEBSITE] Significant reorganisation of website - - 5th December 2009 - ================= - o [API] Added and documented OfficeExcel.Async() function, which can be used to help speed up your pages. There's a page which details it: - http://www.OfficeExcel.net/docs/async.html - o [MISC] Removed text support for Opera. The graphs are still displayed, albeit without text - o [MISC] Changed to object detection in place of specific browser detection for older browsers. This means more - browsers are accounted for. - o [MISC] Added OfficeExcel.getSegment() function, which returns the applicable segment information - (x, y, radius, startAngle, endAngle) - o [SCATTER] Added ability to do Barplots using the Scatter chart. - o [SCATTER] Can now specify the scatter to not display tick marks (be specifying the tickmark as null) - - 28th November 2009 - ================== - o [DOCS] Added OfficeExcel.HideContext() to API documentation. - o [MISC] Simplified logic for showing the context menu. Please test your browser on the website before upgrading as this may - cause regressions. - o [MISC] Fixed slight oddity for zoom which resulted in a small zoom thumbnail - o [MISC] The OfficeExcel website now works with Google Chrome Frame. NB: If you're having a similar problem, ensure the META - tag is in the first 1Kb of the page. - o [MISC] Achieved a degree of Opera compatibility. Please bear in mind that Opera does not yet support the canvas text - or shadow APIs so do not expect to see any shadows on your graphs. Text is simulated however, so the graphs - are still usable in some circumstances however. Also bear in mind that Opera support is buggy. - - 20th November 2009 - ================== - o [MISC] Added new mode for zoom - thumbnail This shows a zoom thumbnail (you must set chart.zoom.mode to thumbnail) instead of - zooming the entire canvas. The line graph on the front page shows an example of it. - o [MISC] Context menu in Mac Firefox is now attached to the left mouse button instead of the right - o [NOTE] Annotations are now persistent in Chrome (dev channel releases at the moment) and Chrome Frame - - 14th November 2009 - ================== - o [ALL] Finished zoom function - o [PIE] Work on linewidth and line color - o [MISC] Changed Safari to use left click for context menu - should elimate the temperamentality - - 8th November 2009 - ================= - o [ALL] Added zoom functionality (This is not finished yet) - o [API] Corrected this regarding graph data - o [MISC] Added OfficeExcel.ClearAnnotations() to API documentation. NB: This function is called when you call OfficeExcel.Clear() - - 31st October 2009 - ================= - o [DOCS] Correct the docs regarding text sizes - o [PIE] Miscellaneous fixes - o [RADAR] Changed to be left aligned - - 25th October 2009 - ================= - o [ALL] Added property: chart.text.font - o [ALL] Added property: chart.text.color - o [ALL] Changed from pixels to points for font sizes (you may need to reduce your font sizes slightly). Default is now 10pt - o [DONUT] Added ability to set key as being in gutter - o [DONUT] Added chart.align for left/center/right aligning the chart - o [PIE] Added chart.align for left/center/right aligning the chart - - 17th October 2009 - ================= - o [BAR] Added new option: chart.axis.color - o [Bipolar] Added new option: chart.axis.color - o [DOCS] Automated generation of API (properties) documentation - o [HBAR] Added new option: chart.axis.color - o [LINE] Added new option: chart.noxaxis - o [LINE] Added new option: chart.axis.color - o [LINE] Reduced default X/Y shadow offset - o [LINE] Added new option: chart.noendtick - useful for when you're generating line charts with Y axes on both sides - o [MISC] Changed "Combining..." page to illustrate combining two line charts - o [MISC] Added XML documentation - o [MISC] Added performance note about combining libraries - o [SCATTER] Added new option: chart.axis.color - - 10th October 2009 - ================= - o [BAR] Added chart.background.grid.hlines, chart.background.grid.chart.background.grid.vlines and chart.background.grid.border - o [BAR] Changed chart.labels.abovebar to chart.labels.above - o [BAR] Added chart.labels.above to stacked bar charts - o [BIPOLAR] Fixed using chart.xmax - o [BIPOLAR] Added chart.scale.decimals - o [HBAR] Added chart.background.grid.hlines, chart.background.grid.chart.background.grid.vlines and chart.background.grid.border - o [HBAR] Added chart.labels.above. Not technically "above" the bar (not at all), but it's so named for API compatibility - o [HBAR] Added chart.labels.above to stacked chart - o [LINE] Added chart.background.grid.hlines, chart.background.grid.chart.background.grid.vlines and chart.background.grid.border - o [PIE] Miscellaeous work - o [SCATTER] Added chart.background.grid.hlines, chart.background.grid.chart.background.grid.vlines and chart.background.grid.border - o [WEBSITE] Added sharing buttons - - 3rd October 2009 - ================ - o [ALL] Charts now clean up events if tooltips are not installed. This means that if tooltips are not being used - the onmousemove/onclick events (depending on the graph library) are reset to null. - o [BAR] 3D effect now works with background grid and bars - o [DOCS] Added API documentation (replaces working.html) - o [MISC] Changed various graphs default background bar colors to white - O [MISC] Removed array_range() function - unused - o [LINE] More (general) work - o [LINE] chart.fillstyle can now be an array as well as a string - o [LINE] Added 3D variant to line chart. - o [MISC] Added minified library archive - - 19th September 2009 - =================== - o [ALL] Added new option - chart.title.color - to all graph types (except the LED) - o [LINE] Slight modification to filled line charts and the (stroke) colour. - o [LINE] Changed stepped line chart so last vertical line is not drawn - o [LINE] Changed the look (for the better) of filled line charts and thick lines - o [LINE] Added option - chart.axesontop - useful in a minority of cases; causes the axes to be - redrawn after the graph - o [LINE] Added "chart.filled.range" option. Used to compare the range/difference between two sets of data. - o [MISC] Fixed negative horizontal bars - o [LINE] Fixed problem with null arguments - o [LINE] Filled line charts now work a little better with negative values - o [PROGRESS] Added chart.tickmarks.color - o [PROGRESS] Added chart.text.color - - 6th September 2009 - ================== - o [ALL] Fixed libraries to work with Prototype.js - o [ALL] Added chart.title.vpos allowing you override and specify the position of the title. This should be a - decimal from 0 to 1. By default it's not used - o [BAR] Can now have Y axis labels in right hand gutter - o [LINE] Can now have Y axis labels in right hand gutter - o [COMMON] Fixed scale generation bug when maximum value is zero (ie all of your values are zero) - - 22nd August 2009 - ================ - o [MISC] Optimisations on various graph libraries - o [MISC] Very minor albeit better HTML5 compliance - o [LINE] You can now specify the Y axis position - left (default) or right - - 8th August 2009 - =============== - o [BAR] Added 3D effect to regular, grouped and stacked charts - o [GANTT] Can now specify background grid width - o [LED] The text is now stripped of right-most whitespace - - 25th July 2009 - ============== - o [MISC] Stop using $() function for better compatibility with outside libraries - o [SCATTER] Support supplying multiple datasets as one big array instead of multiple arrays - o [ALL] Changed all graph types to "new OfficeExcel.xxx()" format - - 3rd July 2009 - ============= - o [DOCS] Misc updates - o [DOCS] Fixed docs regarding default gutter size - o [LINE] Handle null values better - o [LINE] Documented optional different fill colour - o [MISC] Added caching enhancements - o [MISC] Slight change to FixEventObject() so offsetX and offsetY are available in Firefox - o [SCATTER] Allow multiple datasets. Effect is only visible when lines are shown - o [SCATTER] Key can now be shown for multiple lines - - 20th June 2009 - ============== - o [ALL] Code optimisations - o [ALL] Annotations are now persistent in browsers that support HTML5 DOM storage (currently Firefox 3.5 and Safari 4) - o [BAR] Added ability to specify labels above bars on single and grouped bar charts - o [SCATTER] Added ability to show connecting line - - 6th June 2009 - ============= - o [ALL] On graphs that support tooltips, you can now have context menus at the same time as tooltips - o [MISC] Fixes to hiding palette in Chrome - o [MISC] Fixed a palette resizing bug - o [MISC] Changed the number of frames for expand and fade tooltip effects from 5 to 10 - looks a little smoother - o [MISC] Fixed a minor scale bug - o [MISC] Changed name of ShowPalette() function to OfficeExcel.Showpalette() - o [PIE] Fixed minor pie chart bugs with mouse cursor - - 23rd May 2009 - ============= - o [ALL] Documented context menu - o [ALL] Added annotations - useful to highlight interactively, and added example to front page line chart - o [BAR] Added pyramid chart variant - o [BAR] Added arrow chart variant - o [BAR] Added crosshairs - o [FUNNEL] Added tooltips - o [LINE] Added crosshairs - o [LINE] Can now have a context menu at the same time as tooltips - o [MISC] Added annotations mini colour palette - o [SCATTER] Added crosshairs - o [SCATTER] Fixed bug where pre/post units were not being shown - o [SCATTER] Can now have a context menu at the same time as tooltips - - 9th May 2009 - ============ - o [BAR] Can now better control the shadow - o [BAR] Now ymax is exactly that which is used - o [BAR] You can now control the number of decimals that are used - o [BIPOLAR] Added shadow - o [HBAR] Can now better control the shadow - o [HBAR] Added tooltipcapability - o [PIE] Can now better control the shadow - o [LINE] Can now better control the shadow - o [LINE] Reversed order of arguments to the constructor - ie the data - so they are uniform with things like labels and tooltips - o [LINE] Can now have a fill colour that's different to the line colour (see the last example on the lines example page) - o [LINE] Added arrow style tickmarks (filled and not) - look best with a linewidth of 1 or 2 - o [LINE] Number of labels is now independent of number of datapoints, as are number of X tickmarks - The second to last two line chart examples show this in action - o [LINE] Added an interesting example showing off the new independence of labels, datapoints and tickmarks. The ninth - line example (the sin/cos/tan curves) has 361 datapoints but only 5 labels - 361 labels would be a bit much. - o [LINE] Line chart no longer draws in the gutter (see this in action by looking at the above tangent curve example) - o [PROGRESS] Brought shadow into line with the rest of the graphs - o [PROGRESS] Tidied this up a little - o [PROGRESS] Added tooltip capability - o [RADAR] Added tooltip capability - o [DOCS] Added small note about canvas and accessibility - o [MISC] Fixed a few HTML warnings - o [MISC] Cleaned up CSS warnings - o [MISC] Updated license - o [MISC] Slight tweaks to context menu: Specifying a null callback now means that that menu item - will not trigger the rollover effect - o [MISC] Fixed a scale bug where the top value is 5.xxx - o [WEBSITE] Made the line graph and pie chart on the front page a little more interactive - o [WEBSITE] Added a funnel chart to the front page - o [FUNNEL] Added horizontal alignment for labels - - 25th April 1009 - =============== - o [MISC] Changed to .zip format for archive instead of .tar.gz - easier to work with - o [MISC] Fixed issue with "expand" type tooltips & timers - o [MISC] Unified default gutter setting (25px) - o [MISC] Made shadows all point the same way across all graphs - o [MISC] Fixed horizontal background bars so that specifying a value greater than the ymax (or less than the negative ymax) - uses the ymax value instead - o [MISC] ModalDialog fixes for width and height settings on various browsers and DOM modes - o [MISC] Scale is now generated more accurately for *really* tiny values - o [LINE] Performance enhancements regarding scale generation - - 11th April 2009 - =============== - o [MISC] Slight aleration to improve "grow" option of tooltips. Instead of starting at the top and growing downwards, it now - starts in the center and grows outward in all directions - o [MISC] Changed "grow" to "expand" for tooltips - o [ODO] Documented ability to turn off the pointer end - o [DONUT] Added ring-in-ring effect, enabling multiple datasets - o [DONUT] Added option to use in-graph key instead of labels - o [LINE] Changed "tick" style tickmarks to "halftick". "tick" now gives a fullheight tickmark, and also added "endtick" - which gives a full height tick mark at the ends of the lines - o [MISC] Added doctype to all pages and fixed modaldialog accordingly - o [MISC] CSS and DTD fixes across the site - o [MISC] ModalDialog fixes - o [MISC] Add type attribute back to SCRIPT tags - needed for DTD compliance - o [HBAR] Added new graph type - Horizontal Bar chart - - 28th March 2009 - =============== - o [BAR] Added dot chart capability - o [BAR] When mouse is over a hotspot, cursor now changes - o [PIE] When mouse is over a hotspot, cursor now changes - o [LINE] When mouse is over a hotspot, cursor now changes - o [GANTT] When mouse is over a hotspot, cursor now changes - o [DONUT] When mouse is over a hotspot, cursor now changes - o [SCATTER] When mouse is over a hotspot, cursor now changes - o [MISC] Added new effect for tooltips. So now you can have "fade" (default) or "grow" - o [MISC] Added drop shadow to context menu - o [MISC] Resolved Chrome color, shadow and gradient bugs - o [DOCS] Added short section about suggested library layout - o [WEBSITE] Always now show two download links - - 14th March 2009 - =============== - o o------------------------------------------------------------------------------------------------------------------o - | IMPORTANT ! | - | Every single one of the property names has been changed to be a little more unified. The new format is now | - | "chart.xxx" where xxx is the actual name. Some of the names have been changed completely, eg. "chart.text.size", | - | which was formerly "textheight", whilst others only marginally. This was necessary to bring some semblance of | - | uniformity to the OfficeExcel properties across all of the libraries, make it look a bit more "proffessional" and | - | provide plenty of scope for future properties. | - | | - | You should also note that as of this release (14th March 2009) that OfficeExcel has been changed to use the canvas | - | text and shadow APIs. This may mean you needing to upgrade your browser if you want to use the latest version. | - | At the time of writing, this meant Firefox 3.1b2, Safari 4 and Chrome 2. If you don't wish to upgrade your | - | browser, or need Opera support, then you will need to remain on the 28th February 2009 version. | - o------------------------------------------------------------------------------------------------------------------o - o [FUNNEL] Added key ability to Funnel chart - o [FUNNEL] Added shadow for key - o [BAR] Added shadow for key - o [LINE] Added shadow for key - o [RADAR] Added shadow for key - o [TRADAR] Added shadow for key - o [RADAR] Added tick marks to the axes - o [PIE] Added border option. - o [BAR] Added "in graph" static labels, useful for highlighting things - o [LINE] Added "in graph" static labels, useful for highlighting things - o [MISC] Provided easy access to minified copies of the libraries - o [ODO] Added inner and outer shadows - o [BAR] Changed to canvas text & shadow API - o [BIPOLAR] Changed to canvas text & shadow API - o [DONUT] Changed to canvas text & shadow API - o [FUNNEL] Changed to canvas text & shadow API - o [GANTT] Changed to canvas text & shadow API - o [LED] Changed to canvas text & shadow API - o [LINE] Changed to canvas text & shadow API - o [ODO] Changed to canvas text & shadow API - o [PIE] Changed to canvas text & shadow API - o [PROGRESS] Changed to canvas text & shadow API - o [radar] Changed to canvas text & shadow API - o [SCATTER] Changed to canvas text & shadow API - o [TRADAR] Changed to canvas text & shadow API - - 28th February 2009 - ================== - o [MISC] Added performance information about onload - o [BAR] Can now specify Y axis units (both before and after the number) - o [LINE] Can now specify Y axis units (both before and after the number) - o [SCATTER] Can now specify Y axis units (both before and after the number) - o [PROGRESS] Can now specify Y axis units (both before and after the number) - o [BIPOLAR] Can now specify X axis units (both before and after the number) - o [BAR] Fixed scale bug - o [MISC] Added UK pound sign to font set - o [FUNNEL] Added new chart - Funnel chart. Can be used to represent sales processes - o [FUNNEL] Made funnel use canvas shadow API - o [MISC] Changed minification script to work "in-place" NOTE - o [PROGRESS] Made progress use canvas shadow API - o [MISC] Tested OfficeExcel on Safari 4.0 - appears to be fine - o [LINE] Added ability to specify horizontal coloured bars - o [BAR] Added ability to specify horizontal coloured bars - o [SCATTER] Added ability to specify horizontal coloured bars - - 14th February 2009 - ================== - o [PIE] Added tooltips + updated docs to correspond - o [WEBSITE] Added tooltips to Pie on front page - o [LED] Added "counter-like" basic LED grid - o [DONUT] Made donut a proxy to pie chart - o [DONUT] Added tooltips - o [MISC] Moved CSS styles to scripts. You no longer need to define CSS styles unless you wish to override something - o [PIE] Made tooltips for pie use 3D effect. This is optional - it can be the traditional 2D or the new 3D effect - o [SCATTER] Can now have the X axis in the center - o [SCATTER] Added tooltip facility - o [MISC] Consolidated invoice handling - o [MISC] Minor fix to DOM structure of context menu - o [LINE] Can now have combined Line and Bar chart so you can overlay Line graphs on top of Bar charts - o [BAR] Can now have combined Line and Bar chart so you can overlay Line graphs on top of Bar charts - o [MISC] Moved showcase examples to separate pages - showcase.html was doing too much and becoming far too slow - - 31st January 2009 - ================= - o [ODO] Added .beginPath() when starting to draw the Odo - needed for animation - o [MISC] Rewrote ModalDialog - o [GANTT] Corrected gantt chart docs - o [MISC] Context menu is now always the correct width - o [BAR] Added ability to specify X axis labels to be drawn at eith 45 or 90 degrees - o [LINE] Added ability to specify X axis labels to be drawn at eith 45 or 90 degrees - o [SCATTER] Added ability to specify X axis labels to be drawn at eith 45 or 90 degrees - o [BIPOLAR] Added tooltips - o [DOCS] Re-jigged (ever so slightly) docs index layout - o [DOCS] Added info on working with OfficeExcel objects in conjunction with accessing the underlying - canvas/context objects - o [DONUT] Made sure the above was valid - o [PROGRESS] Made sure the above was valid - - 17th January 2009 - ================= - o [MISC] Added licensing FAQ page including invoice mailer - o [MISC] Moved CSS to css subfolder - o [MISC] Renamed modaldialog and removed external fade library - o [MISC] Added example of how to integrate OfficeExcel with external libraries using the ModalDialog - o [MISC] ymax property is no longer deprecated - it can be used to stop the scale changing when animating your graphs. - o [MISC] Added documentation page about animation - o [SCATTER] Added square tick type - o [PIE] Fixed last segments line width - o [MISC] Updated copyright notice - o [DOCS] Added basic example for implementation guidance - o [MISC] Changed test page to use tables instead of divs. This will make it more apparent if something breaks - in the OfficeExcel.getMouseXY() function. - o [ODO] Changed to use 10 labels instead of 8 - should make for nicer scale values. - o [ODO] Made tick marks tie into labels more - - 4th January 2009 - ================ - o [DOCS] Added note about pre-caching - o [SCATTER] Added color example to scatter chart - o [MISC] Fixed tooltips appearing in the wrong place - o [MISC] Removed tooltip shadow layer. Shadows are accomodated for in CSS3 - o [DOCS] CSS class documentation - o [MISC] More work on things working with html5 doctype - o [MISC] Removed shadow layer from tooltips. This will be accomodated in CSS3, and is already by some browsers (MSIE (!), Chrome, - Safari, and the forthcoming FF 3.1) - o [MISC] Ditto for context menus - o [MISC] Changed OfficeExcel.getMouseXY() to be more accomodating - o [WEBSITE] Added favicon.png - o [WEBSITE] Added example of pie chart to front page - o [WEBSITE] Changed front page to use tables instead of divs to tell if tooltips keep working - o [MISC] Overhauled OfficeExcel.getMouseXY() so that it works in spite of being nested in tables. It also works - if you position the canvas absolutely and only specify one of the top or left. Wonderbar! - o [SCATTER] Added ability to specify the color of the tick ie:[x, y, color] It's optional. ** Could do with a key ** - o [DOCS] Added color information - o [DOCS] Added context menu information - o [MISC] Made context menus more XP style - o [GANTT] Customised the example more, showing the completage indicators. - o [GANTT] Events and vertical bars are now defined in the usual way, by using the Set() method - o ]MISC] Added __object__ property to all graph objects - o [MISC] Unified text size at 10 points (and 2 greater for titles). - o [MISC] Added context menus to all graph types - o [MISC] Fixed tooltip widths on front page. And siving in general in Opera - - 20th December 2008 - ================== - o [MISC] Converted all graphs to use dollar ($) function in place of document.getElementById("...") - o [TRADAR] Now defaults to drawing the key out of graph - o [LINE] Now labels are turned off if there's fewer labels than data points (every line) - o [MISC] Added better smaller scales - now goes down to 0.0005 - o [DOCS] Added more details on tooltips and positioning - o [LINE] Added gridwidth property - o [BAR] Added gridwidth property - o [MISC] Removed rotating text example (it's still in the archive - it's just not linked) - o [MISC] More work on scales when decimal values are involved, plus graphs now use thousand seperators to aid readability - o [MISC] More work on tooltips and their positioning. - o [MISC] Added "keyposition" option, which can be either "gutter" or "graph" and determines where the key is drawn - o [MISC] Unified all graphs to use the same "textheight" property for text. - o [MISC] All titles are now drawn two pixels larger than the "textheight" property - o [LINE] Key can now be placed above the actual graph area if desired - o [BAR] Key can now be placed above the actual graph area if desired - o [MISC] Fixes to number formatting, including when there multiple graphs on a page - o [BAR] Changed summary line to default to off - o [BIPOLAR] Scale values now contain thousand separators - o [SCATTER] Scale values now contain thousand separators - o [LINE] Scale values now contain thousand separators - o [BAR] Scale values now contain thousand separators - o [MISC] Updated issues.html with details of the smallest scales - o [SCATTER] Deprecated the ymax property. OfficeExcel.getScale() is now good enough (xMax is bipolar chart equivalent) - o [LINE] Deprecated the ymax property. OfficeExcel.getScale() is now good enough - o [BIPOLAR] Deprecated the xmax property. OfficeExcel.getScale() is now good enough - o [BAR] Deprecated the ymax property. OfficeExcel.getScale() is now good enough - o [MISC] Made OfficeExcel.getScale() return the whole scale (all five values), not just the top value - This means better quality scales can be produced. - o [MISC] Made note about positioning in docs on issues page - o [ODO] Work on Small scale values - o [BIPOLAR] Work on Small scale values - o [BAR] Work on Small scale values - o [LINE] Work on Small scale values - o [MISC] Added tooltip fade in effect using CSS3 opacity - o [BAR] Added tooltip functionality to stacked bar chart - o [BAR] Added tooltip functionality to grouped bar chart - o [MISC] Added gradient to front page graphs - o [TRADAR] Added gradient to bipolar on test page - o [TRADAR] Re-added traditional radar chart. It doesn't work in Opera 9.x, only Opera 10+. Documentation for this also fine tuned - o [MISC] Tidied up OfficeExcel.common.js - o [MISC] Removed drawTextAngle() - OfficeExcel.Text() does this - o [MISC] Added a bar chart with centre X axis to example page - o [GANTT] Fixed Gantt chart title text placement - o [GANTT] Added title text size property - o [WEBSITE] Changed colour of example on website - o [RADAR] Changed key to be the same as the bar/line/tradar - o [DOCS] Lots of link updates - - 5th December 2008 - ================= - o [LINE] Made keys and lines (ie stacked/filled) totally correspond. - o [BAR] Stopped bar chart tooltips redrawing the axes. Not entirely sure why it's doing this, but it seems fine without it. - o [DOCS] Bundled license document with archive - o [DOCS] Documentation and example updates. - o [MISC] Changed index.php to index.html Not earth shattering, but should make it clearer for people where to start, - and also makes the downloaded index.html styled as it should be. - o [WEBSITE] Added Cache-Control: Header - o [WEBSITE] Added link to support group on Google more obvious - o [DOCS] Added list of common issues - o [MISC] Added header into files that didn't have it - o [MISC] Removed CanvasText.enable() - unneccessary - o [ODO] Shortened the Odos pointer - - 28th November 2008 - ================== - o [MISC] Got rid of HTML5 doctypes - they seem to be interfering with tooltip positioning. - If you don't use tooltips, you'll therefore be fine. - o [ODO] Better needle. I think. - o [BAR] Keys for charts are now specified in the same order as the pertaining datasets - o [LINE] Keys for charts are now specified in the same order as the pertaining datasets - o [MISC] Added CSS3 shadows to tooltips - o [GANTT] Fixed bug in Gantt chart textsize property - o [LINE] Finally made shadows 100% accurate (ie tickmarks now have shadows too), including stepped line - o [WEBSITE] Added tooltips to line chart on front page - o [MISC] Fixed release script (check) - o [LINE] Added keys to line & bar chart - o [BAR] Added keys to line & bar chart - o [MISC] o-----------------------------------------------------------------------------------------------------o - | Use unified better getters/setters for all charts. This is a MAJOR update, since it affects all the | - | charts in a fundamental way. For the better. Any update should be done cautiously. But since | - | OfficeExcel is beta, all updates should be done that way. Judging by the OfficeExcel test page though, | - | everything seems fine. | - o-----------------------------------------------------------------------------------------------------o - - 15th November 2008 - ------------------ - o [BAR] Removed animation - o [LINE] Documented stepped line chart - o [LINE] Fixed tick marks - o [LINE] Added ability to specify line chart as being stepped - o [MISC] Documented default values. - o [GANTT] Added gantt chart - o [PROGRESS] Corrected name of Progressbar - o [LINE] Moved the background drawing to OfficeExcel.common.js - o [SCATTER] Moved the background drawing to OfficeExcel.common.js - o [MISC] Tooltips now move to the left of the cursor when it's too far right - o [MISC] Changed print_r() to pr() - less to type - o [MISC] Added GetDays() function for Gantt chart - o [GANT] Added it - o [MISC] Added an OfficeExcel.print_r() method for easier debugging - o [MISC] Added a registry object to the common library to resolve scoping issues and so we don't need to use globals. Globals suck. - o [SCATTER] Added a plus tick style to the scatter chart - added a demo too - o [SCATTER] Fixed a bug in the Scatter graphs background drawing - o [BAR] Moved bar charts DrawBackground() into the OfficeExcel.background class. Should make reuse far easier. - o [BAR] "backgroundGrid" property changed to "grid" - o [MISC] Added a minification script. This script doesn't reduce the scripts to the bare minimum. But it can take 50% off the size (!). - o [LINE] Can now specify colour of shadows for line and bar graphs - o [BAR] Can now specify colour of shadows for line and bar graphs - o [LINE] line chart now has real shadows and so they can be used for lines of any thickness - o [LINE] can now specify shadow offset - o [SCATTER] Fixed background bar boundaries - o [SCATTER] Added plus cross type - o [MISC] Moved background drawing to common library - o [WEBSITE] sitemap.xml Now has correct date which changes correctly when a release is performed CHECK - o [MISC] Tooltip nows store the text in __text__ variable on the tooltip object (.innerHTML changes the HTML when it's set) - - 1st November 2008 - ------------------ - o [BAR] Last bar chart example now uses a gradient - o [MISC] Changed hyphens to be slightly shorter - o [WEBSITE] Changed sitemap to use an update frequency of weekly. Last modified is now updated when a release is performed - o [BAR] Can now specify the grid size on the bar chart - o [LINE] Setting propeties can now be any case, upper or lower - o [MISC] Added OfficeExcel.print_r() function - o [LINE] TickSize now actually has an effect - o [LINE] Added tooltips to line chart - o [WEBSITE] Moved support forum to Google group - o [MISC] Added object registration (for redrawing) - o [BAR] Removed margin from being accounted for in height calculation - o [LINE] Made tickmarks more coherent - o [BAR] Bar chart now uses canvas ID in some, but not all, error messages - o [LINE] Added small drop shadow to line chart - o [WEBSITE] Added example graphs to front page - o [BAR] Added tooltips to line chart - o [WEBSITE] Added more performance related information - o [PIE] Added drop shadow - - 25th October 2008 - ----------------- - o [DOCS[ Added integration section - o [RADAR] Added title to radar - o [RADAR] Added textStyle to radar - o [PIE] Made one of the pie charts use a gradient - o [PROGRESS] Added shadows - o [PROGRESS] Added title - o [ODO] Converted plain colour to radial gradient - o [PIE] Added gutter and title - o [DONUT] Added gutter and title - o [MISC] Fixed comma issue with rendering text - o [MISC] Added something to text bounding box illustrating exactly where the point specified is - o [BIPOLAR] Bipolar middle bit is now 60px wide instead of 50 - o [BAR] Fixed shadow bugettee in Safari, Chrome, Opera - o [ODO] Documented and vastly improved. Made it use a gutter now allowind for a title (implemented) - o [MISC] Added common function, DrawTitle() - o [MISC] Added a Javascript version of the PHP function range() - o [MISC] Added ability to specify a title to the bar chart, line graph and scatter graph. - o [MISC] Changed directory layout slightly - o [MISC] Forum is now ecluded from the tar - o [MISC] Much improved scale auto-generation - o [DOCS] Added code samples to docs pages - o [DOCS] Added section on the front page about performance - o [SCATTER] Many improvements to the scatter graph - o [SCATTER] Much better auto scale generation - o [SCATTER] Made scatter use OfficeExcel common library for text - o [RADAR] Converted to use common library for text - o [LINE] Much improved scale auto-generation - o [LINE] Changed to rounded line ends - not very noticable though - o [LINE] Converted labels to be drawn by the OfficeExcel library - o [BAR] Added optional shadow effect - o [BAR] Removed ability to have X axis at the top. It served no real purpose and only served to complicate the code - o [BAR] Added animation - o [BAR] Much improved scale auto-generation - o [BAR] Converted text functions to use OfficeExcel common library - o [BAR] Can now specify a title for the bar chart - o [BAR] Fixed a bug for Chrome - o [BAR] Fixed minor bugs in bar chart (background bars) - o [BAR] Added grouping property, which defaults to stacked, but can also be grouped, producing what you would - expect (unless you're expecting a chicken. - o [BAR] Added a few warnings concerning bad combinations of axis positions - o [ODO] Added more labels, now at 8 instead of 4 - - 24th September 2008 - ------------------- - o [WEBSITE] Added RSS feed to forum - o [DOCS] Added more documentation - o [ALL] Unified (sort of) the error messages - o [ODO] Added odometer - o [BIPOLAR] Added a bottom gutter for scale to go in - o [BIPOLAR] Added bottom text labels - o [PIE] Made pie chart work without translating - o [TRADAR] Added real radar chart. - o [BAR] Bar chart can now have the X axis in the center, so it now able to represent negative values - o [LINE] Allowed multiple lines - o [LINE] Line chart can now have the X axis in the center, so it now able to represent negative values - o [LINE] Fixed bug in line chart that meant if it was filled the filled line was stopping too short - o [LINE] Made it more obvious (I think) for specifying data when using multiple data sets (ie multiple lines) - - 4th September 2008 - ------------------ - o Various additions including labels on all the graphs \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting.html deleted file mode 100644 index b5c53efc..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - Adjusting your charts interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively

- - - -
-

- Since 24th May 2010 you have had the ability to adjust your so if you want to see the charts interactively. Currently the Bar chart, Line chart, - Progress Bar and the Radar have this facility. Some chart types use multiple event handlers and as such - are unlikely to work well with other dynamic features. The Line chart is an example of this, and whilst it does work - with the context menu (and so the full canvas zoom), it is unlikely to work with other dynamic features. -

- - -

- At the current time this feature on the Bar and Line charts doesn't work with X axis in the center. -

- - -

- If your intention is to make some sort of interactive console, new HTML5 input types may also be of interest (for example the new range input type - which gives you a "slider bar"). Eg (Chrome/Safari/Opera): -

- -

- - -

- -

Note

- -

- Since interactivly adjusting a chart involves completely redrawing it, having a lot of them on one page can cause - slower updates. For this reason each example chart is on its own page: -

- - - -

DOM2 event handlers

- -

- In January 2011 all adjusting was converted to DOM2 event handling. This makes adjusting work much better with other - dynamic features. -

- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_bar.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_bar.html deleted file mode 100644 index 789b3452..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_bar.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - Adjusting the Bar chart interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - Bar chart

- - - -

- The Bar chart can be adjusted by clicking on the chart, in line with the bar that you want to adjust.When adjusting is finished - the onadjustend event fires. As you will see in the example you can find the index of the relevant bar in the OfficeExcel registry - - OfficeExcel.Registry.Get('chart.adjusting.bar.myCanvas') (replace myCanvas with the ID of your canvas). -

- [No canvas support] - -
-<script>
-    window.onload = function (e)
-    {
-        var bar = new OfficeExcel.Bar('myCanvas', [512,653,512,533,674,453,458,741,496]);
-        bar.Set('chart.colors', ['blue', 'pink']);
-        bar.Set('chart.labels.above', true);
-        bar.Set('chart.shadow', true);
-        bar.Set('chart.shadow.color', '#aaa');
-        bar.Set('chart.strokestyle', 'rgba(0,0,0,0)');
-        bar.Set('chart.adjustable', true);
-        bar.Set('chart.labels', ['2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008']);
-        bar.Draw();
-    }
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_gantt.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_gantt.html deleted file mode 100644 index 2b91bc3a..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_gantt.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - Adjusting the Gantt chart interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - Gantt chart

- - - -

- The Gantt chart can be adjusted by dragging the bars left or right, or the events can be resized if you place the cursor at the - right edge of the event. To get the details of the bar being dragged you can use the - onadjustend event, and in that you can look at the OfficeExcel registry - OfficeExcel.Registry.Get('chart.adjusting.gantt') The - returned array consists of: - -

    -
  • The numerical index of the event being adjusted (corresponding to the chart.events array that you set).
  • -
  • The chart object
  • -
  • The starting X position of the bar (before the chart was adjusted)
  • -
  • The starting Y position of the bar (before the chart was adjusted)
  • -
  • The original numerical value (in relation to your chart.xmax) that the bar started at
  • -
-

- -

- When adjusting is complete the chart.events array is updated. So you can use the numerical index that you find in - the registry (as above) with the chart.events array to get up-to-date event information. -

- -

- Note: - The Gantt chart uses console.log() to send notifications. Press CTRL+SHIFT+J in Chrome to see the console, or use Firebug in - Firefox. Other browsers will vary. -

- - [No canvas support] - Event ID: - Event start: - Event duration: - -
-<script>
-    window.onload = function (e)
-    {
-        gantt_events = [
-                  [31, 28, null, 'Richard'],
-                  [0, 120, null, 'Bob'],
-                  [84, 16, null, 'Fred'],
-                  [35, 45, null, 'Charles'],
-                  [0, 35, null, 'Kev'],
-                 ];
-        var gantt = new OfficeExcel.Gantt('myc');
-        gantt.Set('chart.xmax', 120);
-        gantt.Set('chart.events', gantt_events);
-        gantt.Set('chart.defaultcolor', '#0c0');
-        gantt.Set('chart.labels', ['January', 'February', 'March', 'April']);
-        gantt.Set('chart.borders', false);
-        gantt.Set('chart.adjustable', true);
-        gantt.Draw();
-    
-        /**
-        * This is how to get notified once adjusting has ended
-        */
-        OfficeExcel.AddCustomEventListener(gantt, 'onadjustend',function (obj)
-        {
-                var idx = OfficeExcel.Registry.Get('chart.adjusting.gantt')[0];
-        });
-        
-        /**
-        * This is how to get notified during the adjusting
-        */
-        OfficeExcel.AddCustomEventListener(gantt, 'onadjust',function (obj)
-        {
-            var events = obj.Get('chart.events');
-            var conf   = OfficeExcel.Registry.Get('chart.adjusting.gantt');
-            var idx    = conf[0];                
-
-            document.getElementById("eventID").value       = conf[0];
-            document.getElementById("eventStart").value    = events[conf[0]][0];
-            document.getElementById("eventDuration").value = events[conf[0]][1];
-        });
-    }
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_hprogress.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_hprogress.html deleted file mode 100644 index 69dc92f5..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_hprogress.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - Adjusting the HProgress Bar interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - HProgress bar

- - - -

- The Horizontal Progress Bar can be adjusted by clicking on it. When adjusting - is finished the onadjustend event fires. If you attach a function to the onadjustend event (as below) you can get the new value by - looking at the .value property (eg myProgress.value). -

- - [No canvas support] - -
-<script>
-    window.onload = function (e)
-    {
-
-        var hprogress = new OfficeExcel.HProgress('myc', 83, 100, 0);
-        hprogress.Set('chart.color', 'green');
-        hprogress.Set('chart.adjustable', true);
-        hprogress.Set('chart.margin', 5);
-        hprogress.Set('chart.tickmarks.inner', true);
-        hprogress.Set('chart.tickmarks.zerostart', true);
-        hprogress.Set('chart.units.post', '%');
-        hprogress.Draw();
-
-        OfficeExcel.AddCustomEventListener(hprogress, 'onadjustbegin', function () {console.log('Old value: ' + hprogress.value  );});
-        OfficeExcel.AddCustomEventListener(hprogress, 'onadjustend', function () {console.log('New value: ' + hprogress.value  );});
-    }
-</script>
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_line.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_line.html deleted file mode 100644 index 79c79fcb..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_line.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - Adjusting the Line chart interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - Line chart

- - - -

- The Line chart can be adjusted by dragging the line(s) up and down. By using the OfficeExcel registry - - OfficeExcel.Registry.Get('chart.adjusting.line.myc') - you can get the details of the adjustment - (replace myc with the ID of your canvas). This is an array consisting of: - -

    -
  • The chart object
  • -
  • The index of the point in the data series
  • -
  • A two element array consisting of the original coordinates of the point that is being adjusted
  • -
  • The index of the data series that contains the point being adjusted
  • -
-

- - [No canvas support] - -
-<script>
-    window.onload = function (e)
-    {
-        var line = new OfficeExcel.Line('myc', [45,74,84,85,45,35,65,68,87,97,45,34,12], [15,14,12,16,18,19,14,12,74,84,95,65,35]);
-        line.Set('chart.labels', ['Kev','Matt','Rich','Dave','Iggy','Polly','Fiona','Fred','Pete','Lou','Fred','Bob']);
-        line.Set('chart.ylabels.inside', true);
-        line.Set('chart.linewidth', 2);
-        line.Set('chart.hmargin', 10);
-        line.Set('chart.shadow', true);
-        line.Set('chart.adjustable', true);
-        line.Set('chart.title', 'An adjustable line chart');
-        line.Set('chart.outofbounds', true);
-        line.Draw();
-        
-        OfficeExcel.AddCustomEventListener(line, 'onadjustend', function (obj) {p(OfficeExcel.Registry.Get('chart.adjusting.line.myc'));});
-    }
-</script>
-
- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_radar.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_radar.html deleted file mode 100644 index d7665b2c..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_radar.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - Adjusting the Radar chart interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - Radar chart

- - - - [No canvas support] - -

- The Radar chart can be adjusted by dragging the points on the chart. When the onadjustend event fires, you will find - the following information in the OfficeExcel registry - OfficeExcel.Registry.Get('chart.adjusting.radar.myc') - where myc - is the ID of your canvas: -

- -
    -
  • The numerical, zero indexed number that corresponds to the dataset
  • -
  • The numerical, zero indexed point that relates to the original data array
  • -
  • This is a boolean and used to indicate which (horizontal) half of the chart the point is in. true - the right half, false - the left half
  • -
  • This is a boolean and used to indicate which (vertical) half of the chart the point is in. true - the bottom half, false - the top half
  • -
- -
- -
-<script>
-    window.onload = function (e)
-    {
-            var radar = new OfficeExcel.Radar('myc', [4,3,8,6,8,7,7,4,5], [7,2,4,5,4,3,3,3,3]);
-            radar.Set('chart.adjustable', true);
-            radar.Set('chart.colors', ['rgba(255,0,0,0.5)', 'rgba(255,255,0,0.5)']);
-            radar.Set('chart.labels', ['Hoolio', 'Godfrey', 'Albert', 'Jeff', 'Jack', 'Pete', 'Lou', 'Barney', 'Fred']);
-            radar.Draw();
-            
-            OfficeExcel.AddCustomEventListener(radar, 'onadjustend', function (obj) {p(OfficeExcel.Registry.Get('chart.adjusting.radar.myc'));});
-    }
-</script>
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_thermometer.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_thermometer.html deleted file mode 100644 index 30e2d941..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_thermometer.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - Adjusting the Thermometer chart interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - Thermometer chart

- - - - [No canvas support] - -

- Nothing pertinent is kept in the registry. If you wish to get the new value of the thermometer you can check obj.value. - If you want the value before the adjustment, you can check the value with the onadjustbegin event (instead of the - onadjustend event). -

- -

- -

- -
- -
-<script>
-    window.onload = function (e)
-    {
-        var thermometer = new OfficeExcel.Thermometer('myc', 0, 100, 78);
-        
-        var grad = thermometer.context.createLinearGradient(0,50,0,350);
-        grad.addColorStop(0, 'orange');
-        grad.addColorStop(1, 'white');
-
-        thermometer.Set('chart.colors', [grad]);
-        thermometer.Set('chart.title.side', 'An adjustable thermometer');
-        thermometer.Set('chart.adjustable', true);
-        thermometer.Draw();
-
-        OfficeExcel.AddCustomEventListener(thermometer, 'onadjustbegin', function (obj) {document.getElementById("output").value += 'Value before adjustment: ' + obj.value + '\n';});
-        OfficeExcel.AddCustomEventListener(thermometer, 'onadjust', function (obj) {document.getElementById("output").value += 'Value during adjustment: ' + obj.value + '\n';});
-        OfficeExcel.AddCustomEventListener(thermometer, 'onadjustend', function (obj) {document.getElementById("output").value += 'Value after adjustment: ' + obj.value + '\n';});
-    }
-</script>
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/adjusting_vprogress.html b/OfficeWeb/sdk/Common/Charts/docs/adjusting_vprogress.html deleted file mode 100644 index 61e1742e..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/adjusting_vprogress.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - Adjusting the VProgress Bar chart interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Adjusting your charts interactively - VProgress bar

- - - - [No canvas support] - -

- Nothing pertinent is kept in the registry. If you wish to get the new value of the progress you can check - obj.value. If you want the value before the adjustment, you can check the value - with the onadjustbegin event (instead of the onadjustend event). -

- - - -
- -
-<script>
-    window.onload = function (e)
-    {
-        var vprogress = new OfficeExcel.VProgress('myc', 83, 100, 0);
-        vprogress.Set('chart.color', 'red');
-        vprogress.Set('chart.adjustable', true);
-        vprogress.Set('chart.margin', 5);
-        vprogress.Set('chart.tickmarks.inner', true);
-        vprogress.Set('chart.label.inner', true);
-        vprogress.Set('chart.units.post', '%');
-        vprogress.Set('chart.gutter.right', 45);
-        vprogress.Draw();
-        
-        OfficeExcel.AddCustomEventListener(vprogress, 'onadjustbegin', function (obj) {document.getElementById("output").value += 'Value before adjustment: ' + obj.value + '\n';});
-        OfficeExcel.AddCustomEventListener(vprogress, 'onadjustend', function (obj) {document.getElementById("output").value += 'Value after adjustment: ' + obj.value + '\n';});
-    }
-</script>
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/animation-effects.html b/OfficeWeb/sdk/Common/Charts/docs/animation-effects.html deleted file mode 100644 index e69de29b..00000000 diff --git a/OfficeWeb/sdk/Common/Charts/docs/animation_segments.html b/OfficeWeb/sdk/Common/Charts/docs/animation_segments.html deleted file mode 100644 index 855e056a..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/animation_segments.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - An example of an animated Pie chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

An example of an animated and interactive Pie chart

- - - - - - - [No canvas support] - - - - - - - -

- This example shows animated segment separation. This used to be something that had to be done seperately, however now it's - built into the Pie chart as a tooltip effect. You can utilise the effect by using the chart.highlight.style setting - like this: -

- -
- - -
-<script>
-    window.onload = function ()
-    {
-        var pie = new OfficeExcel.Pie('cvs', [24,43,51,16,26,23,35]);
-        pie.Set('chart.strokestyle', 'rgba(0,0,0,0)');
-        pie.Set('chart.labels', ['Richard','John','Kev','Lou','Pete','Fred','Bob']);
-        pie.Set('chart.tooltips', ['Richard','John','Kev','Lou','Pete','Fred','Bob']);
-        pie.Set('chart.highlight.style', 'explode');
-        pie.Set('chart.labels.sticks', true);
-        pie.Set('chart.radius', 100);
-        pie.Draw();
-    }
-</script>
-
- -

- « Back to animation page -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/annotate_persist.html b/OfficeWeb/sdk/Common/Charts/docs/annotate_persist.html deleted file mode 100644 index 66264378..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/annotate_persist.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - Making your annotations shareable across different browsers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Making annotations shareable cross browser

- -
-
- This example does not work offline - you must use a website. Annotations are removed every five minutes. -
-
- - - - [No canvas support] - -

- Combining a little AJAX and some very simple server side scripting, you can easily make an annotation system that can persist - across different browsers and computers. You an either use Load/Save buttons to trigger the loading and saving, or like the - example to the right you can make use of the custom OfficeExcel onannotateend event to make it happen automatically. -

- -

- This simple example uses a small PHP server side script that loads and saves the annotation data to a file on the server, - and that looks like this: -

- -
- -
-<?php
-    $file = '/tmp/annotation_data';
-
-    /**
-    * Save the annotations to a tmp file
-    */
-    if (isset($_POST) && isset($_POST['data'])) {
-        file_put_contents($file, $_POST['data']);
-        exit;
-    }
-
-
-    /**
-    * Load the annotations
-    */
-    if (!empty($_GET['getannotations']) && $_GET['getannotations'] == 1) {
-        $contents = file_get_contents($file);
-        print($contents);
-        exit;
-    }
-?>
-
- -

- By making the Javascript Save/Load functions repeat themselves every few seconds, you could easily make a presentation/demo system - that can be used when paticipants are in differing locations - in a similar fashion to Google Docs - or when you want one persons - annotations to be viewable by multiple PCs. On this page though, the Save function is triggered by the custom OfficeExcel event - onannotateend. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/annotating.html b/OfficeWeb/sdk/Common/Charts/docs/annotating.html deleted file mode 100644 index b2ddb84c..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/annotating.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - How you can annotate your charts interactively - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Annotating your charts

- - - -
- [No canvas support]
-
- -

- The annotations feature brings presentation style functionality to OfficeExcel charts. You can use this feature - for highlighting your charts if you need to. -

- - - - -

How do annotations work?

- -

- Enabling annotations is a very simple affair, and consists of doing the following: -

- -
myGraph.Set('chart.annotatable', true);
- - -

Browser support

- -

- Annotations are supported in all browsers that OfficeExcel works with - Firefox 3.5+, Chrome 2+, Safari 4+, Opera 10.5+ and - MSIE/Google Chrome Frame. They DO NOT however work with MSIE 8/ExCanvas. -

- - -

What can I use annotations for?

- -

- As mentioned you can use it for presentations, highlighting things to yourself or others or just to have fun drawing (!). -

- - -

Are annotations persistent?

- -

- That depends on which browser you're using. The annotation data is stored in the users web browser (not on the web server), - meaning currently (21st March 2010) browser support is limited to Firefox 3.5+, Safari 4+, - Chrome 4+ and Opera 10.5+. MSIE 8 also has the required storage capabilities, but since it doesn't yet support canvas, the point is moot. - The user does not have to - confirm anything for storage to be allowed - try it out on this page by drawing on the chart and then refreshing the page. -

- - -

How do I show the mini-palette?

- - -

- You can show the palette by using the OfficeExcel.Showpalette function shown below as a context menu item: -

- -
-myObj.Set('chart.contextmenu', [
-                                ['Show palette', OfficeExcel.Showpalette],
-                                ['Clear', function () {OfficeExcel.Clear(myObj.canvas); myObj.Draw();}]
-                               ]);
-
- -

- This code will result in the same context menu as the chart above. -

- - -

How can I clear the annotations?

- - You can simply clear the chart and redraw it: - -
OfficeExcel.Clear(myGraph.canvas); // Clear the chart
-myGraph.Draw();               // Redraw it
- -

- In the chart above, there is a context menu that allows you to both clear the chart and also demonstrates the mini-palette - feature available to you. -

- - -

Replaying annotations when they're off

-

- When annotations are not enabled, any prior annotations that may have been made are not displayed. To show them you need - to use the API function OfficeExcel.ReplayAnnotations(object) after the call to .Draw(). -

- - -

Making your annotations persist across browsers/computers

-

- With a little bit of custom Javascript and some server side scripting you can make your annotations persist across - different browsers/computers. You can find an example of this here. -

- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/api.html b/OfficeWeb/sdk/Common/Charts/docs/api.html deleted file mode 100644 index 1f424834..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/api.html +++ /dev/null @@ -1,810 +0,0 @@ - - - - - - The OfficeExcel API documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - -

API documentation

- - - -
- - - - -

Overview

- -

- Working with OfficeExcel objects is purposefully easy, to make them straight forward to integrate into your own scripts if you want to. For any - particular chart type there are a few files required - the common libraries and the chart specific library. Eg: -

- -
-<script src="OfficeExcel.common.core.js"></script>
-<script src="OfficeExcel.bar.js"></script>
-
- -

- OfficeExcel.common.core.js is a function library that contains a large set of functions that support the chart classes. - Some functions, and sets of functions, have their own files. For example, the zoom functions reside in OfficeExcel.common.zoom.js, - so if you don't need zoom, you don't need this file. - Each of the chart libraries (OfficeExcel.*.js) contains that particular charts class. If you'd like to see a "bare bones" - implementation, you can look at the basic example. There's also a - skeleton example to make it easier to create new chart types. -

- - -

Canvas and context references

- -

- Each chart object maintains references to the context and canvas as properties. So to get hold of them all you - need to do is this: -

- -
-<script>
-    window.onload = function ()
-    {
-        // 1/2 First draw the chart
-        var myBar = new OfficeExcel.Bar('myCanvas', [1,5,8,4,6,3,1,5,7,8,4,6]);
-        myBar.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        myBar.Draw();
-    
-        // 2/2 Now get hold of the references
-        var context = myBar.context; // Get hold of a reference to the context
-        var canvas  = myBar.canvas;  // Get hold of a reference to the canvas
-    }
-</script>
-
- - -

Working with events

- -

- When working with events, you may come across the situation where you have a reference to the canvas, but - also need to access the chart object. For this reason the constructor of each object adds a reference to the object to the - canvas and you can access it like this: -

- -
-<script>
-    document.getElementById("myCanvas").onclick = function (e)
-    {
-        var src = (OfficeExcel.isIE8() ? event.srcElement) : e.target;
-    
-        // The OfficeExcel object constructors add __object__ to the canvas.
-        var myBar = src.__object__;
-    }
-</script>
-
- - -

Working with chart coordinates

- -

- For most chart types, the coordinates of elements (eg bars, lines etc) are to be found in the class variable obj.coords. - This is usually a multi-dimensional array consisting of the coordinates of those shapes, or of points. As an example the bar - chart maintains the X, Y, width and height of each bar (or sections of bars in a stacked bar chart). The coords array is - usually a flat array, even when you have multiple sets of data. -

- -

- By using the OfficeExcel.getMouseXY() function and this array you can determine if a bar was clicked on, or if the mouse is near a - line point etc. -

- -
-var myCoords = myBar.coords;
-
- -

- Note: Previously the coords array values sometimes included the margin values, and sometimes didn't. As of 17th - April 2010 the values have all been unified to not include the margin values, so the values are as reported. -

- -

- Note: - The Line chart also has an object variable myObj.coords2, where the coordinates are indexed differently - - by line index. -

- - -

Working with chart data

- -

- Another variable you may need is the data variable. For most chart types, this is where the data is stored. It is usually - untouched, so it is as you supplied to the chart objects constructor. A notable exception to this is filled line charts. - Here the original data is stored in the class variable original_data. The data supplied is modified to produce the stacking - effect. If you need to modify a filled line charts data you will need to change this variable instead. -

- -

- Not all chart types use the data variable. For some the name is different so that it makes a little more sense. The - chart types and their associate data variables are listed below1. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Chart typeData variable(s)
Barobj.data
Bi-polarobj.left, obj.right
DonutThis is now a variant of the Pie chart
Fuelobj.min, obj.max, obj.value
Funnelobj.data
GanttSee the docs
Gaugeobj.min, obj.max, obj.value
Horizontal Barobj.data
Horizontal Progress barobj.max, obj.value
LEDobj.text
Lineobj.original_data3
Meterobj.min, obj.max, obj.value
Odometerobj.start, obj.end, obj.value
Pieobj.angles, obj.data
Radial Scatter chartobj.data
Roseobj.max, obj.data
Scatterobj.max, obj.data2
Thermometerobj.min, obj.max, obj.value
Traditional Radarobj.data, obj.max
Vertical Progress barobj.max, obj.value
Waterfall chartobj.max, obj.data
- -
    -
  1. In the table, obj refers to your chart object.
  2. -
  3. For the Scatter chart, each data point is an array of X/Y coordinates, the color and the tooltip for that point.
  4. -
  5. - The Line chart obj.original_data is an aggregation of all the datasets given to the Line chart, so the first - dataset is held in obj.original_data[0], the second in obj.original_data[1] etc. -
  6. -
- - -

Updating your charts dynamically

- -

- Note: - It is important that you're careful with types when making AJAX requests. Since the response is initially a string, - and your AJAX function/library may not do conversions for you, you may need to convert these strings to numbers. To - do this you can use the Number() or parseInt() functions. For example: -

- -
-<script>
-    num = Number('23');
-    num = parseInt('43');
-</script>
-
- -

- A common request is to be able to update charts dynamically. This is quite simple and consists of three steps: -

- -
    -
  1. Get the new data from the server (with an AJAX request for example).
  2. -
  3. Set the data in your chart object. See the above table for the appropriate property to use.
  4. -
  5. Call the .Draw() method again.
  6. -
- -

- If you don't need to get data from your server (ie it's all client-side) then you can omit the first step. Also, it may be - sufficient to simply recreate the entire object from scratch. This means that you won't have to alter and - OfficeExcel internal properties - just recreate the chart object and configuration. There's a simple function - you can use for AJAX purposes here. -

- - - -

Setting properties

- -

- To set OfficeExcel properties, ideally you should use each objects setter (there's also a corresponding getter). These functions - accomodate some backwards compatibility changes, so by not using them you run the risk of your charts not working entirely as - expected. -

- -
-myObj.Set('chart.gutter.left', 25);
-myObj.Get('chart.gutter.left');
-
- - -

 

-

References available on OfficeExcel objects

-

- OfficeExcel stores various references to objects on the canvas (typically) to make getting hold of them easier. There's also a - Registry object in - which references are stored. Typically the objects are named with the format __xxx__, and you can inspect the - objects by using a console(eg the inspector that's part of Google Chrome - CTRL+SHIFT+J). Some examples are: -

- -
    -
  • __object__ on the canvas - a reference to the chart object
  • -
  • - OfficeExcel.Registry.Get('chart.tooltip') - a reference to the currently visible tooltip. This in turn has the following - available: -
      -
    • __text__ - Since setting .innerHTML can cause changes in HTML, this is the original tooltip text.
    • -
    • __index__ - This is the numerical index corresponding to the tooltips array that you set.
    • -
    • __dataset__ - Used in the Scatter chart and corresponding to the dataset.
    • -
    • __canvas__ - A reference to the original canvas that triggered the tooltip.
    • -
    -
  • -
  • - OfficeExcel.Registry.Get('chart.mousedown') - Used in annotating, and stipulates whether the mouse button is currently - pressed. -
  • -
  • - OfficeExcel.Registry.Get('chart.contextmenu') - The currently shown context menu, if any. This in turn has the following - properties: -
      -
    • __canvas__ - The original canvas object.
    • -
    -
  • -
- - These are just a sample of what's available, to find more you should use an introspection tool or look at the source. - - - - -

Scale information

-

- For the Bar, Bipolar, HBar, Line and Scatter charts the scale that is used is stored in the scale class variable. Eg: -

- -
-<script>
-    var myBar = new OfficeExcel.Bar('cvs', [56,43,52,54,51,38,46,42,52]);
-    myBar.Draw();
-    
-    var myScale = myBar.scale
-</script>
-
- - -

Adding text to your charts

-

- If you want to add arbitrary text to your chart(s) you can use the API function OfficeExcel.Text(). -

- -
-<script>
-    // Draw a basic chart
-    var myObj = new OfficeExcel.Bar('myCanvas', [4,5,5,8,7,6,4,8,5,9]);
-    myObj.Draw();
-    
-    // Draw some text
-    myObj.context.beginPath();
-        size = 12;
-        font = 'Verdana';
-        text = 'Some text!;
-        x    = 10;
-        y    = 10;
-
-        OfficeExcel.Text(myObj.context, font, size, x, y, text);
-    myObj.context.fill();
-</script>
-
- - -

OfficeExcel functions

- -

- This is a list of some of the functions available to you in the OfficeExcel common libraries. - It's not every single one that's available, but is a list of the common ones that you're likely to want to use. Arguments - in square brackets are optional. -

- -
-<script src="OfficeExcel.common.core.js"></script>
-
-<script>
-    // Returns 9
-    myArray = [3,2,5,4,9,7,8];
-    max = OfficeExcel.array_max(myArray);
-</script>
-
- - -

Arrays

- -
    -
  • (number) OfficeExcel.array_max(array)
    Returns the maximum value in the array.
    File: OfficeExcel.common.core.js

  • -
  • (number) OfficeExcel.array_sum(array)
    Returns the sum of all values in the array. You can also pass a single integer, in which case it is simply returned as-is.
    File: OfficeExcel.common.core.js

  • -
  • (array) OfficeExcel.array_clone(array)
    Creates a copy/clone of the given array. Only numerically indexed arrays are supported.
    File: OfficeExcel.common.core.js

  • -
  • (array) OfficeExcel.array_reverse(array)
    Returns a reversal of the given array.
    File: OfficeExcel.common.core.js

  • -
  • (boolean) OfficeExcel.is_array(obj)
    Returns true or false as to whether the given object is an array or not.
    File: OfficeExcel.common.core.js

  • -
  • (array) OfficeExcel.array_pad(array, length[, value])
    Pads the given array to the specified length (if the length is less, if not the array is returned as is). The third, optional, argument is the value which is used as the pad value. If not specified, null is used.
    File: OfficeExcel.common.core.js

  • -
  • (array) OfficeExcel.array_shift(array)
    Shifts an element off of the start of the given array and returns the new array.
    File: OfficeExcel.common.core.js

  • -
- - -

Strings

- -
    -
  • (string) OfficeExcel.rtrim(string)
    Strips the right hand white space from the string that you pass it.
    File: OfficeExcel.common.core.js

  • -
  • - (string) OfficeExcel.number_format(obj, number[, prepend[, append]])
    - This formats the given number (which can be either an integer or a float. The prepend and append variables are - strings which are added to the string (eg 5%).

    - Note:As of 5th September 2010 this functions argument list has been changed to include the chart object, as shown above.

    - File: OfficeExcel.common.core.js

    -

  • -
- - -

Numbers

- -
    -
  • (number) OfficeExcel.random(min, max)
    Returns a random number between the minimum and maximum that you give.
    File: OfficeExcel.common.core.js

  • -
  • (string) OfficeExcel.number_format(number[, prepend[, append]])
    See above.
    File: OfficeExcel.common.core.js
  • -
- - -

Miscellaneous

- -
    -
  • - (object) OfficeExcel.Effects.ReplaceCanvasWithDIV(canvas)
    - This function is used by some animation functions to stop the page layout changing when the canvas is removed from - the document. It removes the canvas from the document, replaces it with a DIV and then adds the canvas as a child node - of the DIV. The canvas is placed in the center of the DIV. -
    File: OfficeExcel.common.effects.js -

    -

  • - -
  • - (object) OfficeExcel.FixEventObject(event)
    Pass this function an event object and it will attempt to "fill in" the missing properties (depending on the browser). - It tries to add:

    - -
      -
    • pageX (MSIE)
    • -
    • pageY (MSIE)
    • -
    • target (MSIE)
    • -
    • stopPropagation() (MSIE)
    • -
    • offsetX (FF)
    • -
    • offsetY (FF)
    • -
    -
    File: OfficeExcel.common.core.js -

    -

  • -
  • (null) OfficeExcel.OldBrowserCompat(context)
    This function "fills in" any required functions that some browsers don't have. At the moment this consists of adding the measureText() and fillText() functions to the context when they're missing (usually this means older versions of Opera).
    File: OfficeExcel.common.core.js

  • -
  • (number) OfficeExcel.GetDays(date)
    This returns the number of days in the given month. The argument should be a Date object.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.pr(mixed)
    Emulates the PHP function print_r() by recursively printing the structure of whatever you pass to it. It handles numbers, strings, arrays, booleans, functions and objects.
    File: OfficeExcel.common.core.js

  • -
  • (null) p(mixed)
    An alias of the above albeit far shorter to type.
    File: OfficeExcel.common.core.js

  • -
  • (null) cl(mixed)
    A shortcut for the Firebug and Google Chrome debug function console.log().
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.Clear(canvas[, color])
    Clears the canvas by drawing a white (or the optional color you give) rectangle over it. As of 23rd January 2011 you can now specify transparent as the color and the canvas will be reset back to transparency instead of to white. This may become the default at a later date.
    File: OfficeExcel.common.core.js

  • -
  • - (null) OfficeExcel.ClearAnnotations(id)
    This function clears the annotation data associated with the given canvas ID (but DOES NOT redraw the chart). If you want to clear the visible annotations too, you will need to redraw the canvas. You could do this using the following code: -
    -
    -function ClearAndRedraw (obj)
    -{
    -    OfficeExcel.Clear(obj.canvas); // This function also calls the OfficeExcel.ClearAnnotations() function
    -    obj.Draw();
    -}
    -
    File: OfficeExcel.common.annotatate.js

    -

  • -
  • (null) OfficeExcel.ReplayAnnotations(object)
    This function redraws any annotations which have previously been drawn on the canvas. You would use this function when annotations are turned off and you want previous annotations to be displayed.
    File: OfficeExcel.common.annotate.js

  • -
  • (array) OfficeExcel.getMouseXY(event)
    When passed your event object, it returns the X and Y coordinates (in relation to the canvas) of the mouse pointer. (0,0) is in the top left corner, with the X value increasing going right and the Y value increasing going down.
    File: OfficeExcel.common.core.js

  • -
  • (array) OfficeExcel.getCanvasXY(canvas)
    Similar to the above function but returns the X/Y coordinates of the canvas in relation to the page.
    File: OfficeExcel.common.core.js

  • -
  • (number) OfficeExcel.degrees2Radians(number)
    Converts and returns the given number of degrees to radians. 1 radian = 57.3 degrees.
    File: OfficeExcel.common.core.js

  • -
  • (array) OfficeExcel.getScale(max, obj)
    Given the maximum value this will return an appropriate scale. The second argument is the graph object.
    File: OfficeExcel.common.core.js

  • -
  • (mixed) OfficeExcel.Registry.Get(name)
    In conjunction with the next function, this is an implementation of the Registry pattern which can be used for storing settings.
    File: OfficeExcel.common.core.js

  • -
  • (mixed) OfficeExcel.Registry.Set(name, value)
    In conjunction with the previous function, this is an implementation of the Registry pattern which can be used for storing settings.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.Register(object)
    This function is used in conjunction with the next to register a canvas for redrawing. Canvases are redrawn (for example) when tooltips or crosshairs are being used.
    File: OfficeExcel.common.core.js

  • - -
  • - (null) OfficeExcel.Redraw([id, [color]])
    This function is used in conjunction with the previous to redraw a canvas. Canvases are redrawn (for example) when tooltips or crosshairs are being used.

    Note: All canvases that are registered are redrawn. However the optional first argument can be an ID (a string) of the canvas that is NOT to be redrawn. The optional second argument is the color to use when clearing canvases.
    File: OfficeExcel.common.core.js

    -
  • - -
  • (null) OfficeExcel.SetShadow(object, color, offetX, offsetY, blur)
    This function is a shortcut function used to set the four shadow properties. The arguments are: your chart object, the shadow color, the X offset, the Y offset, the shadow blur.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.NoShadow(object)
    This function is a shortcut function used to "turn off" the shadow. The argument is your chart object.
    File: OfficeExcel.common.core.js

  • -
  • - (number) OfficeExcel.Async(mixed[, delay])
    This is a simple function but has significant implications on your pages performance. You - can pass this either a function pointer, or a string containing the code to run and it will run the code asynchronously (ie in - parallel to the page loading). In doing so it can mean that your page is displayed faster, as the chart is created - seperate to the page loading. As such, the placement of your canvas tag becomes more important. What you can do is - define the canvas tag and then the code to produce the chart immediately after it. This is how the front page is coded, - (but not using the OfficeExcel.Async() function). - There's an example of it here. The optional delay argument is measured in milliseconds - (1 second = 1000 milliseconds) and defaults to 1. What you can do is specify something like 1000 to make the effect - more pronounced to ensure it's working as expected. - -

    - Note: Since a dev release of version 4, Google Chrome versions 4 and 5 have an issue with rendering text when using - the OfficeExcel.Async() function. The solution here is to simply not use the OfficeExcel.Async() function. -

    - File: OfficeExcel.common.core.js

    -
  • - -
  • - (null) OfficeExcel.filledCurvyRect(context, x, y, width, height[, radius[, curvy top left[, curvy top right[, curvy bottom right[, curvy bottom left]]]]])
    - This draws a rectangle with curvy corners. Similar to the built in rectangle functions, and you can control - individual corners. The radius controls the severity of the corner curvature and defaults to 3. By default all - the corners are curvy.
    File: OfficeExcel.common.core.js

    -
  • - -
  • - (null) OfficeExcel.strokedCurvyRect(context, x, y, width, height[, radius[, curvy top left[, curvy top right[, curvy bottom right[, curvy bottom left]]]]])
    - This draws a rectangle with curvy corners. Similar to the built in rectangle functions, and you can control - individual corners. The radius controls the severity of the corner curvature and defaults to 3. By default all - the corners are curvy.
    File: OfficeExcel.common.core.js

    -
  • - -
  • - (null) OfficeExcel.Reset(canvas)
    - This function resets the canvas. At first this function may appear similar to the OfficeExcel.Clear() function, however this - function will reset any translate() that has been performed, and so can stop them accumulating. -
    File: OfficeExcel.common.core.js

    -
  • -
- - -

Custom OfficeExcel event related functions

- -
    -
  • (null) OfficeExcel.FireCustomEvent(object, event)
    This fires a custom event. The object is your chart object, and the name is a string specifying the name of the event.
    File: OfficeExcel.common.core.js

  • -
  • (number) OfficeExcel.AddCustomEventListener(object, event, callback)
    This attaches a function to the specified event. The object argument is your chart object, the event argument should be the name of the event, eg ontooltip, and the function argument is your function which handles the event. The return value is an ID which can be used with the OfficeExcel.RemoveCustomEventListener() function.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.RemoveCustomEventListener(object, id)
    This removes the custom event listener that corresponds to the given ID. The arguments are the chart object and the ID of the event handler to remove (as returned by OfficeExcel.AddCustomEventListener()).
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.RemoveAllCustomEventListeners([id])
    To easily remove all custom event listeners you can use this function. It also can optionally take one argument - a canvas ID - to limit the clearing to.
    File: OfficeExcel.common.core.js

  • -
- - -

Other

- -

- These are functions which are less generic, and used to build the charts. You may still wish to use them however. -

- -
    -
  • (null) OfficeExcel.lineByAngle(context, x, y, angle, length)
    This function draws a line from the given X and Y coordinates at the specified angle.
    File: OfficeExcel.common.core.js

  • - -
  • - (null) OfficeExcel.Text(context, font, size, x, y, text[, valign[, halign[, border[, angle[, background[, bold[, indicator]]]]]]])
    - This function acts as a wrapper around the canvas text functionality. The arguments are: - -
      -
    • The context is the canvases 2D context.
    • -
    • The font is the name of the font you want to use (eg Arial).
    • -
    • The size is an integer specifying the size of the text, (measured in points).
    • -
    • The x and y arguments are the X/Y coordinates at which to draw the text.
    • -
    • The text argument is the text to draw.
    • -
    • The optional valign argument is the vertical alignment and can be either top, center or bottom.
    • -
    • The optional halign argument is the horizontal alignment and can be left, center or right.
    • -
    • The optional border argument is a boolean (true or false) controlling whether the text has a border.
    • -
    • The optional angle argument specifies the angle at which the text is drawn (rotated around the X/Y coordinates and measured in degrees).
    • -
    • The optional background argument is the color of the background, (eg #fff).
    • -
    • The optional bold argument is boolean which controls whether the text is bold or not.
    • -
    • And the optional indicator argument is a boolean which controls whether a placement indicator is shown.
    • -
    - -
    File: OfficeExcel.common.core.js -

    -
  • - -
  • (null) OfficeExcel.DrawTitle(canvas, text, gutter[, centerx[, size]])
    This function draws the title. The centerx argument is the center point to use. If not given the center of the canvas is used.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.Tooltip(canvas, text, x, y, idx)
    This function shows a tooltip. The idx value corresponds to the tooltip array that you give.
    File: OfficeExcel.common.tooltips.js

  • -
  • - (null) OfficeExcel.DrawKey(object, key, colors)
    - This function draws the key. The first argument is the chart object, the second is an array of key information and the - last is an array of the colors to use. -

    - Note: As of the November 2011 the key has been seperated out into its own file. -

    - File: OfficeExcel.common.key.js

    -
  • -
  • (null) OfficeExcel.DrawBars(object)
    This draws the horizontal background bars. The argument is the chart object.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.DrawInGraphLabels(object)
    This draws the in-graph labels. The argument is the chart object.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.DrawCrosshairs(object)
    This function draws the crosshairs. The argument is the chart object.
    File: OfficeExcel.common.core.js

  • -
  • (null) OfficeExcel.HideContext()
    This function clears the context menu. OfficeExcel uses it to hide the context menu, but only AFTER your function/callback is run. You may wish to hide the context menu before your own function, in which case you can call this function.
    File: OfficeExcel.common.context.js

  • -
  • - (null) OfficeExcel.showPNG([canvas[, event]])
    - This function allows you to easily facilitate getting a PNG image representation of your chart. - You can use it like this:
    - -
    myBar.Set('chart.contextmenu', [
    -                                ['Get PNG', OfficeExcel.showPNG],
    -                                null,
    -                                ['Cancel', function () {}]
    -                               ]);
    - Optionally, you can pass in the canvas as an argument which will be used, meaning now you do not have to use a - context menu (there's an example here). It WAS originally designed to be used with a context menu, hence it's part of the OfficeExcel.core.context.js - file.
    - File: OfficeExcel.common.context.js -

    -
  • - -
  • - (number) OfficeExcel.getGutterSuggest(obj, data)
    - This function returns a suggested gutter setting based on the vertical labels. If the bottom labels are larger, this - setting may be inappropriate. The data variable is a simple single dimension array, eg [1,2,3,4,5]. -
    -
    -var size = OfficeExcel.getGutterSuggest(obj, data);
    -obj.Set('chart.gutter.left', size);
    -
    - File: OfficeExcel.common.core.js -

    -
  • - -
  • - (boolean) OfficeExcel.isOld()
    - This function tests the useragent for MSIE 7 OR 8.
    - File: OfficeExcel.common.core.js -

    -
  • - -
  • - (boolean) OfficeExcel.isIE8()
    - This function tests the useragent for MSIE8.
    - File: OfficeExcel.common.core.js -

    -
  • - -
  • - (boolean) OfficeExcel.isIE8up()
    - This function tests the useragent for MSIE8 or higher.
    - File: OfficeExcel.common.core.js -

    -
  • - -
  • - (boolean) OfficeExcel.isIE9()
    - This function tests the useragent for MSIE9.
    - File: OfficeExcel.common.core.js -

    -
  • - -
  • - (boolean) OfficeExcel.isIE9up()
    - This function tests the useragent for MSIE9 or higher.
    - File: OfficeExcel.common.core.js -

    -
  • - -
  • - (null) OfficeExcel.background.Draw(obj)
    - This function is used by the Bar, Gantt, Line and Scatter chart to draw the chart background (but not the axes). - It is passed the chart object which it uses to get the properties it uses:

    - -
    -
    -
      -
    • chart.gutter
    • -
    • chart.variant
    • -
    • chart.text.size
    • -
    • chart.text.font
    • -
    • chart.title
    • -
    • chart.title.xaxis
    • -
    • chart.title.xaxis.pos
    • -
    • chart.title.yaxis
    • -
    • chart.title.yaxis.pos
    • -
    • chart.background.barcolor1
    • -
    • chart.background.grid
    • -
    • chart.background.grid.width
    • -
    -
    -
    -
      -
    • chart.background.grid.autofit
    • -
    • chart.background.grid.autofit.numhlines
    • -
    • chart.background.grid.autofit.numvlines
    • -
    • chart.background.grid.autofit.align
    • -
    • chart.background.grid.hlines
    • -
    • chart.background.grid.vlines
    • -
    • chart.background.grid.hsize
    • -
    • chart.background.grid.vsize
    • -
    • chart.background.grid.color
    • -
    • chart.background.grid.border
    • -
    • chart.background.barcolor2
    • -
    - -
    -
    - -
    - - - -

    - Note that this function also calls OfficeExcel.DrawTitle() in order to draw the title.
    - File: OfficeExcel.common.core.js -

    - -

    -
  • -
- - - -

The skeleton file

-

- The skeleton object - (OfficeExcel.skeleton.js) gives you a base for creating new chart types that - match the OfficeExcel object system (eg getters, setters, OfficeExcel names etc). Example usage of the skeleton object would be: -

- -
-<script>
-    var myObj = new OfficeExcel.Skeleton('cvs', [3,3,4,5,3,8,3,2,1,9]);
-    myObj.Set('chart.colors', ['red']);
-    myObj.Draw();
-
-    var colors = myObj.Get('chart.colors');
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/async.html b/OfficeWeb/sdk/Common/Charts/docs/async.html deleted file mode 100644 index 60038005..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/async.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - Creating your charts using asynchronous methods - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Asynchronous processing

- - - -

Waiting for onload event...

- -

- - - - - These images are here to pad the page and slow down loading so that the window.onload event is slowed. This makes the - difference far more visible. -

- - [No canvas support] - - - -

- Asynchronous processing can speed up the display of your charts, because the browser gets to your code, sets it - going and then continues on rendering the page. Particularly if you have a weighty page, - it can make quite a difference. The OfficeExcel.Async() function itself is very simple, but because it can make - a significant difference to the speed of your page, it is documented here. There's an example of it to the right. - One thing to remember is to ensure your canvas tag is defined first before you set the function that creates - the chart going. -

- -

- Although asynchronous processing can speed up your pages, it can also give the appearance of slower pages due to partial - rendering, (ie your pages render a bit at a time). You therefore will need to experiment to get the best result for you. -

- -
- -
-<script src="OfficeExcel.common.js"></script>
-<script src="OfficeExcel.line.js"></script>
-
-<canvas id="myCanvas" width="300" height="100">[No canvas support]</canvas>
-
-<script>
-    /**
-    * Create the line chart
-    */
-    function CreateLineGraph ()
-    {
-        var line = new OfficeExcel.Line('myCanvas', [1,2,4,2,1,3,5,6,6,5,3,5]);
-        line.Set('chart.title', 'Sales for Acme Inc.');
-        line.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        line.Set('chart.hmargin', 10);
-        line.Set('chart.linewidth', 5);
-        line.Set('chart.shadow', true);
-        line.Set('chart.shadow.offsetx', 0);
-        line.Set('chart.shadow.offsety', 0);
-        line.Set('chart.shadow.blur', 15);
-        line.Draw();
-    }
-
-    if (OfficeExcel.isOld()) {
-        window.onload = CreateLineGraph;
-    } else {
-        OfficeExcel.Async(CreateLineGraph);
-    }
-</script>
-
- -

Things to remember

- -
    -
  • All your libraries must be loaded first. In the pages <head> for example. If not, you won't be able to create your charts.
  • -
  • Your <canvas> tag must be defined before setting the asynchronous code going. If not, then the canvas may be referenced before it exists, and thus your charts will not be created.
  • -
  • - The users connection speed may be a factor. Slower connections may mean, for example, that the onload event doesn't fire very - quickly. If you're using the onload event to create your charts then asynchronous creation instead may give you more - apparent speed ups. Alternatively, careful placement of the <canvas> tag and the code that creates the chart may suffice - instead. -
  • -
  • Since the MSIE/ExCanvas combo requires you to use the window.onload event, asynchronous chart creation in this case will probably not be any help.
  • -
  • - Since a dev release of version 4, Google Chrome has had an issue when asynchronous processing is used, meaning that - text isn't always displayed. The solution here is simply to not use asynchronous processing. As of 27th March 2010, - Chrome 5 appears to be fine. -
  • -
- -

See also

- - You might also be interested in the alternative, DOMContentLoaded event. - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/bar.html b/OfficeWeb/sdk/Common/Charts/docs/bar.html deleted file mode 100644 index 3117effc..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/bar.html +++ /dev/null @@ -1,878 +0,0 @@ - - - - - - Documentaion about the OfficeExcel Bar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bar charts documentation

- - - - - - -

 

-

Example

-
 
-<script>
-    window.onload = function ()
-    {
-        
-        // Some data that is to be shown on the bar chart. To show a stacked or grouped chart
-        // each number should be an array of further numbers instead.
-        var data = [280,45,133];
-        
-        
-        // An example of the data used by stacked and grouped charts
-        // var data = [[1,5,6], [4,5,3], [7,8,9]]
-
-        
-        // Create the br chart. The arguments are the ID of the canvas tag and the data
-        var bar = new OfficeExcel.Bar('myCanvas', data);
-        
-        
-        // Now configure the chart to appear as wanted by using the .Set() method.
-        // All available properties are listed below.
-        bar.Set('chart.labels', ['Richard', 'Alex', 'Nick']);
-        bar.Set('chart.gutter.left', 45);
-        bar.Set('chart.background.barcolor1', 'white');
-        bar.Set('chart.background.barcolor2', 'white');
-        bar.Set('chart.background.grid', true);
-        bar.Set('chart.colors', ['red']);
-        
-        
-        // Now call the .Draw() method to draw the chart
-        bar.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the bar chart apears. You can set them by using the Set() method. Eg: -

- -

- myBar.Set('name', 'value'); -

- - - - - -

Background

-chart.background.barcolor1
- The color of the background bars, (1 of 2).
Default: white

- -chart.background.barcolor2
- The color of the background bars, (2 of 2).
Default: white

- -chart.background.grid
- Whether to show the background grid or not.
Default: true

- -chart.background.grid.color
- The color of the background grid.
Default: #ddd

- -chart.background.grid.hsize
- The horizontal background grid size.
Default: 40

- -chart.background.grid.vsize
- The vertical background grid size.
Default: 18

- -chart.background.grid.width
- The width that the background grid lines are. Decimals (eg 0.5) are permitted.
Default: 1

- -chart.background.grid.border
- Determines whether a border line is drawn around the grid.
Default: true

- -chart.background.grid.hlines
- Determines whether to draw the horizontal grid lines.
Default: true

- -chart.background.grid.vlines
- Determines whether to draw the vertical grid lines.
Default: true

- - - chart.background.grid.autofit
- Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many horizontal and vertical lines you want.
- Default: true

- - - chart.background.grid.autofit.numhlines
- When using autofit this allows you to specify how many horizontal grid lines you want.
- Default: 5

- - - chart.background.grid.autofit.numvlines
- When using autofit this allows you to specify how many vertical grid lines you want.
- Default: 20

- - - chart.background.grid.autofit.align
- If you want to have your grid lines line up with the labels (both X and Y axes), you can set this to true and OfficeExcel will - attempt to make the grid lines line up. If you have a chart.hmargin set then the alignment will be thrown out.
- Default: false

- - -chart.background.hbars
- An array of information stipulating horizontal coloured bars. You can use these to indicate limits. Eg: myBar.Set('hbars', [[75, 10, 'yellow'], [85, 15, 'red']]); This would give you two bars, one red and a lower yellow bar. The units correspond to your scale, and are the starting point and the height.
Default: null

- - - chart.background.image
- If you want to specify a background image to use on your chart, specify it with this property.
- Default: null

- - - chart.background.image.stretch
- By default your background image is stretched (if necessary) to cover the whole chart area (gutters not included). - If this is not what you want then set this property to false.
- Default: true

- - - chart.background.image.x
- The X position of the image. The coordinates are the top left corner of the image.
- Default: null

- - - chart.background.image.y
- The Y position of the image. The coordinates are the top left corner of the image.
- Default: null

- - - chart.background.image.align
- Instead of specifying the coordinates of the image, you can instead simply align it top, bottom, left or right. - Examples are:
-
    -
  • top left
  • -
  • bottom right
  • -
  • bottom
  • -
  • right
  • -
- Default: null

- - -

Axes properties

- - - chart.noaxes
- Whether the axes are drawn
- Default: false (the axes ARE drawn)

- - - chart.noxaxis
- Whether the X axis is drawn
- Default: false (the X axis IS drawn)

- - - chart.noyaxis
- Whether the Y axis is drawn
- Default: false (the Y axis IS drawn)

- - - chart.noendxtick
- When you're combining the Bar and Line charts, you may want to use this property to stop the end X tick from - being drawn.
- Default: false (the end tick IS drawn)

- - - chart.numxticks
- This controls the number of X tickmarks on the X axis.
- Default: null

- - -

Colors

- - - chart.strokestyle
- The color of the outline of the bars.
- Default: #666

- - - chart.colors
- An array of the colors of the actual bars.
- Default: An array - ['rgb(0,0,255)', '#0f0', '#00f', '#ff0', '#0ff', '#0f0']

- - - chart.colors.sequential
- If true, for regular bar charts, (not stacked or grouped), the colors that you specify will be used in a sequential - fashion.
- Default: false

- - - chart.colors.reverse
- If true, for stacked bar charts only, the colors that you specify will be used in a reverse order to what they are - normally.
- Default: false

- - -

Margins

- - - chart.hmargin
- The horizontal margin (in pixels) of the chart. The horizontal margin is on the inside of the axes.
- Default: 5

- - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Labels and text

-chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size (in points) of the labels.
Default: 10

- -chart.text.angle
- The angle of the horizontal text labels (at the bottom of the chart). This can be one of three values - 0, 45 or 90.
Default: 0 (Horizontal)

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.labels
- An array of the labels to be used on the chart.
Default: An empty array

- - - chart.labels.above
- If true, values will be shown above the bars. For regular and stacked bar charts units are included, whereas for - grouped bar charts they're not (usually there isn't enough space for them). -
Default: false

- - - chart.labels.above.decimals
- This stipulates how many decimals are used in the above bar labels. -
Default: 0

- - - chart.labels.above.size
- The font size of the above bar labels. Useful if you only have a few bars. -
Default: false

- - - chart.labels.above.angle
- You can use this to angle the text shown above the bars. It can be anything from -90 to 90 (degrees). -
Default: null

- - -chart.labels.ingraph
- An array of labels for the chart which are drawn "inside" the chart. If you have 5 data points then this should have a corresponding number of elements, though there is a shorthand available.
Default: null

- - - chart.ylabels
- Can be true or false and determines whether the chart has Y axis labels.
- Default: true

- - - chart.ylabels.count
- A value that controls how many Y labels there are. Previously (prior to 8th August 2010) this could be 1,3,5. - Now it can be any number, but keep in mind that if you use this it may result in decimals.
- Default: 5

- - - chart.ylabels.specific
- You can use this option to give your own Y labels (eg ['Low', 'Medium', 'High'].
- Default: null

- - -chart.xlabels.offset
- This allows you finer grained control over the X label positioning if you need it.
Default: 0

- -chart.numyticks
- The number of Y tickmarks. If you have changed the number of Y labels, you may also want to change this to match.
Default: 10

- - -

Titles

- - -chart.title
-The title of the chart, if any.
-Default: null

- - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- - - chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
- Default: null

- - - - chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
- Default: null

- - - chart.title.xaxis
- This allows to specify a title for the X axis.
Default: none

- - - - chart.title.xaxis.size
- This allows you to specify a size for the X axis title.
- Default: null

- - - chart.title.xaxis.font
- This allows to specify a font for the X axis title.
- Default: null

- - - chart.title.xaxis.bold
- This controls whether the X axis title is bold or not.
- Default: true

- - - chart.title.yaxis
- This allows to specify a title for the Y axis.
- Default: none

- - - chart.title.yaxis.size
- This allows you to specify a size for the Y axis title.
- Default: null

- - - chart.title.yaxis.font
- This allows to specify a font for the Y axis title.
- Default: null

- - - chart.title.yaxis.bold
- This controls whether the Y axis title is bold or not.
- Default: true

- - -chart.title.xaxis.pos
- This is multiplied with the gutter to give the position of the X axis title.
Default: 0.25

- -chart.title.yaxis.pos
- This is multiplied with the gutter to give the position of the Y axis title.
Default: 0.25

- - - - -

Shadow

-chart.shadow
- Whether a drop shadow is applied.
Default: false

- -chart.shadow.color
- The color of the shadow.
Default: #666

- -chart.shadow.offsetx
- The X offset of the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the shadow.
Default: 3

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- - -

Scale

- - - chart.scale.formatter
- To allow thoroughly custom formats of numbers in the scale, you can use this option to - specify a function that is used by OfficeExcel to format numbers. This function should - handle ALL of the formatting. Eg:

-
-function myFormatter(obj, num)
-{
-    return num + 'F'; // An example of formatting
-}
-myGraph.Set('chart.scale.formatter', myFormatter);
-
-
Default: null

- - - chart.scale.decimals
- The number of decimal places to display for the Y scale. -
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.units.pre
- The units that the Y axis is measured in. This string is displayed BEFORE the actual number, allowing you to specify values such as "$50".
Default: none

- - - chart.units.post
- The units that the Y axis is measured in. This string is displayed AFTER the actual number, allowing you to specify values such as "50ms".
Default: none

- - - chart.ymax
- The optional maximum Y scale value. If not specified then it will be calculated.
Default: null (It's calculated)

- - - chart.ymin
- The optional minimum Y scale value. If not specified then it will be 0.
Default: 0

- - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - - -

Interactive features

- - - chart.contextmenu
- An array of context menu items. More information on context menus is here.
- Default: [] (An empty array)

- - -chart.tooltips
- A numerically indexed array of tooltips that are shown when a bar is clicked. These can contain HTML.
Default: null

- -chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
Default: fade

- - - chart.tooltips.event
- This is the event that triggers the tooltips. It can be either onclick or onmousemove.
- Default: onclick

- - -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. - There's more information on the tooltips documentation page
- Default: null

- - - chart.tooltips.highlight
- When combining chartss you will need to set this option to fase.
- Default: true

- - - -chart.crosshairs
- If true, you will get a crosshair centering on the current mouse position.
Default: false

- -chart.crosshairs.linewidth
- This controls the linewidth of the crosshairs.
Default: 1

- -chart.crosshairs.color
- The color of the crosshairs.
Default: #333

- - - chart.crosshairs.hlines
- This determines whether the horizontal crosshair is shown.
- Default: true

- - - chart.crosshairs.vlines
- This determines whether the vertical crosshair is shown.
- Default: true

- - - - -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -chart.adjustable
- Defaulting to false, this determines whether your bar chart will be adjustable.
Default: false

- - -

Zoom

- -chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
- Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - -

Miscellaneous

- - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - -chart.line
- Formerly a boolean, this now stipulates a line chart object which is to be drawn on top of the bar chart. You can see an example here.
Default: null

- -chart.variant
- This simply stipulates whether you want a regular bar chart, a dot chart, a pyramid chart a 3D chart, a sketch or a glassy chart. Possible values are:
  • bar
  • dot
  • pyramid
  • arrow
  • 3d
  • sketch
  • glass
The pyramid, dot, arrow, sketch and glass variants are only effective for regular bar charts - not grouped or stacked charts.
Default: bar

- - - chart.xaxispos
- The position of the X axis. This can be bottom, center or top.
- Default: bottom

- - -chart.axis.color
- The color of the axes.
Default: black

- -chart.grouping
- How the bars are grouped, and it should be one of: grouped or stacked
Default: grouped

- - - -

 

-

Methods

- - - obj.getBar(event)

- This method makes it easier to get hold of which bar has been clicked on, or hovered over. It returns an array of: -
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width of the bar
  • -
  • The height of the bar
  • -
  • The numerical index of the bar. This corresponds (for example) to the tooltips array, and the coordinates array
  • -
- - An example usage is: - -
-<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-
-<script src="OfficeExcel.common.core.js"></script>
-<script src="OfficeExcel.bar.js"></script>
-
-<script>
-    myGraph = new OfficeExcel.Bar('myCanvas', [1.2, 1.3, 1.4, 1.5,6,1.9,2,2.1,2.5]);
-    myGraph.Set('chart.labels', ['John', 'Barry', 'Rich', 'Craig', 'Tom', 'Frank', 'Helen', 'Joyce', 'Fred'])
-    myGraph.Draw();
-
-    OfficeExcel.Register(myGraph);
-    
-    myGraph.canvas.onclick = function (e)
-    {
-        OfficeExcel.Redraw();
-    
-        var canvas  = e.target;
-        var context = canvas.getContext('2d');
-        var obj     = canvas.__object__;
-        var coords  = obj.getBar(e);
-        
-        if (coords) {
-            var top    = coords[1];
-            var left   = coords[2];
-            var width  = coords[3];
-            var height = coords[4];
-            
-            context.beginPath();
-                context.strokeStyle = 'black';
-                context.fillStyle = 'rgba(255,255,255,0.5)';
-                context.strokeRect(top, left, width, height);
-                context.fillRect(top, left, width, height);
-            context.stroke();
-            context.fill();
-        }
-    }
-</script>
-
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/basic.html b/OfficeWeb/sdk/Common/Charts/docs/basic.html deleted file mode 100644 index 43fe6ab8..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/basic.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - A basic example of an OfficeExcel chart - - - - - - - - - - - - - - -

A basic example

- - - [No canvas support] - - - - -

- This is a very basic example that does little more than display a chart. If you're trying to understand how OfficeExcel - works, this should help as there is very little happening on this page. To see the source code of this - page simply view the source (Right click > View Source). -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/basic_combined.html b/OfficeWeb/sdk/Common/Charts/docs/basic_combined.html deleted file mode 100644 index 3364a4d7..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/basic_combined.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - A basic example of a combined Bar and Line chart - - - - - - - - - - - - - - - - -

A basic example of a combined Bar/Line chart

- - - [No canvas support] - - - - -

- This is an example of a Bar chart combined with a Line chart. The source code is documented to make it easier - for you to copy and paste it if you wish. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/basic_events.html b/OfficeWeb/sdk/Common/Charts/docs/basic_events.html deleted file mode 100644 index 4c813e67..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/basic_events.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - A basic example of a chart that uses the OfficeExcel pseudo events - - - - - - - - - - - - - - -

A basic example of the OfficeExcel pseudo-events

- - - [No canvas support] - - - - -

- This is a basic example that shows you how to use the pseudo-events that OfficeExcel has: -

- -
    -
  • chart.events.click
  • -
  • chart.events.mousemove
  • -
- -

- Here the mousemove event is used to change the mouse cursor (it's automatically changed back for you). And the click event - is used to show an alert. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/basic_tooltips.html b/OfficeWeb/sdk/Common/Charts/docs/basic_tooltips.html deleted file mode 100644 index 3c79346f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/basic_tooltips.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - A basic example of a chart with tooltips that contain Pie charts - - - - - - - - - - - - - - - - - -

A basic example of Pie charts in tooltips

- - [No canvas support] - - - -

- This is a basic example that shows charts (Pie charts) in tooltips. The canvas element is part of the tooltip - HTML code (specified like regular tooltips), and then it uses the ontooltip event to run some code whhich - then creates the Pie chart in the tooltip. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/bipolar.html b/OfficeWeb/sdk/Common/Charts/docs/bipolar.html deleted file mode 100644 index a7b3d58e..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/bipolar.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - Documentation about the OfficeExcel Bi-polar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bi-polar charts documentation

- - - - - - -

 

-

Example

- -
-<script>
-    window.onload = function ()
-    {
-        // The Bipolar chart takes two arrays of data - one for the left side and one for the right.
-        var left  = [5,6,8,9,12,13,4,9];
-        var right = [5,8,4,11,15,26,13,16];
-        
-        // Create the Bi-polar object. Give the constructor the ID of the canvas tag along with
-        // the left sides data and the right sides data.
-        var bipolar = new OfficeExcel.Bipolar('myBipolar', left, right);
-        
-        // Configure the Bipolar chart to appear as wished.
-        bipolar.Set('chart.colors', ['#fff', '#eef', '#ddf', '#ccf', '#bbf', '#bbf', '#aaf', '#99f']);
-        bipolar.Set('chart.margin', 3);
-        bipolar.Set('chart.labels', ['Barry', 'John', 'Fred', 'George', 'Rich', 'Larry', 'John', 'Mike']);
-        bipolar.Set('chart.title.left', '2007');
-        bipolar.Set('chart.title.right', '2008');
-        bipolar.Set('chart.gutter.bottom', 45);
-        
-        // Now call the .Draw() method to draw the chart
-        bipolar.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - - -

 

-

Properties

- -

- You can use these properties to control how the chart apears. You can set them by using the Set() method. Eg: -

- -

- myBipolar.Set('name', 'value'); -

- - - - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.center
- The center area of the chart that the labels sit in. If your labels are large then you may need to increase this.
- Default: 60

- - - chart.margin
- The space above and below each bar.
Default: 2

- - -

Titles

- -chart.title
-The main title of the chart.
-Default: (An empty string)

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -chart.title.color
- The color of the title.
Default: black

- - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.left
- The left title.
Default: An empty string

- -chart.title.right
- The right title.
Default: An empty string

- - -

Colors

- - - chart.colors
- An array of colors. These too can be gradients that you make if you wish.
- Default: ['#fcf', '#00f', '#f00', '#0f0', '#ff0', '#0ff', '#f0f', '#ff6101', '#b401ff', '#e4ff01', '#fb8195', '#ccc']

- - - chart.strokestyle
- This is the color used as the stroke style. If you didn't want it, you could set this to rgba(0,0,0,0)
- Default: #333

- - -

Labels, text and axes

- chart.xtickinterval
- The X tick mark interval.
Default: null

- - - chart.axis.color
- The color of the axes.
Default: black

- - - chart.xmax
- This allows you to set the maximum X value that the chart uses, instead of it being auto-generated.
- Default: null


- - - - -chart.labels
- An array of the charts labels (they go in the middle).
Default: null

- -chart.text.size
- The size of the text used (in points).
Default: 10

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -

Scale

- - - chart.scale.formatter
- To allow thoroughly custom formats of numbers in the scale, you can use this option to - specify a function that is used by OfficeExcel to format numbers. This function should - handle ALL of the formatting. Eg:

-
-function myFormatter(obj, num)
-{
-    return num + 'F'; // An example of formatting
-}
-myGraph.Set('chart.scale.formatter', myFormatter);
-
-
Default: null

- - - chart.scale.decimals
- The number of decimal places to display for the Y scale. -
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - chart.scale.round
- Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.
- Default: null

- -chart.units.pre
- The units that are applied to the X axis labels (these are pre-pended to the number).
Default: none

- -chart.units.post
- The units that are applied to the X axis labels (these are appended to the number).
Default: none

- -

Interactive features

-chart.tooltips
- A numerically indexed array of tooltips that are shown when a bar is clicked. These can contain HTML.
Default: An empty array

- -chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
Default: fade

- -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- -chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- -chart.contextmenu
- An array of context menu items. Cannot be used in conjunction with tooltips.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -

Shadow

-chart.shadow
- Turns the shadow on or off.
Default: false

- -chart.shadow.color
- The color of the shadow.
Default: #666

- -chart.shadow.offsetx
- The horizontal offset of the shadow.
Default: 3

- -chart.shadow.offsety
- The vertical offset of the shadow.
Default: 3

- -chart.shadow.blur
- How severe the blurring effect is for the shadow.
Default: 3

- -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - -

Miscellaneous

- - - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- -

- - - -

 

-

Methods

- - - obj.getBar(event)

-

- This method when used in an event will return the details of the bar that was clicked on moused over (if any). It returns: -

- -
    -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width
  • -
  • The height
  • -
  • The index of the bar (starting at 0)
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/bulk-discount.html b/OfficeWeb/sdk/Common/Charts/docs/bulk-discount.html deleted file mode 100644 index 598d0a12..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/bulk-discount.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - Information about the OfficeExcel bulk licensing discounts that are available - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bulk licensing discount information

- -

- If you're a web developer or designer wanting to buy licenses for multiple clients, then buying them in bulk can be done by using the - "Buy now..." buttons below. The discounts are as follows: -

- - - - - - -

 

-

15 licenses with 50% discount

-
- Use one of these buy now buttons if you wish to purchase 15 OfficeExcel licenses with a 50% discount. - -
-
- - - - - - - -
- -
- - - - -
- - -
-
- -

- - -

 

-

10 licenses with 35% discount

-
- Use one of these buy now buttons if you wish to purchase 10 OfficeExcel licenses with a 35% discount. - -
-
- - - - - - - -
- -
- - - - -
- -
-
- -

- - -

 

-

5 licenses with 25% discount

-
- Use one of these buy now buttons if you wish to purchase 5 OfficeExcel licenses with a 25% discount. - -
-
- - - - - - - -
- -
- - - - -
-
- -
- -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/color.html b/OfficeWeb/sdk/Common/Charts/docs/color.html deleted file mode 100644 index 016d34bc..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/color.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - Information about HTML5 canvas color definitions - - - - - - - - - - - - - - - - - - - - - - - - -

- -

About canvas color definitions

- - - -

- You will probably want to know the different ways you can define a color. There are a few - ways which you can use, all of which are quite straight-forward. -

- - - - -
 
-

Named colors

- -

- The first, and easiest, is to use named colors. This gives you a range of color values that have been predefined for you. Eg: -

- -
myObject.Set('chart.colors', ['red', 'blue']);
- - -
 
-

Hex values

- -

- The next, is straight forward hex values like you can use in normal CSS. These consist of a hash sign, - followed by three or six hexadecimal characters. Eg: -

- -
myObject.Set('chart.colors', ['#f00', '#0000ff']);
- - -
 
-

RGB values

- -

- Also as used in CSS, RGB values are the same as what you can use in CSS. Eg: -

- -
myObject.Set('chart.colors', ['rgb(255,0,0)', 'rgb(0,0,255)']);
- - -
 
-

RGBA values

- -

- Probably new to most people, is rgba(). Similar to regular rgb() values, but with a fourth value that allows you to specify the - alpha value, which stipulates how transparent the color is. An alpha value of 0 is totally transparent, and a value of 1, is - totally opaque (ie. you can't see through it). With a value of 1, rgba() acts exactly like rgb(). This example gives you red - and blue colors that are semi-transparent: -

- -
myObject.Set('chart.colors', ['rgba(255,0,0,0.5)', 'rgba(0,0,255,0.5)']);
- - -
 
-

HSL() values

- -

- Also probably quite new to you, are hsl() values. Much like rgb(), but instead of red green and blue, it allows you to specify - the Hue, Saturation and Light values instead. For example: -

- -
myObject.Set('chart.colors', ['hsl(255, 100%, 50%)', 'hsl(169, 100%, 50%)']);
- - -
 
-

HSLA() values

- -

- Much like rgb() and rgba(), hsl() has a corresponding hsla() version, which allows you to specify an alpha (transparency) value. - Eg: -

- -
myObject.Set('chart.colors', ['hsla(255, 100%, 50%, 0.5)', 'hsla(169, 100%, 50%, 0.5)']);
- - -
 
-

Linear gradients

- -

- Gradients can be used in place of color values. You can create a linear gradient like so: -

- -
myGradient = myObject.context.createLinearGradient(0,0,0,250);
-myGradient.addColorStop(0, 'red');
-myGradient.addColorStop(1, 'blue');
- -

- This creates a gradient that goes from red to blue. The gradient starts at 0,0, and finishes at 0,250. ie A vertical - gradient. You may not see the whole gradient - that depends on the extent of the shape you're filling. You can use the gradient - in place of a regular color definition. Eg: -

- -
myObject.Set('chart.colors', [myGradient]);
- - -
 
-

Radial gradients

- -

- Radial gradients are much like their linear counterparts, but circular, as the name suggests. Eg: -

- -
myGradient = myObject.context.createRadialGradient(0,0,0,0,0,100);
-myGradient.addColorStop(0, 'red');
-myGradient.addColorStop(1, 'blue');
-
- -

- Instead of four arguments, it takes six - the coordinates of the start point along with the radius, and the coordinates - of the end point, along with the radius. After it has been created, you can treat as you would a linear gradient: -

- -
myObject.Set('chart.colors', [myGradient]);
- - -
 
-

More information

- -

- You can read more about CSS3 color definitions here. -

- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/combine.html b/OfficeWeb/sdk/Common/Charts/docs/combine.html deleted file mode 100644 index 0b6cc195..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/combine.html +++ /dev/null @@ -1,438 +0,0 @@ - - - - - - Information about combining the Bar and Line charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Combining charts

- - - - - - -

Combining bar and line charts

- - [No canvas support] - - - -

- This is an example of combining Bar and Line charts. It's quite straight-forward, and the code here shows you how it can be achieved. -

- -

- If the values for the line and bar result in different Y scales you may need to specify the chart.ymax property for each chart - so that the scales are the same. The line turns off Y labels so as not to overwrite the Bars labels. -

- - Tooltips - -

- You can have tooltips on the Line and Bar chart and you can now also have highlighting, as shown on the example. - The order in which you create the charts is also important, you must define the Bar chart first, and subsequently the Line - chart. -

- -

Update - 28th August 2011

-

- You can now have tooltips on both the Line chart and the Bar chart, as is shown in the chart here. Keep in mind - that you will need to have highlighting turned off on both chart types - chart.tooltips.highlight. -

- -
-<script>
-    line.Set('chart.tooltips.highlight', false);
-    bar.Set('chart.tooltips.highlight', false);
-</script>
-
- -

- Because the tooltips are only triggered by the Line chart, you should put all of the information, for both the Line and the - Bar chart, in the tooltips. -

- - -

Combining Line charts

- - - [No canvas support] - - -

- Another type of chart you may want is a line chart with Y axes on both sides, as illustrated on the right. You should - be careful with this chart type as it can easily lead to confusion. -

- -

- This chart is made up from two line charts, one with the Y axis on the left and one on the right. The code that makes up - this chart is below. -

- -

- The only reason to combine line charts is to get Y axes on the left and right. If you simply want mutiple lines, - you can do this without combining any charts. See the line chart example page -

- -
- -
-<script>
-    window.onload = function
-    {
-        line2 = new OfficeExcel.Line('myCanvas2', [51,22,23,33,35,23,32,45]);
-        line2.Set('chart.hmargin', 10);
-        line2.Set('chart.labels', ['Kiff', 'Wayne', 'Pete', 'Lou', 'Jake', 'Jo', 'Fred', 'Bob']);
-        line2.Set('chart.linewidth', 3);
-        line2.Set('chart.shadow', true);
-        line2.Set('chart.shadow.offsetx', 2);
-        line2.Set('chart.shadow.offsety', 2);
-        line2.Set('chart.ymax', 65);
-        line2.Set('chart.units.post', 'l');
-        line2.Set('chart.noxaxis', true);
-        line2.Set('chart.noendxtick', true);
-        line2.Set('chart.title', 'An example of axes both sides');
-        line2.Draw();
-
-        line3 = new OfficeExcel.Line('myCanvas2', [42,50,51,23,46,48,65,11]);
-        line3.Set('chart.hmargin', 10);
-        line3.Set('chart.linewidth', 3);
-        line3.Set('chart.shadow', true);
-        line3.Set('chart.shadow.offsetx', 2);
-        line3.Set('chart.shadow.offsety', 2);
-        line3.Set('chart.yaxispos', 'right');
-        line3.Set('chart.noendxtick', true);
-        line3.Set('chart.background.grid', false);
-        line3.Set('chart.ymax', 65);
-        line3.Set('chart.colors', ['blue', 'red']);
-        line3.Set('chart.units.pre', '$');
-        line3.Set('chart.key', ['Cost', 'Volume']);
-        line3.Set('chart.key.background', 'rgba(255,255,255,0.5)');
-        line3.Draw();
-    }
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/context.html b/OfficeWeb/sdk/Common/Charts/docs/context.html deleted file mode 100644 index f3f18b94..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/context.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - Information about the custom context menus available in OfficeExcel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Context menus

- - - - - - -
- [No canvas support]
- (some browsers use a double left click) -
- - - - -
 
-

What are context menus?

- -

- Context menus are what you see when you click your right mouse button. With OfficeExcel, you can specify custom menus - for your charts if you wish. This way you can define custom actions to be associated with menu items. Context menus are a - very easy way to extend the functionality of your charts, allowing you to associate presentation style functionality - with them. -

- -

- Important: Opera does not allow you to customise the context menu, so with this browser you - should use the left mouse button on the chart, instead of the right. -

- - -
 
-

What do they look like?

- - An OfficeExcel context menu - -

- Context menus look like the image on the right. You can of course customise their look by using stylesheets. The CSS classes - you need to use are OfficeExcel_contextmenu_background, OfficeExcel_contextmenu and OfficeExcel_contextmenu_item. Eg: -

- -
- -
-<style type="text/css">
-    .OfficeExcel_contextmenu {
-    }
-
-    .OfficeExcel_contextmenu_item {
-    }
-
-    .OfficeExcel_contextmenu_background {
-    }
-</style>
- -

- The "! important" is not necessary if you're not overriding a style that is set by the chart script. If you're having trouble, - it's a good idea to use it though. -

- - -
 
-

Can I have multiple levels of menus?

- -

- Yes, as of 24th April 2010 you can have a dual level context menu, which can reduce "option overload" in your user interface. - This example defines a simple context menu: -

- -
-bar.Set('chart.contextmenu', [
-                              ['Zoom', OfficeExcel.Zoom],
-                              ['Application', [['Login...', function () {ModalDialog.Show('modaldialog_login', 300);}]] ],
-                              null,
-                              ['Cancel', function () {}]
-                             ]);
-
- -

- As you can see there could easily get to be a lot of arrays, so it may help you during development to structure your code by using - indentation. -

- - -
 
-

How do I define context menus?

- -

- Defining a context menu is quite a simple affair. Eg: -

- -
-myBar.Set('chart.contextmenu', [
-                                ['Menu item 1', Callback1],
-                                ['Menu item 2', Callback2]
-                               ]);
- -

- As you can see, the value is a two dimension array. The second being an array consisting of a string which is used as the name of the - menu item, and a function object (NOT the function name as a string). The function object is the function called when the menu item is selected. -

- - -
 
-

Can I have "separators"?

- -

- Yes. Simply pass null instead of an array as your menu item. Eg: -

- -
-myBar.Set('chart.contextmenu', [
-                                ['Menu item 1', Callback1],
-                                null,
-                                ['Menu item 2', Callback2]
-                               ]);
- - -
 
-

How do I bypass them?

- -

- If for any reason you wish to access the browsers own context menu, you can hold down your CTRL key on your keyboard when you - click, and the canvas context menu will be bypassed. Try it on the chart below by holding your CTRL key whilst right clicking. -

- - - - - -
 
- - [No canvas support] - -

How do I get the underlying shape that was clicked on?

- -

- In some circumstances you may want to know which bar/point/segment was right-clicked on when showing the context menu (if any). - In these cases you will find the pertinent information (the same as what you get from the various .get*() methods) on the - context menu object - which is held in the registry: OfficeExcel.Registry.Get('chart.contextmenu').__shape__. The example bar chart - shows it in action. -

- -
-<script>
-    function myListener (obj)
-    {
-        p(OfficeExcel.Registry.Get('chart.contextmenu').__shape__)
-    }
-    OfficeExcel.AddCustomEventListener(myBar, 'oncontextmenu', myListener);
-</script>
-
- - - -
 
-

What can I use them for?

- -

- Since the context menu items run Javascript functions when selected, you can use them for pretty much - anything you want. For example you could make a presentation system, with the context menu controlling which - chart is shown on the canvas, like the example above. -

- - -
 
-

Context menus, Macs, Safari, Opera and MSIE 9

-

- Mac Safari, Mac Firefox, Windows Safari and MSIE 9 (beta 1) can have trouble displaying the context menu. So for this reason, for these browsers, - the context menu is attached to a double click of the left mouse button. Opera doesn't support customising the context menu so - this browser also uses a left mouse button double click to trigger the context menu. -

- - -
 
-

Related events

-

- There are two context menu related events which you can utilise: -

- -
    -
  • onbeforecontextmenu
  • -
  • oncontextmenu
  • -
- -

- As their names suggest, one fires before the contextmenu is shown, and one after. Important: Because of the - fading effect, it may seem that both events fire before the contextmenu is shown, however this is just due to the nature - of Javascript timers and the fact that alert()s will block them (pause them in effect). -

- - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/css.html b/OfficeWeb/sdk/Common/Charts/docs/css.html deleted file mode 100644 index c04f95aa..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/css.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - Information about the CSS classes that are available in OfficeExcel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Available CSS classes

- - - -

- This is information about the CSS classes available to you to allow you to customise the appearance of tooltips and - context menus. -

- - - - -
 
-

OfficeExcel_png

-

- This controls the appearance of the PNG image which is shown when you use the context menu option OfficeExcel.showPNG(). -

- - -
 
-

OfficeExcel_palette

-

- This controls the appearance of the mini-palette that can be used with annotating. -

- - -
 
-

OfficeExcel_tooltip

-

- This controls the appearance of tooltips. The default is to have them look like Windows tooltips. -

- - -
 
-

OfficeExcel_contextmenu

-

- This controls how context menus appear. The default is similar to the look that Windows XP has. -

- - -
 
-

OfficeExcel_contextmenu_item

-

- This controls how individual items on the context menu will appear, for example the default has roughly 25px padding-left - to accomodate the left bar. -

- - -
 
-

OfficeExcel_contextmenu_background

-

- This is the Windows XP style left vertical bar. By default this is light grey. -

- - -
 
-

OfficeExcel_zoom_window

-

- This is the class to use if you want to customise the mini-zoom window. -

- - -
 
-

OfficeExcel_zoomed_canvas

-

- This is the class to use if you want to customise the full canvas zoom. -

- - -
 
-

OfficeExcel_zoomed_area

-

- This is the class to use if you want to customise the zoomed area. -

- - -
 
-

ModalDialog_background

-

- This class controls the dark semi-opaque background for the ModalDialog. -

- - -
 
-

ModalDialog_dialog

-

- This class controls the ModalDialog itself. -

- - -
 
-

ModalDialog_topbar

-

- This class controls the top bar for the ModalDialog. You could, for example, use the display CSS property to - hide this if you don't want it. -

- - -
 
-

Example usage

-

- Here is an example of using the CSS classes. At the time of writing, some of the items here were only implemented in newer - web browsers: -

- -
-<style>
-    .OfficeExcel_png {
-    }
-
-    .OfficeExcel_palette {
-    }
-
-    .OfficeExcel_tooltip {
-    }
-    
-    .OfficeExcel_contextmenu {
-    }
-    
-    .OfficeExcel_contextmenu_background {
-    }
-    
-    .OfficeExcel_contextmenu_item {
-    }
-    
-    .OfficeExcel_zoom_window {
-    }
-    
-    .OfficeExcel_zoomed_canvas {
-    }
-    
-    .OfficeExcel_zoomed_area {
-    }
-    
-    .ModalDialog_background {
-    }
-    
-    .ModalDialog_dialog {
-    }
-    
-    .ModalDialog_topbar {
-    }
-</style>
-
- - -
 
-

! important

- -

- If you're attempting to override default styles, then because of the ordering (ie the script is setting the style AFTER - your own CSS) you may need to use the "! important" modifier, for example: -

- -
-<style>
-    .OfficeExcel_tooltip {
-        background-color: white ! important;
-    }
-</style>
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/domcontentloaded.html b/OfficeWeb/sdk/Common/Charts/docs/domcontentloaded.html deleted file mode 100644 index d1d2ab48..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/domcontentloaded.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - Using the DOMContentLoaded event to create your chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

DOMContentLoaded example

- - - -

Waiting for onload event...

- - - - -

- - - - - These images are here to pad the page and slow down loading so that the window.onload event is slowed. This makes the - difference far more visible. -

- - [No canvas support] - -

- The DOMContentLoaded event is an extremely useful event and can make a big impact on the performance of your pages, hence this - example. The DOMContentLoaded event fires when the pages HTML and scripts have loaded, but not necessarily any images or CSS. - This can make a big improvement on the apparent speed of your page(s). -

- -

- You can read more about the DOMContentLoaded event on the Mozilla site, here, - and the Microsoft site here. -

- -
- -
-function createGraph(func)
-{
-    if(window.addEventListener) {
-        window.addEventListener('DOMContentLoaded', func, false);
-    } else {
-        document.attachEvent("onDOMContentLoaded", func);
-    }
-}
-
- -

Browser support

- -

- The DOMContentLoaded event is supported by the following browsers: -

- - - -

See also

- - You might also be interested in asynchronous chart creation as an alternative. - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/donut.html b/OfficeWeb/sdk/Common/Charts/docs/donut.html deleted file mode 100644 index 819a45e8..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/donut.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - Donut charts documentation - the Donut chart is now a variant of the Pie chart - - - - - - - - - - - - - - - - - - - - - - - - - - -

Donut charts documentation

- - - -

- Donut charts were formerly separate charts, however it's now simply a variant of the Pie chart. -

- - -

Example

- -
-<script>
-    window.onload = function ()
-    {
-        // The data to be shown on the Donut chart
-        var data = [45,57,48,32];
-    
-        // Create the Donut chart (which is really a Pie chart).
-        var donut = new OfficeExcel.Pie('myDonut', data);
-        
-        // Configure the Donut chart to look as wanted.
-        donut.Set('chart.labels', ['Jan', 'Ben', 'Mark', 'Lucy']);
-        donut.Set('chart.linewidth', 5);
-        donut.Set('chart.strokestyle', 'white');
-        donut.Set('chart.tooltips', ['Jan', 'Ben', 'Mark', 'Lucy']);
-        
-        // Specify the variant, which turns the Pie chart into a Donut chart.
-        donut.Set('chart.variant', 'donut');
-        
-        // Call the .Draw() method to draw the Donut chart
-        donut.Draw();
-    }
-</script>
-
- - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/dynamic.html b/OfficeWeb/sdk/Common/Charts/docs/dynamic.html deleted file mode 100644 index 346ed4aa..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/dynamic.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - Information about how you can update your charts dynamically - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Updating your charts dynamically

- - - - [No canvas support] - - -

- The example on the right shows a line chart that automatically updates itself every 25 milliseconds. An ideal - use for this could be showing a networks bandwidth usage, or a servers load value. -

- -

- This particular example shows a stacked line chart with two data series, though if you're showing load/stress values, a - non-filled chart might be a better choice. -

- -

- To get up-to-date data from your server you could simply have the page refresh itself, storing the data on the server, - or use AJAX if you want the data stored client-side. -

- -

- If you're refreshing the chart often, as it is here, refreshing the whole page probably isn't the best idea, so AJAX may be - the better choice. -

- -

- Be careful of the data types you use to pass the data to OfficeExcel - you should use numbers to represent values, not strings. -

- -
- -
-<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-
-<script>
-    d1 = [];
-    d2 = [];
-    
-    // Pre-pad the arrays with 250 null values
-    for (var i=0; i< 250; ++i) {
-        d1.push(null);
-        d2.push(null);
-    }
-
-    function getGraph(id, d1, d2)
-    {
-        var graph = new OfficeExcel.Line(id, d1, d2);
-        graph.Set('chart.background.barcolor1', 'white');
-        graph.Set('chart.background.barcolor2', 'white');
-        graph.Set('chart.title.xaxis', 'Time');
-        graph.Set('chart.filled', true);
-        graph.Set('chart.fillstyle', ['#daf1fa', '#faa']);
-        graph.Set('chart.colors', ['rgb(169, 222, 244)', 'red']);
-        graph.Set('chart.linewidth', 3);
-        graph.Set('chart.ymax', 20);
-        graph.Set('chart.xticks', 25);
-
-        return graph;
-    }
-    
-    function drawGraph (e)
-    {
-        // Clear the canvas and redraw the chart
-        OfficeExcel.Clear(document.getElementById("cvs"));
-        var graph = getGraph('cvs', d1, d2);
-        graph.Draw();
-        
-        // Add some data to the data arrays
-        d1.push(OfficeExcel.random(5, 10));
-        d2.push(OfficeExcel.random(5, 10));
-        
-        // Get rid of the first values of the arrays
-        if (d1.length > 250) {
-            d1 = OfficeExcel.array_shift(d1);
-            d2 = OfficeExcel.array_shift(d2);
-        }
-
-        setTimeout(drawGraph,25);
-    }
-    
-    drawGraph();
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/effects.html b/OfficeWeb/sdk/Common/Charts/docs/effects.html deleted file mode 100644 index 02692a0d..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/effects.html +++ /dev/null @@ -1,1712 +0,0 @@ - - - - - - The OfficeExcel animation and visual effects - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Animation and visual effects

- - - - - -

Introduction

-

- The animation and visual effects code is new to OfficeExcel as of August 2011. It greatly simplifies the process of animating your - graphs or using visual effects. -

- - - -

Example use

-

- To use the effects you simply change your call to the .Draw() method to the appropriate effect function, like this: -

- -
-<script src="OfficeExcel.common.core.js" ></script>
-<script src="OfficeExcel.line.js" ></script>
-<script src="OfficeExcel.common.effects.js" ></script>
-<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" ></script>
-
-<script>
-    var myLine = new OfficeExcel.Line('myLine', [14,13,16,18,14,12,11,14,19,18,17,18], [11,12,14,12,11,13,13,15,14,15,13,14]);
-    myLine.Set('chart.labels', ['Jane','Geoff','Lou','Pob','Verity','Baz','Hue','Olga','Pete','Lou','Kev','Fred']);
-    myLine.Set('chart.gutter.top', 35);
-    myLine.Set('chart.gutter.left', 40  );
-    myLine.Set('chart.gutter.right', 5);
-    myLine.Set('chart.gutter.bottom', 10);
-    
-    // myLine.Draw();
-    OfficeExcel.Effects.Fade.In(myLine);
-</script>
-
- - - -

CSS animation vs <canvas> animation

-

- CSS animation (which jQuery does) can be smoother than canvas animation (ie changing the CSS properties vs redrawing the - canvas). This is because CSS animation (ie changing the CSS properties) does not have the side - effect of clearing the canvas, and so does not incur a redraw. -

- -

- An alternative to the widely known and understood setTimeout() function is the newer requestAnimationFrame(). - This is a function which has been optimised for animation compared to the standard setTimeout() function. Some of - the animation functions use this over the setTimeout() function and going forward newer animation functions will - use it. OfficeExcel has a fallback though so that if the function isn't available the older setTimeout() will be used. -

- - - -

Combining effects

-

- Some of the animation effects (ie those that work on separate aspects of the chart) can be combined. As an example the - Fade in/out can be combined with most other animation effects, allowing you to add a fade effect to the other animation - types. An example of this is below - this chart uses the Grow, Fade and Reveal effects. -

- -[No canvas support]
- - - -
-<script>
-    function ShowCombination(obj)
-    {
-        OfficeExcel.Effects.Fade.In(obj);
-        OfficeExcel.Effects.jQuery.Reveal(obj);
-        OfficeExcel.Effects.Bar.Grow(obj);
-    }
-</script>
-<button onclick="ShowCombination(myBar)">Show Combining animations example</button>
-
- -

- There's another example of combined effects on the combined charts page. -

- - -

The .Animate() function

-

- The .Animate() function function is similar to the jQuery .Animate() function. You can pass it a map of OfficeExcel - properties and their TARGET values and the .Animate() function will move the properties towards those values. - In this way you can animate a variety of OfficeExcel properties. The .Animate() function takes two or three arguments: -

- -
    -
  • The graph object
  • -
  • A map of the target chart properties
  • -
  • (Optional) A function object which is called when the animation is complete (it is passed the chart object)
  • -
- -

An example of it use is below. It should be used instead of calling the .Draw() method:

- - [No canvas support]
- - - - -
-function myCallback (obj)
-{
-    alert('A sample callback using the alert() function');
-}
-
-// myBar.Draw();
-OfficeExcel.Effects.Animate(myBar, {'chart.hmargin': 5, 'chart.gutter.left': 50}, myCallback);
-
- - -

Available effects

- -

- These are the effects available. You can achieve more effects by using the .Animate() function, - which allows you to animate any numeric OfficeExcel property. -

- - - - - -
- -

Fade in

- - [No canvas support]
- - -

- - A simple fade in effect where the canvas is initially drawn with an opacity of zero, increasing to one. - -

OfficeExcel.Effects.Fade.In(obj);
-
- - - - - - - -
- -

Fade out

- - [No canvas support]
- - -

- - A simple fade out effect to accompany the fade in, where the canvas initially has an opacity of one, decreasing - to zero. - -

OfficeExcel.Effects.Fade.Out(obj);
-
- - - - - - - -
- -

Expand

- - [No canvas support] -
- - -

- - This effect starts initially with the canvases CSS width and height set to 0 and over a period of half a second - increases them to 100%. - -

OfficeExcel.Effects.jQuery.Expand(obj);
-
- - - - - - - -
- -

Snap

- - [No canvas support]
- - -

- - This effect is similar to the tooltip effect "snap" in that it "snaps" to the correct position, - moving in from the top left. - -

OfficeExcel.Effects.jQuery.Snap(obj);
-
- - - - - - - -
- -

Reveal

- - [No canvas support]
- - -

- - This effect starts with the the canvas covered and is slowly revealed from the center outwards. The canvas - is at all times the same size (ie it's not resizd as with the Expand effect). - -

OfficeExcel.Effects.jQuery.Reveal(obj);
-
- - - - - - - -
- -

Conceal

- - [No canvas support]
- - -

- - This effect is a reversal of the above Reveal effect - it gradually covers the canvas with DIVs. Combining - it with the above Reveal effect can make an effective transition. - -

OfficeExcel.Effects.jQuery.Conceal(obj);
-
- - - - - - - -
- -

Horizontal Blinds (open)

- - [No canvas support]
- - -

- - This effect gradually reveals the canvas by "opening some horizontal blinds", which are positioned - over the canvas. - -

OfficeExcel.Effects.jQuery.Blinds.Open(obj);
-
- - - - - - - -
- -

Horizontal Blinds (close)

- - [No canvas support]
- - -

- - This effect gradually conceals the canvas by "closing some horizontal blinds", which are positioned - over the canvas. - -

OfficeExcel.Effects.jQuery.HBlinds.Close(obj);
-
- - - - - - - -
- -

Vertical Blinds (open)

- - [No canvas support]
- - -

- - This effect gradually reveals the canvas by "opening some vertical blinds", which are positioned - over the canvas. - -

OfficeExcel.Effects.jQuery.VBlinds.Open(obj);
-
- - - - - - - -
- -

Vertical Blinds (Close)

- - [No canvas support]
- - -

- - This effect gradually conceals the canvas by "closing some vertical blinds", which are positioned - over the canvas. - -

OfficeExcel.Effects.jQuery.VBlinds.Close(obj);
-
- - - - - - - -
- -

Pie chart Grow

- - [No canvas support]
- - -

- - This effect gradually increases the radius of the Pie chart, expanding out from the centre. - -

OfficeExcel.Effects.Pie.Grow(obj);
-
- - - - - - - -
- -

Pie chart Implode

- - [No canvas support]
- - -

- - This effect gradually decreases the explosion of the chart - gradually bringing it together. Combined with - the RoundRobin effect (documented below) produces a nice combination, as seen on the frony page of this website. - -

-OfficeExcel.Effects.Pie.Implode(obj);
-
-
- - - - - - - -
- -

Pie chart RoundRobin

- - [No canvas support]
- - -

- - This effect gradually increase both the circular size of the Pie chart and also the radius. Combining this effect - with the implode effect produces a nice effect. - -

-OfficeExcel.Effects.Pie.RoundRobin(obj);
-//OfficeExcel.Effects.Pie.Implode(obj);
-
-
- - - - - - - - -
- -

Pie chart Wave

- - [No canvas support]
- - -

- - This effect is vaguely similar to the RoundRobin effect, and slowly shrinks the segments to the correct size. - -

OfficeExcel.Effects.Pie.Wave(obj);
-
- - - - - - - - -
- -

Bar chart Grow

- - [No canvas support]
- - -

- - This effect gradually increases the size of the bars on the bar chart until they are at full size. - -

OfficeExcel.Effects.Bar.Grow(obj);
-
- - - - - - - - -
- -

Bar chart Wave

- - [No canvas support]
- - -

- - This effect gradually increases the values of the Bar chart in a wave motion until they are correct. - -

- Note: -

- Some features of OfficeExcel that use extra processing (eg the 3D effect) will cause this effect to have a slow frame rate. - -
OfficeExcel.Effects.Bar.Wave(obj);
-
- - - - - - - - -
- -

Bar chart Wave2

- - [No canvas support]
- - -

- - This effect is much the same as the previous, except that this effect uses the Javascript 1.8.5 .bind() - method, so is slower in browsers that don't support it natively. - -

- Note: -

- Some features of OfficeExcel that use extra processing (eg the 3D effect) will cause this effect to have a slow frame rate. - -
OfficeExcel.Effects.Bar.Wave2(obj);
-
- - - - - - - -
- -

Fuel chart Grow

- - [No canvas support]
- - -

- - This effect gradually increases the indicated value until it reaches the correct value. - -

OfficeExcel.Effects.Fuel.Grow(obj);
-
- - - -
- Note: - In some browsers (particularly Chrome 15) the icon causes the canvas to flicker. To stop this you must get rid of the - image, which you can do by setting chart.icon to null. -
- - - - - -
- -

Slide out

- - [No canvas support]
- - -

- - This effect slides the whole canvas out. One potential use would be to slide the canvas out and then - slide another canvas with a different chart in. You can specify that the canvas slides out to by using the second - argument as shown below. - -

OfficeExcel.Effects.jQuery.Slide.Out(obj, {'to': 'bottom'});
-
- - - - - - - -
- -

Slide in

- - [No canvas support]
- - -

- - This effect slides the whole canvas in. As mentioned above you could this effect with the Slinde Out effect to - create a slideshow. - -

OfficeExcel.Effects.jQuery.Slide.In(obj, {'from': 'right'});
-
- - - - - - - -
- -

Unfold

- - [No canvas support]
- - -

- - This effect "unfolds" the line from the origin, gradually increasing the X (and/or Y) values. There's also an example - of a combined Bar/Line chart with the Bar chart Grow, the Fade and the Line chart Unfold effects on the - combined charts page. - -

OfficeExcel.Effects.Line.Unfold(obj);
-
- - - - - - - -
- -

UnfoldFromCenter

- - [No canvas support]
- - -

- - This effect "unfolds" the line from the center, gradually increasing or decreasing the Y values as appropriate. - -

OfficeExcel.Effects.Line.UnfoldFromCenter(obj);
-
- - - - - - - -
- -

FoldTocenter

- - [No canvas support]
- - -

- - This effect "folds" the line to the center, gradually increasing or decreasing the Y values as appropriate. In - effect the opposite of the "unfold" effect. - -

OfficeExcel.Effects.Line.FoldToCenter(obj);
-
- - - - - - - -
- -

Line chart Trace

- - [No canvas support]
- - -

- - This effect gradually traces the line across the chart - slowly revealing it in full. Not all Line chart options - work with this effect. - -

OfficeExcel.Effects.Line.jQuery.Trace(myLine14);
-
- - - - - - - - - -
- -

Rose chart Grow

- - [No canvas support]
- - -

- - This effect gradually increases the radius and the radius of each segment. It is not available with - non-equi-angular Rose charts. - -

OfficeExcel.Effects.Rose.Grow(obj);
-
- - - - - - - - -
- -

Rose chart Explode

- - [No canvas support]
- - -

- - This effect gradually increases the chart.exploded property of the Rose chart. Combining it with the Implode - effect could make an effective transition to a new chart. - -

OfficeExcel.Effects.Rose.Explode(obj, {'frames': 60});
-
- - - - - - - - -
- -

Rose chart Implode

- - [No canvas support]
- - -

- - This effect gradually decreases the exploded factor of the chart. Combined with the above Exploded effect could - make an effective transition to a new chart. - -

OfficeExcel.Effects.Rose.Implode(obj, {frames: 60});
-
- - - - - - - - -
- -

Odometer Grow

- - [No canvas support]
- - -

- - This effect gradually increase the value of the Odometer until it reaches the desired value. The second - argument is not used, but the third can be a Javascript function and will be called when the animation - is finished. - -

OfficeExcel.Effects.Odo.Grow(obj, null, myFunc);
-
- - - -
- Warning: - Note that disabling tickmarks can significantly increase the Grow animation frame rate (particularly in Chrome 15). - You can do this with obj.Set('chart.tickmarks', false);, optionally replacing them with coloured bands - (as above) with obj.Set('chart.tickmarks.highlighted', true);. -
- - - - - - -
- -

Meter Grow

- - [No canvas support]
- - -

- - This effect gradually increases the value of the Meter until it reaches the desired value. You can optionally specify an object map - as the second argument of which the only option is frames - allowing to specify the number of frames in the animation. - More frames = longer animation. The animation is set to use a frame rate of roughly 60 frames a second. - -

OfficeExcel.Effects.Meter.Grow(obj, {'frames': 90});
-
- - - - - - - - -
- -

HBar Grow

- - [No canvas support]
- - -

- - This effect gradually increase the values of the HBar until it reaches the desired value. - -

OfficeExcel.Effects.HBar.Grow(obj);
-
- - - - - - - - -
- -

Gauge Grow

- - [No canvas support]
- - -

- - This effect gradually increases the indicated value until it is correct. It's also shown on the - Gauge chart example page. By constantly updating the Gauge (with some AJAX - for example) you could make a control panel of sorts. - -

OfficeExcel.Effects.Gauge.Grow(obj);
-
- - - - - - - - -
- -

Radar Grow

- - [No canvas support]
- - -

- - This effect gradually increases the magnitude of the Radar chart, growing outwards from the center. Multiple - data sets are supported. - -

OfficeExcel.Effects.Radar.Grow(obj);
-
- - - - - - - - -
- -

Waterfall Grow

- - [No canvas support]
- - -

- - This effect gradually Grows the waterfall chart in both X and Y respects. - -

OfficeExcel.Effects.Waterfall.Grow(obj);
-
- - - - - - - - -
- -

Gantt Grow

- - [No canvas support]
- - -

- - This effect gradually Grows the Gantt chart in the respect of the X size of the bars. - -

OfficeExcel.Effects.Gantt.Grow(obj);
-
- - - - - - - - - -

Things to note

-
    -
  1. - With Fade in/out effects remember that just because you can't see the canvas (ie the opacity is 0) doesn't mean - that you can't interact with it, so tooltip hotspots will still be active. If you want to get rid of the canvas - entirely you need to remove it from the DOM. You can do this with the standard .removeChild function: -
    obj.canvas.parentNode.removeChild(obj.canvas);
    - - This will leave a hole in the page though and will cause the page layout to change. If this is an issue you may - want to use the OfficeExcel API function OfficeExcel.Effects.ReplaceCanvasWithDIV(canvas). As the name - suggests, this function replaces the canvas with a DIV which has the same dimensions meaning your page structure - won't change. -
  2. - -
  3. - It should be noted that in order to prevent the canvas being constantly drawn on, it is cleared at the - start of the animation. -
  4. - -
  5. - In the jQuery animations here, the Google hosted jQuery is used: - -
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    -
  6. - -
  7. - Because canvas based animations may need to redraw the entire chart, - they can be slower than CSS based animations and depend on a variety of things - eg the speed of the users PC - and the work necessary to redraw the canvas. -
  8. -
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/events.html b/OfficeWeb/sdk/Common/Charts/docs/events.html deleted file mode 100644 index 45b97eb9..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/events.html +++ /dev/null @@ -1,566 +0,0 @@ - - - - - - Custom OfficeExcel events that are available to you - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Custom OfficeExcel events

- - - - - - -

Introduction

- -

- Custom events allow you to easily interact with and extend OfficeExcel for your own purposes. The list of available events is below, - as is an example of how to make use of them with the OfficeExcel.AddCustomEventListener() function. Event handler functions (ie your - functions) are passed a single parameter - the chart object. With this you can get references to the canvas and context. There's - an example of this below. -

- -
<script>
-    window.onload = function ()
-    {
-        var line = new OfficeExcel.Line('myLine', [45,12,16,18,44,54,23,21,56]);
-        line.Set('chart.tooltips', ['Fred', 'Barney', 'Jay', 'Pete', 'Frank', 'Bob', 'Ted', 'Lou', 'Kev']);
-        line.Set('chart.labels', ['Fred', 'Barney', 'Jay', 'Pete', 'Frank', 'Bob', 'Ted', 'Lou', 'Kev']);
-        line.Set('chart.hmargin', 5);
-        line.Set('chart.tickmarks', 'dot');
-        line.Draw();
-
-        /**
-        * This is the call to the OfficeExcel function that registers the event listener
-        * 
-        *      line: The chart object
-        * ontooltip: The name of the event
-        *    myFunc: The function that handles the event
-        */
-        OfficeExcel.AddCustomEventListener(line, 'ontooltip', myFunc);
-    }
-
-    /**
-    * The function that is called when the ontooltip event fires. It is  passed a single parameter - the chart object.
-    * With this you can get the ID and references to the canvas and context:
-    *  o obj.id
-    *  o obj.canvas
-    *  o obj.context
-    */
-    function myFunc(obj)
-    {
-        var id      = obj.id;
-        var canvas  = obj.canvas;
-        var context = obj.context;
-
-        alert('This alert was triggered by the custom ontooltip event');
-    }
-</script>
-
- - -

Available events

- -

- - [No canvas support] - ontooltip
- This event fires immediately after a tooltip has been created. This event allows you to easily show charts in your tooltips (tooltip - effects that involve moving the tooltip, eg. contract, expand & snap, will not function). You - can find the tooltip object in the OfficeExcel registry - OfficeExcel.Registry.Get('chart.tooltip'). Note that if you're testing and - using a function that pauses execution (eg alert()), this will also pause any timers (for animation effects etc). If you want to - avoid this you should use a function that doesn't block execution, eg the Firebug/WebKit function, console.log() (you can use the - cl() shortcut in OfficeExcel). -

- -
- -

- - [No canvas support] - onbeforecontextmenu
- The onbeforecontextmenu event fires before the context menu is shown. -

- -
- -

- - [No canvas support] - oncontextmenu
- This event fires immediately after the OfficeExcel context menu is shown. If you want it, you can get at the context menu in the - OfficeExcel registry: OfficeExcel.Registry.Get('chart.contextmenu') - -

- - Important: Like the ontooltip event, using alert() can - pause the fade in timers, so you might consider using the Firebug/Webkit console.log functions instead. -

- -
- -

- -

- [No canvas support]
- -
- - onbeforedraw
- Much like the ondraw event, however this fires at the start of the .Draw() method, in effect "before" the method. Keep in mind - that since other charts may trigger the .Draw() method, this event can also be triggered by other charts. -

- -
- -

- -

- [No canvas support]
- -
- ondraw
- The ondraw event fires after the .Draw() method has run. Note that the interactive features of OfficeExcel may call the .Draw() - method multiple times - the zoom in area mode is a prime example. - A chart with tooltips is also an example. In this case it would demonstrate that the .Draw() method is called twice (and - hence the ondraw event), whereas the ontooltip event only fires once. - -

- - Note: The ondraw event is not only fired by its own chart, - but (if you're using tooltips for example), can also be fired by other charts on the page. -

- -
- -

- - [No canvas support] - onzoom
- The onzoom event fires whenever the canvas is zoomed. When the zoom is in area and canvas modes this fires once, - but when in thumbnail mode this event is like the onmousemove event in that it fires whenever the mouse is moved. -

- -
- -

- - [No canvas support] - onmodaldialog
- The onmodaldialog event fires when the ModalDialog is shown. This event is easily replicated yourself, though using this event - may help you to keep your code tidy. This event is utilised slightly differently to the other events: - -
- -

ModalDialog.AddCustomEventListener('onmodaldialog', function () {alert('Hello world!');});
-

- -
- -

- - [No canvas support] - onresizebeforedraw
- The onresizebeforedraw event was added when translating was necessary to reclaim wasted space, before the introduction - of independent gutters. This event is now no longer necessary to reposition the resize handle. It will still have an - effect though, so if you choose to upgrade then you should remove this from your configuration. The event isn't - planned to be removed, so if you wish to use it, you can. -

- -
- -

- Note: - The annotation events send notifications to the console because using alert() would cause them to lock the window. -

- -

- - [No canvas support] - onresizebegin
- The onresizebegin event fires when a canvas is starting to be resized. It also fires when the canvas is reset to the original - size.

- - onresize
- The onresize event fires when a canvas is resized. It also fires when the canvas is reset to the original size.

- - onresizeend
- The onresizeend event fires when a canvas is ended resizing. It also fires when the canvas is reset to the original size. -

- -
- -

- Note: - The adjusting events send notifications to the console because using alert() would cause them to lock the window. -

- -

- - [No canvas support] - onadjustbegin
- The onadjustbegin event fires once at the start of an adjusting process. It can be thought of as similar to - the onmousedown event as that's when it usually fires. -

- -
- -

- - onadjust
- The onadjust event fires whenever one of the supported chart types is adjusted. It usually fires in conjunction with the - onmousemove event, and can be blocked by alert(). You therefore may need to use a different function (eg console.log()) - whilst debugging. -

- -
- -

- - onadjustend
- The onadjustend event fires once at the end of an adjusting process. It can be thought of as similar to - the onmouseup event as that's when it usually fires. -

- -
- -

- Note: - The annotation events send notifications to the console because using alert() would cause them to lock the window. -

- -

- - [No canvas support] - onannotatebegin
- The onannotatebegin event fires at the beginning of the annotating procedure (ie in a similar vein to the onmousedown event). -

- -

- - onannotate
- The onannotate event fires when the chart has been annotated. It fires during the annotate procedure. -

- -

- - onannotateend
- The onannotateend event fires at the end of the annotating procedure (ie in a similar vein to the onmouseup event). -

- -

- - onannotatecolor
- The onannotatecolor event fires when the annotation color has been changed using the OfficeExcel palette. -

- -

- - onannotateclear
- The onannotateclear event fires when the OfficeExcel annotation data has been cleared using the OfficeExcel.ClearAnnotations() API - function. -

- -

- - onclear
- The onclear event fires when the function OfficeExcel.Clear() is called. If you use the .Clear()function inside the onclear event - handler, it will create a loop. Instead, you could use this function: -

- -
-/**
-* This function clears the canvas
-* 
-* @param object obj The chart object
-*/
-function myClear(obj)
-{
-    obj.context.beginPath();
-    obj.context.fillStyle = 'white';
-    obj.context.fillRect(-10,-10,obj.canvas.width + 20, obj.canvas.height + 20);
-    obj.context.fill();
-}
-
- - - -

- oncrosshairs
- The oncrosshairs event fires when the crosshairs are moved. This event is very similar to the onmousemove event, but you can - guarantee that this event fires after the crosshairs have been repainted. -

-
- [No canvas support] - -
- -
- - - -

Removing events

-

- In the case that you need to remove OfficeExcel event listeners, there are a few ways that you can do it. The API function - OfficeExcel.RemoveCustomEventListener(obj, id) can be used to remove a single event listener. This function - takes the chart object and the numerical ID (returned by OfficeExcel.AddCustomEventListener()) as its arguments. - -

- - There's - also the OfficeExcel.RemoveAllCustomEventListeners(), for easily removing all of the pertinent event listeners. This - function can either take no arguments at all, in which case ALL event listeners for ALL objects are removed. Or it can - also take an objects ID (the same id that you pass to the constructor), in which case the removal will be limited to - that object. -

- - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/external.html b/OfficeWeb/sdk/Common/Charts/docs/external.html deleted file mode 100644 index a529a9d7..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/external.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - Integrating OfficeExcel with external libraries - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Integrating OfficeExcel with external libraries

- - - - - - [No canvas support] - -

- This page shows you how you can easily integrate the charts with other external Javascript libraries. This particular example - adds a context menu to the chart, of which the only option is to show a login dialog. This could, for example, be used to - allow logging in to an admin area. -

- -

- The dialog doesn't need to require user input - it could just be a static "Please wait..." type dialog, which is shown while a - subsequent page loads that takes a few seconds. -

- -

- The ModalDialog was originally an external library, however it's now part of the OfficeExcel package. It's also covered by the - OfficeExcel license - so if you have an OfficeExcel license, then the ModalDialog is part of that. -

- -

- -
-<script src="OfficeExcel.common.core.js">
-<script src="OfficeExcel.common.context.js">
-<script src="OfficeExcel.line.js">
-<script src="OfficeExcel.modaldialog.js">
-
-<script>
-    window.onload = function ()
-    {
-        /**
-        * Draw the line chart
-        */
-        var line = new OfficeExcel.Line('myLine', [45,12,16,18,44,54,23,21,56,58,33,47]);
-        line.Set('chart.background.barcolor1', 'white');
-        line.Set('chart.background.barcolor2', 'white');
-        line.Set('chart.tickmarks', null);
-        line.Set('chart.hmargin', 10);
-        line.Set('chart.linewidth', 3);
-        line.Set('chart.shadow', true);
-        line.Set('chart.shadow.offset', 2);
-        line.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        line.Set('chart.title', 'A line chart with context menu');
-        
-        // This defines a context menu which calls the given function. This function in turn shows the dialog
-        line.Set('chart.contextmenu', [['Login to admin area...', function () {ModalDialog.Show('myDialog', 300);}}]]);
-        
-        line.Draw();
-    }
-</script>
-
-<!-- This is the popup dialog-->
-    <div id="myDialog" class="modalDialog" style="display: none">
-        <b>Please login</b>
-        <p>
-            <table border="0">
-                <tr>
-                    <td align="right" style="padding-top: 4px">Email</td>
-                    <td><input type="text" size="20" name="email" style="width: 150px" /></td>
-                </tr>
-                <tr>
-                    <td align="right" style="padding-top: 4px">Password</td>
-                    <td><input type="password" size="20" name="password" style="width: 150px" /></td>
-                </tr>
-                <tr>
-                    <td colspan="2" align="right">
-                        <input type="reset" value="Cancel" onclick="ModalDialog.Close()">
-                        <input type="submit"
-                                  name="submit"
-                                  value="Login »"
-                                  onclick="alert('This is just an example'); event.stopPropagation()">
-                    </td>
-                </tr>
-            </table>
-        </p>
-    </div>
-<!-- End of dialog -->
- -

- If you're interested in using this modal dialog, then you'll probably also want the CSS that styles it. This can be found in the - "css" directory. -

- - -

Note about Microsoft Internet Explorer 8 and the ModalDialog

- -

- Microsoft Internet Explorer 8 only supports fixed positioning in strict rendering mode, therefore you must specify a DTD - when using this browser. Eg: -

- -
-<!DOCTYPE html >
-
- - -

Hiding the ModalDialog

-

- To hide the ModalDialog (from a "Cancel" button for example), you can use the Close() method: -

- -
-<input type="reset" value="Cancel" onclick="ModalDialog.Close()">
-
- - -

Customising the ModalDialog

-

- You can customise the appearance of the ModalDialog by using three CSS classes, which are documented here. - This page customises the dialog slightly by changing the shadow X/Y offsets: -

- -
-<style>
-    /*
-    * These are the CSS classes that you can use to customise the appearance of the ModalDialog. If you're trying to
-    * override something which the scripts set, then because of the ordering you may need to use the "! important"
-    * modifier.
-    */
-    
-    /**
-    * This is the semi-opaque background
-    */
-    .ModalDialog_background {
-    }
-
-
-    /**
-    * This is the dialog itself
-    */
-    .ModalDialog_dialog {
-        -webkit-box-shadow: gray 0 0 15px ! important;
-        -moz-box-shadow: 0 0 15px gray ! important;
-        box-shadow: 0 0 15px gray ! important;
-    }
-
-
-    /**
-    * This is gray bar at the top of the dialog
-    */
-    .ModalDialog_topbar {
-    }
-</style>
-
- - -

ModalDialog integration

-

- To integrate the ModalDialog look at the sample code above (the key line is where the context menu is defined). The method you should call is ModalDialog.Show(id, width). - The id is the id of the layer to use. Only the .innerHTML is used, not the layer itself, so it can be hidden by - setting the display CSS display property to none. The width is a number which is used as the width of the dialog. -

- -

- The only library needed for the ModalDialog to work is OfficeExcel.modaldialog.js - you do not need to use - OfficeExcel.common.js. This makes for far smaller download requirements. -

- - -

Covering the scroll bars

-

- Normally, a regular DIV lives inside the browser and cannot cover the scroll bars. There is however a way to achieve - this but it does mean that restructuring your website may be necessary, and it's done by using an IFRAME. The following - steps are involved: -

- -
    -
  1. The index page of your website creates an IFRAME and sets it to cover the entire window.
  2. -
  3. This IFRAME then loads the website.
  4. -
  5. The DIV then covers the top-most window.
  6. -
- -

- There is an example of this technique here -

- - - - - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/financial.html b/OfficeWeb/sdk/Common/Charts/docs/financial.html deleted file mode 100644 index 3a3fe5a9..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/financial.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - An example of displaying financial data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Displaying financial data

- - [No canvas support] - -

- OfficeExcel can be used to display financial information, as shown here. In this case the chart is showing exchange rate - information for the period 2008 - 2010. -

- -

- Because the Line chart has no concept of an X axis scale, the Scatter chart with a connecting line is used to show the data. -

- -

- Note: - If you don't have a lot of data then if you use a connecting line (as it is here) it may look jagged - particularly if - your data jumps from a high value to a low value or vice versa. -

- -

- The chart uses data that is held in a separate file (because there's a lot of it). You can see this file here: - financial-data.js -

- -
- -
-<script>
-    window.onload = function ()
-    {
-        // The data variable is defined in the external file
-        var s = new OfficeExcel.Scatter('cvs', data);
-        s.Set('chart.ymin', 0.5);
-        s.Set('chart.xmin', Date.UTC(2007,0,1));
-        s.Set('chart.xmax', Date.UTC(2010,11,31));
-        s.Set('chart.labels', [ ['2007', Date.UTC(2007,0,1)],['2008', Date.UTC(2008,0,1)],['2009', Date.UTC(2009,0,1)],['2010', Date.UTC(2010,0,1)]]);
-        s.Set('chart.labels.specific.align', 'center');
-        s.Set('chart.tickmarks', null);
-        s.Set('chart.line', true);
-        s.Set('chart.line.colors', ['red']);
-        s.Set('chart.units.pre', '$');
-        s.Set('chart.gutter.left', 35);
-        s.Set('chart.title', 'Euro exchange rate data over the past 4 years');
-        s.Set('chart.tooltips.effect', 'snap');
-        s.Set('chart.background.grid.autofit.numvlines', 16);
-        s.Set('chart.scale.decimals', 2);
-        s.Draw();
-    }
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/fuel.html b/OfficeWeb/sdk/Common/Charts/docs/fuel.html deleted file mode 100644 index 44a0d974..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/fuel.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - Documentation about the Fuel Gauge - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Fuel Gauge documentation

- - - -

- The Fuel gauge is recent addition to OfficeExcel, and the available configuration options are shown here. -

- - - - -

 

-

Example

-
 
-<script>
-    window.onload = function ()
-    {
-        // Create the Fuel chart. The arguments are: the minimum, the maximum, and the value.
-        fuel = new OfficeExcel.Fuel('cvs', 0, 100, 67);
-        
-        // Configure the Fuel chart to appear as wanted.
-        fuel.Set('chart.needle.color', 'blue');
-        fuel.Set('chart.colors', ['#ddf']);
-        fuel.Set('chart.labels.empty', 'Empty!');
-        fuel.Set('chart.labels.full', 'Full');
-        fuel.Set('chart.icon', '/images/water.jpg');
-        
-        // Now call the .Draw() method to draw the chart.
-        fuel.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the Fuel Gauge apears. You can set them by using the Set() method. Eg: -

- -

- myFuel.Set('name', 'value'); -

- - - -
- -

Colors

- - - chart.colors
- The color of the Fuel Gauge. Noe that despite there being only one color, this is still an array.
- Default: ['red']

- - -

Margins

- - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 5

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 5

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 5

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 5

- - -

Needle options

- - - chart.needle.color
- The color of the needle (not including the bulb at the bottom). Note that this is NOT an array - it's just a string.
- Default: 'red'

- - -

Labels and text

- - - chart.labels.empty
- The label used as the empty text.
- Default: E

- - - chart.labels.full
- The label used as the full text.
- Default: F

- - - chart.text.color
- The color used for the text on the chart.
- Default: F

- - - chart.text.font
- The font used for the text.
- Default: Verdana

- - -

Interactive features

- - - chart.contextmenu
- The context menu. For more details see here.
- Default: null

- - - chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
- Default: false

- - - chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
- Default: black

- - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -

Zoom

- - - chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
- Default: canvas

- - - chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
- Default: 1.5

- - - chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
- Default: true

- - - chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
- Default: true

- - - chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
- Default: right

- - - chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
- Default: down

- - - chart.zoom.delay
- The delay (in milliseconds) between frames.
- Default: 50

- - - chart.zoom.frames
- The number of frames in the zoom animation.
- Default: 10

- - - chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
- Default: true

- - - chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
- Default: 75

- - - chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
- Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - - - chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
- Default: true

- - - -

Miscellaneous

- - - chart.icon
- This should be a data: URL that represents the image to use as the icon on the chart. The - example page has an example of a chart that uses this option to show a - water droplet instead of the fuel pump.
- Default: [A fuel icon]

-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/funnel.html b/OfficeWeb/sdk/Common/Charts/docs/funnel.html deleted file mode 100644 index df95559c..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/funnel.html +++ /dev/null @@ -1,451 +0,0 @@ - - - - - - Documentation about the Funnel chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Funnel charts documentation

- - - - - - -

 

-

Example

- -
-<script>
-    window.onload = function ()
-    {
-        // Create the Funnel chart. Note the the values start at the maximum and decrease to the minimum.
-        var funnel = new OfficeExcel.Funnel('funnel1', [100,45,45,26,21,5]);
-        
-        // Configure the chart to look as wished.
-        funnel.Set('chart.text.boxed', false);
-        funnel.Set('chart.title', 'Leads through to sales');
-        funnel.Set('chart.labels', ['A', 'B', 'C', 'D', 'E', 'F']);
-        funnel.Set('chart.shadow', true);
-        
-        // Now call the .Draw() method to draw the chart.
-        funnel.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - - -

 

-

Properties

- -

- You can use these properties to control how the Funnel chart appears. You can set them by using the Set() method. Eg: -

- -

- myFunnel.Set('name', 'value'); -

- - - - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

-chart.colors
- These are the colors used for each segment.
Default: ['red', 'green', 'gray', 'blue', 'black', 'white']

- -

Labels and text

-chart.labels
- An array of the labels to be used on the chart.
Default: An empty array

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size (in points) of the labels.
Default: 10

- -chart.text.boxed
- Whether the text is contained within a white bounding box. In some cases this can help readability.
Default: true

- -chart.text.halign
- The horizontal alignment of the text. Can be center or left.
Default: left

- -

Titles

- -chart.title
- The title of the chart, if any.
Default: null

- - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -chart.title.color
- The color of the title.
Default: black

- -

Shadow

-chart.shadow
- Whether a drop shadow is applied to the Funnel chart. The funnel is the first to use the canvas shadow API, and as such they won't be supported on all browsers. Currently only Safari 4+ (possibly earlier versions too), Firefox 3.5+ and Chrome 2+ support canvas shadows.
Default: false

- -chart.shadow.color
- The color of the drop shadow.
Default: #666

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- -chart.shadow.offsetx
- The X offset of the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the shadow.
Default: 3

- - -

Interactive features

- - - chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- - - chart.tooltips
- An array of tooltips for the Funnel chart segments.
Default: null

- - - chart.tooltips.effect
- The animated effect that tooltips use - fade or expand
Default: fade

- - - chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- - -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
- Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - -

Miscellaneous

- - - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke.
- Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill.
- Default: rgba(255,255,255,0.5)

- -

- - - -

 

-

Methods

- - - obj.getSegment(event)

-

- This function when passed an event object will return details of the appropriate segment (if any). It returns: -

- -
    -
  • The chart object
  • -
  • - An array of 8 numbers (ie 4 coordinates) that describe the segment. The coordinates are the top left corner, - the top right corner, the bottom right corner nd the bottom left corner. ie Clockwise starting at the top left. -
  • -
  • The index of the segment, starting at the top (which is zero) and going down.
  • -
- - - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/gantt.html b/OfficeWeb/sdk/Common/Charts/docs/gantt.html deleted file mode 100644 index 1bc9584f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/gantt.html +++ /dev/null @@ -1,551 +0,0 @@ - - - - - - Documentation about the Gantt chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Gantt charts documentation

- - - - - - -

 

-

Example

- -
-<script>
-    window.onload = function ()
-    {
-        // Create the Gantt chart. Note that unlike other OfficeExcel charts the actual data is NOT
-        // given as part of the constructor.
-        var gantt = new OfficeExcel.Gantt('gantt');
-        
-        // Configure the chart to appear as you want.
-        gantt.Set('chart.xmax', 365);
-        gantt.Set('chart.gutter.left', 75);
-        gantt.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        gantt.Set('chart.title', 'Holiday schedule for Xyz Ltd');
-        gantt.Set('chart.defaultcolor', 'rgba(255,0,0,1)');
-        gantt.Set('chart.tooltips', ["<b>Richard</b><br />Richard is going on holiday to Malta.<br />He'll be away for 28 days.",
-                                     "<b>Fred</b><br />Fred is also going away for 28 days",
-                                     "<b>Barney</b><br />Barney is off work for two weeks",
-                                     "<b>Gloria</b><br />Gloria is off for 3 weeks",
-                                     "<b>Paul</b><br /> Away for 31 days",
-                                     "<b>Harry</b><br />Away for three weeks",
-                                     "<b>Shane</b><br />Away for one week",
-                                     "<b>Barry</b><br />Away for two weeks",
-                                     "<b>Cynthia</b><br />Away for two weeks",
-                                     "<b>Graham</b><br />Away for August and September",
-                                     "<b>Paul</b><br />Away for 31 days"]);
-        
-        // This is where the events that appear on the Gantt chart are given. You can read about the
-        // format below.
-        gantt.Set('chart.events', [
-                                 [31, 28, null, 'Richard'],
-                                 [31, 28, null, 'Fred'],
-                                 [59, 14, null, 'Barney'],
-                                 [59, 21, null, 'Gloria'],
-                                 [59, 31, null, 'Paul'],
-                                 [80, 21, null, 'Harry'],
-                                 [94, 7, null, 'Shane'],
-                                 [120, 14, null, 'Barry'],
-                                 [130, 14, null, 'Cynthia'],
-                                 [211, 61, null, 'Graham'],
-                                 [334, 31, null, 'Paul']
-                                ]);
-
-        gantt.Set('chart.vbars', [
-                                  [0, 31, 'rgba(192,255,192,0.5)'],
-                                  [59, 31, 'rgba(192,255,192,0.5)'],
-                                  [120, 31, 'rgba(192,255,192,0.5)'],
-                                  [181, 31, 'rgba(192,255,192,0.5)'],
-                                  [243, 30, 'rgba(192,255,192,0.5)'],
-                                  [304, 30, 'rgba(192,255,192,0.5)']
-                                 ]);
-
-        // Now call the .Draw() method to draw the chart.
-        gantt.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the bar chart apears. -

- - - - - - -

Chart configuration

- - chart.xmax
- Required. This determines how many "units" wide the Gantt chart is. For example to represent a year, you would use 365, giving - a granularity of one day.
- Default: none

- - - chart.xmin
- This option can sometimes make using a Gantt chart spread over several pages easier.
- Default: 0

- - - -

Background

-chart.background.barcolor1
- Color of the background bars
Default: white

- -chart.background.barcolor2
- Color of the background bars
Default: white

- -chart.background.grid
- Whether a grid is shown as part of the background
Default: true

- -chart.background.grid.color
- The color of the background grid.
Default: #eee

- -chart.background.grid.hsize
- The size of the horizontal grid.
Default: 20

- -chart.background.grid.vsize
- The size of the vertical grid.
Default: 20

- -chart.background.grid.width
- The line width of the background grid.
Default: 1

- - - chart.background.grid.autofit
- Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many horizontal and vertical lines you want.
- Default: true

- - -chart.background.grid.autofit.numhlines
- When using autofit this allows you to specify how many horizontal grid lines you want.
Default: 7

- -chart.background.grid.autofit.numvlines
- When using autofit this allows you to specify how many vertical grid lines you want.
Default: 20

- -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 75

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Labels and text

- - - chart.text.size
- The size of the text (in points).
- Default: 10

- - - chart.text.font
- The font used to render the text.
- Default: Verdana

- - - chart.text.color
- The color of the labels.
- Default: black

- - - chart.labels
- An array of the labels which are applied to the chart.
- Default: [] (An empty array)

- - - chart.labels.align
- This determines whether the horizontal labels are drawn at the top (underneath the title) - or at the bottom (in the bottom gutter).
- Default: top

- - -

Titles

- - - chart.title
- The title of the chart.
Default: not set

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -

Interactive features

- - - chart.tooltips
- An array of tooltips that are shown when the bars are clicked. They can contain HTML.
- Default: [] (An empty array)

- - - chart.tooltips.event
- This is the event that triggers the tooltips. It can be either onclick or onmousemove.
- Default: onclick

- - - chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
- Default: fade

- - - chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
- Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's - more information on the tooltips documentation page
- Default: null

- - -chart.contextmenu
- An array of context menu items. Cannot be used in conjunction with tooltips.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - - -

Miscellaneous

- - - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - -chart.borders
- Whether a border is shown on the event bars
Default: true

- -chart.defaultcolor
- The default color of bars. If you don't specify a color for the event, this will be used.
Default: white

- -chart.events
- An array of event information that is displayed on the gantt. See below for further information.
Default: [] (An empty array)

- -chart.vbars
- Vertical bars used for decorative purposes, or for marking something on the chart (an event for example). See below for further information.
Default: [] (An empty array)

-

- - - - -

 

-

Methods

- - - obj.getBar(event)

-

- This method returns the details of a focused bar (ie clicked or mouseover'ed. It returns: -

-
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width of the bar
  • -
  • The height of the bar
  • -
  • The index of the bar (starting from 0)
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - -

 

-

Adding events to your Gantt chart

- -

- To add events, you specify them using the chart.events property. You could use the following to set some events on your gantt chart: -

- -
gantt.Set('chart.events', [
-                       [31, 28, 75, 'Richard'],
-                       [12, 28, 67, 'Fred'],
-                       [59, 14, 0, 'Barney'],
-                       [59, 21, 5, 'Gloria'],
-                       [46, 31, 94, 'Paul'],
-                       [80, 21, 46, 'Harry'],
-                       [94, 17, 84, 'Shane'],
-                       [34, 14, 32, 'Barry'],
-                       [64, 14, 28, 'Cynthia', 'red', 'yellow'],
-                       [13, 61, 74, 'Graham'],
-                       [84, 31, 16, 'Paul']
-                      ]);
-
- -

- The first value is the (zero indexed) start number relative to your chart.xmax. So if you have set your chart.xmax to 62, (to represent - two months), and this value is 31, the start will be the start of the second month. In this case you could give two labels - - ['July', 'August']. -

- -

- The second value is the duration. So using the previous example, if you set this to 7, you would have an event lasting a week. -

- -

- The third value is the "percentage complete" indicator. This is shown to the right of the event, and is optional - you can - specify null if you wish. -

- -

- The fourth value is the label that is used on the left hand side. -

- -

- The optional fifth value stipulates the background colour that the bar is. Default is white. -

- -

- The optional sixth value is the foreground color of the bar. Defaulting to #0c0. -

- -

- The optional seventh value is the border color, defaulting to black -

- -

- And the optional eigth value is the numerical linewidth of the border. The default is 1. -

- - -

 

-

Adding vertical bars to your Gantt chart

- -

- You can add decorative vertical bars like so: -

- -
gantt.Set('chart.vbars', [
-                    [0, 31, 'rgba(192,255,192,0.5)'],
-                    [59, 31, 'rgba(192,255,192,0.5)'],
-                    [120, 31, 'rgba(192,255,192,0.5)'],
-                    [181, 31, 'rgba(192,255,192,0.5)'],
-                    [243, 30, 'rgba(192,255,192,0.5)'],
-                    [304, 30, 'rgba(192,255,192,0.5)'],
-                   ]);
-
- -

- You can use these for decorative purposes, or to mark events/limits. The first value is the start index, as above. - The second value is the unit length, again as above. The third value is the color of the vertical bar. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/gauge.html b/OfficeWeb/sdk/Common/Charts/docs/gauge.html deleted file mode 100644 index 72dd6e2a..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/gauge.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - Documentation about the Gauge chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Gauge charts documentation

- - - - - - -

 

-

Example

- -
 
-<script>
-    window.onload = function ()
-    {
-        // Create the chart. The values are: the canvas tag ID,  the minimum, the maximum and the actual value.
-        var gauge = new OfficeExcel.Gauge('cvs', 0, 100, 46);
-        
-        // Configure the chart to appear as wished
-        gauge.Set('chart.title', 'Bandwidth');
-        
-        // Now call the .Draw() method to draw the chart.
-        gauge.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the Gauge chart apears. You can set them by using the Set() method. Eg: -

- -

- myGauge.Set('name', 'value'); -

- - - - - -

Margins

- - - chart.gutter.left
- The left gutter of the chart.
- Default: 5

- - - chart.gutter.right
- The right gutter of the chart.
- Default: 5

- - - chart.gutter.top
- The top gutter of the chart.
- Default: 5

- - - chart.gutter.bottom
- The bottom gutter of the chart.
- Default: 5

- - - -

Labels and text

- - - chart.text.font
- The font that is used for the text.
- Default: Verdana

- - - chart.text.color
- The color of the text.
- Default: #666

- - - chart.text.size
- The size of the text
- Default: 10

- - -

Titles

- - - chart.title.top
- The top title of the chart, if any.
- Default: (An empty string)

- - - chart.title.top.font
- The font that the top title is rendered in. If not specified the chart.text.font setting is used (usually Arial)
- Default: Arial

- - - chart.title.top.size
- The size of the top title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
- Default: 14

- - - chart.title.top.bold
- Whether the top title is bold or not.
- Default: true

- - - chart.title.top.color
- The color that the top title is rendered in.
- Default: #333

- - - chart.title.top.pos
- If set this number is multiplied with the radius to give the Y position of the title. This allows to totally - override the Y position of the title.
- Default: null

- - - chart.title.bottom
- The bottom title of the chart, if any.
- Default: (An empty string)

- - - chart.title.bottom.font
- The font that the bottom title is rendered in. If not specified the chart.text.font setting is used (usually Arial)
- Default: Arial

- - - chart.title.bottom.size
- The size of the bottom title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
- Default: 14

- - - chart.title.bottom.bold
- Whether the bottom title is bold or not.
- Default: true

- - - chart.title.bottom.color
- The color that the bottom title is rendered in.
- Default: #333

- - - chart.title.bottom.pos
- If set this number is multiplied with the radius to give the Y position of the title. This allows to totally - override the Y position of the title.
- Default: null

- - -

Scale

- - - chart.scale.decimals
- The number of decimal places to display for the Y scale. -
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.units.pre
- The units that the Y axis is measured in. This string is displayed BEFORE the actual number, allowing you to specify values such as "$50".
- Default: '' (An empty string)

- - - chart.units.post
- The units that the Y axis is measured in. This string is displayed AFTER the actual number, allowing you to specify values such as "50ms".
- Default: '' (An empty string)

- - -

Colors

- - - - chart.red.start
- The point at which the red area starts.
- Default: 90% of the max

- - - chart.red.color
- The red color.
- Default: #DC3912

- - - chart.yellow.color
- The yellow color.
- Default: #FF9900

- - - chart.green.end
- The point at which the green area ends.
- Default: 70% of the max

- - - chart.green.color
- The green color.
- Default: rgba(0,0,0,0)

- - - chart.border.outer
- This is the color of the outer border.
- Default: #ccc

- - - chart.border.inner
- This is the color of the inner border.
- Default: #f1f1f1

- - -

Needle

- - - chart.needle.tail
- Whether the tail for the needle is shown.
- Default: false

- - - chart.needle.color
- This is the color of the needle.
- Default: #D5604D

- - - chart.centerpin.color
- This is the color used in the centerpin gradient coloring.
- Default: blue

- - - chart.centerpin.radius
- This is ths radius of the centerpin.
- Default: null

- - -

Miscellaneous

- - - chart.border.width
- The width of the border that goes around the Gauge.
- Default: 10

- - - chart.tickmarks.small
- The number of small tickmarks on the chart.
- Default: 25

- - - chart.tickmarks.big
- The number of big tickmarks on the chart. If you specify this you will actually get one more than the number - of tickmarks than you specify. So if you specify 5, you'll get 6 tickmarks because of the end tickmarks.
- Default: 25

- - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/gutters.html b/OfficeWeb/sdk/Common/Charts/docs/gutters.html deleted file mode 100644 index a2c82429..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/gutters.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - How you can configure different top, bottom, left and right gutter sizes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Variable gutter sizes

- - - - - - [No canvas support] - -

- New in June 2011 is the much requested feature of seperate gutter sizing. As the chart to the right shows, this means - that you can now easily set the left/right/top/bottom gutters independently. This makes it easy to give - yourself the space that you need for labels, which will be most noticeable with the Bar chart, the Line chart - and similar chart types. There is another example on the HBar example page. -

- -

- Because of the fundamental nature of this change (every chart type has been affected) - you should rigorously test your charts if you choose to upgrade. -

- -

- The new properties are: -

- -
    -
  • chart.gutter.left
  • -
  • chart.gutter.right
  • -
  • chart.gutter.top
  • -
  • chart.gutter.bottom
  • -
- -

- They all default to 25 pixels (with a few exceptions) and each can be set independently. -

- -

- These new properties eliminate the need for certain others. So starting immediately the following properties are no longer - used: -

- -
    -
  • chart.gutter
  • -
  • chart.width
  • -
  • chart.height
  • -
  • chart.tooltips.coords.adjust
  • -
  • chart.resize.handle.adjust
  • -
- -

- The chart.gutter property has been completely removed, so you will need to start using the new properties immediately. - The chart.width and chart.height properties are completely unused from this point and the last two - will be phased out starting immediately. -

- -
- -
-<script>
-        window.onload = function (e)
-        {
-            var bar = new OfficeExcel.Bar('cvs', [0.2,0.2,0.5,0.6,0.5,0.3,0.5,0.1,0.2,0.7,4.2,3.5]);
-            bar.Set('chart.ymax', 5);
-            bar.Set('chart.labels', ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']);
-            bar.Set('chart.tooltips', ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']);
-            bar.Set('chart.text.angle', 45);
-            bar.Set('chart.contextmenu', [['Zoom in', OfficeExcel.Zoom]]);
-            bar.Set('chart.zoom.hdir', 'left');
-            bar.Set('chart.title', '2010 statistics (tooltips)');
-            bar.Set('chart.ylabels.specific', ['100,000','10,000','1,000','100','10']);
-            bar.Set('chart.background.grid.autofit', true);
-            bar.Set('chart.background.grid.autofit.align', true);
-            bar.Set('chart.title.vpos', 0.5);
-
-            bar.Set('chart.gutter.left', 65);
-            bar.Set('chart.gutter.right', 5);
-            bar.Set('chart.gutter.bottom', 60);
-
-            bar.Draw();
-        }
-</script>
-
- - -

Upgrading from a previous version of OfficeExcel

- -

- If you're upgrading from a previous version of OfficeExcel then there are a few points you should bear in mind: -

- -
    -
  1. - Remove any calls to .translate(). - If you use the .translate() method to give yourself extra space, this should be converted to the new gutter properties. -
  2. - -
  3. - If you use chart.tooltips.coords.adjust or chart.resize.handle.adjust then you should remove them. These - properties will cease to have any effect eventually, but not immediately. -
  4. - -
  5. - If you use caching, then you may need to use a CTRL/SHIFT+Refresh on your page to bypass any cached copy of the OfficeExcel - libraries. -
  6. -
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/hbar.html b/OfficeWeb/sdk/Common/Charts/docs/hbar.html deleted file mode 100644 index b0f786c1..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/hbar.html +++ /dev/null @@ -1,731 +0,0 @@ - - - - - - Documentation about the Horizontal Bar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Horizontal bar charts documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        The data that is to be represented on the chart
-        var data = [280,45,133];
-        
-        // To show a stacked or grouped chart each element of the data array should itself
-        // be an array containing the data to be shown.
-        // var data = [[120,80,60],[30,12,13],[50,50,33]];
-    
-        // Create the HBar object giving it the canvas ID and the data just defined.
-        var hbar = new OfficeExcel.HBar('myCanvas', data);
-        
-        // Configure the chart to appear as wished.
-        hbar.Set('chart.labels', ['Richard', 'Alex', 'Nick']);
-        hbar.Set('chart.gutter.left', 45);
-        hbar.Set('chart.background.barcolor1', 'white');
-        hbar.Set('chart.background.barcolor2', 'white');
-        hbar.Set('chart.background.grid', true);
-        hbar.Set('chart.colors', ['red']);
-        
-        // Now call the .Draw() method to draw the chart.
-        hbar.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the bar chart apears. You can set them by using the Set() method. Eg: -

- -

- myHBar.Set('name', 'value'); -

- - - - - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 75

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

- - - chart.colors
- An array of the colors of the actual bars.
- Default: An array - ['rgb(0,0,255)', '#0f0', '#00f', '#ff0', '#0ff', '#0f0']

- - - chart.colors.sequential
- If true, for regular bar charts, the colors that you specify will be used in a sequential fashion.
- Default: false

- - -

Background

-chart.background.barcolor1
- The color of the background bars, (1 of 2).
Default: white

- -chart.background.barcolor2
- The color of the background bars, (2 of 2).
Default: white

- -chart.background.grid
- Whether to show the background grid or not.
Default: true

- -chart.background.grid.color
- The color of the background grid.
Default: #ddd

- -chart.background.grid.hsize
- The horizontal background grid size.
Default: 40

- -chart.background.grid.vsize
- The vertical background grid size.
Default: 18

- -chart.background.grid.width
- The width that the background grid lines are. Decimals (eg 0.5) are permitted.
Default: 0.5

- -chart.background.grid.border
- Determines whether a border line is drawn around the grid.
Default: true

- -chart.background.grid.hlines
- Determines whether to draw the horizontal grid lines.
Default: true

- -chart.background.grid.vlines
- Determines whether to draw the vertical grid lines.
Default: true

- - - chart.background.grid.autofit
- Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many horizontal and vertical lines you want.
- Default: true

- - - chart.background.grid.autofit.numhlines
- When using autofit this allows you to specify how many horizontal grid lines you want.
- Default: 14

- - - chart.background.grid.autofit.numvlines
- When using autofit this allows you to specify how many vertical grid lines you want.
- Default: 20

- - -

Labels and text

- - - chart.xlabels
- A boolean controlling whether the X labels are shown.
- Default: true

- - - chart.labels
- An array of the labels to be used on the chart.
- Default: An empty array

- - - chart.labels.above
- This is a boolean which if true, will cause labels to be shown to the right of the bars. (It's called "above" - for API compatibility).
- Default: false

- - - chart.labels.above.decimals
- This is a number which controls how many decimals are shown. It defaults to 0, and since it was added (4th December 2010) - you may need to set this, otherwise no decimals will be shown.
- Default: 0

- - - chart.text.font
- The font used to render the text.
- Default: Verdana

- - - chart.text.color
- The color of the labels.
- Default: black

- - - chart.text.size
- The size (in points) of the labels.
- Default: 10

- - - -

Titles

- - - chart.title
- The title of the chart, if any.
- Default: null

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- - chart.title.xaxis
- This allows to specify a title for the X axis.
- Default: none

- - - - chart.title.xaxis.size
- This allows you to specify a size for the X axis title.
- Default: null

- - - chart.title.xaxis.font
- This allows to specify a font for the X axis title.
- Default: null

- - - chart.title.xaxis.bold
- This controls whether the X axis title is bold or not.
- Default: true

- - - chart.title.yaxis
- This allows to specify a title for the Y axis.
- Default: none

- - - chart.title.yaxis.size
- This allows you to specify a size for the Y axis title.
- Default: null

- - - chart.title.yaxis.font
- This allows to specify a font for the Y axis title.
- Default: null

- - - chart.title.yaxis.bold
- This controls whether the Y axis title is bold or not.
- Default: true

- - -chart.title.xaxis.pos
- This is multiplied with the gutter to give the position of the X axis title.
Default: 0.25

- -chart.title.yaxis.pos
- This is multiplied with the gutter to give the position of the Y axis title.
Default: 0.5

- -chart.title.color
- The color of the title.
Default: black

- -

Scale and axes

- - -chart.scale.point
- The character used as the decimal point.
Default: .

- -chart.scale.thousand
- The character used as the thousand separator
Default: ,

- - - chart.scale.round
- Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.
- Default: null

- - - chart.xmax
- (Optional) An optional max figure for the X scale.
- Default: none (one is calculated)

- - - chart.xmin
- An optional minimum figure for the X scale.
- Default: 0

- - -chart.yaxispos
- The position of the Y axis. Works with regular and grouped charts. Can be either center or left.
Default: left

- -chart.axis.color
- The color of the axes.
Default: black

- -chart.units.pre
- The units that the X axis is measured in. This string is displayed BEFORE the actual number, allowing you to specify values such as "$50".
Default: none

- -chart.units.post
- The units that the X axis is measured in. This string is displayed AFTER the actual number, allowing you to specify values such as "50ms".
Default: none

- -chart.units.ingraph
- If your units are long, setting this stipulates them to be used for ingraph labels only.
Default: false

- - - - - - - - - -

Miscellaneous

- - - chart.grouping
- How the bars are grouped, and it should be one of: grouped or stacked
- Default: grouped

- - - chart.vmargin
- The vertical margin that is applied to each individual bar.
- Default: 3

- - - chart.strokestyle
- The color of the outlines of the bars.
- Default: black

- - - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - - - - - -

Shadow

-chart.shadow
- Whether a small drop shadow is applied.
Default: false

- -chart.shadow.color
- The color of the shadow.
Default: #666

- -chart.shadow.offsetx
- The X offset of the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the shadow.
Default: 3

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - -

Interactive features

- - - chart.contextmenu
- An array of context menu items. You cannot have context menus AND tooltips, only one or the other. More information on context menus is here.
- Default: [] (An empty array)

- - - chart.tooltips
- An array of tooltips for the chart.
- Default: An empty array

- - - chart.tooltips.event
- This is the event that triggers the tooltips. It can be onclick or onmousemove.
- Default: onclick

- - - chart.tooltips.effect
- The visual effect used when showing tooltips. Can be either fade or expand.
- Default: fade

- - -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- -chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- -

- - - - - - - - - - - - - -

 

-
 
-

Methods

- - - obj.getBar(event)

- This method makes it easier to get hold of which bar has been clicked on, or hovered over. It returns an array of: -
    -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width of the bar
  • -
  • The height of the bar
  • -
  • The numerical index of the bar. This corresponds (for example) to the tooltips array, and the coordinates array
  • -
- - An example usage is: - -
-<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-
-<script src="OfficeExcel.common.core.js"></script>
-<script src="OfficeExcel.hbar.js"></script>
-
-<script>
-    myGraph = new OfficeExcel.HBar('myCanvas', [1.2, 1.3, 1.4, 1.5,6,1.9,2,2.1,2.5]);
-    myGraph.Set('chart.labels', ['John', 'Barry', 'Rich', 'Craig', 'Tom', 'Frank', 'Helen', 'Joyce', 'Fred'])
-    myGraph.Draw();
-
-    OfficeExcel.Register(myGraph);
-    
-    myGraph.canvas.onclick = function (e)
-    {
-        OfficeExcel.Redraw();
-    
-        var canvas  = e.target;
-        var context = canvas.getContext('2d');
-        var obj     = canvas.__object__;
-        var bar     = obj.getBar(e);
-        
-        if (bar) {
-
-            var top    = bar[0];
-            var left   = bar[1];
-            var width  = bar[2];
-            var height = bar[3];
-            var idx    = bar[4];
-            
-            context.beginPath();
-                context.strokeStyle = 'black';
-                context.fillStyle = 'rgba(255,255,255,0.5)';
-                context.strokeRect(top, left, width, height);
-                context.fillRect(top, left, width, height);
-            context.stroke();
-            context.fill();
-        }
-    }
-</script>
-
- - - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/howto-events-modaldialog.html b/OfficeWeb/sdk/Common/Charts/docs/howto-events-modaldialog.html deleted file mode 100644 index b7a3b646..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/howto-events-modaldialog.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - HOWTO: Add the ModalDialog to your charts using the new pseudo-events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HOWTO: Use the ModalDialog with events

- -

- This is a step-by-step guide to implementing and using the ModalDialog that comes with OfficeExcel. It can be used as a simple - "Please wait..." style dialog or, as below, it could be used as a user input request. To get it up and running is quite simple, - and you don't have to use it with OfficeExcel charts - it can be used standalone as there are no dependencies on OfficeExcel libraries. -

- - - - -

1. The basic chart without the ModalDialog

-

- The basic chart used is shown below. The chart does not have the ModalDialog added to it yet - it's just a simple Bar chart. -

- - [No canvas support] - -
-<script src="OfficeExcel.bar.js" ></script>
-<script src="OfficeExcel.modaldialog.js" ></script>
-<script src="OfficeExcel.common.core.js" ></script>
-
-<script>
-    var bar = new OfficeExcel.Bar('cvs', [4,6,5,3,8,9]);
-    bar.Set('chart.labels', ['Kev','Louise','Pete','Gary','Fliss', 'James']);
-    bar.Draw();
-</script>
-
- - - - -

2. The ModalDialog

-

- This is the DIV whose content is used as the ModalDialog. It is important to remember that only the contents are used, not - the DIV itself. This means that you can hide the DIV with the display: CSS property. -

- -
-<script src="OfficeExcel.bar.js" ></script>
-<script src="OfficeExcel.modaldialog.js" ></script>
-<script src="OfficeExcel.common.core.js" ></script>
-
-<script>
-    var bar = new OfficeExcel.Bar('cvs', [4,6,5,3,8,9]);
-    bar.Set('chart.labels', ['Kev','Louise','Pete','Gary','Fliss', 'James']);
-    bar.Draw();
-</script>
-
-<!-- This is the popup dialog-->
-    <div id="myDialog" class="modalDialog" style="display: none">
-        <b>Please login</b>
-        <p>
-            <table border="0">
-                <tr>
-                    <td align="right" style="padding-top: 4px">Email</td>
-                    <td><input type="text" size="20" name="email" style="width: 150px" /></td>
-                </tr>
-                <tr>
-                    <td align="right" style="padding-top: 4px">Password</td>
-                    <td><input type="password" size="20" name="password" style="width: 150px" /></td>
-                </tr>
-                <tr>
-                    <td colspan="2" align="right">
-                        <input type="reset" value="Cancel" onclick="ModalDialog.Close()">
-                        <input type="submit"
-                                  name="submit"
-                                  value="Login �"
-                                  onclick="alert('This is just an example'); event.stopPropagation()">
-                    </td>
-                </tr>
-            </table>
-        </p>
-    </div>
-<!-- End of dialog -->
-
- - - - -

3. Triggering the dialog with the new pseudo-events

-

- This function is used to show the dialog. Here, it is triggered using the new OfficeExcel event functions. Doing this means - that you could also check the index of the bar that was clicked, which would allow you to show different dialogs - based on the bar that was clicked. -

- - [No canvas support] - -
-<script src="OfficeExcel.bar.js" ></script>
-<script src="OfficeExcel.modaldialog.js" ></script>
-<script src="OfficeExcel.common.core.js" ></script>
-
-<script>
-    function ShowDialog (e, bar)
-    {
-        // Check this index if you want to show different dialogs based on the bar that was clicked.
-        var index = bar[5];
-
-        ModalDialog.Show('myDialog');
-        
-    }
-    var bar = new OfficeExcel.Bar('cvs', [4,6,5,3,8,9]);
-    bar.Set('chart.labels', ['Kev','Louise','Pete','Gary','Fliss', 'James']);
-    bar.Set('chart.events.click', ShowDialog);
-    bar.Set('chart.events.mousemove', function (e, bar) {e.atrget.style.cursor = 'pointer';});
-    bar.Draw();
-</script>
-
-<!-- This is the popup dialog-->
-    <div id="myDialog" class="modalDialog" style="display: none">
-        <b>Please login</b>
-        <p>
-            <table border="0">
-                <tr>
-                    <td align="right" style="padding-top: 4px">Email</td>
-                    <td><input type="text" size="20" name="email" style="width: 150px" /></td>
-                </tr>
-                <tr>
-                    <td align="right" style="padding-top: 4px">Password</td>
-                    <td><input type="password" size="20" name="password" style="width: 150px" /></td>
-                </tr>
-                <tr>
-                    <td colspan="2" align="right">
-                        <input type="reset" value="Cancel" onclick="ModalDialog.Close()">
-                        <input type="submit"
-                                  name="submit"
-                                  value="Login �"
-                                  onclick="alert('This is just an example'); event.stopPropagation()">
-                    </td>
-                </tr>
-            </table>
-        </p>
-    </div>
-<!-- End of dialog -->
-
- - - - - - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/howto-events.html b/OfficeWeb/sdk/Common/Charts/docs/howto-events.html deleted file mode 100644 index ff41d4d1..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/howto-events.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - HOWTO: Add events to your charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HOWTO: Add events to your charts

- -

- Starting from January 2012 adding events to your charts has become much easier. There are two new properties for this: -

- -
    -
  • chart.events.mousemove
  • -
  • chart.events.click
  • -
- -

- These properties make adding interactivity to you charts very easy. Here's a step-by-step example of using them. -

- -

1. The chart without the event listeners

- -

- Here's the basic chart without any event listeners defined: -

- -[No canvas support] - -
-<script>
-    var bar1 = new OfficeExcel.Bar('cvs1', [4,6,5,3,8,9]);
-    bar1.Set('chart.labels',['Kev','Louise','Pete','Gary','Fliss']);
-    bar1.Draw();
-</script>
-
- - - - - -

2. The chart with the click event listener added

- -

- The first step would be to add the click event listener. This function is run when a bar is clicked. The function - that you specify is passed two arguments - the (standard) event object, and a second array of coordinates that - describe the shape. This array can (but doesn't always) contain the OfficeExcel chart object and the index of the shape. - The index begins at zero - so the first bar would have an index of zero, the second bar would have an index of one - and so on. -

- - [No canvas support] - -
-<script>
-
-    function myClick (e, bar)
-    {
-        var index = bar[5];
-
-        switch (index) {
-            case 0: alert('The first bar was clicked'); break;
-            case 1: alert('The second bar was clicked'); break;
-            case 2: alert('The third bar was clicked'); break;
-            case 3: alert('The fourth bar was clicked'); break;
-            case 4: alert('The fifth bar was clicked'); break;
-            case 5: alert('The sixth bar was clicked'); break;
-        }
-    }
-
-    var bar2 = new OfficeExcel.Bar('cvs2', [4,6,5,3,8,9]);
-    bar2.Set('chart.labels',['Kev','Louise','Pete','Gary','Fliss']);
-    bar2.Set('chart.events.click', myClick);
-    bar2.Draw();
-</script>
-
- - - - - -

3. The chart with the mousemove event listener added

- -

- The second step is to add the mousemove event listener. This allows us to change the cursor to - pointer when the mouse is moved over a bar. Because this is a common operation the pointer - is automatically changed back to the previous state when it is moved away from the bar. -

- - [No canvas support] - -
-<script>
-
-    function myMousemove (e, bar)
-    {
-        // It's automatically changed back to the previous state for you
-        e.target.style.cursor = 'pointer';
-    }
-
-    function myClick (e, bar)
-    {
-        var index = bar[5];
-
-        switch (index) {
-            case 0: alert('The first bar was clicked'); break;
-            case 1: alert('The second bar was clicked'); break;
-            case 2: alert('The third bar was clicked'); break;
-            case 3: alert('The fourth bar was clicked'); break;
-            case 4: alert('The fifth bar was clicked'); break;
-            case 5: alert('The sixth bar was clicked'); break;
-        }
-    }
-
-    var bar3 = new OfficeExcel.Bar('cvs2', [4,6,5,3,8,9]);
-    bar3.Set('chart.labels',['Kev','Louise','Pete','Gary','Fliss']);
-    bar3.Set('chart.events.click', myClick);
-    bar3.Set('chart.events.mousemove', myMousemove);
-    bar3.Draw();
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/howto-images.html b/OfficeWeb/sdk/Common/Charts/docs/howto-images.html deleted file mode 100644 index 98217045..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/howto-images.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - HOWTO: Add images to your charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HOWTO: Add images to your charts

- -

- There are a few methods of adding images to your charts, and they are: -

- -

1. Tooltips

-

- Tooltips are regular HTML DIV tags and so can contain a wide variety of HTML - links, movies, pictures etc They can be formatted - with CSS (and there's also a specific CSS class that you can use to make them all appear the same - OfficeExcel_tooltip). - For example: -

- - [No canvas support] - - -

2. Background images

-

- If what you want to achieve is to add a "tag" to your charts (eg in a corner of the chart), or you simply want a background image - then the Bar, Line and Scatter charts all support background images. The chart below shows an example of these. You don't - have to use a large image - by using the background image properties you can specify whether the image is stretched across - the whole canvas, the X/Y coordinates of the image and the alignment. -

- - [No canvas support] - -

- Note: - Being a background image, be aware that the image is the first thing that's drawn on the canvas. As such, any grid that you have - will be drawn over the top of the image. You can of course turn the grid off if you don't want this. -

- -

3. CSS Positioning

-

- By using CSS prelative/absolute positioning you can place a regular image over the top of the canvas. As with background images, - the image will not be affected by the canvas redrawing. If you want to link the image or add event listeners to it, you can do - so as you would normally. -

- -
- [No canvas support] - -
- -

- The HTML markup needed to achieve this is: -

- -
-<div style="position: relative">
-    <canvas id="cvs_css" width="600" height="250">[No canvas support]</canvas>
-    <img src="../images/logo.png" style="position: absolute; top: 35px; left: 30px; border: 1px dashed gray; padding: 3px" />
-</div>
-
- - - -
- ' - ' - ' - ' - -
- -

4. Using the ModalDialog

-

- You can make use of the ModalDialog to show images, changing the image in the ModalDialog DIV each time it is shown. You can use - the new events to make it easier to do. -

- - [No canvas support] - - - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/howto-linking.html b/OfficeWeb/sdk/Common/Charts/docs/howto-linking.html deleted file mode 100644 index ae29ce91..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/howto-linking.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - HOWTO: Add links to your charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HOWTO: Add links to your charts

- -

- There are a few methods of adding links to your charts or redirecting to new pages when certain user actions are triggered. - The different methods are listed below. -

- -

1. Tooltips

-

- Tooltips are regular HTML DIV tags and so can contain a wide variety of HTML - links, movies, pictures etc They can be formatted - with CSS (and there's also a specific CSS class that you can use to make them all appear the same - OfficeExcel_tooltip). - For example: -

- - [No canvas support] - -
-<script>
-    var bar = new OfficeExcel.Bar('cvs', [4,6,3,5,4]);
-    bar.Set('chart.tooltips', ['Link 1: <a href="http://www.google.com" target="_blank">Google</a>',
-                               'Link 2: <a href="http://www.yahoo.com" target="_blank">Yahoo</a>',
-                               'Link 3: <a href="http://www.bing.com" target="_blank">Bing</a>',
-                               'Link 4: <a href="http://news.bbc.co.uk" target="_blank">BBC News</a>',
-                               'Link 5: <a href="http://www.facebook.com" target="_blank">Facebook</a>']);
-    bar.Set('chart.labels', ['Google','Yahoo','Bing','BBC News','Facebook']);
-    bar.Draw();
-</script>
-
- -

2. The new pseudo-event listeners

-

- As of January 2012 new pseudo-event listeners have been added. This means that you can specify a Javascript function to run - when a bar is clicked. The same function is called for all bars so to determine which bar has been clicked you will have to - check the index of the bar, as below. -

- - [No canvas support] - -
-<script>
-    /**
-    * This is the function that is run when a bar is clicked (for the chart defined below)
-    */
-    function myEventListener (e, bar)
-    {
-        var index = bar[5];
-
-        switch (index) {
-            case 0: location.href = 'http://www.google.com'; break;
-            case 1: location.href = 'http://www.yahoo.com'; break;
-            case 2: location.href = 'http://www.bing.com'; break;
-            case 3: window.open('http://news.bbc.co.uk', '_blank'); break;
-            case 4: window.open('http://www.facebook.com', '_blank', 'top=50,left=50,width=900,height=600'); break;
-        }
-    }
-
-    var bar = new OfficeExcel.Bar('cvs', [4,6,3,5,4]);
-    bar.Set('chart.events.click', myEventListener);
-    bar.Set('chart.events.mousemove', function (e, bar) {e.target.style.cursor = 'pointer';});
-    bar.Set('chart.labels', ['Google','Yahoo','Bing','BBC News','Facebook']);
-    bar.Draw();
-</script>
-
- -
Note
- -

- As shown you can either assign a URL to location.href, or alternatively you can use the window.open method. The - difference is largely immaterial however the window.open method does mean you can open the link in a new window, which - is something you can't do if you use location.href. You can also specify what browser controls are shown - (eg. the address bar/buttons etc), the size and the position of the window if you use the window.open method. -

- -

3. An anchor tag around the canvas

-

- This method is rather simple but is mentioned for completeness. You can of course link the whole of the canvas in your HTML - page. The disadvantage with this is that the link will apply to the whole canvas, gutters included, and that there can be - only one URL. -

- - - [No canvas support] - - -
-<a href="http://www.google.com" target="_blank">
-    <canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-</a>
-
- -

- You could also use the canvas onclick event to trigger some Javascript code and then redirect, like this: -

- -
-<canvas id="cvs" width="600" height="250" onclick="alert('Redirecting...');location.href='http://www.google.com'">[No canvas support]</canvas>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/howto-make-a-transition-effect.html b/OfficeWeb/sdk/Common/Charts/docs/howto-make-a-transition-effect.html deleted file mode 100644 index 2722522f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/howto-make-a-transition-effect.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - HOWTO: Make a transition effect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HOWTO: Make a transition effect

- -

- You can use the range of OfficeExcel effects to easily make an effective transition effect. This page shows you how you can do just - that with the Conceal ad Reveal effects. If you need to show multiple charts this can be an effective way to switch between the - two. -

- -
- [No canvas support] - -
- - - -
- -

1. Include the libraries

-

- This HTML code, which goes in the page <HEAD>, simply includes the relevant OfficeExcel libraries along with jQuery. -

- -
-<script src="OfficeExcel.common.core.js" ></script>
-<script src="OfficeExcel.common.key.js" ></script>
-<script src="OfficeExcel.common.effects.js" ></script>
-<script src="OfficeExcel.bar.js" ></script>
-<script src="jquery.min.js" ></script>
-
- -

2. Define the Javascript that draws the charts

-

- The charts are drawn by individual functions. This makes it easy to call those functions when needed and draw the charts. -

- -
-<script>
-    /**
-    * This function shows the chart that displays total sales by day.
-    */
-    function ShowChart1 ()
-    {
-        // Enable the correct button
-        document.getElementById("butDayAndPerson").disabled = false;
-
-        var bar1 = new OfficeExcel.Bar('cvs', [4,5,8,6,4,3,2]);
-        bar1.Set('chart.labels', ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'])
-        bar1.Set('chart.title', 'Total sales by day');
-        OfficeExcel.Effects.jQuery.Reveal(bar1);
-    }
-
-
-    /**
-    * This chart shows the total sales by day again, but this time broken down by person as well.
-    */
-    function ShowChart2 ()
-    {
-        // Enable the correct button
-        document.getElementById("butDay").disabled = false;
-
-        var bar2 = new OfficeExcel.Bar('cvs', [[2,2],[3,2],[5,3],[3,3],[3,1],[2,1],[1,1]]);
-        bar2.Set('chart.title', 'Sales broken down by day and person');
-        bar2.Set('chart.labels', ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']);
-        bar2.Set('chart.key', ['John','Brandon']);
-        bar2.Set('chart.ymax', 10);
-        OfficeExcel.Effects.jQuery.Reveal(bar2);
-    }
-
-
-    /**
-    * This function hides the canvas (whichever chart is being shown) and calls the relevant function to
-    * show the desired chart. It uses the Conceal effect to hide the canvas and passes the appropriate
-    * function as the "callback" which is called when the Concealeffect is done.
-    * 
-    * The callback then clears the canvas and draws the appropriate chart on it.
-    */
-    function TransitionTo(func)
-    {
-        // Disable both buttons
-        document.getElementById("butDay").disabled = true;
-        document.getElementById("butDayAndPerson").disabled = true;
-
-        OfficeExcel.Effects.jQuery.Conceal(document.getElementById("cvs").__object__, null, func);
-    }
-    
-    /**
-    * Initially the canvas is blabk so there is no need to clear anything. So it is sufficient to
-    * just call the relevant function to show the first chart.
-    */
-    window.onload = function ()
-    {
-        ShowChart1();
-    }
-</script>
-
- -

3. The buttons that trigger the transitions

-

- These are just some regular HTML buttons that trigger the transitioning to a new chart. Buttons are disabled when clicked - so that double clicking does not cause any ill-effects. The appropriate button is then enabled when the new chart is shown. -

- -
-<button onclick="TransitionTo(ShowChart1)" disabled="disabled" id="butDay">Show sales by day only</button>
-<button onclick="TransitionTo(ShowChart2)" disabled="disabled" id="butDayAndPerson">Show sales by day and person</button>
-
- -

Note

-

- Some effects may be unusable in this type of situation because of the references that are added to the canvas. If this situation - arises however it is feasible to use two separate canvas tags which are positioned at the exact same point, and use the - display: CSS attribute to switch between the two. This may also be necessary if you use any interactive features - such as tooltips. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/hprogress.html b/OfficeWeb/sdk/Common/Charts/docs/hprogress.html deleted file mode 100644 index b25a50c1..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/hprogress.html +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - Documentation about the Horizontal progress bar - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Horizontal progress bar documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // Create the progress bar. The arguments are: the canvas tag ID, the value and the
-        // maximum value.
-        var myProgress = new OfficeExcel.HProgress('myProgress', 78, 100);
-        
-        // Configure the progress bar to appear as requested.
-        myProgress.Set('chart.colors', ['red']);
-        
-        // Now call the .Draw() method to draw the chart.
-        myProgress.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the progress bar apears. You can set them by using the Set() method. Eg: -

- -

- myProgress.Set('name', 'value'); -

- - - - - -

Chart configuration

- - - - chart.tickmarks
- Whether the tickmarks are drawn.
- Default: true

- - - chart.tickmarks.color
- The color used for tickmarks.
- Default: black

- - - chart.tickmarks.inner
- This controls whether the bar has inner tickmarks
- Default: false

- - - chart.tickmarks.zerostart
- If true, labels and tickmarks will start at and show zero.
- Default: false

- - -chart.numticks
- How many tick marks there are.
Default: 10

- -chart.numticks.inner
- How many inner tick marks there are.
Default: 50

- -chart.arrows
- This stipulates that two indicator arrows are drawn. It works best if you have tickmarks off, and no title.
Default: false

- -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

-chart.colors
- The colors of the bar(s). This can be a solid color, or a gradient that you create.
Default: [#0c0]

- -chart.background.color
- The background color.
Default: #eee

- -

Shadow

-chart.shadow
- Whether the progress bar has a shadow. This uses the canvas shadow API and therefore is only supported on Chrome 2, Safari 3.1 and Firefox 3.1 (and above).
Default: false

- -chart.shadow.offsetx
- The X offset of the progress bar shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the progress bar shadow.
Default: 3

- -chart.shadow.color
- The color of the shadow.
Default: rgba(0,0,0,0.5)

- -chart.shadow.blur
- The blurring effect that is applied to the shadow.
Default: 3

- -

Labels and text

-chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size of the text (in points).
Default: 10

- - chart.labels
- Labels that are applied to the chart.
- Default: An empty array

- - - chart.labels.position
- This determines whether the labels are placed on the top or the bottom of the progress bar.
- Default: bottom

- - -

Scale

-chart.units.pre
- The units that the Y scale is measured in (these are preppend to the number).
Default: none

- -chart.units.post
- The units that the Y scale is measured in (these are appended to the number).
- Default: none

- - - chart.scale.decimals
- The number of decimal places to display for the Y scale. -
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - -

Titles

- - -chart.title
- The title of the progress bar.
Default: An empty string

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -chart.title.color
- The color of the title.
Default: black

- -

Interactive features

-chart.tooltips
- An array, albeit one element only. This is shown when the progress bar is clicked on. This can contain HTML.
Default: An empty array

- -chart.tooltips.effect
- The animated effect used for showing the tooltip. Can be either fade or expand.
Default: fade

- -chart.tooltips.css.class
- This is the name of the CSS class the tooltips use.
Default: OfficeExcel_tooltip

- -chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- -chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - - -chart.adjustable
- Defaulting to false, this determines whether your progress bar will be adjustable (click the bar and drag it).
Default: false

- -

Zoom

-chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - -

Miscellaneous

- - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key. Either graph or gutter (default).
- Default: gutter

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: false

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: true

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- -

- - - - -

 

-

Methods

- - - obj.getBar(event)

-

- This method returns the details of a focused bar (ie clicked or mouseover'ed. It returns: -

-
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width of the bar
  • -
  • The height of the bar
  • -
  • The index of the bar (starting from 0)
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/iframe-setup.html b/OfficeWeb/sdk/Common/Charts/docs/iframe-setup.html deleted file mode 100644 index 69ec7507..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/iframe-setup.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - An example of using an IFRAME to cover the scrollbars - - - - - - - - - - - -
- - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/iframe.html b/OfficeWeb/sdk/Common/Charts/docs/iframe.html deleted file mode 100644 index c9f02167..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/iframe.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - Integrating OfficeExcel with external libraries and covering the scrollbars - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Covering the scroll bars

- - - - - -

- This is an example of getting the ModalDialog to cover the entire page - including the scroll bars. A regular DIV does - not do this. This text is just here to pad the page and ensure that the browser creates a scroll bar. -

- -
- -

- gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui -

- -

- gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui -

- -

- gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui - gh ghiu gyu gfyugf yu gfyu fgyugfyufgyu gfyu gfyu fgyu yu fyu yu gyu guighui ghui ghui uhi hui hui -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/image2url.html b/OfficeWeb/sdk/Common/Charts/docs/image2url.html deleted file mode 100644 index 3efb0901..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/image2url.html +++ /dev/null @@ -1,129 +0,0 @@ - - - Image to data: url converter - - - - - -
- Courtesy of www.OfficeExcel.net -
- -

Image to data: url converter

- - - This only works for online images, which are on the [] domain. There's no server-side - scripting though, so feel free to put it on your website and use it there. - - # -

Why use data: URLs?

- -

- By using data: URLs you reduce the number of HTTP requests needed to display your page since the images are part of the - page itself. This does mean though that the images can't be cached (unless of course the page itself is cached). But, if you were - to reuse the same image on subsequent pages, they wouldn't be cached. You can get around this though by using some - Javascript at the bottom of your page to change the URLs to the real image files. The - www.OfficeExcel.net front page uses this technique. -

- -

- - URL: - - -

- - The data: url: - - -

- - A full image tag with the url as the src: - - -

The image itself using the data: url:

- - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/index.html b/OfficeWeb/sdk/Common/Charts/docs/index.html deleted file mode 100644 index 790af43c..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/index.html +++ /dev/null @@ -1,911 +0,0 @@ - - - - - - The OfficeExcel documentation and other HTML5 examples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Documentation and HTML5 examples

- - - -
-
- Need something that OfficeExcel doesn't currently support? OfficeExcel license holders can usually be accomodated - please - contact support to discuss your requirements. -
-
- -
-

Introduction

- - - - -
- - -
-

Chart types

- - -

Basic examples

- - -
- -
- -

HOWTO Guides

- - -

Features and examples

- -
- -
-

Miscellaneous

- - - - -

On this page:

- - -
- - - - - - - -
-
- - - - -
 
 
-

Benefits of OfficeExcel: HTML5 Javascript charts library

- -

- The HTML5 canvas tag is a new tag for HTML5. It allows for two dimensional drawing easily using Javascript. - This makes it perfect for producing charts. Because Javascript runs on your users' computer, none of the load on your web server - normally associated with producing charts is incurred. Not only that but because - of the greater processing power that is typically available on users' computers, they will be much faster. And, - because the code can be both compressed (for example if you're using Apache, mod_gzip will do this automatically for you) and - cached, bandwidth usage can be massively reduced. This makes it economically attractive to employ at the same time as - benefiting your website, ie: -

- -
    -
  • It can save you money by reducing the load on your web server(s)

  • -
  • It can speed up your web pages
  • -
- -

- Imagine, you are creating 10,000 charts a day and the data is such that the resulting charts cannot be cached. With the OfficeExcel - library you can reduce that figure to zero. All the processing is done by each individual web browser, much like - showing the HTML that you send to them. So you don't have to send any images, you simply send them the Javascript charts libraries - once. So, much lower bandwidth bills and less strain on your webserver. -

- -

- And if that wasn't enough, because the charts are created using Javascript, they will work offline if you view a .html page - on your own PC. Download the archive and see! Useful if you need to do a presentation (for example) and want to use the same - charts as your website. -

- -
-
-
    -
  • Cross browser support.
  • -
  • 20+ Different base chart types (Examples).
  • -
  • Charts work on and off-line.
  • -
  • Interactive features.
  • -
-
- -
-
    -
  • Charts are created on the client - no server overhead.
  • -
  • Very easy setup (see Implementing OfficeExcel).
  • -
  • Fully documented.
  • -
  • Very easy to learn.
  • -
-
-
- - - -
 
 
-

Browser support

- -

- Since the charts are produced using HTML5 features (the new canvas tag), client support includes: -

- -
    -
  • Mozilla Firefox 3.0+
  • -
  • Google Chrome 1+
  • -
  • Apple Safari 3+
  • -
  • Opera 9.5+
  • -
  • Microsoft Internet Explorer 7+ (see note)
  • -
  • iPhone (text support from iOS v4+)
  • -
  • iPad (text support from iOS v4.2+)
  • -
- -

- The HTML5 canvas tag is part of the HTML5 specification, - and all of the above browsers have some sort of support for it. -

- -

- HTML5 canvas & Microsoft Internet Explorer (MSIE)
- Microsoft Internet Explorer 6/7/8 don't natively support the HTML5 canvas tag. To support - MSIE 7 and 8 you will need to use either - Google Chrome Frame or - ExCanvas from Google - (which is included in the OfficeExcel archive). Read more about Internet Explorer compatibility - here. - -

- - - Starting from the developer preview 3, Microsoft Internet Explorer 9 has full support for - HTML5 canvas. - - -

- MSIE 6 is supported using Google Chrome Frame. -

-

- -

- OfficeExcel and older browsers
- Older browsers (eg Chrome 1, Firefox 3, Safari 3, Opera 9.5) are supported, however if they don't support the canvas shadow or - text APIs, these will naturally be unavailable. Earlier versions of these browsers may work, but are untested. -

- -

- Other devices
- Other devices (eg mobile devices) may support or may be intending to support the HTML5 canvas tag as part of their HTML5 support. Typically - the newer a device or its OS the higher the likelyhood is that it has support for HTML5 canvas. -

- - -
 
 
-

Improving the performance of your charts

- -

- Although performance is excellent, (eg compared to server based charts libraries), you may still want to tune - OfficeExcel further. The biggest thing you can do is use HTTP compression, which reduces the initial download time of the libraries, - but there are a number of things you can do: -

- -
    -
  • - Compression
    HTTP compression can dramatically reduce your bandwidth bills and increase the speed - of your website. The OfficeExcel.common.core.js file for example used to be over 100k, but with compression this was reduced - to around 17k. Less than a fifth of the original size! If you do only one thing to aid performance, - then it should be this. - -

    - To achieve this with Apache you have a few options: -

    - -
      -
    • You can use the Apache module mod_gzip which compresses the libraries on the fly.
    • -
    • - You can compress the libraries manually using the Unix gzip command, rename them to remove the .gz suffix - and add the header using an Apache directive - (eg AddEncoding gzip .js). If you have some sort of - release process/script, it would make sense to add this to it to automate the procedure. -
    • -
    -

    -

  • - -
  • - Minification
    - Minification reduces the size of the library before compression takes effect, removing unnecessary spaces and comments etc. - A combination of minification and compression will give superb results. For example, before being split up into seperate files, - minification combined with compression reduced the common library from over 100k to roughly 10k (!). There is a PHP shell - script that you can use to minify the libraries in the scripts directory. - -

    - You can get pre-minified versions of the libraries here. -

    -
  • - -

    - -

  • - Pre-emptive caching
    - Slightly different to caching itself, is pre-emptive caching. This involves downloading the libraries before the page that requires - them is shown. This way, they're already in the users browser cache and the chart will subsequently appear to be much much - quicker. An example of this would be having the library included at the bottom of your index page of your website (optionally - with the defer="defer" attribute). The script can be downloaded at will because the page doesn't actually use it, but - for subsequent pages it will already be in the users browser cache. - -

    -

  • - -
  • - Caching
    - Since the libraries you're using won't change that often, you can set distant Expires: headers on them, or appropriate - Cache-Control: headers, and the client will not even have to contact your server for it. When you want to make sure - the library is re-downloaded (eg. you update the library), then simply change the filename. - -

    -

  • - -
  • - Script tag placement
    - According to Yahoo! guidelines placing the <SCRIPT> - tag at the bottom of the page can increase the percieved load time. If you do this, then your charts should be - created in the window.onload event, otherwise the browser may try to create them without the library - having been loaded, and will therefore subsequently fail. - -

    - - You should also consider the effect that this has when your page is rather weighty. If the page is weighty there - will be a small delay before the onload event fires, and therefore creates the chart. This might not be so bad if the - chart is not immediately visible, however if it is then you should carefully consider using the onload event. You - may wish to load the library in the page header, define the canvas tag and then immediately define the javascript - that creates the chart. This way - the chart will be created and shown, and then the rest of the page loads. The end result is that your chart - appears to be faster. - -

    - - Between the onload event, asychronous Javascript and careful tag placement, you will need to experiment to get the right result - for you. -

  • - -
  • - Document structure
    - The structure of your document can have a significant impact on how fast your charts are displayed. If, for example, you use - tables for layout, this can delay the display of elements that are affected by the size of the table. Where possible, you - should consider trying to convert your layout to DIVs. An example of this is the front page of this website. The charts - were right aligned using a table as a container. This caused a visible delay when showing them. In this case it was a - simple matter to convert the page to use DIVs, and the page subsequently displays much faster. -

    -

  • - -
  • - Creating your charts asynchronously
    - Where possible, you may wish to create your charts asynchronously. This allows the browser to continue rendering the page - immediately after getting to the code that creates the chart. This might not be perceptible if you don't have a lot of - charts, or your page is small. You can read a little more about this and see example code here. - -

    - - Note that recent releases of Google Chrome (from a dev release of version 4) have had an issue with creating charts - asynchronously, which presents itself by not drawing text sometimes (it's not consistent). Simply not using - asynchronous chart production in this case resolves the issue. -

  • - -
  • - DOMContentLoaded event
    - Using this event can speed up the display of your charts signifcantly compared to the more well known onload event. - It is supported by Chrome, Gecko based browsers (ie Firefox), Safari, Opera and Internet Explorer 9. This event fires when - the structure of the page is loaded, but not necessarily the images or CSS. This means that if your page is laden with - images, this event will fire before the onload event, thus creating your charts quicker. The effect can be very noticeable. - -
    -function addListener(func)
    -{
    -    if(window.addEventListener) {
    -        window.addEventListener('DOMContentLoaded', func, false);
    -    } else {
    -        document.attachEvent("onDOMContentLoaded", func);
    -    }
    -}
    -
    - You can read more about the DOMContentLoaded event on the Mozilla site, here, - and the Microsoft site here. - There's an example here. -

    -

  • - -
  • - AJAX requests
    - If you can take advantage of AJAX, you can use this method to retrieve data from your server. If, for example, you have a chart that - shows ongoing information, instead of simply refreshing the entire page, you could use an AJAX request to just retrieve the - data that you want and update the chart that way. This reduces the amount of data needed to be transferred, thus reducing the - bandwidth used, and will be quicker than a full page refresh, particularly if your page is weighty. There's a simple AJAX - function that you can use below. -

    -

  • - -
  • - Combining libraries
    - You may wish to consider combining the OfficeExcel libraries into a single file. - This won't save on the size of the individual libraries, but will save on the headers that are sent as part of the response. - If a typical response sends 500 bytes worth of headers, and you send four chart libraries, then combining the libraries - would save 1500 bytes. Multiple factors need to be considered though, including things like caching, which can circumvent - the unneccessary repeated downloading of the libraries. - -

    - To make your life straight-forward, you may want to make this a part of your release script/process. This way you - can make changes to the scripts in your development environment as you would normally. -

    - -

    - Another effect of combining libraries is reducing the amount of HTTP connections needed to retrieve them. Most browsers - have a limit on how many connections they can create simultaneously, so if they're not being used to retrieve your - chart libraries, they can be used for something else. -

    -
  • - -
  • - Avoiding shadow blur with animations
    - If you're using animations then you may wish to avoid or reduce the shadow blur that you're using. With HTML5 canvas shadow - blur is a drain on performance - so if you're looking to get the most out of your charts or are using animations - which require redrawing the chart, turning off the shadow blur can reduce the time it takes to draw the charts leading to - smoother charts. -
  • -
- - A reasonable performance strategy - -

- Although there's a lot you can do in regards to performance, a few of the points here will suffice for most - websites: - -

    -
  • Compression
  • -
  • Minification
  • -
  • Pre-emptive caching
  • -
  • Caching
  • -
- - The number one thing you should do is compress your libraries. This has multiple benefits and provides by far the most gain, - effectively for free. Secondly, use the minified libraries. Since you can download them here, - you might as well use them. Then we have pre-emptive caching. Since most websites won't show charts on the front page or will - have a login page that is shown before any charts, this effectively eliminates the charts library download. And lastly caching - should be done as a matter of course. There's no reason to keep downloading the same library so even caching for only 30 minutes - (or the duration of an average visit to your website) will produce results. -

- -

- General website performance tools

- - If your aim is to improve your websites performance as a whole then you may be interested in these tools: -

- - - - -
 
 
-

Implementing OfficeExcel

- -

- Getting OfficeExcel up and running is very easy and consists of three steps. If you're having trouble I suggest you get hold of a copy of - Firefox along with Firebug - its - Javascript error console will make debugging your issue much easier. Many problems are down to a library not having been included or - not using the onload event when you need to. You might also benefit from using the Web Developer toolbar - for Firefox. This allows you to easily disable caching, thus eliminating any problems that that causes. You could equally use - the Chrome developer tools (CTRL+SHIFT+J), optionally in docked mode, which also provides a good quality Javascript console. -

- -
    -
  1. - Include the libraries (put this in your documents <HEAD>): -
    -<script src="OfficeExcel.common.core.js"></script>
    -
    -<script src="OfficeExcel.common.adjusting.js"></script> <!-- Just needed for adjusting -->
    -<script src="OfficeExcel.common.annotate.js"></script>  <!-- Just needed for annotating -->
    -<script src="OfficeExcel.common.context.js"></script>   <!-- Just needed for context menus -->
    -<script src="OfficeExcel.common.effects.js"></script>   <!-- Just needed for visual effects -->
    -<script src="OfficeExcel.common.resizing.js"></script>  <!-- Just needed for resizing -->
    -<script src="OfficeExcel.common.tooltips.js"></script>  <!-- Just needed for tooltips -->
    -<script src="OfficeExcel.common.zoom.js"></script>      <!-- Just needed for zoom -->
    -
    -<script src="OfficeExcel.bar.js"></script>              <!-- Just needed for bar charts -->
    -<script src="OfficeExcel.bipolar.js"></script>          <!-- Just needed for bi-polar charts -->
    -<script src="OfficeExcel.fuel.js"></script>             <!-- Just needed for fuel charts -->
    -<script src="OfficeExcel.funnel.js"></script>           <!-- Just needed for funnel charts -->
    -<script src="OfficeExcel.gantt.js"></script>            <!-- Just needed for gantt charts -->
    -<script src="OfficeExcel.gauge.js"></script>            <!-- Just needed for gauge charts -->
    -<script src="OfficeExcel.hbar.js"></script>             <!-- Just needed for horizontal bar charts -->
    -<script src="OfficeExcel.hprogress.js"></script>        <!-- Just needed for horizontal progress bars -->
    -<script src="OfficeExcel.led.js"></script>              <!-- Just needed for LED charts -->
    -<script src="OfficeExcel.line.js"></script>             <!-- Just needed for line charts -->
    -<script src="OfficeExcel.meter.js"></script>            <!-- Just needed for meter charts -->
    -<script src="OfficeExcel.odo.js"></script>              <!-- Just needed for odometers -->
    -<script src="OfficeExcel.pie.js"></script>              <!-- Just needed for pie AND donut charts -->
    -<script src="OfficeExcel.radar.js"></script>            <!-- Just needed for radar charts -->
    -<script src="OfficeExcel.rose.js"></script>             <!-- Just needed for rose charts -->
    -<script src="OfficeExcel.rscatter.js"></script>         <!-- Just needed for rscatter charts -->
    -<script src="OfficeExcel.scatter.js"></script>          <!-- Just needed for scatter charts -->
    -<script src="OfficeExcel.thermometer.js"></script>      <!-- Just needed for thermometer charts -->
    -<script src="OfficeExcel.vprogress.js"></script>        <!-- Just needed for vertical progress bars -->
    -<script src="OfficeExcel.waterfall.js"></script>        <!-- Just needed for waterfall charts  -->
    -
    -
  2. - -
  3. - Add the canvas tag (put it where you want the chart to appear): -
    -<canvas id="myCanvas" width="600" height="250">[No canvas support]</canvas>
    -
    -
  4. - -
  5. - Create the chart (since it is using the onload event, you can put this anywhere): - -
    -<script>
    -    window.onload = function ()
    -    {
    -        var data = [280, 45, 133, 166, 84, 259, 266, 960, 219, 311, 67, 89];
    -
    -        var bar = new OfficeExcel.Bar('myCanvas', data);
    -        bar.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
    -        bar.Set('chart.gutter.left', 35);
    -        bar.Draw();
    -    }
    -</script>
    -
    -
  6. -
- -

- There's also a very basic example of using OfficeExcel, that does very little. It can be helpful to - illustrate how you can get OfficeExcel up and running. -

- - -
 
 
-

Suggested structure for OfficeExcel

- - Suggested structure for OfficeExcel - -

- The suggested layout structure for the OfficeExcel libraries is shown on the right. The www.example.com folder represents - the root/top level of your website with the javascript directory beneath that. The css and images - folders are shown for - illustrative purposes only. If you follow this layout then your URLs to the OfficeExcel libraries would be: -

- -

- http://www.example.com/javascript/OfficeExcel/OfficeExcel.common.core.js
- http://www.example.com/javascript/OfficeExcel/OfficeExcel.bar.js
- etc -

- -

- By using this structure you make OfficeExcel easy to update should you need to, and also keep all the OfficeExcel libraries in - one, easy to find, place. -

- -
- - -
 
 
-

Integration with server side scripting

- -

- This is a very easy process, as easy as sending content to the browser. All you need to do is make the data variable - (as in the example below) contain the data you want to be displayed. Eg: -

- -
-<script src="OfficeExcel.common.core.js"></script>
-<script src="OfficeExcel.line.js"></script>
-
-<canvas id="myCanvasTag" width="600" height="200">[No canvas support]</canvas>
-
-<script>
-    data = [78,16,26,23,25,51,34,64,84,84];
-
-    line = new OfficeExcel.Line("myCanvasTag", data);
-    line.Set("chart.labels", ["Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov"]);
-    line.Draw();
-</script>
-
- -

- To get the above using PHP you could do this: -

- -
<?php
-    // This simply makes a string out of the array of data
-    $myData = join(',', array(78,16,26,23,25,51,34,64,84,84));
-
-    // This prints out the required HTML markup
-    print('<script src="OfficeExcel.common.core.js"></script>' . "\n");
-    print('<script src="OfficeExcel.line.js"></script>' . "\n\n");
-    print('<canvas id="myCanvasTag" width="600" height="200">[No canvas support]</canvas>' . "\n\n");
-    print('<script>' . "\n");
-    print('    var data = [' . $myData . '];' . "\n\n");
-    print('    var line = new OfficeExcel.Line("myCanvasTag", data);' . "\n");
-    print('    line.Set("chart.labels", ["Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov"]);' . "\n");
-    print('    line.Draw();' . "\n");
-    print('</script>');
-?>
-
- -

- Strictly speaking the var isn't necessary, however if you put the code inside a - function (like window.onload), it's probably best to do so as using var will - make the variable local, and not global. So doing so will help prevent naming clashes. -

- - - -
 
 
-

Integration with PHP & MySQL

- -

- This is a simple matter of formatting what you get back from MySQL into a string, as the MySQL dump and PHP code - below shows (it's based on a database called OfficeExcel_example): -

- -
-#
-# Table structure for table `daily_statistics`
-#
-
-CREATE TABLE `daily_statistics` (
-  `st_day` char(9) NOT NULL,
-  `st_statistics` tinyint(4) NOT NULL,
-  UNIQUE KEY `st_day` (`st_day`)
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-
-#
-# Dumping data for table `daily_statistics`
-#
-
-INSERT INTO `daily_statistics` VALUES ('Mon', 124);
-INSERT INTO `daily_statistics` VALUES ('Tue', 95);
-INSERT INTO `daily_statistics` VALUES ('Wed', 64);
-INSERT INTO `daily_statistics` VALUES ('Thu', 94);
-INSERT INTO `daily_statistics` VALUES ('Fri', 75);
-INSERT INTO `daily_statistics` VALUES ('Sat', 98);
-INSERT INTO `daily_statistics` VALUES ('Sun', 84);
-
- -
-<?php
-    /**
-    * Change these to your own credentials
-    */
-    $hostname = "localhost";
-    $username = "root";
-    $password = "PASSWORD";
-    $database = "OfficeExcel_example";
-    
-    $connection = mysql_connect($hostname, $username, $password) OR die('Could not connect to MySQL: ' . mysql_error());
-    mysql_select_db($database);
-    
-    $result = mysql_query("SELECT st_day, st_statistics FROM daily_statistics");
-    if ($result) {
-    
-        $labels = array();
-        $data   = array();
-    
-        while ($row = mysql_fetch_assoc($result)) {
-            $labels[] = $row["st_day"];
-            $data[]   = $row["st_statistics"];
-        }
-
-        // Now you can aggregate all the data into one string
-        $data_string = "[" . join(", ", $data) . "]";
-        $labels_string = "['" . join("', '", $labels) . "']";
-    } else {
-        print('MySQL query failed with error: ' . mysql_error());
-    }
-?>
-<html>
-<head>
-
-    <!-- Don't forget to update these paths -->
-
-    <script src="libraries/OfficeExcel.common.core.js" ></script>
-    <script src="libraries/OfficeExcel.line.js" ></script>
-
-</head>
-<body>
-    
-    <canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-    <script>
-        chart = new OfficeExcel.Line('cvs', <?php print($data_string) ?>);
-        chart.Set('chart.background.grid.autofit', true);
-        chart.Set('chart.gutter.left', 35);
-        chart.Set('chart.gutter.right', 5);
-        chart.Set('chart.hmargin', 10);
-        chart.Set('chart.tickmarks', 'endcircle');
-        chart.Set('chart.labels', <?php print($labels_string) ?>);        
-        chart.Draw();
-    </script>
-
-</body>
-</html>
-
- -

- This PHP code provides the data in two strings - $labels_string and $data_string. These variables are then used - in the OfficeExcel code to provide the data and the labels. -

- -

Remember:

- -
    -
  • Change the database hostname/username/password/database to match your own.
  • -
  • Ensure you have the correct paths to the OfficeExcel libraries.
  • -
- - -
 
 
-

Making AJAX requests

- -

- Note: - It is important that you're careful with types when making AJAX requests. Since the response is initially a string, - and your AJAX function/library may not do conversions for you, you may need to convert these strings to numbers. To - do this you can use the Number() or parseInt() functions. For example: -

- -
-<script>
-    num = Number('23');
-    num = parseInt('43');
-</script>
-
- -

- Here is a simple function that you could use to get data from your server using AJAX: -

- -
-<script>
-    /**
-    * Makes an AJAX call. It calls the given callback (a function) when ready
-    * 
-    * @param string   url      The URL to retrieve
-    * @param function callback A function object that is called when the response is ready, there's an example below
-    *                          called "myCallback".
-    */
-    function AjaxCall (url, callback)
-    {
-        // Mozilla, Safari, ...
-        if (window.XMLHttpRequest) {
-            var httpRequest = new XMLHttpRequest();
-        
-        // MSIE
-        } else if (window.ActiveXObject) {
-            var httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
-        }
-        
-        httpRequest.onreadystatechange = callback;
-        
-        httpRequest.open('GET', url, true);
-        httpRequest.send();
-    }
-
-
-    /**
-    * This sample callback function is called when the data is ready (readyState=4)
-    */
-    function myCallback ()
-    {
-        if (this.readyState == 4 && this.status == 200) {
-            // Everything is good, the response is received
-            alert(this.responseText);
-        }
-    }
-</script>
-
- -

And you would use it like this:

- -
-<script>
-    AjaxCall('http://www.example.com/getSomething.php', myCallback);
-</script>
-
- -

- There's an example here that shows updating your chart dynamically and a fuller example - of fetching data with AJAX here. -

- - - -
 
 
-

Support

- -

- If you have a support issue you can send it to the support email address: - support@OfficeExcel.net. You can also follow - @_OfficeExcel on twitter to get notifications of new releases and - notable updates. -

- -

- If you have a chart that you would like added to the test suite of charts, then feel free to email it to the - support address above. The chart should be totally self-contained (ie not rely on external libraries like jQuery). - You can think of it this way - free testing! Thanks. -

- -
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/ingraph.html b/OfficeWeb/sdk/Common/Charts/docs/ingraph.html deleted file mode 100644 index 3714ded2..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/ingraph.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - Documentation about the in-graph labels that are available to you - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

In-graph labels

- - - -
- -

- This page shows the various options for in-graph labels. The in-graph labels can be set like this: -

- -
obj.Set('chart.labels.ingraph', [,,'Hoolio',,'Olga']);
- -

- Or like this if you want to be more specific: -

- -
obj.Set('chart.labels.ingraph', [,,['Hoolio', 'red', 'yellow', -1, 60],,'Olga']);
- -

- The array can consist of: -

- -
    -
  • The label text
  • -
  • The text color
  • -
  • The background color
  • -
  • This can be 1 or -1 and denotes whether the label should be above or below the line. This has no effect in Bar or Scatter charts
  • -
  • The length of the label pointer/arrow
  • -
- -

Example line chart

- - [No canvas support] - - -

Example bar chart

- - [No canvas support] - - - [No canvas support] - - -

Example bar chart (arrow variant)

- - [No canvas support] - - - -

Example bar chart (dot variant)

- [No canvas support] - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/issues.html b/OfficeWeb/sdk/Common/Charts/docs/issues.html deleted file mode 100644 index a7e9f8dd..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/issues.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - Common issues that you may come across - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Common issues

- - - -

- These are some common issues that you should be aware of. If you're having trouble, you may want to look through these to see - if any apply to you or may be the source of your problem. -

- - - -

Low animation frame rate in Chrome 15

-

- In Chrome 15 the experimental function requestAnimationFrame() has a lower frame-rate than it does in Chrome 14. - Not all animations are affected and animations that animate CSS properties using jQuery (eg the Line chart Trace - animation) shouldn't be affected. The Odometer is particularly affected if you use tickmarks. In this you can turn off - tickmarks and use the tickmark highlighting instead. -

- -

- Note: - A second release of Chrome 15 seems to have rectified the issue so you may not experience this. -

- - -

Annotations aren't saved when running locally in Mozilla Firefox

- -

- The solution here is to run the charts using a web server. At this time (March 2010) only Safari, Chrome and Opera - support saving annotations when running locally. -

- - -

Shadows in Google Chrome and the line chart

- -

- Shadows in recent versions of Google Chrome are somewhat broken. Firefox, MSIE, Opera and Safari are fine. The reason for this - error is a combination of factors it seems - shadow blurring and line width. Fixes have been added to allow shadow blurring and - a 1 pixel linewidth, though some chart types may still be affected. -

- - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/keys.html b/OfficeWeb/sdk/Common/Charts/docs/keys.html deleted file mode 100644 index 20ba858b..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/keys.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - Examples of using keys in your charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Examples of keys in charts

- - - -
- [No canvas support] - [No canvas support] -
- -

- As of 4th December 2010 the code that produces the keys has been rewritten. There are two variants of keys available, - a horizontal one designed to sit in the gutter, and a vertical one that is designed to sit on top of (ie over) the chart. -

- -

- The actual positioning is now configurable though, so you could have a horizontal key and position it to sit on top - of the chart. -

- -

Key properties

- -

- The available key properties and their defaults are listed below (some chart types have slightly different defaults to - suit): -

- - -
    -
  • chart.key ([] (An empty array))
  • -
  • chart.key.position (graph)
  • -
  • chart.key.position.gutter.boxed (true)
  • -
  • chart.key.position.x (null)
  • -
  • chart.key.position.y (null)
  • -
  • chart.key.shadow (false)
  • -
  • chart.key.shadow.offsetx (2)
  • -
  • chart.key.shadow.offsety (2)
  • -
  • chart.key.shadow.color (#666)
  • -
  • chart.key.shadow.blur (3)
  • -
  • chart.key.color.shape (square)
  • -
  • chart.key.background (white)
  • -
  • chart.key.rounded (true)
  • -
  • chart.key.text.size (10)
  • -
- -

Interactive keys

-

- The Line chart supports interactive keys - as shown in the example. This is only available when the key - is in graph mode. This allows you to click a key item and it will be highlighted on the chart. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/led.html b/OfficeWeb/sdk/Common/Charts/docs/led.html deleted file mode 100644 index e82fa5b6..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/led.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - Documentation about the LED Grid - - - - - - - - - - - - - - - - - - - - - - - - - - -

LED Grid documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // Create the LED object
-        var led = new OfficeExcel.LED('myCanvas', 'An LED display');
-        
-        // Configure the LED chart to look as wished
-        led.Set('chart.dark', '#666');
-        led.Set('chart.light', 'white');
-        
-        // Call the .Draw() method to draw the chart
-        led.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the LED grid apears. -

- - - - - -

Chart configuration

-chart.dark
- Color of the darkened (ie unlit) lights
Default: #eee

- -chart.light
- Color of lit lights
Default: #f66

- -chart.background
- The color of the background.
Default: white

- -

Interactive features

- - - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

-

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/licensing.html b/OfficeWeb/sdk/Common/Charts/docs/licensing.html deleted file mode 100644 index 76bbdf8d..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/licensing.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - Licensing FAQs and information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The OfficeExcel license

- -

- OfficeExcel is free to use for non-commercial entities and there is a non-free commercial license available for commercial entities - who wish to use OfficeExcel. The commercial license is described below. -

- - - - - - -  

-

An overview of the licensing terms

- -
-
- - - - - - - -
- -
- - - - -
-
- -

- A simple and straight-forward overview of the licensing is that for commercial use there - is a single licensing fee of £79 (GBP) (which is approximately $120 USD) - whilst for non-commercial use (eg personal, government, charity, educational etc) it's free - to use assuming that you link to www.OfficeExcel.net on your website. -

- - -  

-

Commercial usage

- -

- Commercial usage covers commercial entities for their websites - (either internal or external) or in software that they produce. If your organisation generates - profit then a commercial license is most appropriate. There are some legal terms and FAQs below that - should help to answer any questions that you may have, but if they don't then you can - email your question to: support@OfficeExcel.net -

- -

- After completion of either Google Checkout or Paypal payment you are granted an OfficeExcel commercial license. You will - be sent the license details via email. -

- -

- Example uses are: - -

    -
  • Internal websites (eg intranets)
  • -
  • Private websites
  • -
  • Public facing websites
  • -
  • Online applications
  • -
  • Offline applications
  • -
- - - You may alter the OfficeExcel code to suit your particular needs. Also, if you're covered by the non-commercial license, however - you don't wish to link to the OfficeExcel website then buying a commercial license means that you dont have to. -

- - -  

-

Commercial license FAQs

- - - -

- -  


- Do I need to buy a commercial license?
- For commercial/business use, then yes - you need a license to use OfficeExcel. - -

- - -  


- How many licenses do I need?
- Regardless of how much you use OfficeExcel in your organisation or in the software you make, you are only required to - buy one OfficeExcel license. -

- - -  


- How much is a license?
- An OfficeExcel license costs £79 (UK pounds). That's a little over $120 (US dollars) at - the time of writing. - -

- - -  


- What if I need something that's not part of OfficeExcel?
- If there's a feature that you need that's not part of OfficeExcel then you can usually be accommodated assuming that - you're a license holder. Please contact support first to discuss your needs. If it's not too specific - to you then it can be added to the main OfficeExcel software. If it is then it can be added to your specific copy of OfficeExcel. You can - contact support with support@OfficeExcel.net - -

- - -  


- What does the license cover?
- The OfficeExcel license covers OfficeExcel as a whole. Excepting ExCanvas, all code that you find in the OfficeExcel archive is - covered by the OfficeExcel license. - -

- - -  


- What if I'm a web designer?
- In this situation each client would need a separate license for themselves. They can then use OfficeExcel as much as they wish. - If you prefer to buy in bulk - discounts are available. - -

- - -  


- Can I include OfficeExcel in an Open Source project?
- You're not prohibited from using OfficeExcel in Open source projects, however you need to be aware of two things: -

    -
  1. - The license you choose for your project may be incompatible with commercial software. The GPL is a prime - example of this. Read your license carefully to find out whether you can use commercial software with it. -
  2. - -
  3. - If you don't want any commercial users of your software to be liable for an OfficeExcel license you can buy - an OfficeExcel license to cover your software specifically. - - -
  4. -
- - -  


- Is there a discount for buying licenses in bulk?
- Yes there's a discount available if you wish to buy 5, 10 or 15 licenses (you could be a web designer for example - wishing to license your clients). Please contact support if this interests you. - -

- - -  


- What if I make an authoring tool?
- If you make an authoring tool then you can include OfficeExcel with your software but each and every commercial Customer - who makes use of it would be liable to buy their own full-price license. - -

- - -  


- Do I need to provide a backlink?
- Commercial license holders do not need to provide a backlink to the OfficeExcel website. - -

- - -  


- Can you send me an invoice?
- Of course, simply go here: http://www.OfficeExcel.net/invoice.html, enter your email - address and you'll be sent an invoice that you can use for tax purposes. -

- - -  

-

Non-commercial free usage

-

- OfficeExcel can be used free-of-charge by non-commercial entities who wish to use it either on an internal or external website - or in software that they make assuming that you link back to the OfficeExcel website. Examples of non-commercial entities - include: - -

    -
  • Individuals
  • -
  • Charities
  • -
  • Government bodies
  • -
  • Educational institutes
  • -
- - Sample HTML for a link is: -

- -
-<a href="http://www.OfficeExcel.net" target="_blank">
-    Charts made with OfficeExcel: HTML5 Javascript charts library
-</a>
-
- -

- If you would prefer not to link to the OfficeExcel website, then you can buy an OfficeExcel commercial license and you won't need to. - You may alter the OfficeExcel code to suit your particular needs. -

- - -
-
- - - - -
-
- -

- If you're covered by the free license but want to make a donation to help keep OfficeExcel going then they're all gratefully - received. You can use PayPal button on the left to send it. Thanks! -

- - -
- - -  

-

Legal terms

- -

Coverage of this license

-

- This license applies to any software originating from the www.OfficeExcel.net website. - Such software is herein referred to as the Software. The license covers - modification and distribution of the Software, use of third-party application - programs based on the Software, and development of software which uses the - Software. Note that ExCanvas is covered by the Apache license. -

- -

Granted rights

-
    -
  1. - You are granted the non-exclusive rights set forth in this document - provided you agree to and comply with any and all conditions in - this document. Whole or partial use of the Software, - signifies acceptance of this license. -
  2. - -
  3. - You may develop application programs, reusable components and other - software items that use the original or modified versions of the - Software. You may distribute these programs or components as long as the Software is correctly attributed by linking to - the OfficeExcel website (www.OfficeExcel.net). If you have - purchased an OfficeExcel license you do not need to attribute OfficeExcel on your website or in the software you make. -
  4. - -
  5. - For commercial use you are required to buy a license from the copyright - holder. A commercial license permits you to use OfficeExcel commercially. - This license is - �79 (UK pounds). Commercial use incorporates applications, websites - (regardless of whether they sell products or services or simply promote - them), intranets and use in offline materials. -
  6. - -
  7. - Non-commercial use (eg personal, charity, government and educational) - is permitted with a link back to the OfficeExcel website. Example code as - follows: - -
    -<a href="http://www.OfficeExcel.net" target="_blank">
    -    Charts made with OfficeExcel: HTML5 Javascript charts library
    -</a>>
    -
    - - Alternatively, if you don't wish to link to the OfficeExcel website, you can - buy an OfficeExcel license and you won't need to. -
  8. -
- -

Copyright notice

-

- The ownership of the Licensed material is not transferred to you in this agreement. -

- - -

Limitations of liability

-

- In no event shall the initial developers or copyright holders be - liable for any damages whatsoever, including - but not restricted to - - lost revenue or profits or other direct, indirect, special, - incidental or consequential damages, even if they have been advised - of the possibility of such damages, except to the extent invariable - law, if any, provides otherwise. -

- - -

No warranty

-

- The Software and this license document are provided AS IS with NO - WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -

- -

Choice of law

-

- This license is governed by the Laws of England. Disputes shall be - settled by Chelmsford town court. -

- - -

Contact support

-

- Any questions or queries about this license or its extent should - be directed to support@OfficeExcel.net -

- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/line.html b/OfficeWeb/sdk/Common/Charts/docs/line.html deleted file mode 100644 index 8f8dec45..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/line.html +++ /dev/null @@ -1,1090 +0,0 @@ - - - - - - Documentation about the Line chart - - - - - - - - - - - - - - - - - - - - - - - - - - -

Line charts documentation

- - - -
- Note: - With the Line chart, there isn't an option to have a scale on the X axis. For this you'll need a Scatter chart with - chart.line set to true. You either use labels across the X axis or an X scale. -
- - - - -

 

-

Example

- -
-<script>
-    window.onload = function ()
-    {
-        // The data for the Line chart. Multiple lines are specified as seperate arrays.
-        var data = [10,4,17,50,25,19,20,25,30,29,30,29];
-    
-        // Create the Line chart object. The arguments are the canvas ID and the data array.
-        var line = new OfficeExcel.Line("myLine", data);
-        
-        // The way to specify multiple lines is by giving multiple arrays, like this:
-        // var line = new OfficeExcel.Line("myLine", [4,6,8], [8,4,6], [4,5,3]);
-        
-        // Configure the chart to appear as you wish.
-        line.Set('chart.background.barcolor1', 'white');
-        line.Set('chart.background.barcolor2', 'white');
-        line.Set('chart.background.grid.color', 'rgba(238,238,238,1)');
-        line.Set('chart.colors', ['red']);
-        line.Set('chart.linewidth', 2);
-        line.Set('chart.filled', true);
-        line.Set('chart.hmargin', 5);
-        line.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        line.Set('chart.gutter.left', 40);
-        
-        // Now call the .Draw() method to draw the chart.
-        line.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - - - -

 

-

Properties

- -

- You can use these properties to control how the Line chart apears. You can set them by using the Set() method. Eg: -

- -

- myLine.Set('name', 'value'); -

- - - - - -

Background

-chart.background.barcolor1
- The color of the background bars (1 of 2).
Default: rgba(0,0,0,0)

- -chart.background.barcolor2
- The color of the background bars (2 of 2).
Default: rgba(0,0,0,0)

- -chart.background.grid
- Whether to show the background grid or not.
Default: true

- -chart.background.grid.color
- The color of the background grid.
Default: #eee

- -chart.background.hbars
- An array of information stipulating horizontal colored bars. You can use these to indicate limits. Eg: myLine.Set('hbars', [[75, 10, 'yellow'], [85, 15, 'red']]); This would give you two bars, one red and a lower yellow bar. The units correspond to your scale, and are the starting point and the height.
Default: null

- -chart.background.grid.hsize
- The horizontal size of the grid.
Default: 25

- -chart.background.grid.vsize
- The vertical size of the grid.
Default: 25

- -chart.background.grid.width
- The width of the background grid.
Default: 1

- -chart.background.grid.border
- Determines whether a border line is drawn around the grid.
Default: true

- -chart.background.grid.hlines
- Determines whether to draw the horizontal grid lines.
Default: true

- -chart.background.grid.vlines
- Determines whether to draw the vertical grid lines.
Default: true

- - - chart.background.grid.autofit
- Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many - horizontal and vertical lines you want.
- Default: true

- - - chart.background.grid.autofit.numhlines
- When using autofit this allows you to specify how many horizontal grid lines you want.
- Default: 5

- - - chart.background.grid.autofit.numvlines
- When using autofit this allows you to specify how many vertical grid lines you want.
- Default: 20

- - - chart.background.grid.autofit.align
- If you want to have your grid lines line up with the labels (both X and Y axes), you can set this to true and OfficeExcel will - attempt to make the grid lines line up. If you have a chart.hmargin set then the alignment will be thrown out.
- Default: false

- - - chart.background.image
- If you want to specify a background image to use on your chart, specify it with this property.
- Default: null

- - - - - chart.background.image.stretch
- By default your background image is stretched (if necessary) to cover the whole chart area (gutters not included). - If this is not what you want then set this property to false.
- Default: true

- - - chart.background.image.x
- The X position of the image. The coordinates are the top left corner of the image.
- Default: null

- - - chart.background.image.y
- The Y position of the image. The coordinates are the top left corner of the image.
- Default: null

- - - chart.background.image.align
- Instead of specifying the coordinates of the image, you can instead simply align it top, bottom, left or right. - Examples are:
-
    -
  • top left
  • -
  • bottom right
  • -
  • bottom
  • -
  • right
  • -
- Default: null

- - -chart.backdrop
- When enabled this specifies that the line(s) will have a backdrop effect. You can control the transparency with the other backdrop settings).
Default: false

- -chart.backdrop.size
- This controls the size/extent of the backdrop effect.
Default: 30

- -chart.backdrop.alpha
- This controls how much transparency the backdrop effect has. It can go from 0 - 1.
Default: 0.2

- -

Labels and text

- - - chart.labels.above
- Whether the values are shown in labels drawn above the line.
- Default: false

- - - chart.labels.above.size
- The size of the labels which are drawn above the line.
- Default: 8

- - - chart.labels
- An array of the X labels for the chart.
- Default: [] (An empty array)

- - -chart.labels.ingraph
- An array of labels for the chart which are drawn "inside" the chart. If you have 5 data points then this should have a corresponding number of elements, though there is a shorthand available.
Default: null

- -chart.ylabels
- Can be true or false and determines whether the chart has Y axis labels.
Default: true

- - - chart.ylabels.invert
- Reverses the Y axis so that 0 is at the top, instead of the bottom.
- Default: false

- - - chart.ylabels.count
- A value (1, 3, 5 or 10) that controls how many Y labels there are.
- Default: 5

- - -chart.ylabels.inside
- This controls whether the Y labels are drawn inside the Y axis or not. If your labels are large, this may help.
Default: false

- -chart.ylabels.inside.color
- If the Y labels are to be drawn inside the Y axis, this is used as the background color.
- Default: rgba(255,255,255,0.5)

- - - chart.ylabels.specific
- You can use this option to give your own Y labels (eg ['Low', 'Medium', 'High'].
- Default: null

- - - chart.xlabels.inside
- This controls whether the X labels are drawn inside the X axis or not. By using this you can significantly - reduce the size of the gutter needed.
- Default: false

- - -chart.xlabels.inside.color
- If the X labels are to be drawn inside the X axis, this is used as the background color.
Default: rgba(255,255,255,0.5)

- -chart.text.size
- The size of the text (in points).
Default: 10

- -chart.text.angle
- The angle of the horizontal text labels (at the bottom of the chart). Previously this could be 0, 45 or 90, but now (31st July 2010) this can be any angle.
Default: 0 (Horizontal)

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - -chart.hmargin
- The size of the horizontal margin. This is on the inside of the axes.
Default: 0

- -

Colors

-chart.colors
- An array of line colors.
Default: ['#f00', '#0f0', '', '#00f', '#f0f', '#ff0', '#0ff'] 9

- -chart.colors.alternate
- Set this to true if you want your line color(s) to be alternated. See note
Default: false

- -chart.fillstyle
- A single color or an array of colors that filled line charts will use.

Important: This used to be a string, and still can be, but can now also be an array.
Default: null

- - - chart.filled
- Whether the area under the line is filled or not. This looks best when there is no horizontal - margin.

- - Note: When showing multiple lines the values are additive by default. This means that if you have two lines - they will be "stacked" on top of each other. If this is not the desired behaviour then you can set the option - below to false.
- Default: false

- - - chart.filled.accumulative
- When showing multiple filled lines the values are by default accumulative (ie added to each other). If this is not the - desired behaviour, then you can set this property to false to have them drawn "non-accumulatively".

- - Note: If you use fully opaque colors in conjunction with this option set to false it's feasible that you - might not see one or more of the lines, or parts of the line. If you want to see all of the lines you should - leave this option set to its default true setting. You can see an example of this setting - here. - -

- - Default: true

- - -chart.filled.range
- This is useful for indicating a range. Exactly two datasets are required, with the space between them filled. This is useful for indicating a range.The line chart examples page demonstrates this in action.
Default: false

- -

Shadow

-chart.shadow
- If true a shadow will be applied to the line.
Default: false

- -chart.shadow.color
- The color of the shadow. As well as a single color definition, this can also be an array of colors. This means that if you have multiple lines on your chart, each can have a different shadow color.
Default: rgba(0,0,0,0.5)

- -chart.shadow.offsetx
- The X offset in pixels for the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset in pixels for the shadow.
Default: 3

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- -

Interactive features

-chart.tooltips
- These are tooltips for the line(s). It should be an array of tooltips. If you have multiple lines, simply pass multiple arrays to the Set() method.
Default: [] (An empty array)

- -chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
Default: fade

- - -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- -chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- - - chart.tooltips.highlight
- If you don't want/need the chart to be highlighted and thus avoid redrawing, (eg When - combining charts), then set this to false.
- Default: true

- - - chart.tooltips.hotspot.xonly
- Set this to true if you want the tooltips to be triggered by the mouse X position only.
- Default: false

- - -chart.crosshairs
- If true, you will get a crosshair centering on the current mouse position.
Default: false

- -chart.crosshairs.linewidth
- This controls the linewidth of the crosshairs.
Default: 1

- -chart.crosshairs.color
- The color of the crosshairs.
Default: #333

- - - chart.crosshairs.hlines
- This determines whether the horizontal crosshair is shown.
- Default: true

- - - chart.crosshairs.vlines
- This determines whether the vertical crosshair is shown.
- Default: true

- - - -chart.contextmenu
- An array of context menu items. Unlike the bar chart, you CAN have context menus at the same time as tooltips. More information on context menus is here.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only color allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -chart.adjustable
- Defaulting to false, this determines whether your chart will be adjustable (click a point and drag it).
Default: false

- -

Titles

- - -chart.title
- The title of the chart.
Default: none

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -chart.title.color
- The color of the title.
Default: black

- - - chart.title.xaxis
- This allows to specify a title for the X axis.
- Default: none

- - - chart.title.xaxis.size
- This allows you to specify a size for the X axis title.
- Default: null

- - - chart.title.xaxis.font
- This allows to specify a font for the X axis title.
- Default: null

- - - chart.title.xaxis.bold
- This controls whether the X axis title is bold or not.
- Default: true

- - - chart.title.yaxis
- This allows to specify a title for the Y axis.
- Default: none

- - - chart.title.yaxis.size
- This allows you to specify a size for the Y axis title.
- Default: null

- - - chart.title.yaxis.font
- This allows to specify a font for the Y axis title.
- Default: null

- - - chart.title.yaxis.bold
- This controls whether the Y axis title is bold or not.
- Default: true

- - -chart.title.xaxis.pos
- This is multiplied with the gutter to give the position of the X axis title.
Default: 0.25

- -chart.title.yaxis.pos
- This is multiplied with the gutter to give the position of the Y axis title.
Default: 0.25

- - - chart.title.yaxis.align
- Instead of using the option above you can instead use this option, specifying left or right.
- Default: left

- - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right. By default the key is positioned on the opposite side to the Y axis.
- Default: null

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - chart.key.interactive
- The Line chart supports interactive keys - so you can click on a key element and OfficeExcel will highlight - the appropriate line, whilst fading the rest of the chart.
- Default: false

- - -

Scale

- - - chart.scale.formatter
- To allow thoroughly custom formats of numbers in the scale, you can use this option to - specify a function that is used by OfficeExcel to format numbers. This function should - handle ALL of the formatting. Eg:

-
-function myFormatter(obj, num)
-{
-    return num + 'F'; // An example of formatting
-}
-myGraph.Set('chart.scale.formatter', myFormatter);
-
-
Default: null

- - -chart.units.post
- The units (if any) that the Y axis is measured in (gets appended to the number)
Default: none

- -chart.units.pre
- The units (if any) that the Y axis is measured in (gets preppended to the number)
Default: none

- -chart.scale.decimals
- Determines the precision of the numbers used as the scale.
Default: 0

- -chart.scale.point
- The character used as the decimal point.
Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
Default: ,

- - - chart.scale.round
- Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.
- Default: null

- - -chart.ymin
- The optional minimum Y scale value. If not specified then it will be zero.
Default: null

- - - chart.ymax
- The optional maximum Y scale value. If not specified then it will be calculated.
- Default: null (It's calculated)

- - chart.outofbounds
- Normally, out-of-bounds values are not drawn. By setting this to true you can change this behaviour.
- Default: false

- - -

Axis properties

- - - chart.numxticks
- The number of X tickmarks.
- Default: null (linked to number of datapoints)

- - -chart.ticksize
- The size of the tick marks. This only affects certain styles of tickmarks.
Default: 3

- -chart.tickdirection
- Whether the ticks are above or below the axis.
Default: -1 (-1 is below, 1 is above)

- -chart.axis.color
- The color of the axes.
Default: black

- -chart.xaxispos
- The position of the X axis. It can be either bottom or center.
Default: bottom

- - - chart.yaxispos
- Specifies the Y axis position. Can be left or right.
Default: left

- - - chart.noaxes
- Whether the axes are drawn
- Default: false (the axes ARE drawn)

- - - chart.axesontop
- A minor option, this sets the axes to be redrawn after the chart has been drawn. This is only useful in a certain - set of circumstances - the chart is filled and the line width is small.
- Default: false

- - - chart.noendxtick
- When you're combining the Bar and Line charts, you may want to use this property to stop the end X tick from - being drawn.
- Default: false (the end tick IS drawn)

- - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - -

Miscellaneous

- - - chart.tickmarks
- What kind of tickmarks to use on the chart. This can be:
  • dot
  • circle
  • filledcircle
  • endcircle
  • square
  • endsquare
  • filledsquare
  • filledendsquare
  • tick
  • halftick
  • endtick
  • cross
  • borderedcircle (same as dot)
  • arrow
  • filledarrow

Note that "arrow" and "filledarrow" look better with a thinner (1 or 2) linewidth setting. Also note that now (10th August 2010) as well as a string, this can be an array of different tickmark styles.
- Default: null

- - - chart.tickmarks.dot.color
- This is the color of the BORDER around the dot/borderedcircle style tickmarks.
- Default: #fff

- - - chart.tickmarks.linewidth
- This is the width of the line used when drawing the tickmarks. By default this is the same as the chart.linewidth setting.
- Default: null

- - - chart.stepped
- Draws the line as stepped. Useful for showing stock performance for example.
- Default: false

- - - chart.linewidth
- The width of the line (ie the actual line on the chart). Note: If your line is stepped and filled, and you don't want a trailing line indicating the last value, you can set this to zero.
- Default: 1

- - - chart.variant
- At present this can only be 3d, and gives a small 3D effect.
- Default: null

- - - chart.animation.unfold.x
- This is used by the Unfold Line chart animation and dictates whether the X value is unfolded.
- Default: false

- - - chart.animation.unfold.y
- This is used by the Unfold Line chart animation and dictates whether the Y value is unfolded.
- Default: true

- - - chart.animation.unfold.initial
- This property can be used to set the initial factor for the Unfold animation. Setting this to a value less than one - will cause the line to expand outwards, whilst a value greater than one will cause the line to contract towards - the correct values.
- Default: 2 - -

- - chart.chromefix
- Since version 6, Chrome has had a shadow bug, which becomes apparent when you use shadow blurring. This value defaults - to true and means that OfficeExcel will skirt the bug with a small fix.
Default: true

- - - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - - chart.curvy
- If you prefer - this draws a more cuvy chart. Because of the curves these charts are not exact, and the inaccuracy increases - with a greater curve factor (controlled by the next property). Being new, this property may not work with all the line chart features - and should be used with caution. -
Default: false

- - - chart.curvy.factor
- This controls the severity of the curves when the above property is used. It can be a decimal from 0 (not curvy at all) - to 0.5 (quite curvy). -
Default: 0.25

- - -

- - - -

 

-

Methods

- - - obj.getPoint(event)

- This method makes it easier to get hold of which point on the Line chart has been hovered over. It returns an array of: - -
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The numerical index of the point. This corresponds (for example) to the tooltips array, and the coordinates array
  • -
- - An example usage is: - -
-<canvas id="cvs" width="600" height="300">[No canvas support]</canvas>
-
-<script src="OfficeExcel.common.core.js"></script>
-<script src="OfficeExcel.line.js"></script>
-
-<script>
-    myGraph = new OfficeExcel.Line('cvs', [10,4,2,4,1]);
-    myGraph.Set('chart.hmargin', 10);
-    myGraph.Set('chart.tickmarks', 'endcircle');
-    myGraph.Set('chart.labels', ['Fred','John','Kev','Lou','Pete']);
-    myGraph.Draw();
-
-
-    OfficeExcel.Register(myGraph);
-    
-    myGraph.canvas.onmousemove = function (e)
-    {
-        OfficeExcel.FixEventObject(e);
-
-        var canvas  = e.target;
-        var context = canvas.getContext('2d');
-        var obj     = e.target.__object__;
-      
-        // This is the method which simplifies getting coordinates
-        var point = obj.getPoint(e);
-      
-      
-        if (point) {
-            
-            canvas.style.cursor = 'pointer';
-            
-            // Is this the same tooltip as the one (if any) that's already being shown
-            if (OfficeExcel.Registry.Get('chart.tooltip') && OfficeExcel.Registry.Get('chart.tooltip').__index__ == point[3]) {
-                return;
-            }
-
-            // Start afresh
-            OfficeExcel.Redraw();
-
-            // Show the tooltip
-            OfficeExcel.Tooltip(canvas, obj.Get('chart.labels')[point[3]], e.pageX, e.pageY, point[3]);
-
-            // Highlight the point
-            context.strokeStyle = 'gray';
-            context.fillStyle = 'white';
-            context.beginPath();
-            context.moveTo(point[1], point[2]);
-            context.arc(point[1], point[2], 2, 0, 6.26, 0);
-            context.stroke();
-            context.fill();
-            
-            return;
-        }
-        
-        canvas.style.cursor = 'default';
-    }
-    
-    window.onclick = function ()
-    {
-        OfficeExcel.Redraw();
-    }
-</script>
-
- - - - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - - -

 

-

Combining the Line and Bar charts

- -

- You can combine the Bar and Line charts with a bit of magic. It's actually quite easy to do. Find out more here. - In the same vein, you can have Y axes on both the left and right. -

- - - -

 

-

Alternative colors

- -

- Instead of a string stipulating the color, each element of the colors array can itself be a two element array, - stipulating the up color, and the down color. To use alternating colors you must also stipulate the alternate property: -

- - -
-myLine.Set('chart.colors.alternate', true);
-myLine.Set('chart.colors', ['red', ['blue', 'yellow'], 'green]);
-
- - -

 

-

Accumulative filled Line charts

- -

- The default behaviour of filled Line charts is to "stack" the lines on top of each other. This allows them all - to be totally visible, no matter what (unless a line has a zero value of course). If this is not desired, then there is an - option (chart.filled.accumulative - true/false) to change this behaviour so the lines are plotted "as-is". - Keep in mind that if you set this option to false (ie the Lines are plotted as-is) it may be wiser to use - semi-transparent colors or some parts of data sets (or even entire data sets) may be hidden by others. There's a - comparison of the different modes here. -

- - -

 

-

Custom tickmarks

-

- If none of the available tickmark styles are suitable, you can instead specify a function object that draws the tickmark, - enabling you to draw the tickmark yourself. For example: -

- -
-<script>
-    line.Set('chart.tickmarks', myTick);
-
-    /**
-    * The function that is called once per tickmark, to draw it
-    * 
-    * @param object obj   The chart object
-    * @param array  data  The entire line data
-    * @param number value The individual points value
-    * @param number index The current index, in the data array
-    * @param number x     The X coordinate
-    * @param number y     The Y coordinate
-    * @param string color The color of the line
-    * @param number prevX The previous X coordinate
-    * @param number prevY The previous Y coordinate
-    */
-    function myTick (obj, data, value, index, x, y, color, prevX, prevY)
-    {
-        // Draw your custom tick here
-    }
-</script>
-
- - -

 

-

The coords2 array

- - An alternative method of indexing the chart coordinates is available in obj.coords2. With this array, all of the first - lines coordinates are available in obj.coords2[0], the second lines coordinates in obj.coords2[1] and so on. - -

The __index2__ property on tooltips

-

- When showing tooltips, one property of the tooltip is .__index2__. This is the index that pertains to the - individual dataset. In a function called from the ontooltip event you can access it like this: -

- -
-function myFunc (obj)
-{
-    var idx = OfficeExcel.Registry.Get('chart.tooltip').__index2__;
-}
-OfficeExcel.AddCustomEventListener(myObject, 'ontooltip', myFunc  );
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/line_filled.html b/OfficeWeb/sdk/Common/Charts/docs/line_filled.html deleted file mode 100644 index 300bde6e..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/line_filled.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - The Line chart setting chart.filled.accumulative - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The Line chart setting: chart.filled.accumulative

- - - -

- This page shows how the setting chart.filled.accumulative affects your charts. The chart on the left has - it enabled (the default), so the lines in effect sit on top of each other. The chart on the right has the setting - set to false so the points are drawn "as-is", ie not accumulatively. The first chart could be more useful if you wish - to see accumulated values, whereas the chart on the right might be better if you want to see individual values. -

- -

- Keep in mind that if you choose to use a non-accumulative chart the colors may be better as semi-transparent ones, - otherwise parts or all of some lines may get hidden by others. -

- -
- [No canvas support] - [No canvas support] - -

- « Back to the Line chart documentation -

-
- \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/meter.html b/OfficeWeb/sdk/Common/Charts/docs/meter.html deleted file mode 100644 index a4da0ae9..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/meter.html +++ /dev/null @@ -1,454 +0,0 @@ - - - - - - Documentation about the Meter chart - - - - - - - - - - - - - - - - - - - - - - - - - - -

Meter charts documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // Create the Meter chart. The arguments are the canvas ID, the minimum, the maximum and the value.
-        var meter = new OfficeExcel.Meter('myCanvas', 50, 100, 60);
-        
-        // Configure the Meter chart to appear as you want.
-        meter.Set('chart.contextmenu', [
-                                        ['Show palette', OfficeExcel.Showpalette],
-                                        ['Clear annotations', function () {OfficeExcel.Clear(meter.canvas); meter.Draw();}],
-                                        null,
-                                        ['Cancel', function () {}]
-                                       ]);
-        meter.Set('chart.annotatable', true);
-        meter.Set('chart.label.position', 'inside');
-        meter.Set('chart.title', 'A sample measurement');
-        meter.Set('chart.title.vpos', 0.5);
-        meter.Set('chart.units.post', 'k');
-        meter.Set('chart.red.start', 0);
-        meter.Set('chart.red.end', 3);
-        meter.Set('chart.yellow.start', 3);
-        meter.Set('chart.yellow.end', 6);
-        meter.Set('chart.green.start', 6);
-        meter.Set('chart.green.end', 10);
-        
-        // Now call the .Draw() method to draw the chart.
-        meter.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the Meter apears. You can set them by using the Set() method. Eg: -

- -

- myMeter.Set('name', 'value'); -

- - - - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

- - - chart.strokestyle
- The color of the bits separating the segements. By setting this to white you can get a separation effect.
- Default: null

- - - chart.border.color
- The color of the outline (including tickmarks).
- Default: black

- - -chart.green.start
- The value that the green area should begin at.
Default: 35% of the maximum value

- -chart.green.end
- The value that the green area should end at.
Default: The maximum value

- -chart.green.color
- The color of the green area, (can be any color)..
Default: #207A20

- -chart.yellow.start
- The value that the yellow area should begin at.
Default: 10% of the maximum value

- -chart.yellow.end
- The value that the yellow area should end at.
Default: 35% of the maximum value

- -chart.green.color
- The color of the yellow area, (can be any color)..
Default: #D0AC41

- -chart.red.start
- The value that the red area should begin at.
Default: The minimum value

- -chart.red.end
- The value that the red area should end at.
Default: 10% of the maximum value

- -chart.red.color
- The color of the red area, (can be any color)..
Default: #9E1E1E

- - -

Labels and text

- - chart.text.color
- The color of the labels.
- Default: black

- - -chart.text.size
- The size (in points) of the labels.
Default: 10

- - - chart.text.font
- The font used to render the text.
- Default: Verdana

- - - chart.value.text
- This option controls whether the value of the Meter is shown in text.
- Default: false

- - - chart.value.text.decimals
- The amount of decimals shown in the text label.
- Default: 0

- - - chart.value.text.units.pre
- The units (before the value) shown in the text label.
- Default: None (an empty string)

- - - chart.value.text.units.post
- The units (after the value) shown in the text label.
- Default: None (an empty string)

- - - chart.labels
- Whether the labels are shown or not.
- Default: true

- - -

Titles

- - -chart.title
- The title of the chart, if any.
Default: null

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- - -

Scale

- - - chart.units.pre
- The units that the labels are measured in. This string is displayed BEFORE the actual number, allowing you to - specify values such as "$50".
- Default: none

- - - chart.units.post
- The units that the labels are measured in. This string is displayed AFTER the actual number, allowing you to specify - values such as "50ms".
- Default: none

- - - chart.scale.decimals
- The number of decimal places to display for the values.
- Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - -

Interactive features

-chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively).
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only color allowed for annotations.
Default: black

- -

Shadow

-chart.shadow
- If true a shadow will be applied to the meter.
Default: false

- -chart.shadow.color
- The color of the shadow.
Default: rgba(0,0,0,0.5)

- -chart.shadow.offsetx
- The X offset in pixels for the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset in pixels for the shadow.
Default: 3

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - -

Miscellaneous

- - chart.linewidth
- The width of the outline of the Meter.
Default: 2

- - - chart.linewidth.segments
- The linewidth of the lines separating the segments.
- Default: 1

- - - chart.tickmarks.small.num
- This controls the number of small tickmarks.
- Default: 100

- - - chart.tickmarks.big.num
- This controls the number of large tickmarks.
- Default: 10

- - - chart.tickmarks.small.color
- This sets the color of the small tickmarks.
- Default: #bbb

- - - chart.tickmarks.big.color
- This sets the color of the large tickmarks.
- Default: black

- - - chart.border
- Whether the outline is drawn.
- Default: true

- - - chart.segment.radius.start
- Instead of the segments going from the center point outwards, you can use this to specify a start point of the - coloured segments.
- Default: null

- - - chart.needle.radius
- This can be used to stipulate the radius of the pointer.
- Default: null

- - - chart.needle.linewidth
- This can be used to specify the linewidth used when drawing the needle.
- Default: null

- - - chart.needle.tail
- If true the needle will have a small tail.
- Default: false

- - -

- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/misc.html b/OfficeWeb/sdk/Common/Charts/docs/misc.html deleted file mode 100644 index 87ce6e34..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/misc.html +++ /dev/null @@ -1,852 +0,0 @@ - - - - - - Miscellaneous documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Miscellaneous documentation

- - - - - - -
 
 
-

Canvas fallback content and visually impaired users

- -

- When using the canvas element you should be aware of the accessibility of your charts, for example where vision limited users are - concerned. Screen readers, for example, may not be able to convert a chart into something that is reasonable, so you should - consider - doing this yourself, possibly using the canvas fallback content (ie the content in between the canvas tags). A possible example - would be to put a table of data inside the canvas tag that the chart on the canvas represents. Doing this goes a long way - towards making the data available to everyone. You might also wish to consider using the full canvas - zoom or the resizing feature to enable people to enlarge the chart. -

- - -
 
 
-

Upper and lower limits for horizontal bars

- -

- If you don't wish to specify an upper or lower limit for horizontal bars, and you just want them to extend to the upper or lower - limits of the chart, whatever they may be, you can specify null for the value determining how far they extend. For cases where - the X axis is in the middle and you're specifying a negative start value, or you want the bar to extend all the way to the - bottom, you can simply specify an arbitrary length (eg -999999). Eg: -

- -
myBar.Set('chart.background.hbars', [[0, null, 'green'], [0,-999999,'red']]);
- - -
 
 
-

Setting the canvas width and height

- -

- To set the canvas width and height you must use the HTML width/height attributes and NOT CSS. If you do use CSS, the canvas - will be scaled, and not enlarged, to fit the new width/height. Eg: -

- -
<canvas id="myCanvas" width="200" height="100">[No canvas support]<canvas>
- -

- Note: - When you resize the canvas using CSS, not only will it be scaled (not enlarged), but it will also NOT be cleared. You can - see this effect on the animation page with the jQuery animation example. -

- - -
 
 
-

The canvas coordinate system

-

- The canvas coordinate system starts in the top left of the canvas (at [0,0] - the X value increasing as you go right - and the Y value as you go down), much like the CSS coordinates for the entire page. The - gutter goes around the canvas (ie top/bottom/left/right - where the labels and titles are placed), and the actual chart - sits in the middle. -

- - -
 
 
-

OfficeExcel and older browsers

- -

- Older versions of browsers are supported (assuming they have canvas support), however, if they don't support the canvas text - or shadow APIs these will naturally be unavailable. The charts will still be drawn, though without shadows or text. -

- - -
 
 
-

OfficeExcel and Microsoft Internet Explorer

- -

- You can now use OfficeExcel with Internet Explorer 8 in conjunction with ExCanvas, (which brings a degree of <canvas> support to MSIE). - Bear in mind though that shadows are not available and thus are simulated. Microsoft Internet Explorer 9 has native <canvas> - support. -

- - -
 
 
- -

Debugging tips

- -

- If you're having a hard time debugging your chart, try these: -

- -
    -
  • Ensure you have only one chart on the page
  • -
  • Make sure you have disabled your web browsers cache (the Firefox Web Developer toolbar can do this for Firefox)
  • -
  • - Try using Firebug for Firefox or the - Webkit developer tools for Google Chrome (CTRL_SHIFT+J) and Safari (CTRL+ALT+C). There's a - video about using the Chrome developer tools - here. These are very useful - tools that make development much easier. -
  • -
  • Reduce the page to the bare minimum.
  • -
  • Start with a very basic chart and build it up slowly.
  • -
- - - - -
 
 
-

Inspecting an OfficeExcel chart

- -

- To help when debugging your OfficeExcel charts and canvas elements, you can use you browsers built in debugging tools. - An example is the WebKit developer tools which are available in Google Chrome and Apple Safari. There is a screenshot - of these tools (in docked mode) here. To view these - tools in Google Chrome press CTRL+SHIFT+J. Inspect the canvas, and then the associated object can be found via - the __object__ property. -

- - - -
 
 
-

Double click context menus

- -

- Windows Opera, Windows Safari, Mac Safari and Mac Firefox all attach the context menu to the double click event (left mouse button), - not the right, in order to make it more reliable. -

- - - -
 
 
-

Adding your own event handlers

- -

- Because each OfficeExcel object exposes the canvas element (the same as what you get from document.getElementById()), - you can use normal procedures to add your own event handlers. Eg If you wanted to add your own onclick handler you could - do this: -

- -
-<script>
-    var myBar = new OfficeExcel.Bar('cvs', [7,4,2,6,3,4,8]);
-    myBar.Draw();
-
-    myBar.canvas.onclick = function ()
-    {
-    }
-</script>
-
-

- But what if, for example, you're using an OfficeExcel feature which - uses the event handler that you need? In this case you can use the standard DOM2 method addEventListener(). This will add - your new event handler without replacing any existing one (ie the one installed by OfficeExcel). For example: -

- -
-<script>
-    var myBar = new OfficeExcel.Bar('cvs', [7,4,2,6,3,4,8]);
-    myBar.Draw();
-
-    function myFunc ()
-    {
-    }
-
-    myBar.canvas.addEventListener('click', myFunc, false)
-</script>
-
- - - -
 
 
-

Carriage returns and newlines in labels

- -

- You can put carriage returns in your labels by using the string \r\n. This means your labels will span multiple lines. - Like so: -

- -
myBar.Set('chart.labels', 'John\r\n(Winner!)', ...)
- - - -
 
 
-

Character set issues

- -

- If you're seeing strange, unrecognised characters in your text labels or titles, you may need to specify the correct - character set that the browser should use. In PHP you can do this with the header() function (which, as the - name suggests, sends a HTTP header): -

- -
<?php
-    header("Content-Type: text/html; charset=ISO-8859-1");
-?>
- -

- If you use Apache, you could use the header directive, though this may be overridden by other directives, - eg AddDefaultCharset. -

- - -
 
 
-

How to identify an OfficeExcel object

- -

- Because identity can sometimes be a tricky affair, there are a few OfficeExcel properties that you can use to check whether an object - is an OfficeExcel object: -

- -
    -
  • obj.isOfficeExcel - This is a boolean that you can use to clearly identify an OfficeExcel object.
  • -
  • obj.type - This identifies the type of an OfficeExcel object. It is a string which contains a one word description of the objects chart type, eg bar/line/pie.
  • -
- - - - - - - - - - -
 
 
-

Static Y axis

- - -
- - -
- -
-
- - - - A static Y axis is useful if you have a wide chart but limited space. Whilst not part of the OfficeExcel libraries itself, it can be - achieved with a little HTML, like the chart shown. The HTML and the script to achieve this is shown below. - It involves placing an extra canvas above the chart with the Y axis drawn on it. This canvas doesn't - move when the main canvas scrolls left and right. - -

- - Note: Because Firefox doesn't support the event.offsetX and event.offsetY properties and they have to be simulated, - scrolling in conjunction with tooltips in this case and this browser doesn't work. - -

-<div style="position: relative; float: right; margin-right: 10px; margin-top: 10px">
-    <!-- The width here is set further down the page in script -->
-    <canvas id="axes" width="0" height="175" style="position: absolute; top: 0; left: 0; z-index: 100"></canvas>
-    <div style="width: 600px; overflow: auto">
-        <canvas id="cvs" width="1000" height="200"></canvas>
-    </div>
-</div>
-
-<script>
-    window.onload = function ()
-    {
-        /**
-        * This is the script that draws the chart
-        */
-        line = new OfficeExcel.Line('cvs', [3,15,22,26,28,24,22,25,23,24,26,23,24,25,27,28,29,26,23,22,24,21,24,25]);
-        line.Set('chart.noaxes', true); // We draw the Y axis ourselves
-        line.Set('chart.gutter.top', 25);
-        line.Set('chart.gutter.bottom', 35);
-        line.Set('chart.gutter.left', 50);
-        line.Set('chart.hmargin', 5);
-        line.Set('chart.linewidth', 3);
-        line.Set('chart.shadow', true);
-        line.Set('chart.shadow.offsetx', 0);
-        line.Set('chart.shadow.offsety', 0);
-        line.Set('chart.shadow.blur', 15);
-        line.Set('chart.shadow.color', 'red');
-        line.Set('chart.tooltips', [
-                                    'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December',
-                                    'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'
-                                   ]);
-        line.Set('chart.labels', [
-                                  'Jan 09','\r\nFeb 09', 'Mar 09','\r\nApr 09','May 09','\r\nJun 09','Jul 09','\r\nAug 09','Sep 09','\r\nOct 09','Nov 09', '\r\nDec 09',
-                                  'Jan 10', '\r\nFeb 10', 'Mar 10','\r\nApr 10','May 10','\r\nJun 10','Jul 10','\r\nAug 10','Sep 10','\r\nOct 10','Nov 10', '\r\nDec 10'
-                                 ]);
-        line.Draw();
-
-
-
-        /**
-        * And this is the script that draws the left axis, on the other canvas (that doesn't move)
-        */
-        ca = document.getElementById("axes")
-        co = ca.getContext('2d');
-
-
-        /**
-        * This sets the smaller canvas to cover the whole of the charts left gutter
-        */
-        ca.width = line.Get('chart.gutter.left') + 1;
-
-
-        OfficeExcel.Clear(ca, 'white');
-
-
-        /**
-        * This draws the static axis
-        */
-        co.beginPath();
-            co.moveTo(line.Get('chart.gutter.left'), line.Get('chart.gutter.top'));
-            co.lineTo(line.Get('chart.gutter.left'), line.canvas.height - line.Get('chart.gutter.bottom'));
-
-            // Draw the tickmarks on the axis
-            var numTicks = 10;
-            for (var i=0; i<=numTicks; ++i) {
-                co.moveTo(line.Get('chart.gutter.left'), line.Get('chart.gutter.top') + (((ca.height - line.Get('chart.gutter.top') - line.Get('chart.gutter.bottom')) / numTicks) * i));
-                co.lineTo(line.Get('chart.gutter.left') - 3, line.Get('chart.gutter.top') + (((ca.height - line.Get('chart.gutter.top') - line.Get('chart.gutter.bottom')) / numTicks) * i));
-            }
-
-        co.stroke();
-
-
-
-        /**
-        * This draws the labels for the static axis
-        */
-        co.beginPath();
-            var color = 'black';
-            var size = 10;
-
-            for (var i=0; i<5; ++i) {
-                co.fillStyle = color;
-                co.textAlign = 'right';
-                co.textBaseline = 'middle';
-                var h = line.canvas.height - line.Get('chart.gutter.top') - line.Get('chart.gutter.bottom');
-
-                OfficeExcel.Text(co,
-                            'Verdana',
-                            size,
-                            line.Get('chart.gutter.left') - 4,
-                            line.Get('chart.gutter.top') + (h * (i/5)),
-                            line.max - (line.max * (i/5)));
-            }
-        co.fill();
-    }
-</script>
-
- - - -
-
- - - - - -
 
 
-

Reducing white space

- - - - - -

- New in June 2011 is the ability to set the gutters independently. This removes the necessity to translate - and adjust the coordinates to get more space and is far more straight-forward. The new properties are: - -

    -
  • chart.gutter.left
  • -
  • chart.gutter.right
  • -
  • chart.gutter.top
  • -
  • chart.gutter.bottom
  • -
- - You can read more about this change here. -

- - -
- - - -
 
 
-

In-graph labels

- -

- As well as an array of strings, like this: -

- -
obj.Set('chart.labels.ingraph', ['First label','Second label']);
- -

- The string can also be an array, consisting of color and placement information, like this: -

- -
obj.Set('chart.labels.ingraph', ['First label',['Second label', 'red', 'yellow', -1, 50] ]);
- - -

- You can read more information about this here. -

- - -
 
 
-

Shorthand for in-graph labels

-

- Instead of providing a full array of null elements for in-graph labels which may get a little unwieldy, - you can instead specify an integer that specifies how many elements to skip. Like this: -

- -
line.Set('chart.labels.ingraph', [6, 'July', 3, 'November']);
- -
-
- - -
 
 
-

DOM2 Event handlers

-

- All the charts have now (1st October 2010) been converted to DOM2 for tooltips event registration. This allows them to - be far more co-operative if you're using events. Tooltips will not be compatible with MSIE8 - the charts will still be - drawn, albeit without tooltips. -

- - - -
- - - - - -
 
 
-

Data types

-

- If your data values aren't the correct type - ie numbers - it can cause problems. Pay particular attention to this - when you're getting your data from data sources which may be classed as strings, such as JSON or AJAX requests. -

- - - - - -
 
 
-

Creating your own chart type

-

- If you wish to create your own chart type, there is a skeleton file - here that you can use as a starting point. - This file contains the bare bones of an OfficeExcel object, such as the .Get() and .Set() methods, as well as examples - of common properties. -

- - - -
 
 
-

World map

-

- There is no function in OfficeExcel to do mapping, either of the World or a smaller region. If this is what you want then you - may be interested in this HTML5 canvas based mapping system: - http://joncom.be/code/excanvas-world-map/ -

- - - -
 
 
-

Adding text to your charts

-

- You can add arbitrary text to your charts by using the OfficeExcel API. For example you could use this code after the call to .Draw(): -

- -
-function DrawSubTitle (obj)
-{
-    var context = obj.context;
-    
-    context.beginPath();
-        context.fillStyle = 'gray';
-        OfficeExcel.Text(context,
-                    'Verdana',
-                    7,
-                    obj.canvas.width / 2,
-                    obj.Get('chart.gutter.top') - 6,
-                    'The subtitle',
-                    'center',
-                    'center');
-    context.fill();
-}
-
-DrawSubTitle(myLine);
-
- - -
 
 
-

Crosshairs

- -
- [No canvas support] - -
- - - -

- Some charts type have the ability to use crosshairs. The supported charts are: -

- -
    -
  • Bar charts
  • -
  • Line charts
  • -
  • Scatter charts
  • -
  • Waterfall charts
  • -
- -

- There are various options that control the crosshairs, though because some apply to the readout, they are only applicable to - the Scatter chart. The crosshairs can be customised by stipulating the linewidth, the color and whether only the horizontal, - vertical or both lines are shown. -

- -

Crosshairs and the Scatter chart

-

- Because the X axis is scaled, the Scatter chart has the extra ability of having a coordinates readout when - the crosshairs are in use. This is shown in the example above. The appropriate properties are: -

- -
    -
  • obj.canvas.__crosshairs_x__
  • -
  • obj.canvas.__crosshairs_y__
  • -
  • obj.canvas.__crosshairs_labels__ (this is the coordinates readout)
  • -
- -

- In the above example the coordinates are put in the text input by using the custom event oncrosshairs. This is as - follows: -

- -
-function myFunc (obj)
-{
-    var x = obj.canvas.__crosshairs_x__;
-    var y = obj.canvas.__crosshairs_y__;
-
-    document.getElementById("crosshairs.out").value = x + ',' + y;
-}
-OfficeExcel.AddCustomEventListener(scatter, 'oncrosshairs', myFunc);
-
- - -
 
 
-

Logarithmic scale

- - [No canvas support] - - -

- It's possible to get a logarithmic scale in OfficeExcel by using chart.scale.specific. The actual scale that is used - when drawing the chart is 0-5 (for example), and the scale that is displayed is 10/100/1000/10,000/100,000. This - example is shown. -

- - -
- - - -
 
 
-

Known issues

- -

- There's a few known issues documented here -

- - -

- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/msie.html b/OfficeWeb/sdk/Common/Charts/docs/msie.html deleted file mode 100644 index 9985f6a3..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/msie.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - Documentation about Microsoft Internet Explorer support - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- -

Microsoft Internet Explorer (MSIE) support

- - - -

- -

- Microsoft Internet Explorer 9 - -

- Starting from preview 3, Internet Explorer 9 has support for canvas, including the text and shadow APIs. It also - benefits from hardware acceleration, and quick rendering times. -

-
- -
- -
- Microsoft Internet Explorer 7 and 8 - -

- Microsoft Internet Explorer 7 and 8 are supported using ExCanvas. This is an extra Javascript file that - is sent to the user if it's required. Nothing is required to be configured on the server. -

-
- -
- - [No canvas support] - - - - - - -

Introduction

- -

- As of December 2009 OfficeExcel now works partially with Internet Explorer without Google Chrome Frame. - Charts are rendered as VML. You are still recommended to use - Google Chrome Frame to get the best results. - The interactive features are unlikely to work correctly. -

- -

- Thanks go to everyone involved with the ExCanvas project for providing the ExCanvas library. -

- - -

Getting hold of ExCanvas

- -

- Google ExCanvas is distributed with OfficeExcel in the "excanvas" directory. There is a minified gzip compressed version, along - with the original. -

- - -

Caveats

- -
    -
  • The interactive features of OfficeExcel are unlikely to work correctly with MSIE.
  • -
  • Shadows are now available (on some chart types), albeit without blurring.
  • -
  • You must reference the Javascript libraries in the documents <head>.
  • -
  • You must use the window.onload event to create your chart.
  • -
  • In the window.onload function, you must use the var keyword when declaring the variable.
  • -
  • If your page is large, there may be a slight pause before the window.onload event fires and thus creates the chart.
  • -
  • Changing the font that text is shown in is not available.
  • -
- - -

Google Chrome Frame

-

- Instead of ExCanvas you can also use Google Chrome Frame. This basically turns Internet Explorer into Google Chrome, and fully - supports OfficeExcel. Since it involves a plugin installation, this is a better option if you can fully influence the users PC. If you - can fully influence the users PC however, a better option might be to simply use one of the browsers with native - support. -

- - -
- - - -

Using a dynamically created canvas

-

- If you're creating your canvas dynamically there is an extra step that you must perform to allow it to be recognised by - ExCanvas: -

- -
-var canvas = document.createElement('CANVAS');
-    canvas.id = 'cvs';
-    canvas.width = 600;
-    canvas.height = 250;
-    canvas.style.border = '1px dashed black';
-document.body.appendChild(canvas);
-
-G_vmlCanvasManager.initElement(canvas);
-
- - - -
-
-
- - - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/odo.html b/OfficeWeb/sdk/Common/Charts/docs/odo.html deleted file mode 100644 index ff8c3cd7..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/odo.html +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - Documentation about Odometer charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Odometer charts documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // Create the Odometer. The arguments are: the canvas ID, the minimum, the maximum and the value.
-        var odo = new OfficeExcel.Odometer('myOdo', 0, 100, 18);
-
-        // Configure the Odometer to appear as you want.
-        odo.Set('chart.green.max', 75);
-        odo.Set('chart.red.min', 90);
-        odo.Set('chart.label.area', 50);
-        odo.Set('chart.needle.thickness', 2);
-
-        // Now call the .Draw() method to draw the chart.
-        odo.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - - - -

 

-

Properties

- -

- You can use these properties to control how the Odometer apears. You can set these properties using the Set() method. -

- - - - - -

Chart configuration

- - - chart.value.text
- Controls whether the value is indicated as a text label in the center of the dial.
Default: false

- - - chart.value.units.pre
- The pre units used on the textual value.
Default: nothing (An empty string)

- - - chart.value.units.post
- The post units used on the textual value.
Default: nothing (An empty string)

- - - chart.border
- This controls the gray border of the Odometer.
Default: false

- - - chart.tickmarks
- This controls whether tickmarks are shown. If you're animating the Odometer you'll need to turn this off.
- Default: true

- - - chart.tickmarks.highlighted
- This controls whether the tickmarks are highlighted in red/yellow/green.
- Default: false

- - - chart.zerostart
- If you want the top value on your chart to be zero instead of the maximum value, set this to true.
Default: false

- - -

Margins

- - - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

- - - chart.border.color1
- This is the first color used in the gradient of the outer border of the chart (if enabled).
- Default: #BEBCB0

- - - chart.border.color2
- This is the second/middle color used in the gradient of the outer border of the chart (if enabled).
- Default: #F0EFEA

- - - chart.border.color3
- This is the third color used in the gradient of the outer border of the chart (if enabled).
- Default: #BEBCB0

- - - chart.green.max
- This is the point at which the green area ends.
- Default: 75% of the maximum value

- - - chart.red.min
- This is the point at which the red area starts. The yellow area is between the green and red areas.
- Default: 90% of the maximum value

- - - chart.green.color
- This option has two roles. If chart.green.solid is true, this is the actual color, whereas if - chart.green.solid is false (the default), it's used as one of the gradient colors.
- Default: green

- - - chart.yellow.color
- This option has two roles. If chart.yellow.solid is true, this is the actual color, whereas if - chart.yellow.solid is false (the default), it's used as one of the gradient colors.
- Default: yellow

- - - chart.red.color
- This option has two roles. If chart.red.solid is true, this is the actual color, whereas if - chart.red.solid is false (the default), it's used as one of the gradient colors.
- Default: red

- - - chart.green.solid
- If true then the associated chart.green.color option is used as the actual color, not part of a gradient
- Default: false

- - - chart.yellow.solid
- If true then the associated chart.yellow.color option is used as the actual color, not part of a gradient
- Default: false

- - - chart.red.solid
- If true then the associated chart.red.color option is used as the actual color, not part of a gradient
- Default: false

- - -

Labels and text

-chart.labels
- Instead of using computed numbers, which uses the maximum value, you can specify the Odometer to use textual labels instead, with this option.
Default: null

- -chart.label.area
- The width of the area that labels are put in.
Default: 35

- -chart.text.size
- The size of the text (in points).
Default: 10

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -

Needle

-chart.needle.width
- How thick the needle is.
Default: 2

- -chart.needle.color
- The color that is applied to the needle.
Default: black

- -chart.needle.head
- This controls whether the arrow head on the end of the needle is displayed.
Default: true

- - - chart.needle.type
- This determines which type of needle is used. It can be pointer or triangle.
- Default: pointer

- - - chart.needle.triangle.border
- This controls the colour of the border for the pointer. If you don't want it you could set it to be transparent - - rgba(0,0,0,0).
- Default: #aaa

- - - chart.needle.extra
- With this you can specify a number of extra pointers that will be drawn on the Odometer. An example would be a meter that's used to show upload and download data. An example use:
odo.Set('chart.needle.extra', [[16, 'red'], [24, 'blue']]);

- Default: [] (An empty array)

- - -

Title

- - -chart.title
- The title text.
Default: no title set

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -

Shadow

-chart.shadow.inner
- Whether a drop shadow is applied to the inner circle of the Odometer
Default: false

- -chart.shadow.outer
- Whether a drop shadow is applied to the whole Odometer.
Default: false

- -

Interactive features

-chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- -

Scale

- - - chart.units.pre
- The units that the value is measured in. This string is displayed BEFORE the actual number, allowing you to specify values such as "$50" and is only used if chart.value.text is true.
Default: none

- - - chart.units.post
- The units that the value is measured in. This string is displayed AFTER the actual number, allowing you to specify values such as "50ms" and is only used if chart.value.text is true.
Default: none

- - -chart.scale.decimals
- The number of decimal places to display for the labels.
- Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/pie.html b/OfficeWeb/sdk/Common/Charts/docs/pie.html deleted file mode 100644 index 46887ae8..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/pie.html +++ /dev/null @@ -1,577 +0,0 @@ - - - - - - Documentation about Pie charts - - - - - - - - - - - - - - - - - - - - - - - - - - -

Pie charts documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // The data to be shown on the Pie chart
-        var data = [564,155,499,611,322];
-    
-        // Create the Pie chart. The arguments are the canvas ID and the data to be shown.
-        var pie = new OfficeExcel.Pie('myPie', data);
-
-        // Configure the chart to look as you want.
-        pie.Set('chart.labels', ['Abc', 'Def', 'Ghi', 'Jkl', 'Mno']);
-        pie.Set('chart.linewidth', 5);
-        pie.Set('chart.stroke', 'white');
-        
-        // Call the .Draw() chart to draw the Pie chart.
-        pie.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the pie chart looks. You can set them by using the Set() method. Eg: -

- -

- myPie.Set('name', 'value'); -

- - - - - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

-chart.colors
- Colors to be used for the pie segments.
Default: ['rgb(255,0,0)', '#ddd', 'rgb(0,255,0)', 'rgb(0,0,255)', 'rgb(255,255,0)', 'rgb(0,255,255)', 'red', 'pink', 'black', 'white']

- -chart.strokestyle
- The color of the seperating lines. By setting this to your background color, and setting the linewidth to approx. 5, it will make the pie chart look "exploded".
Default: #999

- -

Labels and text

-chart.text.size
- The size of the text (in points).
Default: 10

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -chart.labels
- An array of labels to be used for the chart.
Default: [] (an empty array)

- - - chart.labels.sticks
- Stipulates that sticks for the labels are shown.
- Default: false

- - - chart.labels.sticks.color
- Sets the color of the label sticks.
- Default: #aaa

- - - chart.labels.sticks.length
- Sets the length of the label sticks.
- Default: 7

- - -

Titles

- - -chart.title
- The title of the pie chart.
Default: none

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -

Shadows

-chart.shadow
- Whether a simple shadow effect is applied.
Default: false

- -chart.shadow.color
- The color of the shadow.
Default: rgba(0,0,0,0.5)

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- -chart.shadow.offsetx
- The X offset of the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the shadow.
Default: 3

- -

Interactive features

- - - chart.tooltips
- An array of tooltips, starting from the middle right (ie east) axis, and going clockwise sequentially.
- Default: [] (An empty array)

- - - chart.tooltips.event
- This can be onclick or onmousemove and determines which event is used for tooltips.
- Default: onclick

- - - chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
- Default: fade

- - - chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
- Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more - information on the tooltips documentation page
- Default: null

- - - -chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - chart.key.interactive
- This option enables the facility to click on the pie chart to highlight (explode only) the relevant segment.
- Default: false

- - - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - - - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - - -

Miscellaneous

-chart.align
- Whether to left, center or right align the pie chart.
Default: center

- -chart.linewidth
- By setting this to roughly 5, and setting the strokestyle to the same colour as your background colour,you will get a segment separation effect.
Default: 1

- - - chart.variant
- This can be either pie (the default) or donut. Setting this to donut is how you get a - donut chart.
- Default: pie

- - - chart.highlight.style
- Can be either explode, 2d or 3d and determines which style of segment highlighting is used in - conjunction with tooltips.
- Default: 3d

- - - chart.highlight.style.2d.fill
- When 2D highlighting for tooltips is used, this controls the color of the highlighting. The former name for this property was - chart.highlight.style.2d.color.
- Default: rgba(255,255,255,0.5)

- - - chart.highlight.style.2d.stroke
- When 2D highlighting for tooltips is used, this controls the stroke color of the highlighting.
- Default: rgba(255,255,255,0)

- - - chart.explode
- This can either be an array with the same number of elements as segments, or a single number, in which case every - segment will be exploded that amount. If it's an array then only those segments will be exploded - eg [0,5,0,0]
- Default: [] (an empty array)

- - - -

 

-
 
-

Methods

- - obj.getSegment(event)

- - obj.getSegment() makes it easy to determine which segment of the Pie chart was clicked on. It provides: - -
    -
  • Originating X coordinate
  • -
  • Originating Y coordinate
  • -
  • The radius of the segment
  • -
  • The starting angle (measured in radians)
  • -
  • The ending angle (measured in radians)
  • -
  • The zero-indexed segment number
  • -
- -
-<script>
-    OfficeExcel.Register(myGraph);
-    
-    myGraph.canvas.onclick = function (e)
-    {
-        OfficeExcel.FixEventObject(e);
-        OfficeExcel.Redraw();
-
-        var canvas  = e.target;
-        var context = canvas.getContext('2d');
-        var obj     = canvas.__object__;
-        var segment = obj.getSegment(e);
-        
-        if (segment) {
-            context.fillStyle = 'rgba(255,255,255,0.5)';
-            context.beginPath();            
-                context.moveTo(segment[0], segment[1]);
-                context.arc(segment[0], segment[1], segment[2], segment[3], segment[4], 0);
-            context.stroke();
-            context.fill();
-            
-            e.stopPropagation();
-        }
-    }
-    
-    window.onclick = function (e)
-    {
-        OfficeExcel.Redraw();
-    }
-</script>
-
- - - - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.Explode(index, size)

-

- The Explode() method allows you to programmatically trigger the exploding (ie the highlighting of) a particular segment. - The Explode() method is used like so: -

- -
-<script>
-    myObj = new OfficeExcel.Pie('cvs', [8,9,4,6]);
-    myObj.Draw();
-
-    myObj.Explode(index, size);
-</script>
-
- -

- The index argument is the zero-index segment to operate on (counting from the north axis). An the size is measured in pixels. -

- - Important Note - -

- This method was formerly a common object method, called OfficeExcel.getSegment(e), but has now (6th March 2011) been - moved to be part of the Pie chart object. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/png.html b/OfficeWeb/sdk/Common/Charts/docs/png.html deleted file mode 100644 index 26f98d94..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/png.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - How to retrieve a PNG of your chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Retrieving a PNG of your chart

- - - - - -
- PNG - [No canvas support] -
- - -

- OfficeExcel provides an easy way to get a PNG image of your chart. This allows you to - easily save the image locally to use in (for example) a document, spreadsheet or presentation. -

- -

- Originally, the function was designed to be used with a context menu, so it is located in the OfficeExcel.common.context.js. - Now though, you do not have to use the function with a context menu, and can instead pass in the canvas as the optional argument. There's an - example of its usage on the first Radar example. -

- -
- -

Include the context menu code:

-
<script src="../libraries/OfficeExcel.common.context.js" ></script>
- -

Add the context menu:

-
-myGraph.Set('chart.contextmenu', [
-                                  ['Get PNG', OfficeExcel.showPNG],
-                                  null,
-                                  ['Cancel', function () {}]
-                                 ]);
- -

Using the function without a context menu

- -

- If you want to use the function with a piece of text (or an image) as the "link", optionally positioned over the canvas, you can pass - the canvas into the function as an argument, along with the event object. -

- -
-<!-- This CSS positions the link over the top right of the canvas -->
-<style>
-    span#png_link {
-        position: absolute;
-        left: 450px;
-        top: 30px;
-        border: 1px black solid;
-        padding: 1px;
-        background-color: #eee;
-        cursor: pointer;
-    }
-</style>
-
-<div style="position: relative">
-    <span id="png_link" onclick="OfficeExcel.showPNG(myCanvas, event)">Get PNG</span>
-    <canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-</div>
-
- -

Retrieving just the PNG URL

-

- If you just want to get the PNG image URL - this can be done with the standard canvas function.toDataUrl(): -

- -
var myUrl = myCanvas.toDataURL();
- -

- This gives you a data: URL which represents the canvas. Like this. - Because the URLs are very long there are some things that you should be aware of: -

- -
    -
  • Google Chrome shows the image, but doesn't show the URL in the address bar
  • -
  • MSIE9 can show the image using the context menu API (top) method, but not the stand-alone image.
  • -
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/pseudo-standard-events.html b/OfficeWeb/sdk/Common/Charts/docs/pseudo-standard-events.html deleted file mode 100644 index 2f21b4db..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/pseudo-standard-events.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - The pseudo-standard events available in OfficeExcel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Pseudo-standard events

- - - - - [No canvas support] - - - -

- Normally, if you apply an onclick listener to the canvas it will apply to the whole canvas. OfficeExcel provides a way - to add event listeners to your chart so that the event listeners apply only to the appropriate areas. In the case of the Bar - chart on the right this means the actual bars themselves. You can see the effect here when you click on a bar - you get an - alert. And when you click on a non-bar area - nothing happens. -

- -

- You can use the properties: - -

    -
  • chart.events.click
  • -
  • chart.events.mousemove
  • -
- - To add your listeners to the chart. - The listener is simply a function that is called when the event fires. Only one function can be specified, so you need to - check the index to see if the bar is the one you want. -

- -
- -
-<script>
-    /**
-    * This is the function that is run when the event fires.
-    */
-    function myClick (e, bar)
-    {
-        var obj = bar[0];
-        var x   = bar[1];
-        var y   = bar[2];
-        var w   = bar[3];
-        var h   = bar[4];
-        var idx = bar[5];
-        
-        alert('The onclick listener just fired...!');
-    }
-
-    var myBar = new OfficeExcel.Bar('cvs', [4,5,8,4,6,8,5]);
-    myBar.Set('chart.labels', ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']);
-    myBar.Set('chart.colors', ['blue']);
-    myBar.Set('chart.events.mousemove', function (e, bar) {e.target.style.cursor = 'pointer';});
-    myBar.Set('chart.events.click', myClick); // The myClick function is the one above
-    OfficeExcel.Effects.Bar.Wave2(myBar);
-</script>
-
- -

Note

-

- If you want the mouse pointer to change to the hand when you move the mouse over a bar you need to do - as shown below in the chart.events.mousemove event with the CSS cursor property. When you move the - mouse away from the bar the pointer will be restored to its previous state. Like this: -

- -
-obj.Set('chart.events.mousemove', function (e, bar) {e.target.style.cursor = 'pointer';});
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/radar.html b/OfficeWeb/sdk/Common/Charts/docs/radar.html deleted file mode 100644 index 22ec0471..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/radar.html +++ /dev/null @@ -1,528 +0,0 @@ - - - - - - Documentation about Radar charts - - - - - - - - - - - - - - - - - - - - - - - - - - -

Radar charts documentation

- -
- This chart used to be called the Tradar chart (T standing for "Traditional" - there used to be two Radar charts in OfficeExcel), - however now (July 2011), it has been renamed to the "Radar" chart to make it easier for people to identify. If you use it - you will need to update your code accordingly. Keep in mind that if you use the .type property - this has been updated too - (to radar). -
- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // The data to be represented on the Radar chart.
-        var data = [3, 3, 41, 37, 16];
-
-        // Create the Radar chart. The arguments are the canvas ID and the data to be shown on the chart.
-        var radar = new OfficeExcel.Radar('myRadar', data);
-        
-        // If you want to show multiple data sets, then you give them like this:
-        // var radar = new OfficeExcel.Radar('myRadar', [3,5,6,8], [4,5,2,6]);
-
-        // Configure the Radar chart to look as you wish.
-        radar.Set('chart.background.circles', true);
-        radar.Set('chart.color', 'rgba(255,0,0,0.5)');
-        radar.Set('chart.circle', 20);
-        radar.Set('chart.circle.fill', 'rgba(200,255,200,0.5)');
-        radar.Set('chart.labels', ['Safari (3%)', 'Other (3%)', 'MSIE 7 (41%)', 'MSIE 6 (37%)', 'Firefox (16%)']);
-        radar.Set('chart.key', ['Market share', 'A made up figure']);
-        
-        // Now call the .Draw() method to draw the chart.
-        radar.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - - -

 

-

Properties

- -

- You can use these properties to control how the chart apears. You can set these properties by using the Set() method. Eg: -

- -

- myRadar.Set('color', 'rgba(255,0,0,0.5)'); -

- - - - - - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Colors

- - chart.colors
- The colors of the radar chart(s).
- Default: red

- - - chart.colors.alpha
- If set (a number between 0 nd 1), this will be used as the alpha value of the colors of the chart.
- Default: null

- - -

Title

- - - chart.title
- The title, if any, of the chart.
- Default: Not set

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -

Labels and text

-chart.labels
- The labels to use for the chart.
Default: An empty array

- -chart.labels.axes
- This controls the axes that show the scale labels. Each letter stands for the appropriate axis (North, South, East and West)
Default: nsew

- -chart.labels.offsetx
- The X pixel offset for the labels.
Default: 10

- -chart.labels.offsety
- The Y pixel offset for the labels.
Default: 10

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size of the text (in points).
Default: 10

- - -

Scale

- chart.ymax
- The optional maximum Y scale value. If not specified then it will be calculated.
Default: null (It's calculated)

- - - chart.scale.round
- Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.
- Default: null

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.scale.decimals
- This stipulates how many decimal places there are. -
Default: 0

- - -

Miscellaneous

- - - chart.radius
- This allows you to override the default calculated radius and set your own. -
Default: null (it's calculated from the canvas width/height)

- - - chart.highlight.stroke
- If you use tooltips, this controls the color of the highlight stroke. -
Default: gray

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: white

- - - chart.background.circles
- Whether to draw the grey background circles.
- Default: true

- - - chart.linewidth
- The width of the outline.
- Default: 1

- - - chart.circle
- What value to draw a circle at. Defaults to zero (off). You could use this to represent a threshold of some sort.
- Default: 0

- - - chart.circle.fill
- What color to fill the circle with.
- Default: red

- - - chart.circle.stroke
- What color to stroke (ie The outline) the circle with.
- Default: black

- - - chart.accumulative
- If set to true this will produce a "stacked" Radar chart. Obviously you must have two or more data sets, and also - the data sets must have the same number of data points.
- Default: false

- - - - - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - - - - - - -

Interactive features

- - - chart.contextmenu
- An array of context menu items. More information on context menus is here.
- Default: [] (An empty array)

- - - chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- - - chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
- Default: black

- - - chart.tooltips
- A numerically indexed array of tooltips that are shown when a hotspot is hovered over. These can contain HTML.
- Default: An empty array

- - - chart.tooltips.effect
- The visual effect used when showing tooltips. Can be either fade or expand.
- Default: fade

- - - chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
- Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
- Default: null

- - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- -

- - - - -

 

-

Methods

- - - obj.getPoint(event)

-

- This function returns the details of any focused point on the chart. It returns: -

- -
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The index of the applicable dataset (if you only yse one dataset this will always be 0)
  • -
  • The index of the point within the dataset
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/release-notes-january-2012.html b/OfficeWeb/sdk/Common/Charts/docs/release-notes-january-2012.html deleted file mode 100644 index 18944734..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/release-notes-january-2012.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - The January 2012 release notes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

January 2012 release notes

- - -

- The January 2012 release of OfficeExcel is now available and has these changes: -

- -
    -
  • - Relevant charts libraries now have two new properties: -
      -
    • chart.events.click
    • -
    • chart.events.mousemove
    • -
    - These new properties make it much easier to add your own event listening functions. You can read more about these - new properties here. -
  • -
  • The Radar chart origin is now the "north" axis instead of the "east" axis.
  • -
  • The Radar chart now supports a stacked variant when all datasets have the same number of data points.
  • -
  • - Implemented the Wave2 animation, which uses the requestAnimationFrame() function. In some browsers the - difference is quite subtle. -
  • -
  • - In some charts, there is now a getValue() method which can be used in event listener functions - to get the appropriate value (if any) when the chart is clicked for example. This affects the Bar, - HBar, HProgress, Line, Scatter, Thermometer and VProgress charts. -
  • -
  • - Added a getBar() method to the Thermometer which can be used inside standard event listener functions - (not the OfficeExcel ones) to determine if the bar area was clicked (or mouseover'ed etc). -
  • -
  • Added Rose chart Explode/Implode animation effects.
  • -
  • Added Radar chart chart.radius property.
  • -
  • - Radar chart labels have been altered so that their placement is now not linked to the number of points on the chart. - They also now go around the edge of the chart. -
  • -
  • A Grow effect has been added for the Gantt chart.
  • -
  • The Gantt chart now has a chart.tooltips.event property.
  • -
  • Added the Gantt chart property chart.labels.align
  • -
  • The Gantt chart background grid autofit option now defaults to true (ie enabled).
  • -
  • - Added new background image properties: -
      -
    • chart.background.image.stretch
    • -
    • chart.background.image.x
    • -
    • chart.background.image.y
    • -
    • chart.background.image.align
    • -
    - These are relevant to the Bar, Line and Scatter charts. -
  • -
  • Added new HOWTO guides for certain common tasks.
  • -
  • Added a new Conceal effect - the opposite of the Reveal effect.
  • -
  • - Added new properties to the Gauge chart: -
      -
    • chart.centerpin.radius
    • -
    • chart.tickmarks.small
    • -
    • chart.tickmarks.big
    • -
    • chart.title.top
    • -
    • chart.title.top.font
    • -
    • chart.title.top.size
    • -
    • chart.title.top.color
    • -
    • chart.title.top.bold
    • -
    • chart.title.bottom
    • -
    • chart.title.bottom.font
    • -
    • chart.title.bottom.size
    • -
    • chart.title.bottom.color
    • -
    • chart.title.bottom.bold
    • -
    -
  • -
  • - The two scale properties chart.scale.point and chart.scale.thousand have been synchronised across the majority of - chart libraries. -
  • -
- -

- Download OfficeExcel here: OfficeExcel_2012-01-14-stable.zip -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/release-notes-november-2011.html b/OfficeWeb/sdk/Common/Charts/docs/release-notes-november-2011.html deleted file mode 100644 index db8ad14f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/release-notes-november-2011.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - The November 2011 release notes - - - - - - - - - - - - - - - - - - - - - - - - - - - -

November 2011 release notes

- - - -
-
- Important: - The stable OfficeExcel has been updated (30th November 2011) because of a bug with the Pie chart. The bug affects you if you use - tooltips and the - effect is set to explode. You can either update the OfficeExcel.pie.js file to the one in the current archive, - or simply change the effect (to 3d or 2d). If you downloaded OfficeExcel after this date you won't be affected by this. -
-
- -

- The November 2011 release of OfficeExcel is now available and has these changes: -

- -
    -
  • Added new animation effects: Bar chart Wave, Pie chart Wave, HProgress bar Grow, VProgress bar Grow
  • -
  • The Fuel chart Grow effect has been rewritten - it now "Grows" from the last position instead of from zero all the time
  • -
  • - The way the Donut chart is drawn has been altered so that the center can be transparent and shadows are drawn correctly. - There's an example here: http://www.OfficeExcel.net/examples/donut.html -
  • -
  • - Added four new properties to the Gauge chart for controlling color: chart.border.inner, chart.border.outer, - chart.centerpin.color and chart.needle.color. -
  • -
  • IE7 is now supported with ExCanvas.
  • -
  • - IMPORTANT: The Pie chart .getSegment(e) method now returns angles measured in radians, not in degrees. - Roughly, 1 radian is equal to 57.29 degrees (or 180/Math.PI ). -
  • -
  • - IMPORTANT: The Rose chart .getSegment(e) method now returns angles measured in radians, not in degrees. - Roughly, 1 radian is equal to 57.29 degrees (or 180/Math.PI ). -
  • -
  • There's now an example of the Pie chart RoundRobin and Implode effect on the front page of the website
  • -
  • - The key has been separated out into it's own file. This saves roughly 30k if you don't use it. If you do use it - you will need to include this file in your page
  • -
  • - The chart libraries have a new technique that avoids you getting blurry lines that appear to be thicker than a - single pixel. This affects roughly 12 of the libraries. -
  • -
  • Added the chart.zoom.thumbnail.fixed option.
  • -
  • The Rose chart adjusting has been removed.
  • -
  • Added an example of financial data represented using the Scatter chart: http://www.OfficeExcel.net/docs/financial.html
  • -
  • Added an example of getting data from an XML file on the server: http://www.OfficeExcel.net/docs/xml-data.html
  • -
  • - The slide in and slideout have each had the argument used to stipulate the direction renamed: -
      -
    • OfficeExcel.Effects.jQuery.Slide.In(obj, {'from': 'right'});
    • -
    • OfficeExcel.Effects.jQuery.Slide.Out(obj, {'to': left'});
    • -
    -
  • -
  • Added more punctuation characters to the LED chart.
  • -
  • - The Scatter chart option chart.boxplot.width is now a SCALE value, not a PIXEL value. Therefore, if your chart.xmax - value is 28 (for four weeks) 1 week would be represented by a value of 7, whereas before that would simply be 7 - pixels. -
  • -
- -

- Download OfficeExcel here: OfficeExcel_2011-10-26-stable.zip -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/release-notes-october-2011.html b/OfficeWeb/sdk/Common/Charts/docs/release-notes-october-2011.html deleted file mode 100644 index cd99a30f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/release-notes-october-2011.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - The October 2011 release notes - - - - - - - - - - - - - - - - - - - - - - - - - - - -

October 2011 release notes

- - - -

- The October 2011 release of OfficeExcel is now available and has new animation effects and other improvements including: -

- -
    -
  • You can now have multiple events per "person" with the Gantt chart.
  • -
  • Added the Gauge chart, which is another variation of a meter.
  • -
  • Added the Line chart Trace animation
  • -
  • Added more testimonials - if you want to submit one there is a link on the OfficeExcel front page: http://www.OfficeExcel.net.
  • -
  • Added easing to the HBar Grow effect. The effect is quite subtle.
  • -
  • Added the Pie chart RoundRobin effect.
  • -
  • Added Scatter chart boxplot tooltips.
  • -
  • - Added the Pie chart Implode effect. Combined with the Roundrobin effect looks nice: -
    -myPie = new OfficeExcel.Pie('cvs', [4,3,5,6]);
    -myPie.Set('chart.colors', ['red','green','blue','pink']);
    -
    -OfficeExcel.Effects.Pie.Implode(myPie);
    -OfficeExcel.Effects.Pie.RoundRobin(myPie);
    -
    -
  • -
  • - The Rose chart Grow effect now slowly increases the start angle of the segments as well as the radius. -
  • -
  • Changed the Odo Grow effect so it grows from the last reading (if any).
  • -
  • Added the Gauge chart Grow effect. Like the Odo Grow effect it animates from the last reading (if any) instead of zero all the time.
  • -
  • Added the Line chart FoldToCenter. Combined with the UnfoldFromCenter effect could easily make a chart switching effect.
  • -
  • Added an .Explode() method to the Pie chart for programmatically exploding segments. There's an example of its use on the Pie chart example page: http://www.OfficeExcel.net/examples/pie.html
  • -
  • Added Grow effect to the Radar chart.
  • -
  • Added Grow effect to the Waterfall chart.
  • -
  • Added Pie chart chart.key.interactive
  • -
  • Tweaked the Meter chart Grow animation - test your charts when upgrading if you use the Grow animation.
  • -
  • Multiple filled line charts now work with the Trace animation.
  • -
- -
    -
  • Note: The Pie chart chart.segments array is being removed (November or December) - use the myObj.angles array instead
  • -
  • Note: The default positioning for titles has changed - you may need to adjust your positioning.
  • -
- -

- Download OfficeExcel here: OfficeExcel_2011-10-27-stable.zip -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/release-notes.html b/OfficeWeb/sdk/Common/Charts/docs/release-notes.html deleted file mode 100644 index 593f22b6..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/release-notes.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - OfficeExcel release notes - - - - - - - - - - - - - - - - - - - - - - - - - - -

OfficeExcel release notes

- - - -

- Listed below are the current and previous release notes. -

- -

- 2012 -

- - - -

- 2011 -

- - -

- Past release notes are not available. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/released.txt b/OfficeWeb/sdk/Common/Charts/docs/released.txt deleted file mode 100644 index 295bc3e8..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/released.txt +++ /dev/null @@ -1,2897 +0,0 @@ -This version released on: Fri, 13 Jan 2012 14:45:16 +0000 - -A OfficeExcel -A OfficeExcel/tests.old -A OfficeExcel/tests.old/sofax.html -A OfficeExcel/tests.old/pie_rr.html -A OfficeExcel/tests.old/setConfig.html -A OfficeExcel/tests.old/nu.html -A OfficeExcel/tests.old/annotate_persist.html -A OfficeExcel/tests.old/scatter.crosshairs.html -A OfficeExcel/tests.old/context.html -A OfficeExcel/tests.old/interactive_key.html -A OfficeExcel/tests.old/kwong.html -A OfficeExcel/tests.old/scatter_labels.html -A OfficeExcel/tests.old/sofax.js -A OfficeExcel/tests.old/getPoint.html -A OfficeExcel/tests.old/frame.html -A OfficeExcel/tests.old/thomas.html -A OfficeExcel/tests.old/pueba.html -A OfficeExcel/tests.old/noaxes.html -A OfficeExcel/tests.old/set.config.html -A OfficeExcel/tests.old/above.bar.html -A OfficeExcel/tests.old/test4.html -A OfficeExcel/tests.old/scatter_crosshairs.html -A OfficeExcel/tests.old/browsers.html -A OfficeExcel/tests.old/scatter_animated.html -A OfficeExcel/tests.old/line_wave.html -A OfficeExcel/tests.old/pie_bug.html -A OfficeExcel/tests.old/null.html -A OfficeExcel/tests.old/scatter_line.html -A OfficeExcel/tests.old/ymin.html -A OfficeExcel/tests.old/hbar_scale.html -A OfficeExcel/tests.old/css-2D-transforms.html -A OfficeExcel/tests.old/gauge.html -A OfficeExcel/tests.old/noxaxis.html -A OfficeExcel/tests.old/ingraph.labels.html -A OfficeExcel/tests.old/bar_strokecolor.html -A OfficeExcel/tests.old/scatter_invert.html -A OfficeExcel/tests.old/line_curvy_trace.html -A OfficeExcel/tests.old/combo.html -A OfficeExcel/tests.old/ie-events.html -A OfficeExcel/tests.old/snap.html -A OfficeExcel/tests.old/colors.html -A OfficeExcel/tests.old/smallrunedex.html -A OfficeExcel/tests.old/formatter.html -A OfficeExcel/tests.old/events.html -A OfficeExcel/tests.old/line_empty.html -A OfficeExcel/tests.old/log-scale.html -A OfficeExcel/tests.old/canvas_support.html -A OfficeExcel/tests.old/kwong2.html -A OfficeExcel/tests.old/line-anim.html -A OfficeExcel/tests.old/.svg -A OfficeExcel/tests.old/.svg/OfficeExcel.svg.bar.js -A OfficeExcel/tests.old/.svg/svg.bar.html -A OfficeExcel/tests.old/.svg/OfficeExcel.svg.common.core.js -A OfficeExcel/tests.old/ramon.html -A OfficeExcel/tests.old/post_data.html -A OfficeExcel/tests.old/bronson.html -A OfficeExcel/tests.old/anim.html -A OfficeExcel/tests.old/hbar.sequential.html -A OfficeExcel/tests.old/clear.html -A OfficeExcel/tests.old/grafica.html -A OfficeExcel/tests.old/meter_resize.html -A OfficeExcel/tests.old/pie_snap.html -A OfficeExcel/tests.old/thursday.html -A OfficeExcel/tests.old/pointers.html -A OfficeExcel/tests.old/test6.html -A OfficeExcel/tests.old/stacked_rose.html -A OfficeExcel/tests.old/smoothing.html -A OfficeExcel/tests.old/null.values.html -A OfficeExcel/tests.old/scale2.html -A OfficeExcel/tests.old/sparklines.html -A OfficeExcel/tests.old/combine.html -A OfficeExcel/tests.old/___.html -A OfficeExcel/tests.old/getGutterSuggest.html -A OfficeExcel/tests.old/xscale.html -A OfficeExcel/tests.old/line_chart_null_values.html -A OfficeExcel/tests.old/chrome6-shadow.html -A OfficeExcel/tests.old/gantt-xmin.html -A OfficeExcel/tests.old/animated_line.html -A OfficeExcel/tests.old/trends.html -A OfficeExcel/tests.old/3D-effect.html -A OfficeExcel/tests.old/switch.html -A OfficeExcel/tests.old/out-of-bounds.html -A OfficeExcel/tests.old/test3.html -A OfficeExcel/tests.old/mfrancis.html -A OfficeExcel/tests.old/line_filled.html -A OfficeExcel/tests.old/highlight.html -A OfficeExcel/tests.old/clear-function.html -A OfficeExcel/tests.old/animated_rose.html -A OfficeExcel/tests.old/logo-image.html -A OfficeExcel/tests.old/rotated-text.html -A OfficeExcel/tests.old/switcheroo.html -A OfficeExcel/tests.old/lots-of-points.html -A OfficeExcel/tests.old/ralphoid.html -A OfficeExcel/tests.old/getSegment.html -A OfficeExcel/tests.old/data.html -A OfficeExcel/tests.old/boxplots.html -A OfficeExcel/tests.old/tooltips.html -A OfficeExcel/tests.old/aa.html -A OfficeExcel/tests.old/ajax.html -A OfficeExcel/tests.old/line.html -A OfficeExcel/tests.old/tickmarks.html -A OfficeExcel/tests.old/pie_grow2.html -A OfficeExcel/tests.old/n.html -A OfficeExcel/tests.old/msie.html -A OfficeExcel/tests.old/gutters.html -A OfficeExcel/tests.old/values.html -A OfficeExcel/tests.old/animate2.html -A OfficeExcel/tests.old/resize.html -A OfficeExcel/tests.old/scatter_vbars.html -A OfficeExcel/tests.old/missing.html -A OfficeExcel/tests.old/offsetx.html -A OfficeExcel/tests.old/animated_meter.html -A OfficeExcel/tests.old/line_percentage.html -A OfficeExcel/tests.old/zoom.html -A OfficeExcel/tests.old/box.html -A OfficeExcel/tests.old/key.html -A OfficeExcel/tests.old/dyn.html -A OfficeExcel/tests.old/pie_wave.html -A OfficeExcel/tests.old/border-radius.html -A OfficeExcel/tests.old/ie8-line.html -A OfficeExcel/tests.old/scatter_yvalues.html -A OfficeExcel/tests.old/crosshairs.html -A OfficeExcel/tests.old/rose.ymin.html -A OfficeExcel/tests.old/scale.html -A OfficeExcel/tests.old/multiple_needles.html -A OfficeExcel/tests.old/sequential_colors.html -A OfficeExcel/tests.old/nearest_half.html -A OfficeExcel/tests.old/chrome-text.html -A OfficeExcel/tests.old/rscatter.ymin.html -A OfficeExcel/tests.old/line-reveal.html -A OfficeExcel/tests.old/getBar.html -A OfficeExcel/tests.old/scatter.html -A OfficeExcel/tests.old/video.html -A OfficeExcel/tests.old/shadows.html -A OfficeExcel/tests.old/curvy.html -A OfficeExcel/tests.old/scale3.html -A OfficeExcel/tests.old/meter_ranges.html -A OfficeExcel/www.phpguru.org_4849532196 -A OfficeExcel/www.phpguru.org_4849532196/CanvasText -A OfficeExcel/www.phpguru.org_4849532196/CanvasText/CanvasText.js -A OfficeExcel/www.phpguru.org_4849532196/CanvasText/index.php -A OfficeExcel/www.phpguru.org_4849532196/Log -A OfficeExcel/www.phpguru.org_4849532196/Log/test.phps -A OfficeExcel/www.phpguru.org_4849532196/Log/Log.phps -A OfficeExcel/www.phpguru.org_4849532196/OfficeExcel -A OfficeExcel/www.phpguru.org_4849532196/OfficeExcel/index.php -A OfficeExcel/www.phpguru.org_4849532196/DB -A OfficeExcel/www.phpguru.org_4849532196/DB/pear_db_replacement.zip -A OfficeExcel/www.phpguru.org_4849532196/Console_Menu -A OfficeExcel/www.phpguru.org_4849532196/Console_Menu/test.phps -A OfficeExcel/www.phpguru.org_4849532196/Console_Menu/Menu.phps -A OfficeExcel/www.phpguru.org_4849532196/FileIterator -A OfficeExcel/www.phpguru.org_4849532196/FileIterator/FileIterator.phps -A OfficeExcel/www.phpguru.org_4849532196/header.html -A OfficeExcel/www.phpguru.org_4849532196/TableEditor -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor.zip -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor_de.phps -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor_Pear-DB.phps -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor.php -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/ChangeLog.txt -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor.phps -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/release.sh -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/.TableEditor_new.php -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor_de.php -A OfficeExcel/www.phpguru.org_4849532196/TableEditor/TableEditor_Pear-DB.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart/bak/LineChart.js -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart/bak/index.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart/bak/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart/bak/base.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_linechart/index.php -A OfficeExcel/www.phpguru.org_4849532196/js_sleep -A OfficeExcel/www.phpguru.org_4849532196/js_sleep/example.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/RGrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/RGrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-09-02/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/datagrid.zip -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/Datagrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/Datagrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/php-datagrid.zip -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-08/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/RGrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/RGrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2010-03-10/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/RGrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/RGrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-19/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/RGrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/RGrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-06-26/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/Datagrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/link.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/Datagrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2008-08-17/common.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/RGrid.zip -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/RGrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/RGrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-05-01/header.png -A OfficeExcel/www.phpguru.org_4849532196/RGrid/.htaccess -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12 -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/datagrid.zip -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/release -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example7.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example8.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example4.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/docs -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/Datagrid.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example5.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example6.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example7.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example8.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example9.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example2.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example3.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example.phps -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example4.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/Datagrid.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/php-datagrid.zip -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example5.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example6.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example7.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example7.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example8.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example8.css -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/example9.php -A OfficeExcel/www.phpguru.org_4849532196/RGrid/2009-04-12/header.png -A OfficeExcel/www.phpguru.org_4849532196/LineReader -A OfficeExcel/www.phpguru.org_4849532196/LineReader/LineReader.php -A OfficeExcel/www.phpguru.org_4849532196/LineReader/example.php -A OfficeExcel/www.phpguru.org_4849532196/LineReader/LineReader.phps -A OfficeExcel/www.phpguru.org_4849532196/LineReader/example.phps -A OfficeExcel/www.phpguru.org_4849532196/search.replace -A OfficeExcel/www.phpguru.org_4849532196/search.replace/search.replace.zip -A OfficeExcel/www.phpguru.org_4849532196/phpSQLiteAdmin -A OfficeExcel/www.phpguru.org_4849532196/phpSQLiteAdmin/phpSQLiteAdmin.2004-03-07.zip -A OfficeExcel/www.phpguru.org_4849532196/smtp -A OfficeExcel/www.phpguru.org_4849532196/smtp/smtp-1.0.5.zip -A OfficeExcel/www.phpguru.org_4849532196/smtp/index.html -A OfficeExcel/www.phpguru.org_4849532196/mailb -A OfficeExcel/www.phpguru.org_4849532196/mailb/mailb.phps -A OfficeExcel/www.phpguru.org_4849532196/zoom -A OfficeExcel/www.phpguru.org_4849532196/zoom/Zoom.js -A OfficeExcel/www.phpguru.org_4849532196/zoom/zoom.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_xy -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_xy/_index.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_xy/index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_CanvasTag -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_CanvasTag/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_CanvasTag/index.php -A OfficeExcel/www.phpguru.org_4849532196/Tree -A OfficeExcel/www.phpguru.org_4849532196/Tree/Tree-1.0.3.tgz -A OfficeExcel/www.phpguru.org_4849532196/Tree/docs -A OfficeExcel/www.phpguru.org_4849532196/Tree/docs/Tree.html -A OfficeExcel/www.phpguru.org_4849532196/Tree/docs/Tree.doc -A OfficeExcel/www.phpguru.org_4849532196/Tree/Tree-2.0.0.tgz -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/AutoComplete.zip -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/AutoComplete.html -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/versions.txt -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/AutoComplete.css -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/AutoComplete.old.js -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/release.sh -A OfficeExcel/www.phpguru.org_4849532196/AutoComplete/AutoComplete.js -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_dualbar -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_dualbar/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_dualbar/bak/distribution.js -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_dualbar/bak/index.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_dualbar/bak/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_dualbar/index.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2 -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/RFC822.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.1.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.2.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.3.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.4.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/background.gif -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.5.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/API.txt -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/mimePart.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/htmlMimeMail.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/RFC822.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.zip -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/smtp.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.html -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.1.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.2.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/mimePart.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/changelog.txt -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/htmlMimeMail.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.4.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.5.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/example.txt -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail-2.5.2/smtp.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5 -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/RFC822.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/example.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/background.gif -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/mimePart.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/release.sh -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/htmlMimeMail5.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/docs.html -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/example.zip -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/RFC822.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/smtp.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/LICENSE.txt -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/example2.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/mimePart.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/example.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/htmlMimeMail5.zip -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/smtp.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/index.html -A OfficeExcel/www.phpguru.org_4849532196/Rmail/.htmlMimeMail5/htmlMimeMail5.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/RFC822.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/background.gif -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example2.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example3.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/mimePart.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/release.sh -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/Rmail.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/docs.html -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example.zip -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/RFC822.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/smtp.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/LICENSE.txt -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example2.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example3.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/example.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/mimePart.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/Rmail.zip -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/namedFileAttachment.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/Rmail_Patch.diff.txt -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/smtp.php -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/index.html -A OfficeExcel/www.phpguru.org_4849532196/Rmail/Rmail for PHP/Rmail.phps -A OfficeExcel/www.phpguru.org_4849532196/Rmail/_index.html -A OfficeExcel/www.phpguru.org_4849532196/registry -A OfficeExcel/www.phpguru.org_4849532196/registry/Registry.phps -A OfficeExcel/www.phpguru.org_4849532196/registry/example.php -A OfficeExcel/www.phpguru.org_4849532196/registry/example.phps -A OfficeExcel/www.phpguru.org_4849532196/registry/.htaccess -A OfficeExcel/www.phpguru.org_4849532196/registry/Registry.php -A OfficeExcel/www.phpguru.org_4849532196/PorterStemmer -A OfficeExcel/www.phpguru.org_4849532196/PorterStemmer/PorterStemmer.phps -A OfficeExcel/www.phpguru.org_4849532196/formproc3 -A OfficeExcel/www.phpguru.org_4849532196/formproc3/formproc-3.0.4.tar.gz -A OfficeExcel/www.phpguru.org_4849532196/formproc3/formproc-3.0.5.tar.gz -A OfficeExcel/www.phpguru.org_4849532196/toncarta.cache -A OfficeExcel/www.phpguru.org_4849532196/toncarta.cache/toncarta.cache.zip -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_ScatteOfficeExcel -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_ScatteOfficeExcel/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_ScatteOfficeExcel/bak/ScatteOfficeExcel.js -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_ScatteOfficeExcel/bak/index.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_ScatteOfficeExcel/bak/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_ScatteOfficeExcel/index.php -A OfficeExcel/www.phpguru.org_4849532196/datagrid -A OfficeExcel/www.phpguru.org_4849532196/pcntl -A OfficeExcel/www.phpguru.org_4849532196/pcntl/example.php -A OfficeExcel/www.phpguru.org_4849532196/pcntl/Forked_Child.php -A OfficeExcel/www.phpguru.org_4849532196/pcntl/example.phps -A OfficeExcel/www.phpguru.org_4849532196/pcntl/Forked_Child.phps -A OfficeExcel/www.phpguru.org_4849532196/pcntl/Forked_Parent.php -A OfficeExcel/www.phpguru.org_4849532196/pcntl/Forked_Parent.phps -A OfficeExcel/www.phpguru.org_4849532196/Timer -A OfficeExcel/www.phpguru.org_4849532196/Timer/Console -A OfficeExcel/www.phpguru.org_4849532196/Timer/Console/Table.phps -A OfficeExcel/www.phpguru.org_4849532196/Timer/Console/Table.php -A OfficeExcel/www.phpguru.org_4849532196/Timer/test.phps -A OfficeExcel/www.phpguru.org_4849532196/Timer/Timer.phps -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut/bak/donut.js.bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut/bak/pie.js.bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut/bak/index.html.bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut/bak/index.php.bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_donut/index.php -A OfficeExcel/www.phpguru.org_4849532196/pop3 -A OfficeExcel/www.phpguru.org_4849532196/pop3/POP3_example.phps -A OfficeExcel/www.phpguru.org_4849532196/pop3/POP3.phps -A OfficeExcel/www.phpguru.org_4849532196/dynCalendar -A OfficeExcel/www.phpguru.org_4849532196/dynCalendar/dynCalendar.zip -A OfficeExcel/www.phpguru.org_4849532196/OfficeExcel.html -A OfficeExcel/www.phpguru.org_4849532196/HTTP_Request -A OfficeExcel/www.phpguru.org_4849532196/HTTP_Request/Request.phps -A OfficeExcel/www.phpguru.org_4849532196/HTTP_Request/download-progress.phps -A OfficeExcel/www.phpguru.org_4849532196/HTTP_Request/example.phps -A OfficeExcel/www.phpguru.org_4849532196/HTTP_Request/Listener.phps -A OfficeExcel/www.phpguru.org_4849532196/PCRE Cheat Sheet -A OfficeExcel/www.phpguru.org_4849532196/PCRE Cheat Sheet/PHP PCRE Cheat Sheet.pdf -A OfficeExcel/www.phpguru.org_4849532196/benchmark -A OfficeExcel/www.phpguru.org_4849532196/benchmark/class.phps -A OfficeExcel/www.phpguru.org_4849532196/benchmark/function.phps -A OfficeExcel/www.phpguru.org_4849532196/Rtemplate -A OfficeExcel/www.phpguru.org_4849532196/messaging2 -A OfficeExcel/www.phpguru.org_4849532196/messaging2/Messages2.php -A OfficeExcel/www.phpguru.org_4849532196/messaging2/green_tick2.png -A OfficeExcel/www.phpguru.org_4849532196/messaging2/example.php -A OfficeExcel/www.phpguru.org_4849532196/messaging2/Messages2.phps -A OfficeExcel/www.phpguru.org_4849532196/messaging2/yellow_exclamation.png -A OfficeExcel/www.phpguru.org_4849532196/messaging2/example.phps -A OfficeExcel/www.phpguru.org_4849532196/messaging2/yellow_exclamation2.png -A OfficeExcel/www.phpguru.org_4849532196/messaging2/red_cross.png -A OfficeExcel/www.phpguru.org_4849532196/messaging2/red_cross2.png -A OfficeExcel/www.phpguru.org_4849532196/messaging2/green_tick.png -A OfficeExcel/www.phpguru.org_4849532196/dynContext -A OfficeExcel/www.phpguru.org_4849532196/dynContext/dynContext-1.3.1.tar.gz -A OfficeExcel/www.phpguru.org_4849532196/TextualNumber -A OfficeExcel/www.phpguru.org_4849532196/TextualNumber/TextualNumber.phps -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/example.php -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/example.phps -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/Static_Tabstrip.php -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/images -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/images/tab_active_tl.png -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/images/tab_tl.png -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/images/tab_active_tr.png -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/images/tab_tr.png -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/Static_Tabstrip.css -A OfficeExcel/www.phpguru.org_4849532196/static_tabstrip/Static_Tabstrip.phps -A OfficeExcel/www.phpguru.org_4849532196/image_rotate -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/right.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/rotate.html -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/reset.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/plus.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/up.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/down.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/rotate_left.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/left.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/minus.png -A OfficeExcel/www.phpguru.org_4849532196/image_rotate/rotate_right.png -A OfficeExcel/www.phpguru.org_4849532196/Console -A OfficeExcel/www.phpguru.org_4849532196/Console/test.phps -A OfficeExcel/www.phpguru.org_4849532196/Console/Console.phps -A OfficeExcel/www.phpguru.org_4849532196/windowskey -A OfficeExcel/www.phpguru.org_4849532196/windowskey/cheat_sheet.doc -A OfficeExcel/www.phpguru.org_4849532196/windowskey/cheat_sheet.pdf -A OfficeExcel/www.phpguru.org_4849532196/treeBoard -A OfficeExcel/www.phpguru.org_4849532196/treeBoard/treeBoard.tar.gz -A OfficeExcel/www.phpguru.org_4849532196/smtp5 -A OfficeExcel/www.phpguru.org_4849532196/smtp5/release -A OfficeExcel/www.phpguru.org_4849532196/smtp5/example.php -A OfficeExcel/www.phpguru.org_4849532196/smtp5/example.phps -A OfficeExcel/www.phpguru.org_4849532196/smtp5/SMTP5.zip -A OfficeExcel/www.phpguru.org_4849532196/smtp5/smtp.php -A OfficeExcel/www.phpguru.org_4849532196/smtp5/index.html -A OfficeExcel/www.phpguru.org_4849532196/smtp5/smtp.phps -A OfficeExcel/www.phpguru.org_4849532196/mime.decode -A OfficeExcel/www.phpguru.org_4849532196/mime.decode/mime.decode.zip -A OfficeExcel/www.phpguru.org_4849532196/.htaccess -A OfficeExcel/www.phpguru.org_4849532196/messaging -A OfficeExcel/www.phpguru.org_4849532196/messaging/exclamation-yellow.jpg -A OfficeExcel/www.phpguru.org_4849532196/messaging/Message.phps -A OfficeExcel/www.phpguru.org_4849532196/csharp -A OfficeExcel/www.phpguru.org_4849532196/csharp/getopt -A OfficeExcel/www.phpguru.org_4849532196/csharp/getopt/GetOpt.zip -A OfficeExcel/www.phpguru.org_4849532196/csharp/SQLite.NET -A OfficeExcel/www.phpguru.org_4849532196/csharp/SQLite.NET/SQLite.NET-1.0.0.zip -A OfficeExcel/www.phpguru.org_4849532196/csharp/SQLite.NET/SQLite.NET.2.0.1.zip -A OfficeExcel/www.phpguru.org_4849532196/csharp/ConsoleTable -A OfficeExcel/www.phpguru.org_4849532196/csharp/ConsoleTable/ConsoleTable.cs -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar/bak/basic.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar/bak/RadarChart.js -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar/bak/index.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar/bak/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_radar/index.php -A OfficeExcel/www.phpguru.org_4849532196/sortAlgorithms -A OfficeExcel/www.phpguru.org_4849532196/sortAlgorithms/sorting.phps -A OfficeExcel/www.phpguru.org_4849532196/BrowserDetection -A OfficeExcel/www.phpguru.org_4849532196/BrowserDetection/UserAgent.php -A OfficeExcel/www.phpguru.org_4849532196/BrowserDetection/test.php -A OfficeExcel/www.phpguru.org_4849532196/BrowserDetection/UserAgent.phps -A OfficeExcel/www.phpguru.org_4849532196/BrowserDetection/test.phps -A OfficeExcel/www.phpguru.org_4849532196/search_input -A OfficeExcel/www.phpguru.org_4849532196/search_input/index.phps -A OfficeExcel/www.phpguru.org_4849532196/search_input/search.png -A OfficeExcel/www.phpguru.org_4849532196/search_input/index.php -A OfficeExcel/www.phpguru.org_4849532196/RPC_for_PHP5 -A OfficeExcel/www.phpguru.org_4849532196/RPC_for_PHP5/RPC for PHP5-1.0.zip -A OfficeExcel/www.phpguru.org_4849532196/curtains -A OfficeExcel/www.phpguru.org_4849532196/curtains/curtains.js -A OfficeExcel/www.phpguru.org_4849532196/curtains/example.html -A OfficeExcel/www.phpguru.org_4849532196/rtemplate -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/example.php -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/RTemplate.php -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/docs -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/docs/index.html -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/release.sh -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/inc.html -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/index.php -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/RTemplate.zip -A OfficeExcel/www.phpguru.org_4849532196/rtemplate/example.html -A OfficeExcel/www.phpguru.org_4849532196/Tree_array -A OfficeExcel/www.phpguru.org_4849532196/Tree_array/Tree.phps -A OfficeExcel/www.phpguru.org_4849532196/rss2email -A OfficeExcel/www.phpguru.org_4849532196/rss2email/RSS2email.phps -A OfficeExcel/www.phpguru.org_4849532196/footer.html -A OfficeExcel/www.phpguru.org_4849532196/PHP_Unserialize -A OfficeExcel/www.phpguru.org_4849532196/PHP_Unserialize/PHP_Unserialize.php -A OfficeExcel/www.phpguru.org_4849532196/PHP_Unserialize/PHP_Unserialize.phps -A OfficeExcel/www.phpguru.org_4849532196/PHP_Unserialize/PHP_Unserialize.js -A OfficeExcel/www.phpguru.org_4849532196/Cache -A OfficeExcel/www.phpguru.org_4849532196/Cache/Cache.zip -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/bak/pie.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/bak/pie.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/bak/pie.js -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/bak/index.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/bak/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_pie/index.php -A OfficeExcel/www.phpguru.org_4849532196/articles -A OfficeExcel/www.phpguru.org_4849532196/articles/pop3.html -A OfficeExcel/www.phpguru.org_4849532196/articles/phpSQLiteAdmin.html -A OfficeExcel/www.phpguru.org_4849532196/articles/js-registry.html -A OfficeExcel/www.phpguru.org_4849532196/articles/dyncalendar.html -A OfficeExcel/www.phpguru.org_4849532196/articles/ApplicationStructure.html -A OfficeExcel/www.phpguru.org_4849532196/articles/treemenu.html -A OfficeExcel/www.phpguru.org_4849532196/articles/TableEditorComparison.html -A OfficeExcel/www.phpguru.org_4849532196/articles/dynContext.example.html -A OfficeExcel/www.phpguru.org_4849532196/articles/pleasewait.html -A OfficeExcel/www.phpguru.org_4849532196/articles/getopt.html -A OfficeExcel/www.phpguru.org_4849532196/articles/auth.sasl.html -A OfficeExcel/www.phpguru.org_4849532196/articles/messages.html -A OfficeExcel/www.phpguru.org_4849532196/articles/html5-dom-storage.html -A OfficeExcel/www.phpguru.org_4849532196/articles/PariahBB.html -A OfficeExcel/www.phpguru.org_4849532196/articles/mime.decode.html -A OfficeExcel/www.phpguru.org_4849532196/articles/libComments.html -A OfficeExcel/www.phpguru.org_4849532196/articles/webkit-transformations.html -A OfficeExcel/www.phpguru.org_4849532196/articles/search.replace.html -A OfficeExcel/www.phpguru.org_4849532196/articles/google-checkout.html -A OfficeExcel/www.phpguru.org_4849532196/articles/file.html -A OfficeExcel/www.phpguru.org_4849532196/articles/license.html -A OfficeExcel/www.phpguru.org_4849532196/articles/TextualNumbers.html -A OfficeExcel/www.phpguru.org_4849532196/articles/smtp.html -A OfficeExcel/www.phpguru.org_4849532196/articles/SQLite.NET.html -A OfficeExcel/www.phpguru.org_4849532196/articles/net.url.html -A OfficeExcel/www.phpguru.org_4849532196/articles/firefox3.5.html -A OfficeExcel/www.phpguru.org_4849532196/articles/console.table.html -A OfficeExcel/www.phpguru.org_4849532196/articles/faqs.html -A OfficeExcel/www.phpguru.org_4849532196/articles/clock.html -A OfficeExcel/www.phpguru.org_4849532196/articles/Caching.html -A OfficeExcel/www.phpguru.org_4849532196/articles/User-Agent2.html -A OfficeExcel/www.phpguru.org_4849532196/articles/PHP_Unserialize.html -A OfficeExcel/www.phpguru.org_4849532196/articles/backlinks.html -A OfficeExcel/www.phpguru.org_4849532196/articles/positioning.html -A OfficeExcel/www.phpguru.org_4849532196/articles/seo-tips.html -A OfficeExcel/www.phpguru.org_4849532196/articles/geolocation.html -A OfficeExcel/www.phpguru.org_4849532196/articles/css-reflections.html -A OfficeExcel/www.phpguru.org_4849532196/articles/templating.html -A OfficeExcel/www.phpguru.org_4849532196/articles/OfficeExcel-text.html -A OfficeExcel/www.phpguru.org_4849532196/articles/http.request.html -A OfficeExcel/www.phpguru.org_4849532196/articles/html5-desktop-notifications.html -A OfficeExcel/www.phpguru.org_4849532196/articles/canvas.html -A OfficeExcel/www.phpguru.org_4849532196/articles/css3.html -A OfficeExcel/www.phpguru.org_4849532196/articles/datagrid.html -A OfficeExcel/www.phpguru.org_4849532196/articles/OfficeExcel.html -A OfficeExcel/www.phpguru.org_4849532196/articles/browser.html -A OfficeExcel/www.phpguru.org_4849532196/articles/Modal-Dialog.html -A OfficeExcel/www.phpguru.org_4849532196/articles/FileIterator.html -A OfficeExcel/www.phpguru.org_4849532196/articles/TextualNumber.html -A OfficeExcel/www.phpguru.org_4849532196/articles/dynContext.html -A OfficeExcel/www.phpguru.org_4849532196/articles/static_tabstrip.html -A OfficeExcel/www.phpguru.org_4849532196/articles/tree.html -A OfficeExcel/www.phpguru.org_4849532196/articles/smiley.html -A OfficeExcel/www.phpguru.org_4849532196/articles/windowskey.html -A OfficeExcel/www.phpguru.org_4849532196/articles/Rmail.html -A OfficeExcel/www.phpguru.org_4849532196/articles/search.html -A OfficeExcel/www.phpguru.org_4849532196/articles/ie6-dies.html -A OfficeExcel/www.phpguru.org_4849532196/articles/html5-examples.html -A OfficeExcel/www.phpguru.org_4849532196/articles/PorterStemmer.html -A OfficeExcel/www.phpguru.org_4849532196/articles/ConsoleTable.html -A OfficeExcel/www.phpguru.org_4849532196/articles/breakout.html -A OfficeExcel/www.phpguru.org_4849532196/articles/layerfun.html -A OfficeExcel/www.phpguru.org_4849532196/articles/attributes.html -A OfficeExcel/www.phpguru.org_4849532196/articles/html5.html -A OfficeExcel/www.phpguru.org_4849532196/articles/TableEditor.html -A OfficeExcel/www.phpguru.org_4849532196/articles/AutoComplete.html -A OfficeExcel/www.phpguru.org_4849532196/articles/Cache.html -A OfficeExcel/www.phpguru.org_4849532196/articles/rmail.html -A OfficeExcel/www.phpguru.org_4849532196/articles/canvas-example.html -A OfficeExcel/www.phpguru.org_4849532196/articles/css-gradients.html -A OfficeExcel/www.phpguru.org_4849532196/articles/html5-form-inputs.html -A OfficeExcel/www.phpguru.org_4849532196/articles/sieve.html -A OfficeExcel/www.phpguru.org_4849532196/articles/template.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_text -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_text/_index.php -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_text/index.php -A OfficeExcel/www.phpguru.org_4849532196/Console_ProgressBar -A OfficeExcel/www.phpguru.org_4849532196/Console_ProgressBar/Console_ProgressBar.php -A OfficeExcel/www.phpguru.org_4849532196/Console_ProgressBar/example.php -A OfficeExcel/www.phpguru.org_4849532196/Console_ProgressBar/Console_ProgressBar.phps -A OfficeExcel/www.phpguru.org_4849532196/Console_ProgressBar/example.phps -A OfficeExcel/www.phpguru.org_4849532196/template -A OfficeExcel/www.phpguru.org_4849532196/libComments -A OfficeExcel/www.phpguru.org_4849532196/libComments/libComments-1.0.1.zip -A OfficeExcel/www.phpguru.org_4849532196/ModalDialog -A OfficeExcel/www.phpguru.org_4849532196/ModalDialog/ModalDialog.css -A OfficeExcel/www.phpguru.org_4849532196/ModalDialog/ModalDialog.js -A OfficeExcel/www.phpguru.org_4849532196/ModalDialog/fade.js -A OfficeExcel/www.phpguru.org_4849532196/ModalDialog/example.html -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_baOfficeExcel -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_baOfficeExcel/bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_baOfficeExcel/bak/index.php.bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_baOfficeExcel/bak/BarChart.js.bak -A OfficeExcel/www.phpguru.org_4849532196/.HTML5_baOfficeExcel/index.php -A OfficeExcel/scripts -A OfficeExcel/scripts/social.php -A OfficeExcel/scripts/diff.sh -A OfficeExcel/scripts/replace.php -A OfficeExcel/scripts/generateSitemap.php -A OfficeExcel/scripts/tests.php -A OfficeExcel/scripts/release.sh -A OfficeExcel/scripts/index.html -A OfficeExcel/scripts/minify -A OfficeExcel/financial-dashboard.jpg -A OfficeExcel/docs -A OfficeExcel/docs/async.html -A OfficeExcel/docs/color.html -A OfficeExcel/docs/effects.html -A OfficeExcel/docs/.CHANGELOG.txt -A OfficeExcel/docs/basic.html -A OfficeExcel/docs/waterfall.html -A OfficeExcel/docs/external.html -A OfficeExcel/docs/annotate_persist.html -A OfficeExcel/docs/animation_segments.html -A OfficeExcel/docs/context.html -A OfficeExcel/docs/ingraph.html -A OfficeExcel/docs/adjusting.html -A OfficeExcel/docs/css.html -A OfficeExcel/docs/howto-linking.html -A OfficeExcel/docs/vprogress.html -A OfficeExcel/docs/thermometer.html -A OfficeExcel/docs/adjusting_line.html -A OfficeExcel/docs/release-notes-january-2012.html -A OfficeExcel/docs/release-notes-november-2011.html -A OfficeExcel/docs/xml-data.html -A OfficeExcel/docs/licensing.html -A OfficeExcel/docs/howto-make-a-transition-effect.html -A OfficeExcel/docs/pie.html -A OfficeExcel/docs/tooltips.html -A OfficeExcel/docs/basic_tooltips.html -A OfficeExcel/docs/setconfig.html -A OfficeExcel/docs/adjusting_hprogress.html -A OfficeExcel/docs/png.html -A OfficeExcel/docs/adjusting_gantt.html -A OfficeExcel/docs/line.html -A OfficeExcel/docs/funnel.html -A OfficeExcel/docs/gauge.html -A OfficeExcel/docs/donut.html -A OfficeExcel/docs/misc.html -A OfficeExcel/docs/animation-effects.html -A OfficeExcel/docs/gutters.html -A OfficeExcel/docs/msie.html -A OfficeExcel/docs/pseudo-standard-events.html -A OfficeExcel/docs/adjusting_radar.html -A OfficeExcel/docs/annotating.html -A OfficeExcel/docs/iframe.html -A OfficeExcel/docs/howto-images.html -A OfficeExcel/docs/events.html -A OfficeExcel/docs/rose.html -A OfficeExcel/docs/api.html -A OfficeExcel/docs/keys.html -A OfficeExcel/docs/issues.html -A OfficeExcel/docs/meter.html -A OfficeExcel/docs/hprogress.html -A OfficeExcel/docs/gantt.html -A OfficeExcel/docs/.BC.txt -A OfficeExcel/docs/odo.html -A OfficeExcel/docs/release-notes-october-2011.html -A OfficeExcel/docs/bulk-discount.html -A OfficeExcel/docs/financial.html -A OfficeExcel/docs/zoom.html -A OfficeExcel/docs/image2url.html -A OfficeExcel/docs/downloads -A OfficeExcel/docs/radar.html -A OfficeExcel/docs/fuel.html -A OfficeExcel/docs/howto-events.html -A OfficeExcel/docs/release-notes.html -A OfficeExcel/docs/.htaccess -A OfficeExcel/docs/howto-events-modaldialog.html -A OfficeExcel/docs/hbar.html -A OfficeExcel/docs/adjusting_bar.html -A OfficeExcel/docs/combine.html -A OfficeExcel/docs/what-is-html5-canvas.html -A OfficeExcel/docs/basic_combined.html -A OfficeExcel/docs/domcontentloaded.html -A OfficeExcel/docs/dynamic.html -A OfficeExcel/docs/forum -A OfficeExcel/docs/rscatter.html -A OfficeExcel/docs/zoom_thumbnail.html -A OfficeExcel/docs/bipolar.html -A OfficeExcel/docs/resizing.html -A OfficeExcel/docs/.TODO.txt -A OfficeExcel/docs/iframe-setup.html -A OfficeExcel/docs/adjusting_vprogress.html -A OfficeExcel/docs/adjusting_thermometer.html -A OfficeExcel/docs/led.html -A OfficeExcel/docs/bar.html -A OfficeExcel/docs/basic_events.html -A OfficeExcel/docs/scatter.html -A OfficeExcel/docs/line_filled.html -A OfficeExcel/docs/index.html -A OfficeExcel/docs/forums -A OfficeExcel/docs/examples -A OfficeExcel/downloads -A OfficeExcel/invoice.html -A OfficeExcel/tools -A OfficeExcel/tools/tabs.css -A OfficeExcel/tools/mail -A OfficeExcel/tools/mail/mime -A OfficeExcel/tools/mail/mime/mimePart.php -A OfficeExcel/tools/mail/mime/smtp.php -A OfficeExcel/tools/mail/mime/htmlMimeMail5.php -A OfficeExcel/tools/mail/mime/RFC822.php -A OfficeExcel/tools/mail/index.html -A OfficeExcel/tools/index.html -A OfficeExcel/tools/.htaccess -A OfficeExcel/write-a-testimonial.html -A OfficeExcel/tests -A OfficeExcel/tests/2011-10-30 -A OfficeExcel/tests/2011-10-30/combine.html -A OfficeExcel/tests/2011-10-30/pie_roundrobin.html -A OfficeExcel/tests/2011-10-30/waterfall_grow.html -A OfficeExcel/tests/2011-10-30/scatter.inside.html -A OfficeExcel/tests/2011-10-30/line-trace.html -A OfficeExcel/tests/2011-10-30/boxplot_tooltips.html -A OfficeExcel/tests/2011-10-30/pie.explode().html -A OfficeExcel/tests/2011-10-30/bar_sequential.html -A OfficeExcel/tests/2011-10-30/filled.html -A OfficeExcel/tests/2011-10-30/bar_ymin.html -A OfficeExcel/tests/2011-10-30/pie_programmatic_explode.html -A OfficeExcel/tests/2011-10-30/titles.html -A OfficeExcel/tests/2011-10-30/rose_grow.html -A OfficeExcel/tests/2011-10-30/pie_interactive.html -A OfficeExcel/tests/2011-10-30/meter_grow.html -A OfficeExcel/tests/2011-10-30/pie_north_axis.html -A OfficeExcel/tests/odo -A OfficeExcel/tests/odo/odo2.html -A OfficeExcel/tests/odo/odo3.html -A OfficeExcel/tests/odo/odo4.html -A OfficeExcel/tests/odo/odo5.html -A OfficeExcel/tests/odo/odo6.html -A OfficeExcel/tests/waterfall -A OfficeExcel/tests/waterfall/waterfall1.html -A OfficeExcel/tests/waterfall/waterfall2.html -A OfficeExcel/tests/2011-12-31 -A OfficeExcel/tests/2011-12-31/bar_tickmarks.html -A OfficeExcel/tests/2011-12-31/event_handler_waterfall.html -A OfficeExcel/tests/2011-12-31/bar-grow.html -A OfficeExcel/tests/2011-12-31/line.text_offset.html -A OfficeExcel/tests/2011-12-31/getycoord_bar.html -A OfficeExcel/tests/2011-12-31/gant_tooltips_mousemove.html -A OfficeExcel/tests/2011-12-31/line_tooltips_event.html -A OfficeExcel/tests/2011-12-31/getvalue_vprogress.html -A OfficeExcel/tests/2011-12-31/scale_options_bar.html -A OfficeExcel/tests/2011-12-31/getvalue_thermometer.html -A OfficeExcel/tests/2011-12-31/event_handler_radar.html -A OfficeExcel/tests/2011-12-31/scale_options_scatter.html -A OfficeExcel/tests/2011-12-31/event_handler_vprogress.html -A OfficeExcel/tests/2011-12-31/event_handler_thermometer.html -A OfficeExcel/tests/2011-12-31/scale_options_rose.html -A OfficeExcel/tests/2011-12-31/pie_explode.html -A OfficeExcel/tests/2011-12-31/scale_options_hprogress.html -A OfficeExcel/tests/2011-12-31/scale_options_meter.html -A OfficeExcel/tests/2011-12-31/gantt_labels.html -A OfficeExcel/tests/2011-12-31/vprogress_title_side.html -A OfficeExcel/tests/2011-12-31/scale_options_odo.html -A OfficeExcel/tests/2011-12-31/scale_options_waterfall.html -A OfficeExcel/tests/2011-12-31/rose_effects.html -A OfficeExcel/tests/2011-12-31/getvalue_hbar.html -A OfficeExcel/tests/2011-12-31/event_handler_hbar.html -A OfficeExcel/tests/2011-12-31/gantt_grow.html -A OfficeExcel/tests/2011-12-31/event_handler_pie.html -A OfficeExcel/tests/2011-12-31/scale_options_radar.html -A OfficeExcel/tests/2011-12-31/scale_options_vprogress.html -A OfficeExcel/tests/2011-12-31/scale_options_thermometer.html -A OfficeExcel/tests/2011-12-31/tooltip_images.html -A OfficeExcel/tests/2011-12-31/getvalue_line.html -A OfficeExcel/tests/2011-12-31/event_handler_rscatter.html -A OfficeExcel/tests/2011-12-31/event_handler_funnel.html -A OfficeExcel/tests/2011-12-31/event_handler_line.html -A OfficeExcel/tests/2011-12-31/event_handler_bipolar.html -A OfficeExcel/tests/2011-12-31/radar_stacked.html -A OfficeExcel/tests/2011-12-31/scale_issue-20111228-163112.html -A OfficeExcel/tests/2011-12-31/.gantt.html -A OfficeExcel/tests/2011-12-31/scale_options_hbar.html -A OfficeExcel/tests/2011-12-31/bar_line_scatter_background.html -A OfficeExcel/tests/2011-12-31/getvalue_bar.html -A OfficeExcel/tests/2011-12-31/getvalue_scatter.html -A OfficeExcel/tests/2011-12-31/bar_labels_above.html -A OfficeExcel/tests/2011-12-31/event_handler_bar.html -A OfficeExcel/tests/2011-12-31/gauge_title_align.html -A OfficeExcel/tests/2011-12-31/event_handler_scatter.html -A OfficeExcel/tests/2011-12-31/event_handler_rose.html -A OfficeExcel/tests/2011-12-31/getvalue_hprogress.html -A OfficeExcel/tests/2011-12-31/bar_wave_requestAnimationFrame.html -A OfficeExcel/tests/2011-12-31/scale_options_line.html -A OfficeExcel/tests/2011-12-31/scale_options_rscatter.html -A OfficeExcel/tests/2011-12-31/event_handler_hprogress.html -A OfficeExcel/tests/2011-12-31/scale_options_bipolar.html -A OfficeExcel/tests/2011-12-31/scale_options_gauge.html -A OfficeExcel/tests/2011-12-31/event_handler_gantt.html -A OfficeExcel/tests/funnel -A OfficeExcel/tests/funnel/funnel1.html -A OfficeExcel/tests/2011-11-26 -A OfficeExcel/tests/2011-11-26/line-stroke.html -A OfficeExcel/tests/2011-11-26/hprogress_labels.html -A OfficeExcel/tests/2011-11-26/pie_sticks_length.html -A OfficeExcel/tests/2011-11-26/rose_offset.html -A OfficeExcel/tests/2011-11-26/curvy_line.html -A OfficeExcel/tests/2011-11-26/pie_getsegment.html -A OfficeExcel/tests/2011-11-26/pie_wave.html -A OfficeExcel/tests/2011-11-26/hotspots.html -A OfficeExcel/tests/2011-11-26/pie_donut.html -A OfficeExcel/tests/2011-11-26/zoom_thumbnail.html -A OfficeExcel/tests/2011-11-26/gauge.html -A OfficeExcel/tests/2011-11-26/vprogress_grow.html -A OfficeExcel/tests/2011-11-26/hprogress_grow.html -A OfficeExcel/tests/2011-07-30 -A OfficeExcel/tests/2011-07-30/bipolar_getbar.html -A OfficeExcel/tests/2011-07-30/line_tooltips_index2.html -A OfficeExcel/tests/2011-07-30/stacked_bar_colors.html -A OfficeExcel/tests/2011-07-30/funnel_getsegment.html -A OfficeExcel/tests/2011-07-30/scale.specific.html -A OfficeExcel/tests/2011-07-12 -A OfficeExcel/tests/2011-07-12/getShape.html -A OfficeExcel/tests/2011-07-12/triangle_ticks.html -A OfficeExcel/tests/2011-07-12/hbar.sequential.html -A OfficeExcel/tests/2011-07-12/rose_tooltips_event.html -A OfficeExcel/tests/2011-07-12/stacked_rose.html -A OfficeExcel/tests/2011-07-12/scale.html -A OfficeExcel/tests/2011-07-12/hprogress_ticks.html -A OfficeExcel/tests/2011-07-12/zoom_click.html -A OfficeExcel/tests/2011-07-12/meter.value.text.html -A OfficeExcel/tests/2011-07-12/non-equi-angular_rose.html -A OfficeExcel/tests/line -A OfficeExcel/tests/line/negative_filled.html -A OfficeExcel/tests/line/filled_null_value.html -A OfficeExcel/tests/line/line10.html -A OfficeExcel/tests/line/line01.html -A OfficeExcel/tests/line/line11.html -A OfficeExcel/tests/line/line02.html -A OfficeExcel/tests/line/line20.html -A OfficeExcel/tests/line/line12.html -A OfficeExcel/tests/line/line03.html -A OfficeExcel/tests/line/interactive_key_multiple_lines.html -A OfficeExcel/tests/line/line21.html -A OfficeExcel/tests/line/line13.html -A OfficeExcel/tests/line/line04.html -A OfficeExcel/tests/line/line22.html -A OfficeExcel/tests/line/line05.html -A OfficeExcel/tests/line/line14.html -A OfficeExcel/tests/line/line23.html -A OfficeExcel/tests/line/line06.html -A OfficeExcel/tests/line/line15.html -A OfficeExcel/tests/line/line07.html -A OfficeExcel/tests/line/line16.html -A OfficeExcel/tests/line/line08.html -A OfficeExcel/tests/line/line17.html -A OfficeExcel/tests/line/line09.html -A OfficeExcel/tests/line/line18.html -A OfficeExcel/tests/line/browser_stats.html -A OfficeExcel/tests/line/line19.html -A OfficeExcel/tests/line/null-scale-bug.html -A OfficeExcel/tests/rscatter -A OfficeExcel/tests/rscatter/rscatter.html -A OfficeExcel/tests/gauge -A OfficeExcel/tests/gauge/johnny.html -A OfficeExcel/tests/gauge/gauge1.html -A OfficeExcel/tests/gauge/gauge2.html -A OfficeExcel/tests/gauge/gauge3.html -A OfficeExcel/tests/bipolar -A OfficeExcel/tests/bipolar/bipolar1.html -A OfficeExcel/tests/bipolar/bipolar2.html -A OfficeExcel/tests/bipolar/resizing.html -A OfficeExcel/tests/2011-08-31 -A OfficeExcel/tests/2011-08-31/scatter_scale.html -A OfficeExcel/tests/2011-08-31/pie.html -A OfficeExcel/tests/2011-08-31/animate.html -A OfficeExcel/tests/2011-08-31/radar_specific.html -A OfficeExcel/tests/2011-08-31/hprogress_getbar.html -A OfficeExcel/tests/2011-08-31/rscatter_getpoint.html -A OfficeExcel/tests/2011-08-31/radar_getpoint.html -A OfficeExcel/tests/2011-08-31/requestAnimationFrame.html -A OfficeExcel/tests/2011-08-31/filled_line.html -A OfficeExcel/tests/2011-08-31/numyticks.html -A OfficeExcel/tests/2011-08-31/radar.html -A OfficeExcel/tests/2011-08-31/vprogress.html -A OfficeExcel/tests/2011-08-31/fuel.html -A OfficeExcel/tests/2011-08-31/stepped_line.html -A OfficeExcel/tests/radar -A OfficeExcel/tests/radar/radar.html -A OfficeExcel/tests/vprogress -A OfficeExcel/tests/vprogress/vprogress2.html -A OfficeExcel/tests/vprogress/vprogress3.html -A OfficeExcel/tests/vprogress/vprogress1.html -A OfficeExcel/tests/fuel -A OfficeExcel/tests/fuel/fuel1.html -A OfficeExcel/tests/fuel/fuel2.html -A OfficeExcel/tests/thermometer -A OfficeExcel/tests/thermometer/thermometer.html -A OfficeExcel/tests/2011-09-24 -A OfficeExcel/tests/2011-09-24/waterfall_axes.html -A OfficeExcel/tests/2011-09-24/hbar-sequential-colors.html -A OfficeExcel/tests/2011-09-24/scatter_xscale.html -A OfficeExcel/tests/2011-09-24/curvy.html -A OfficeExcel/tests/2011-05-28 -A OfficeExcel/tests/2011-05-28/scatter_getpoint.html -A OfficeExcel/tests/2011-05-28/background-images.html -A OfficeExcel/tests/2011-05-28/xaxispos_bar.html -A OfficeExcel/tests/2011-05-28/context.html -A OfficeExcel/tests/2011-05-28/exploded.html -A OfficeExcel/tests/2011-05-28/led.html -A OfficeExcel/tests/2011-05-28/xaxispos_line.html -A OfficeExcel/tests/2011-05-28/pie_coords.html -A OfficeExcel/tests/2011-05-28/hbar.above.html -A OfficeExcel/tests/2011-05-28/invert.html -A OfficeExcel/tests/2011-05-28/filled_line_accumulative.html -A OfficeExcel/tests/2011-05-28/odo.key.html -A OfficeExcel/tests/2011-05-28/ie8-clear.html -A OfficeExcel/tests/2011-05-28/gutters -A OfficeExcel/tests/2011-05-28/gutters/meter.html -A OfficeExcel/tests/2011-05-28/gutters/hprogress.html -A OfficeExcel/tests/2011-05-28/gutters/hbar.html -A OfficeExcel/tests/2011-05-28/gutters/pie.html -A OfficeExcel/tests/2011-05-28/gutters/gantt.html -A OfficeExcel/tests/2011-05-28/gutters/odo.html -A OfficeExcel/tests/2011-05-28/gutters/waterfall.html -A OfficeExcel/tests/2011-05-28/gutters/rscatter.html -A OfficeExcel/tests/2011-05-28/gutters/line.html -A OfficeExcel/tests/2011-05-28/gutters/funnel.html -A OfficeExcel/tests/2011-05-28/gutters/bipolar.html -A OfficeExcel/tests/2011-05-28/gutters/radar.html -A OfficeExcel/tests/2011-05-28/gutters/vprogress.html -A OfficeExcel/tests/2011-05-28/gutters/thermometer.html -A OfficeExcel/tests/2011-05-28/gutters/led.html -A OfficeExcel/tests/2011-05-28/gutters/bar.html -A OfficeExcel/tests/2011-05-28/gutters/scatter.html -A OfficeExcel/tests/2011-05-28/gutters/rose.html -A OfficeExcel/tests/2011-05-28/thermometer.html -A OfficeExcel/tests/bar -A OfficeExcel/tests/bar/bar09.html -A OfficeExcel/tests/bar/div_tooltips.html -A OfficeExcel/tests/bar/null_thousand.html -A OfficeExcel/tests/bar/plusminus.html -A OfficeExcel/tests/bar/canvas_scale.html -A OfficeExcel/tests/bar/bar01.html -A OfficeExcel/tests/bar/bar02.html -A OfficeExcel/tests/bar/bar03.html -A OfficeExcel/tests/bar/bar04.html -A OfficeExcel/tests/bar/scale_issue-20111228-163112.html -A OfficeExcel/tests/bar/bar05.html -A OfficeExcel/tests/bar/ranjan.html -A OfficeExcel/tests/bar/bar06.html -A OfficeExcel/tests/bar/bar07.html -A OfficeExcel/tests/led -A OfficeExcel/tests/led/regular.html -A OfficeExcel/tests/led/punctuation.html -A OfficeExcel/tests/scatter -A OfficeExcel/tests/scatter/scatter07.html -A OfficeExcel/tests/scatter/scatter08.html -A OfficeExcel/tests/scatter/scatter09.html -A OfficeExcel/tests/scatter/scatter01.html -A OfficeExcel/tests/scatter/scatter02.html -A OfficeExcel/tests/scatter/scatter03.html -A OfficeExcel/tests/scatter/scatter04.html -A OfficeExcel/tests/scatter/scatter05.html -A OfficeExcel/tests/scatter/scatter06.html -A OfficeExcel/tests/rose -A OfficeExcel/tests/rose/rose1.html -A OfficeExcel/tests/rose/rose2.html -A OfficeExcel/tests/hprogress -A OfficeExcel/tests/hprogress/hprogress1.html -A OfficeExcel/tests/hprogress/hprogress2.html -A OfficeExcel/tests/hprogress/hprogress3.html -A OfficeExcel/tests/hprogress/hprogress4.html -A OfficeExcel/tests/hbar -A OfficeExcel/tests/hbar/hbar1.html -A OfficeExcel/tests/hbar/hbar2.html -A OfficeExcel/tests/hbar/hbar3.html -A OfficeExcel/tests/hbar/hbar4.html -A OfficeExcel/tests/hbar/hbar5.html -A OfficeExcel/tests/hbar/hbar6.html -A OfficeExcel/tests/meter -A OfficeExcel/tests/meter/meter01.html -A OfficeExcel/tests/meter/meter02.html -A OfficeExcel/tests/meter/meter03.html -A OfficeExcel/tests/gantt -A OfficeExcel/tests/gantt/gantt1.html -A OfficeExcel/tests/gantt/gantt2.html -A OfficeExcel/tests/pie -A OfficeExcel/tests/pie/pie1.html -A OfficeExcel/tests/pie/pie2.html -A OfficeExcel/tests/pie/pie3.html -A OfficeExcel/tests/pie/pie4.html -A OfficeExcel/tests/pie/pie5.html -A OfficeExcel/tests/pie/events_buildup.html -A OfficeExcel/images -A OfficeExcel/images/barg2.png -A OfficeExcel/images/barg4.png -A OfficeExcel/images/analogo.gif -A OfficeExcel/images/twitter.png -A OfficeExcel/images/barg8.png -A OfficeExcel/images/barc1.gif -A OfficeExcel/images/bara32.png -A OfficeExcel/images/barg2.gif -A OfficeExcel/images/bare32.png -A OfficeExcel/images/bard16.png -A OfficeExcel/images/barg4.gif -A OfficeExcel/images/bari32.png -A OfficeExcel/images/barh16.png -A OfficeExcel/images/barg8.gif -A OfficeExcel/images/html2.png -A OfficeExcel/images/alex.png -A OfficeExcel/images/bard2.png -A OfficeExcel/images/sqg.png -A OfficeExcel/images/bara32.gif -A OfficeExcel/images/bard4.png -A OfficeExcel/images/barh1.png -A OfficeExcel/images/bare32.gif -A OfficeExcel/images/bard16.gif -A OfficeExcel/images/bard8.png -A OfficeExcel/images/bari32.gif -A OfficeExcel/images/barh16.gif -A OfficeExcel/images/html2.gif -A OfficeExcel/images/download-stable-sml.png -A OfficeExcel/images/bard2.gif -A OfficeExcel/images/bard4.gif -A OfficeExcel/images/barh1.gif -A OfficeExcel/images/bard8.gif -A OfficeExcel/images/bara2.png -A OfficeExcel/images/bara4.png -A OfficeExcel/images/bare1.png -A OfficeExcel/images/bara8.png -A OfficeExcel/images/bari2.png -A OfficeExcel/images/bari4.png -A OfficeExcel/images/google_+1_button.png -A OfficeExcel/images/bari8.png -A OfficeExcel/images/download.png -A OfficeExcel/images/bara2.gif -A OfficeExcel/images/download-beta-sml.png -A OfficeExcel/images/bara4.gif -A OfficeExcel/images/bare1.gif -A OfficeExcel/images/favicon.ico -A OfficeExcel/images/icons_combined.png -A OfficeExcel/images/reddit.png -A OfficeExcel/images/bard32.png -A OfficeExcel/images/bara8.gif -A OfficeExcel/images/barc16.png -A OfficeExcel/images/water.jpg -A OfficeExcel/images/bari2.gif -A OfficeExcel/images/barh32.png -A OfficeExcel/images/bari4.gif -A OfficeExcel/images/barg16.png -A OfficeExcel/images/context.png -A OfficeExcel/images/bari8.gif -A OfficeExcel/images/barb1.png -A OfficeExcel/images/.htaccess -A OfficeExcel/images/barf2.png -A OfficeExcel/images/chrome_logo.png -A OfficeExcel/images/barf4.png -A OfficeExcel/images/bard32.gif -A OfficeExcel/images/barj1.png -A OfficeExcel/images/barc16.gif -A OfficeExcel/images/introspection.png -A OfficeExcel/images/barh32.gif -A OfficeExcel/images/barf8.png -A OfficeExcel/images/border-radius.png -A OfficeExcel/images/barg16.gif -A OfficeExcel/images/sq0.png -A OfficeExcel/images/sq2.png -A OfficeExcel/images/coins.jpg -A OfficeExcel/images/sq4.png -A OfficeExcel/images/barb1.gif -A OfficeExcel/images/facebook.png -A OfficeExcel/images/sq6.png -A OfficeExcel/images/png.icon.png -A OfficeExcel/images/sq8.png -A OfficeExcel/images/barf2.gif -A OfficeExcel/images/barf4.gif -A OfficeExcel/images/barj1.gif -A OfficeExcel/images/barf8.gif -A OfficeExcel/images/favicon.png -A OfficeExcel/images/barc2.png -A OfficeExcel/images/barc4.png -A OfficeExcel/images/barg1.png -A OfficeExcel/images/logo.jpg -A OfficeExcel/images/barc8.png -A OfficeExcel/images/structure.png -A OfficeExcel/images/paypal.gif -A OfficeExcel/images/barc2.gif -A OfficeExcel/images/fuel-pump.png -A OfficeExcel/images/stumble.png -A OfficeExcel/images/barc32.png -A OfficeExcel/images/barc4.gif -A OfficeExcel/images/barg1.gif -A OfficeExcel/images/barb16.png -A OfficeExcel/images/barg32.png -A OfficeExcel/images/barc8.gif -A OfficeExcel/images/download-beta.png -A OfficeExcel/images/search_party.jpg -A OfficeExcel/images/barf16.png -A OfficeExcel/images/barj16.png -A OfficeExcel/images/bard1.png -A OfficeExcel/images/barc32.gif -A OfficeExcel/images/barh2.png -A OfficeExcel/images/barb16.gif -A OfficeExcel/images/barh4.png -A OfficeExcel/images/barg32.gif -A OfficeExcel/images/barf16.gif -A OfficeExcel/images/barh8.png -A OfficeExcel/images/close.png -A OfficeExcel/images/barj16.gif -A OfficeExcel/images/rss.png -A OfficeExcel/images/merry-christmas-snowman.png -A OfficeExcel/images/bard1.gif -A OfficeExcel/images/barh2.gif -A OfficeExcel/images/barh4.gif -A OfficeExcel/images/OfficeExcel.logo.png -A OfficeExcel/images/bg.jpg -A OfficeExcel/images/barh8.gif -A OfficeExcel/images/bara1.png -A OfficeExcel/images/bare2.png -A OfficeExcel/images/friendfeed.png -A OfficeExcel/images/bare4.png -A OfficeExcel/images/bari1.png -A OfficeExcel/images/logo.png -A OfficeExcel/images/bare8.png -A OfficeExcel/images/bara1.gif -A OfficeExcel/images/unicef.png -A OfficeExcel/images/barb32.png -A OfficeExcel/images/bara16.png -A OfficeExcel/images/bare2.gif -A OfficeExcel/images/googlegroups.png -A OfficeExcel/images/bare4.gif -A OfficeExcel/images/bari1.gif -A OfficeExcel/images/barf32.png -A OfficeExcel/images/bare16.png -A OfficeExcel/images/bn.personal.png -A OfficeExcel/images/bare8.gif -A OfficeExcel/images/rss_sml.png -A OfficeExcel/images/barj32.png -A OfficeExcel/images/shared -A OfficeExcel/images/shared/me-in-drag.png -A OfficeExcel/images/shared/.htaccess -A OfficeExcel/images/bari16.png -A OfficeExcel/images/barb2.png -A OfficeExcel/images/bn.business.png -A OfficeExcel/images/new.png -A OfficeExcel/images/barb4.png -A OfficeExcel/images/barf1.png -A OfficeExcel/images/barb32.gif -A OfficeExcel/images/bara16.gif -A OfficeExcel/images/barb8.png -A OfficeExcel/images/buy.png -A OfficeExcel/images/barj2.png -A OfficeExcel/images/barf32.gif -A OfficeExcel/images/atom.png -A OfficeExcel/images/bare16.gif -A OfficeExcel/images/barj4.png -A OfficeExcel/images/barj32.gif -A OfficeExcel/images/sq1.png -A OfficeExcel/images/bari16.gif -A OfficeExcel/images/barj8.png -A OfficeExcel/images/sq3.png -A OfficeExcel/images/sq5.png -A OfficeExcel/images/barb2.gif -A OfficeExcel/images/sq7.png -A OfficeExcel/images/barb4.gif -A OfficeExcel/images/barf1.gif -A OfficeExcel/images/sq9.png -A OfficeExcel/images/barb8.gif -A OfficeExcel/images/download-stable.png -A OfficeExcel/images/analogo.png -A OfficeExcel/images/delicious.png -A OfficeExcel/images/barj2.gif -A OfficeExcel/images/barj4.gif -A OfficeExcel/images/barj8.gif -A OfficeExcel/images/index.html -A OfficeExcel/images/bg.png -A OfficeExcel/images/barc1.png -A OfficeExcel/images/rss_big.png -A OfficeExcel/images/buzz.png -A OfficeExcel/info.txt -A OfficeExcel/404.html -A OfficeExcel/captcha_font_3.gdf -A OfficeExcel/.htaccess -A OfficeExcel/common.php -A OfficeExcel/sample.xml -A OfficeExcel/corner-gauges.png -A OfficeExcel/robots.txt -A OfficeExcel/admin -A OfficeExcel/admin/publicise -A OfficeExcel/admin/publicise/index.php -A OfficeExcel/admin/load -A OfficeExcel/admin/load/index.php -A OfficeExcel/admin/mail.html -A OfficeExcel/admin/comments -A OfficeExcel/admin/comments/comments -A OfficeExcel/admin/comments/comments/index.php -A OfficeExcel/admin/comments/index.php -A OfficeExcel/admin/forum -A OfficeExcel/admin/forum/index.php -A OfficeExcel/admin/config.php -A OfficeExcel/admin/index.php -A OfficeExcel/admin/invoice.html -A OfficeExcel/admin/hosts -A OfficeExcel/admin/hosts/trace.php -A OfficeExcel/admin/hosts/index.html -A OfficeExcel/admin/resellers -A OfficeExcel/admin/resellers/index.php -A OfficeExcel/admin/phpMyAdmin-3.4.3.1-english.tar.gz -A OfficeExcel/admin/mysql -A OfficeExcel/admin/mysql/phpdoctor.ini -A OfficeExcel/admin/mysql/db_printview.php -A OfficeExcel/admin/mysql/phpmyadmin.css.php -A OfficeExcel/admin/mysql/tbl_addfield.php -A OfficeExcel/admin/mysql/server_replication.php -A OfficeExcel/admin/mysql/server_import.php -A OfficeExcel/admin/mysql/scripts -A OfficeExcel/admin/mysql/scripts/upgrade.pl -A OfficeExcel/admin/mysql/scripts/remove-incomplete-mo -A OfficeExcel/admin/mysql/scripts/signon.php -A OfficeExcel/admin/mysql/scripts/upgrade_tables_mysql_4_1_2+.sql -A OfficeExcel/admin/mysql/scripts/openid.php -A OfficeExcel/admin/mysql/scripts/update-po-foreign -A OfficeExcel/admin/mysql/scripts/decode_bug.php -A OfficeExcel/admin/mysql/scripts/convertcfg.pl -A OfficeExcel/admin/mysql/scripts/create_tables.sql -A OfficeExcel/admin/mysql/show_config_errors.php -A OfficeExcel/admin/mysql/tbl_structure.php -A OfficeExcel/admin/mysql/tbl_chart.php -A OfficeExcel/admin/mysql/url.php -A OfficeExcel/admin/mysql/README.VENDOR -A OfficeExcel/admin/mysql/tbl_create.php -A OfficeExcel/admin/mysql/schema_edit.php -A OfficeExcel/admin/mysql/chk_rel.php -A OfficeExcel/admin/mysql/server_export.php -A OfficeExcel/admin/mysql/config.inc.php -A OfficeExcel/admin/mysql/webapp.php -A OfficeExcel/admin/mysql/pmd_save_pos.php -A OfficeExcel/admin/mysql/db_import.php -A OfficeExcel/admin/mysql/tbl_select.php -A OfficeExcel/admin/mysql/main.php -A OfficeExcel/admin/mysql/tbl_operations.php -A OfficeExcel/admin/mysql/pmd_relation_upd.php -A OfficeExcel/admin/mysql/js -A OfficeExcel/admin/mysql/js/jquery -A OfficeExcel/admin/mysql/js/jquery/jquery.json-2.2.js -A OfficeExcel/admin/mysql/js/jquery/jquery-ui-1.8.custom.js -A OfficeExcel/admin/mysql/js/jquery/jquery.qtip-1.0.0.min.js -A OfficeExcel/admin/mysql/js/jquery/timepicker.js -A OfficeExcel/admin/mysql/js/jquery/jquery-1.4.4.js -A OfficeExcel/admin/mysql/js/jquery/jquery.sprintf.js -A OfficeExcel/admin/mysql/js/db_structure.js -A OfficeExcel/admin/mysql/js/config.js -A OfficeExcel/admin/mysql/js/functions.js -A OfficeExcel/admin/mysql/js/replication.js -A OfficeExcel/admin/mysql/js/import.js -A OfficeExcel/admin/mysql/js/db_search.js -A OfficeExcel/admin/mysql/js/tbl_relation.js -A OfficeExcel/admin/mysql/js/tbl_select.js -A OfficeExcel/admin/mysql/js/export.js -A OfficeExcel/admin/mysql/js/messages.php -A OfficeExcel/admin/mysql/js/keyhandler.js -A OfficeExcel/admin/mysql/js/tbl_change.js -A OfficeExcel/admin/mysql/js/db_operations.js -A OfficeExcel/admin/mysql/js/common.js -A OfficeExcel/admin/mysql/js/update-location.js -A OfficeExcel/admin/mysql/js/dom-drag.js -A OfficeExcel/admin/mysql/js/pMap.js -A OfficeExcel/admin/mysql/js/querywindow.js -A OfficeExcel/admin/mysql/js/navigation.js -A OfficeExcel/admin/mysql/js/indexes.js -A OfficeExcel/admin/mysql/js/server_privileges.js -A OfficeExcel/admin/mysql/js/sql.js -A OfficeExcel/admin/mysql/js/server_synchronize.js -A OfficeExcel/admin/mysql/js/tbl_structure.js -A OfficeExcel/admin/mysql/js/cross_framing_protection.js -A OfficeExcel/admin/mysql/Documentation.html -A OfficeExcel/admin/mysql/db_export.php -A OfficeExcel/admin/mysql/tbl_change.php -A OfficeExcel/admin/mysql/prefs_manage.php -A OfficeExcel/admin/mysql/changelog.php -A OfficeExcel/admin/mysql/docs.css -A OfficeExcel/admin/mysql/server_variables.php -A OfficeExcel/admin/mysql/navigation.php -A OfficeExcel/admin/mysql/server_binlog.php -A OfficeExcel/admin/mysql/robots.txt -A OfficeExcel/admin/mysql/tbl_indexes.php -A OfficeExcel/admin/mysql/user_password.php -A OfficeExcel/admin/mysql/schema_export.php -A OfficeExcel/admin/mysql/Documentation.txt -A OfficeExcel/admin/mysql/ChangeLog -A OfficeExcel/admin/mysql/db_sql.php -A OfficeExcel/admin/mysql/tbl_row_action.php -A OfficeExcel/admin/mysql/index.php -A OfficeExcel/admin/mysql/db_tracking.php -A OfficeExcel/admin/mysql/pmd_display_field.php -A OfficeExcel/admin/mysql/tbl_alter.php -A OfficeExcel/admin/mysql/contrib -A OfficeExcel/admin/mysql/contrib/swekey.sample.conf -A OfficeExcel/admin/mysql/contrib/README -A OfficeExcel/admin/mysql/contrib/htaccess -A OfficeExcel/admin/mysql/setup -A OfficeExcel/admin/mysql/setup/validate.php -A OfficeExcel/admin/mysql/setup/scripts.js -A OfficeExcel/admin/mysql/setup/lib -A OfficeExcel/admin/mysql/setup/lib/index.lib.php -A OfficeExcel/admin/mysql/setup/lib/ConfigGenerator.class.php -A OfficeExcel/admin/mysql/setup/lib/common.inc.php -A OfficeExcel/admin/mysql/setup/lib/form_processing.lib.php -A OfficeExcel/admin/mysql/setup/lib/.htaccess -A OfficeExcel/admin/mysql/setup/styles.css -A OfficeExcel/admin/mysql/setup/config.php -A OfficeExcel/admin/mysql/setup/frames -A OfficeExcel/admin/mysql/setup/frames/form.inc.php -A OfficeExcel/admin/mysql/setup/frames/menu.inc.php -A OfficeExcel/admin/mysql/setup/frames/config.inc.php -A OfficeExcel/admin/mysql/setup/frames/index.inc.php -A OfficeExcel/admin/mysql/setup/frames/servers.inc.php -A OfficeExcel/admin/mysql/setup/frames/.htaccess -A OfficeExcel/admin/mysql/setup/index.php -A OfficeExcel/admin/mysql/db_qbe.php -A OfficeExcel/admin/mysql/import_status.php -A OfficeExcel/admin/mysql/config -A OfficeExcel/admin/mysql/db_datadict.php -A OfficeExcel/admin/mysql/prefs_forms.php -A OfficeExcel/admin/mysql/server_sql.php -A OfficeExcel/admin/mysql/tbl_printview.php -A OfficeExcel/admin/mysql/print.css -A OfficeExcel/admin/mysql/view_create.php -A OfficeExcel/admin/mysql/server_privileges.php -A OfficeExcel/admin/mysql/themes -A OfficeExcel/admin/mysql/themes/svg_gradient.php -A OfficeExcel/admin/mysql/themes/pmahomme -A OfficeExcel/admin/mysql/themes/pmahomme/jquery -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-icons_2e83ff_256x240.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_glass_95_fef1ec_1x400.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-icons_888888_256x240.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_glass_75_dadada_1x400.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_flat_75_ffffff_40x100.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_glass_65_ffffff_1x400.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-icons_cd0a0a_256x240.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-icons_454545_256x240.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/images/ui-icons_222222_256x240.png -A OfficeExcel/admin/mysql/themes/pmahomme/jquery/jquery-ui-1.8.custom.css -A OfficeExcel/admin/mysql/themes/pmahomme/screen.png -A OfficeExcel/admin/mysql/themes/pmahomme/css -A OfficeExcel/admin/mysql/themes/pmahomme/css/theme_left.css.php -A OfficeExcel/admin/mysql/themes/pmahomme/css/theme_print.css.php -A OfficeExcel/admin/mysql/themes/pmahomme/css/theme_right.css.php -A OfficeExcel/admin/mysql/themes/pmahomme/info.inc.php -A OfficeExcel/admin/mysql/themes/pmahomme/layout.inc.php -A OfficeExcel/admin/mysql/themes/pmahomme/img -A OfficeExcel/admin/mysql/themes/pmahomme/img/logo_right.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_print.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_sync.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/window-new.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_tblanalyse.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_lastpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_data_selected_hovered.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_notice.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_tblops.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_index.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_prevpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/arrow_rtl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_data.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/tab_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/error.ico -A OfficeExcel/admin/mysql/themes/pmahomme/img/vertical_line.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_rights.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_edit.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_vars.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_empty.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_lastpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_unique.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_struct_selected_hovered.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_prevpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_data_selected.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_docsql.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_reload.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/input_bg.gif -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_sbrowse.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_docs.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_selboard.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_views.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_pdfdoc.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/asc_order.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_relations.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_browse.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_comment.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_tbloptimize.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_props.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_loggoff.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/left_nav_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_usrcheck.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_sdb.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/marked_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_unique.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_tblimport.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/docs_menu_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_theme.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_fulltext.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_firstpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_help.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_replication.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_newtbl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_error2.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_process.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_struct_selected.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_browse.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_db.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_deltbl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/logo_left.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_nextpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_tipp.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/item_ltr.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_usredit.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_insrow.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_export.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_success.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_host.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_sql.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_dbstatistics.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/more.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_more.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/body_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_drop.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_bookmark.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_cancel.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_deltbl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/arrow_ltr.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/spacer.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_views.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_nextpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/tab_hover_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/eye.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_sbrowse.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_insrow.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_primary.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/item.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_ftext.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_chart.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_struct_hovered.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_status.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_usrlist.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_drop.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_error.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_index.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/pma_logo2.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_snewtbl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_select.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_firstpage.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/database_list_li_hover.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_asc.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_cancel2.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_minus.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_info.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_save.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_newdb.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_asci.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_lang.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_empty.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/database.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_close.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_search.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/ajax_clock_small.gif -A OfficeExcel/admin/mysql/themes/pmahomme/img/eye_grey.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_really.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_view.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_partialtext.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_usradd.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/bd_select.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_inline_edit.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_plus.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_tblexport.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_okay.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_struct.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/new_data_hovered.jpg -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_usrdrop.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_desc.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_tbl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_engine.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_sqlhelp.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_calendar.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/tabactive_bg.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_import.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_info.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/php_sym.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/item_rtl.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_passwd.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_primary.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_sqldoc.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/s_attention.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_home.png -A OfficeExcel/admin/mysql/themes/pmahomme/img/b_ftext.png -A OfficeExcel/admin/mysql/themes/original -A OfficeExcel/admin/mysql/themes/original/jquery -A OfficeExcel/admin/mysql/themes/original/jquery/images -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-icons_2e83ff_256x240.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_glass_95_fef1ec_1x400.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-icons_888888_256x240.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_glass_75_dadada_1x400.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_flat_75_ffffff_40x100.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_glass_65_ffffff_1x400.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-icons_cd0a0a_256x240.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-icons_454545_256x240.png -A OfficeExcel/admin/mysql/themes/original/jquery/images/ui-icons_222222_256x240.png -A OfficeExcel/admin/mysql/themes/original/jquery/jquery-ui-1.8.custom.css -A OfficeExcel/admin/mysql/themes/original/screen.png -A OfficeExcel/admin/mysql/themes/original/css -A OfficeExcel/admin/mysql/themes/original/css/theme_left.css.php -A OfficeExcel/admin/mysql/themes/original/css/theme_print.css.php -A OfficeExcel/admin/mysql/themes/original/css/theme_right.css.php -A OfficeExcel/admin/mysql/themes/original/info.inc.php -A OfficeExcel/admin/mysql/themes/original/layout.inc.php -A OfficeExcel/admin/mysql/themes/original/img -A OfficeExcel/admin/mysql/themes/original/img/b_print.png -A OfficeExcel/admin/mysql/themes/original/img/logo_right.png -A OfficeExcel/admin/mysql/themes/original/img/s_sync.png -A OfficeExcel/admin/mysql/themes/original/img/window-new.png -A OfficeExcel/admin/mysql/themes/original/img/b_tblanalyse.png -A OfficeExcel/admin/mysql/themes/original/img/s_host.png -A OfficeExcel/admin/mysql/themes/original/img/b_sql.png -A OfficeExcel/admin/mysql/themes/original/img/b_dbstatistics.png -A OfficeExcel/admin/mysql/themes/original/img/more.png -A OfficeExcel/admin/mysql/themes/original/img/new_data_selected_hovered.jpg -A OfficeExcel/admin/mysql/themes/original/img/b_more.png -A OfficeExcel/admin/mysql/themes/original/img/s_notice.png -A OfficeExcel/admin/mysql/themes/original/img/b_tblops.png -A OfficeExcel/admin/mysql/themes/original/img/b_drop.png -A OfficeExcel/admin/mysql/themes/original/img/b_bookmark.png -A OfficeExcel/admin/mysql/themes/original/img/s_cancel.png -A OfficeExcel/admin/mysql/themes/original/img/b_index.png -A OfficeExcel/admin/mysql/themes/original/img/bd_deltbl.png -A OfficeExcel/admin/mysql/themes/original/img/arrow_rtl.png -A OfficeExcel/admin/mysql/themes/original/img/arrow_ltr.png -A OfficeExcel/admin/mysql/themes/original/img/spacer.png -A OfficeExcel/admin/mysql/themes/original/img/new_data.jpg -A OfficeExcel/admin/mysql/themes/original/img/error.ico -A OfficeExcel/admin/mysql/themes/original/img/s_views.png -A OfficeExcel/admin/mysql/themes/original/img/vertical_line.png -A OfficeExcel/admin/mysql/themes/original/img/eye.png -A OfficeExcel/admin/mysql/themes/original/img/s_rights.png -A OfficeExcel/admin/mysql/themes/original/img/b_sbrowse.png -A OfficeExcel/admin/mysql/themes/original/img/bd_insrow.png -A OfficeExcel/admin/mysql/themes/original/img/b_edit.png -A OfficeExcel/admin/mysql/themes/original/img/bd_primary.png -A OfficeExcel/admin/mysql/themes/original/img/s_vars.png -A OfficeExcel/admin/mysql/themes/original/img/bd_ftext.png -A OfficeExcel/admin/mysql/themes/original/img/b_empty.png -A OfficeExcel/admin/mysql/themes/original/img/b_chart.png -A OfficeExcel/admin/mysql/themes/original/img/new_struct_hovered.jpg -A OfficeExcel/admin/mysql/themes/original/img/s_status.png -A OfficeExcel/admin/mysql/themes/original/img/b_usrlist.png -A OfficeExcel/admin/mysql/themes/original/img/b_unique.png -A OfficeExcel/admin/mysql/themes/original/img/bd_drop.png -A OfficeExcel/admin/mysql/themes/original/img/s_error.png -A OfficeExcel/admin/mysql/themes/original/img/bd_index.png -A OfficeExcel/admin/mysql/themes/original/img/new_struct_selected_hovered.jpg -A OfficeExcel/admin/mysql/themes/original/img/b_snewtbl.png -A OfficeExcel/admin/mysql/themes/original/img/b_select.png -A OfficeExcel/admin/mysql/themes/original/img/new_data_selected.jpg -A OfficeExcel/admin/mysql/themes/original/img/s_asc.png -A OfficeExcel/admin/mysql/themes/original/img/s_reload.png -A OfficeExcel/admin/mysql/themes/original/img/b_docs.png -A OfficeExcel/admin/mysql/themes/original/img/bd_sbrowse.png -A OfficeExcel/admin/mysql/themes/original/img/b_selboard.png -A OfficeExcel/admin/mysql/themes/original/img/b_info.png -A OfficeExcel/admin/mysql/themes/original/img/b_minus.png -A OfficeExcel/admin/mysql/themes/original/img/b_views.png -A OfficeExcel/admin/mysql/themes/original/img/b_save.png -A OfficeExcel/admin/mysql/themes/original/img/b_newdb.png -A OfficeExcel/admin/mysql/themes/original/img/b_relations.png -A OfficeExcel/admin/mysql/themes/original/img/s_asci.png -A OfficeExcel/admin/mysql/themes/original/img/b_browse.png -A OfficeExcel/admin/mysql/themes/original/img/bd_empty.png -A OfficeExcel/admin/mysql/themes/original/img/b_tbloptimize.png -A OfficeExcel/admin/mysql/themes/original/img/b_comment.png -A OfficeExcel/admin/mysql/themes/original/img/s_lang.png -A OfficeExcel/admin/mysql/themes/original/img/b_props.png -A OfficeExcel/admin/mysql/themes/original/img/s_loggoff.png -A OfficeExcel/admin/mysql/themes/original/img/b_search.png -A OfficeExcel/admin/mysql/themes/original/img/b_close.png -A OfficeExcel/admin/mysql/themes/original/img/ajax_clock_small.gif -A OfficeExcel/admin/mysql/themes/original/img/b_usrcheck.png -A OfficeExcel/admin/mysql/themes/original/img/eye_grey.png -A OfficeExcel/admin/mysql/themes/original/img/s_really.png -A OfficeExcel/admin/mysql/themes/original/img/b_view.png -A OfficeExcel/admin/mysql/themes/original/img/bd_unique.png -A OfficeExcel/admin/mysql/themes/original/img/b_tblimport.png -A OfficeExcel/admin/mysql/themes/original/img/b_usradd.png -A OfficeExcel/admin/mysql/themes/original/img/s_partialtext.png -A OfficeExcel/admin/mysql/themes/original/img/b_tblexport.png -A OfficeExcel/admin/mysql/themes/original/img/b_inline_edit.png -A OfficeExcel/admin/mysql/themes/original/img/b_plus.png -A OfficeExcel/admin/mysql/themes/original/img/bd_select.png -A OfficeExcel/admin/mysql/themes/original/img/docs_menu_bg.png -A OfficeExcel/admin/mysql/themes/original/img/s_theme.png -A OfficeExcel/admin/mysql/themes/original/img/b_help.png -A OfficeExcel/admin/mysql/themes/original/img/new_struct.jpg -A OfficeExcel/admin/mysql/themes/original/img/s_fulltext.png -A OfficeExcel/admin/mysql/themes/original/img/new_data_hovered.jpg -A OfficeExcel/admin/mysql/themes/original/img/s_replication.png -A OfficeExcel/admin/mysql/themes/original/img/b_newtbl.png -A OfficeExcel/admin/mysql/themes/original/img/s_error2.png -A OfficeExcel/admin/mysql/themes/original/img/b_usrdrop.png -A OfficeExcel/admin/mysql/themes/original/img/s_desc.png -A OfficeExcel/admin/mysql/themes/original/img/s_process.png -A OfficeExcel/admin/mysql/themes/original/img/new_struct_selected.jpg -A OfficeExcel/admin/mysql/themes/original/img/s_tbl.png -A OfficeExcel/admin/mysql/themes/original/img/bd_browse.png -A OfficeExcel/admin/mysql/themes/original/img/b_engine.png -A OfficeExcel/admin/mysql/themes/original/img/b_deltbl.png -A OfficeExcel/admin/mysql/themes/original/img/s_db.png -A OfficeExcel/admin/mysql/themes/original/img/b_sqlhelp.png -A OfficeExcel/admin/mysql/themes/original/img/b_calendar.png -A OfficeExcel/admin/mysql/themes/original/img/logo_left.png -A OfficeExcel/admin/mysql/themes/original/img/b_import.png -A OfficeExcel/admin/mysql/themes/original/img/b_tipp.png -A OfficeExcel/admin/mysql/themes/original/img/item_ltr.png -A OfficeExcel/admin/mysql/themes/original/img/item_rtl.png -A OfficeExcel/admin/mysql/themes/original/img/b_usredit.png -A OfficeExcel/admin/mysql/themes/original/img/b_export.png -A OfficeExcel/admin/mysql/themes/original/img/b_insrow.png -A OfficeExcel/admin/mysql/themes/original/img/s_passwd.png -A OfficeExcel/admin/mysql/themes/original/img/b_primary.png -A OfficeExcel/admin/mysql/themes/original/img/b_home.png -A OfficeExcel/admin/mysql/themes/original/img/s_success.png -A OfficeExcel/admin/mysql/themes/original/img/b_ftext.png -A OfficeExcel/admin/mysql/server_synchronize.php -A OfficeExcel/admin/mysql/phpinfo.php -A OfficeExcel/admin/mysql/db_structure.php -A OfficeExcel/admin/mysql/CREDITS -A OfficeExcel/admin/mysql/favicon.ico -A OfficeExcel/admin/mysql/db_create.php -A OfficeExcel/admin/mysql/pmd_pdf.php -A OfficeExcel/admin/mysql/server_status.php -A OfficeExcel/admin/mysql/enum_editor.php -A OfficeExcel/admin/mysql/tbl_import.php -A OfficeExcel/admin/mysql/tbl_replace.php -A OfficeExcel/admin/mysql/pmd_general.php -A OfficeExcel/admin/mysql/view_operations.php -A OfficeExcel/admin/mysql/tbl_relation.php -A OfficeExcel/admin/mysql/INSTALL -A OfficeExcel/admin/mysql/tbl_export.php -A OfficeExcel/admin/mysql/bs_play_media.php -A OfficeExcel/admin/mysql/db_operations.php -A OfficeExcel/admin/mysql/pmd -A OfficeExcel/admin/mysql/pmd/styles -A OfficeExcel/admin/mysql/pmd/styles/default -A OfficeExcel/admin/mysql/pmd/styles/default/images -A OfficeExcel/admin/mysql/pmd/styles/default/images/small_tab.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/left_panel_tab.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/1.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/2.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/3.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/4.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/5.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/6.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/7.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/left_panel_butt.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/8.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/Field_small_date.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/Field_small_char.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/Field_small.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/Header_Linked.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/top_panel.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/plus.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/FieldKey_small.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/Field_small_int.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/Header.png -A OfficeExcel/admin/mysql/pmd/styles/default/images/minus.png -A OfficeExcel/admin/mysql/pmd/styles/default/style1.css -A OfficeExcel/admin/mysql/pmd/images -A OfficeExcel/admin/mysql/pmd/images/uparrow2_m.png -A OfficeExcel/admin/mysql/pmd/images/def.png -A OfficeExcel/admin/mysql/pmd/images/save.png -A OfficeExcel/admin/mysql/pmd/images/ang_direct.png -A OfficeExcel/admin/mysql/pmd/images/resize.png -A OfficeExcel/admin/mysql/pmd/images/downarrow1.png -A OfficeExcel/admin/mysql/pmd/images/2leftarrow_m.png -A OfficeExcel/admin/mysql/pmd/images/downarrow2.png -A OfficeExcel/admin/mysql/pmd/images/bottom.png -A OfficeExcel/admin/mysql/pmd/images/reload.png -A OfficeExcel/admin/mysql/pmd/images/display_field.png -A OfficeExcel/admin/mysql/pmd/images/pdf.png -A OfficeExcel/admin/mysql/pmd/images/rightarrow1.png -A OfficeExcel/admin/mysql/pmd/images/and_icon.png -A OfficeExcel/admin/mysql/pmd/images/2rightarrow.png -A OfficeExcel/admin/mysql/pmd/images/rightarrow2.png -A OfficeExcel/admin/mysql/pmd/images/favicon.ico -A OfficeExcel/admin/mysql/pmd/images/query_builder.png -A OfficeExcel/admin/mysql/pmd/images/exec_small.png -A OfficeExcel/admin/mysql/pmd/images/relation.png -A OfficeExcel/admin/mysql/pmd/images/downarrow2_m.png -A OfficeExcel/admin/mysql/pmd/images/exec.png -A OfficeExcel/admin/mysql/pmd/images/grid.png -A OfficeExcel/admin/mysql/pmd/images/help_relation.png -A OfficeExcel/admin/mysql/pmd/images/bord.png -A OfficeExcel/admin/mysql/pmd/images/2rightarrow_m.png -A OfficeExcel/admin/mysql/pmd/images/2leftarrow.png -A OfficeExcel/admin/mysql/pmd/images/table.png -A OfficeExcel/admin/mysql/pmd/images/help.png -A OfficeExcel/admin/mysql/pmd/images/or_icon.png -A OfficeExcel/admin/mysql/pmd/scripts -A OfficeExcel/admin/mysql/pmd/scripts/move.js -A OfficeExcel/admin/mysql/pmd/scripts/iecanvas.js -A OfficeExcel/admin/mysql/pmd/scripts/history.js -A OfficeExcel/admin/mysql/pmd/scripts/ajax.js -A OfficeExcel/admin/mysql/LICENSE -A OfficeExcel/admin/mysql/transformation_overview.php -A OfficeExcel/admin/mysql/server_collations.php -A OfficeExcel/admin/mysql/querywindow.php -A OfficeExcel/admin/mysql/sql.php -A OfficeExcel/admin/mysql/server_processlist.php -A OfficeExcel/admin/mysql/tbl_sql.php -A OfficeExcel/admin/mysql/tbl_move_copy.php -A OfficeExcel/admin/mysql/tbl_tracking.php -A OfficeExcel/admin/mysql/transformation_wrapper.php -A OfficeExcel/admin/mysql/RELEASE-DATE-3.4.3.1 -A OfficeExcel/admin/mysql/README -A OfficeExcel/admin/mysql/import.php -A OfficeExcel/admin/mysql/db_search.php -A OfficeExcel/admin/mysql/server_databases.php -A OfficeExcel/admin/mysql/bs_disp_as_mime_type.php -A OfficeExcel/admin/mysql/server_engines.php -A OfficeExcel/admin/mysql/TODO -A OfficeExcel/admin/mysql/export.php -A OfficeExcel/admin/mysql/license.php -A OfficeExcel/admin/mysql/tbl_get_field.php -A OfficeExcel/admin/mysql/browse_foreigners.php -A OfficeExcel/admin/mysql/themes.php -A OfficeExcel/admin/mysql/pmd_relation_new.php -A OfficeExcel/admin/mysql/libraries -A OfficeExcel/admin/mysql/libraries/tbl_common.php -A OfficeExcel/admin/mysql/libraries/tbl_links.inc.php -A OfficeExcel/admin/mysql/libraries/information_schema_relations.lib.php -A OfficeExcel/admin/mysql/libraries/session.inc.php -A OfficeExcel/admin/mysql/libraries/Error.class.php -A OfficeExcel/admin/mysql/libraries/header_http.inc.php -A OfficeExcel/admin/mysql/libraries/display_change_password.lib.php -A OfficeExcel/admin/mysql/libraries/js_escape.lib.php -A OfficeExcel/admin/mysql/libraries/config.values.php -A OfficeExcel/admin/mysql/libraries/chart.lib.php -A OfficeExcel/admin/mysql/libraries/mysql_charsets.lib.php -A OfficeExcel/admin/mysql/libraries/server_synchronize.lib.php -A OfficeExcel/admin/mysql/libraries/header_printview.inc.php -A OfficeExcel/admin/mysql/libraries/user_preferences.inc.php -A OfficeExcel/admin/mysql/libraries/db_info.inc.php -A OfficeExcel/admin/mysql/libraries/sqlvalidator.class.php -A OfficeExcel/admin/mysql/libraries/db_structure.lib.php -A OfficeExcel/admin/mysql/libraries/bookmark.lib.php -A OfficeExcel/admin/mysql/libraries/tbl_replace_fields.inc.php -A OfficeExcel/admin/mysql/libraries/chart -A OfficeExcel/admin/mysql/libraries/chart/pChart -A OfficeExcel/admin/mysql/libraries/chart/pChart/pChart.class -A OfficeExcel/admin/mysql/libraries/chart/pChart/pCache.class -A OfficeExcel/admin/mysql/libraries/chart/pChart/fonts -A OfficeExcel/admin/mysql/libraries/chart/pChart/fonts/DejaVuSans.ttf -A OfficeExcel/admin/mysql/libraries/chart/pChart/fonts/LICENSE -A OfficeExcel/admin/mysql/libraries/chart/pChart/fonts/README -A OfficeExcel/admin/mysql/libraries/chart/pChart/pData.class -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_pie.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_multi_bar.php -A OfficeExcel/admin/mysql/libraries/chart/pma_chart.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_chart.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_multi_line.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_single.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_stacked_bar.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_multi_radar.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_single_bar.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_single_line.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_multi.php -A OfficeExcel/admin/mysql/libraries/chart/pma_pchart_single_radar.php -A OfficeExcel/admin/mysql/libraries/Partition.class.php -A OfficeExcel/admin/mysql/libraries/blowfish.php -A OfficeExcel/admin/mysql/libraries/server_links.inc.php -A OfficeExcel/admin/mysql/libraries/List.class.php -A OfficeExcel/admin/mysql/libraries/string_type_ctype.lib.php -A OfficeExcel/admin/mysql/libraries/db_events.inc.php -A OfficeExcel/admin/mysql/libraries/replication_gui.lib.php -A OfficeExcel/admin/mysql/libraries/relation_cleanup.lib.php -A OfficeExcel/admin/mysql/libraries/Table.class.php -A OfficeExcel/admin/mysql/libraries/cleanup.lib.php -A OfficeExcel/admin/mysql/libraries/error.inc.php -A OfficeExcel/admin/mysql/libraries/List_Database.class.php -A OfficeExcel/admin/mysql/libraries/build_html_for_db.lib.php -A OfficeExcel/admin/mysql/libraries/zip_extension.lib.php -A OfficeExcel/admin/mysql/libraries/user_preferences.lib.php -A OfficeExcel/admin/mysql/libraries/ob.lib.php -A OfficeExcel/admin/mysql/libraries/tbl_properties.inc.php -A OfficeExcel/admin/mysql/libraries/display_select_lang.lib.php -A OfficeExcel/admin/mysql/libraries/schema -A OfficeExcel/admin/mysql/libraries/schema/Pdf_Relation_Schema.class.php -A OfficeExcel/admin/mysql/libraries/schema/Visio_Relation_Schema.class.php -A OfficeExcel/admin/mysql/libraries/schema/Dia_Relation_Schema.class.php -A OfficeExcel/admin/mysql/libraries/schema/Svg_Relation_Schema.class.php -A OfficeExcel/admin/mysql/libraries/schema/Export_Relation_Schema.class.php -A OfficeExcel/admin/mysql/libraries/schema/User_Schema.class.php -A OfficeExcel/admin/mysql/libraries/schema/Eps_Relation_Schema.class.php -A OfficeExcel/admin/mysql/libraries/sqlvalidator.lib.php -A OfficeExcel/admin/mysql/libraries/tcpdf -A OfficeExcel/admin/mysql/libraries/tcpdf/LICENSE.TXT -A OfficeExcel/admin/mysql/libraries/tcpdf/tcpdf.p12 -A OfficeExcel/admin/mysql/libraries/tcpdf/cache -A OfficeExcel/admin/mysql/libraries/tcpdf/cache/table_data_demo.txt -A OfficeExcel/admin/mysql/libraries/tcpdf/cache/utf8test.txt -A OfficeExcel/admin/mysql/libraries/tcpdf/cache/chapter_demo_1.txt -A OfficeExcel/admin/mysql/libraries/tcpdf/cache/chapter_demo_2.txt -A OfficeExcel/admin/mysql/libraries/tcpdf/CHANGELOG.TXT -A OfficeExcel/admin/mysql/libraries/tcpdf/config -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/urd.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/mlt.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/heb.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/hrv.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/zho.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/bel.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/dan.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/slv.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/srp.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/cat.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/ces.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/mkd.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/hat.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/ger.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/nob.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/kat.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/msa.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/hye.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/yid.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/cym.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/pol.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/hun.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/swa.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/kor.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/est.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/eus.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/sqi.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/ron.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/swe.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/por.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/ara.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/chi.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/bra.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/gle.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/afr.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/fra.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/glg.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/eng.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/rus.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/ind.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/nld.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/ita.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/aze.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/lang/spa.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/tcpdf_config.php -A OfficeExcel/admin/mysql/libraries/tcpdf/config/tcpdf_config_alt.php -A OfficeExcel/admin/mysql/libraries/tcpdf/unicode_data.php -A OfficeExcel/admin/mysql/libraries/tcpdf/tcpdf.php -A OfficeExcel/admin/mysql/libraries/tcpdf/tcpdf.crt -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavuserif.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/timesi.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavuserifb.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavu-fonts-ttf-2.32 -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavu-fonts-ttf-2.32/LICENSE -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavu-fonts-ttf-2.32/README -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/timesbi.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavusans.ctg.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavusansb.ctg.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavusans.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/helvetica.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavuserif.ctg.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavusansb.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/symbol.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/helveticab.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavuserifb.ctg.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavuserif.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/courier.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavuserifb.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/courierb.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/zapfdingbats.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/helveticai.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/helveticabi.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/courieri.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/times.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/courierbi.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/timesb.php -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavusans.z -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/README.TXT -A OfficeExcel/admin/mysql/libraries/tcpdf/fonts/dejavusansb.z -A OfficeExcel/admin/mysql/libraries/tcpdf/README.TXT -A OfficeExcel/admin/mysql/libraries/tcpdf/htmlcolors.php -A OfficeExcel/admin/mysql/libraries/tcpdf/spotcolors.php -A OfficeExcel/admin/mysql/libraries/tcpdf/tcpdf.fdf -A OfficeExcel/admin/mysql/libraries/display_tbl.lib.php -A OfficeExcel/admin/mysql/libraries/Index.class.php -A OfficeExcel/admin/mysql/libraries/string.lib.php -A OfficeExcel/admin/mysql/libraries/PMA.php -A OfficeExcel/admin/mysql/libraries/import.lib.php -A OfficeExcel/admin/mysql/libraries/config -A OfficeExcel/admin/mysql/libraries/config/ConfigFile.class.php -A OfficeExcel/admin/mysql/libraries/config/FormDisplay.class.php -A OfficeExcel/admin/mysql/libraries/config/validate.lib.php -A OfficeExcel/admin/mysql/libraries/config/messages.inc.php -A OfficeExcel/admin/mysql/libraries/config/config_functions.lib.php -A OfficeExcel/admin/mysql/libraries/config/user_preferences.forms.php -A OfficeExcel/admin/mysql/libraries/config/setup.forms.php -A OfficeExcel/admin/mysql/libraries/config/Form.class.php -A OfficeExcel/admin/mysql/libraries/config/FormDisplay.tpl.php -A OfficeExcel/admin/mysql/libraries/string_native.lib.php -A OfficeExcel/admin/mysql/libraries/PHPExcel -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell/IValueBinder.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell/DataType.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell/DataValidation.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell/DefaultValueBinder.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell/Hyperlink.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell/AdvancedValueBinder.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/RichText.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/HashTable.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/DocumentProperties.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/DiscISAM.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/ICache.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/PHPTemp.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/CacheBase.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/Wincache.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/Memcache.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/MemoryGZip.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/APC.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/MemorySerialized.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorage/Memory.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/ReferenceHelper.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/IOFactory.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Autoloader.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Settings.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/NamedRange.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Comment.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/RichText -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/RichText/TextElement.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/RichText/Run.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/RichText/ITextElement.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/DocumentSecurity.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Engineering.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/ExceptionHandler.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/DateTime.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Exception.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Database.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/LookupRef.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/FormulaToken.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Functions.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/functionlist.txt -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Logical.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/TextData.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/MathTrig.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/FormulaParser.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Statistical.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Financial.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Calculation/Function.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Border.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Alignment.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Color.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Borders.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/NumberFormat.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Conditional.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Fill.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Font.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Style/Protection.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/CachedObjectStorageFactory.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel2007.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Gnumeric.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/IReadFilter.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/CSV.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/IReader.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel5 -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel5/Escher.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/OOCalc.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/SYLK.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel2007 -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel2007/Theme.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel5.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/DefaultReadFilter.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Reader/Excel2003XML.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/IComparable.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Cell.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE/PPS -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE/PPS/File.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE/PPS/Root.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE/ChainedBlockStream.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE/PPS.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Drawing.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/XMLWriter.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/PasswordHasher.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/ZipArchive.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/String.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Font.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/CodePage.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/PCLZip -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/PCLZip/readme.txt -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/PCLZip/pclzip.lib.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLERead.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Date.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/OLE.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/File.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/ZipStreamWrapper.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/utils -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/utils/Error.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/utils/Maths.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/LUDecomposition.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/CholeskyDecomposition.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/SingularValueDecomposition.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/CHANGELOG.TXT -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/QRDecomposition.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/JAMA/Matrix.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DgContainer.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DggContainer.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DgContainer -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/Excel5.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/logarithmicBestFitClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/polynomialBestFitClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/exponentialBestFitClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/linearBestFitClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/trendClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/powerBestFitClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Shared/trend/bestFitClass.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/CellIterator.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/Drawing.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/PageMargins.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/PageSetup.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/RowDimension.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/RowIterator.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/ColumnDimension.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/HeaderFooterDrawing.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/SheetView.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/MemoryDrawing.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/Drawing -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/Drawing/Shadow.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/BaseDrawing.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/Protection.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/HeaderFooter.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Worksheet/Row.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/WorksheetIterator.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/PDF.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/CSV.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5 -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/Escher.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/Worksheet.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/Parser.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/Workbook.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/Xf.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/BIFFwriter.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5/Font.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007 -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/DocProps.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Drawing.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Worksheet.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Workbook.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/StringTable.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/ContentTypes.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Style.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Theme.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/WriterPart.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Comments.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel2007/Rels.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/HTML.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/Excel5.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel/Writer/IWriter.php -A OfficeExcel/admin/mysql/libraries/PHPExcel/PHPExcel.php -A OfficeExcel/admin/mysql/libraries/vendor_config.php -A OfficeExcel/admin/mysql/libraries/plugin_interface.lib.php -A OfficeExcel/admin/mysql/libraries/server_variables_doc.php -A OfficeExcel/admin/mysql/libraries/import -A OfficeExcel/admin/mysql/libraries/import/csv.php -A OfficeExcel/admin/mysql/libraries/import/upload -A OfficeExcel/admin/mysql/libraries/import/upload/uploadprogress.php -A OfficeExcel/admin/mysql/libraries/import/upload/noplugin.php -A OfficeExcel/admin/mysql/libraries/import/upload/apc.php -A OfficeExcel/admin/mysql/libraries/import/xlsx.php -A OfficeExcel/admin/mysql/libraries/import/sql.php -A OfficeExcel/admin/mysql/libraries/import/xml.php -A OfficeExcel/admin/mysql/libraries/import/docsql.php -A OfficeExcel/admin/mysql/libraries/import/ods.php -A OfficeExcel/admin/mysql/libraries/import/xls.php -A OfficeExcel/admin/mysql/libraries/import/README -A OfficeExcel/admin/mysql/libraries/import/ldi.php -A OfficeExcel/admin/mysql/libraries/sqlparser.data.php -A OfficeExcel/admin/mysql/libraries/database_interface.lib.php -A OfficeExcel/admin/mysql/libraries/Error_Handler.class.php -A OfficeExcel/admin/mysql/libraries/export -A OfficeExcel/admin/mysql/libraries/export/csv.php -A OfficeExcel/admin/mysql/libraries/export/xlsx.php -A OfficeExcel/admin/mysql/libraries/export/texytext.php -A OfficeExcel/admin/mysql/libraries/export/sql.php -A OfficeExcel/admin/mysql/libraries/export/xml.php -A OfficeExcel/admin/mysql/libraries/export/htmlword.php -A OfficeExcel/admin/mysql/libraries/export/excel.php -A OfficeExcel/admin/mysql/libraries/export/yaml.php -A OfficeExcel/admin/mysql/libraries/export/mediawiki.php -A OfficeExcel/admin/mysql/libraries/export/codegen.php -A OfficeExcel/admin/mysql/libraries/export/xls.php -A OfficeExcel/admin/mysql/libraries/export/pdf.php -A OfficeExcel/admin/mysql/libraries/export/json.php -A OfficeExcel/admin/mysql/libraries/export/latex.php -A OfficeExcel/admin/mysql/libraries/export/php_array.php -A OfficeExcel/admin/mysql/libraries/export/ods.php -A OfficeExcel/admin/mysql/libraries/export/odt.php -A OfficeExcel/admin/mysql/libraries/tbl_triggers.lib.php -A OfficeExcel/admin/mysql/libraries/db_links.inc.php -A OfficeExcel/admin/mysql/libraries/core.lib.php -A OfficeExcel/admin/mysql/libraries/mult_submits.inc.php -A OfficeExcel/admin/mysql/libraries/header.inc.php -A OfficeExcel/admin/mysql/libraries/db_table_exists.lib.php -A OfficeExcel/admin/mysql/libraries/Theme_Manager.class.php -A OfficeExcel/admin/mysql/libraries/common.inc.php -A OfficeExcel/admin/mysql/libraries/parse_analyze.lib.php -A OfficeExcel/admin/mysql/libraries/display_import.lib.php -A OfficeExcel/admin/mysql/libraries/tbl_info.inc.php -A OfficeExcel/admin/mysql/libraries/opendocument.lib.php -A OfficeExcel/admin/mysql/libraries/header_scripts.inc.php -A OfficeExcel/admin/mysql/libraries/display_import_ajax.lib.php -A OfficeExcel/admin/mysql/libraries/check_user_privileges.lib.php -A OfficeExcel/admin/mysql/libraries/language_stats.inc.php -A OfficeExcel/admin/mysql/libraries/url_generating.lib.php -A OfficeExcel/admin/mysql/libraries/display_export.lib.php -A OfficeExcel/admin/mysql/libraries/auth -A OfficeExcel/admin/mysql/libraries/auth/config.auth.lib.php -A OfficeExcel/admin/mysql/libraries/auth/cookie.auth.lib.php -A OfficeExcel/admin/mysql/libraries/auth/swekey -A OfficeExcel/admin/mysql/libraries/auth/swekey/swekey.auth.lib.php -A OfficeExcel/admin/mysql/libraries/auth/swekey/musbe-ca.crt -A OfficeExcel/admin/mysql/libraries/auth/swekey/authentication.inc.php -A OfficeExcel/admin/mysql/libraries/auth/swekey/swekey.php -A OfficeExcel/admin/mysql/libraries/auth/signon.auth.lib.php -A OfficeExcel/admin/mysql/libraries/auth/http.auth.lib.php -A OfficeExcel/admin/mysql/libraries/navigation_header.inc.php -A OfficeExcel/admin/mysql/libraries/display_create_database.lib.php -A OfficeExcel/admin/mysql/libraries/replication.inc.php -A OfficeExcel/admin/mysql/libraries/sqlparser.lib.php -A OfficeExcel/admin/mysql/libraries/string_type_native.lib.php -A OfficeExcel/admin/mysql/libraries/iconv_wrapper.lib.php -A OfficeExcel/admin/mysql/libraries/File.class.php -A OfficeExcel/admin/mysql/libraries/sanitizing.lib.php -A OfficeExcel/admin/mysql/libraries/db_routines.inc.php -A OfficeExcel/admin/mysql/libraries/.htaccess -A OfficeExcel/admin/mysql/libraries/server_common.inc.php -A OfficeExcel/admin/mysql/libraries/string_mb.lib.php -A OfficeExcel/admin/mysql/libraries/ip_allow_deny.lib.php -A OfficeExcel/admin/mysql/libraries/logging.lib.php -A OfficeExcel/admin/mysql/libraries/mime.lib.php -A OfficeExcel/admin/mysql/libraries/blobstreaming.lib.php -A OfficeExcel/admin/mysql/libraries/common.lib.php -A OfficeExcel/admin/mysql/libraries/StorageEngine.class.php -A OfficeExcel/admin/mysql/libraries/transformations.lib.php -A OfficeExcel/admin/mysql/libraries/Tracker.class.php -A OfficeExcel/admin/mysql/libraries/engines -A OfficeExcel/admin/mysql/libraries/engines/mrg_myisam.lib.php -A OfficeExcel/admin/mysql/libraries/engines/ndbcluster.lib.php -A OfficeExcel/admin/mysql/libraries/engines/bdb.lib.php -A OfficeExcel/admin/mysql/libraries/engines/berkeleydb.lib.php -A OfficeExcel/admin/mysql/libraries/engines/memory.lib.php -A OfficeExcel/admin/mysql/libraries/engines/innodb.lib.php -A OfficeExcel/admin/mysql/libraries/engines/binlog.lib.php -A OfficeExcel/admin/mysql/libraries/engines/pbxt.lib.php -A OfficeExcel/admin/mysql/libraries/engines/innobase.lib.php -A OfficeExcel/admin/mysql/libraries/engines/merge.lib.php -A OfficeExcel/admin/mysql/libraries/engines/myisam.lib.php -A OfficeExcel/admin/mysql/libraries/engines/pbms.lib.php -A OfficeExcel/admin/mysql/libraries/charset_conversion.lib.php -A OfficeExcel/admin/mysql/libraries/transformations -A OfficeExcel/admin/mysql/libraries/transformations/image_png__inline.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__link.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/image_jpeg__inline.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__sql.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__imagelink.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/TEMPLATE_MIMETYPE -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__longToIpv4.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/template_generator.sh -A OfficeExcel/admin/mysql/libraries/transformations/README -A OfficeExcel/admin/mysql/libraries/transformations/global.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/generator.sh -A OfficeExcel/admin/mysql/libraries/transformations/image_jpeg__link.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/application_octetstream__download.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/template_generator_mimetype.sh -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__external.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__substr.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__formatted.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/text_plain__dateformat.inc.php -A OfficeExcel/admin/mysql/libraries/transformations/TEMPLATE -A OfficeExcel/admin/mysql/libraries/transformations/application_octetstream__hex.inc.php -A OfficeExcel/admin/mysql/libraries/display_create_table.lib.php -A OfficeExcel/admin/mysql/libraries/db_common.inc.php -A OfficeExcel/admin/mysql/libraries/footer.inc.php -A OfficeExcel/admin/mysql/libraries/Theme.class.php -A OfficeExcel/admin/mysql/libraries/zip.lib.php -A OfficeExcel/admin/mysql/libraries/file_listing.php -A OfficeExcel/admin/mysql/libraries/dbi -A OfficeExcel/admin/mysql/libraries/dbi/mysqli.dbi.lib.php -A OfficeExcel/admin/mysql/libraries/dbi/mysql.dbi.lib.php -A OfficeExcel/admin/mysql/libraries/Config.class.php -A OfficeExcel/admin/mysql/libraries/select_server.lib.php -A OfficeExcel/admin/mysql/libraries/sql_query_form.lib.php -A OfficeExcel/admin/mysql/libraries/relation.lib.php -A OfficeExcel/admin/mysql/libraries/grab_globals.lib.php -A OfficeExcel/admin/mysql/libraries/php-gettext -A OfficeExcel/admin/mysql/libraries/php-gettext/streams.php -A OfficeExcel/admin/mysql/libraries/php-gettext/gettext.php -A OfficeExcel/admin/mysql/libraries/php-gettext/gettext.inc -A OfficeExcel/admin/mysql/libraries/kanji-encoding.lib.php -A OfficeExcel/admin/mysql/libraries/select_lang.lib.php -A OfficeExcel/admin/mysql/libraries/header_meta_style.inc.php -A OfficeExcel/admin/mysql/libraries/Message.class.php -A OfficeExcel/admin/mysql/libraries/config.default.php -A OfficeExcel/admin/mysql/pmd_help.php -A OfficeExcel/admin/mysql/pmd_common.php -A OfficeExcel/admin/licenses -A OfficeExcel/admin/licenses/multi.php -A OfficeExcel/admin/licenses/statistics.php -A OfficeExcel/admin/licenses/reports.php -A OfficeExcel/admin/licenses/index.html -A OfficeExcel/admin/licenses/index.php -A OfficeExcel/admin/articles -A OfficeExcel/admin/articles/index.html -A OfficeExcel/admin/.htaccess -A OfficeExcel/admin/news -A OfficeExcel/admin/news/iframe.php -A OfficeExcel/admin/news/index.php -A OfficeExcel/admin/lib_auth.php -A OfficeExcel/admin/zphpMyAdmin.old -A OfficeExcel/admin/zphpMyAdmin.old/pdf_schema.php -A OfficeExcel/admin/zphpMyAdmin.old/db_details_links.php -A OfficeExcel/admin/zphpMyAdmin.old/db_printview.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_addfield.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties.php -A OfficeExcel/admin/zphpMyAdmin.old/scripts -A OfficeExcel/admin/zphpMyAdmin.old/scripts/remove_control_m.sh -A OfficeExcel/admin/zphpMyAdmin.old/scripts/check_lang.php -A OfficeExcel/admin/zphpMyAdmin.old/scripts/decode_bug.php -A OfficeExcel/admin/zphpMyAdmin.old/scripts/convertcfg.pl -A OfficeExcel/admin/zphpMyAdmin.old/scripts/create-release.sh -A OfficeExcel/admin/zphpMyAdmin.old/scripts/create_tables.sql -A OfficeExcel/admin/zphpMyAdmin.old/scripts/extchg.sh -A OfficeExcel/admin/zphpMyAdmin.old/scripts/inno2pma.sh -A OfficeExcel/admin/zphpMyAdmin.old/tbl_create.php -A OfficeExcel/admin/zphpMyAdmin.old/ldi_check.php -A OfficeExcel/admin/zphpMyAdmin.old/server_export.php -A OfficeExcel/admin/zphpMyAdmin.old/chk_rel.php -A OfficeExcel/admin/zphpMyAdmin.old/header_printview.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/config.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/server_links.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_select.php -A OfficeExcel/admin/zphpMyAdmin.old/main.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_change.php -A OfficeExcel/admin/zphpMyAdmin.old/Documentation.html -A OfficeExcel/admin/zphpMyAdmin.old/docs.css -A OfficeExcel/admin/zphpMyAdmin.old/translators.html -A OfficeExcel/admin/zphpMyAdmin.old/db_details.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_row_delete.php -A OfficeExcel/admin/zphpMyAdmin.old/lang -A OfficeExcel/admin/zphpMyAdmin.old/lang/basque-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/italian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/italian-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/arabic-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/latvian-windows-1257.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/serbian_latin-windows-1250.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/thai-tis-620.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/indonesian-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/english-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/english-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/serbian_cyrillic-windows-1251.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/japanese-sjis.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/georgian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/czech-iso-8859-2.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/polish-iso-8859-2.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/persian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/portuguese-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/malay-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/bosnian-windows-1250.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/spanish-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/spanish-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/danish-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/swedish-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/galician-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/dutch-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/slovak-windows-1250.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/azerbaijani-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/bulgarian-windows-1251.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/ukrainian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/chinese_gb-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/russian-dos-866.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/sync_lang.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/czech-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/lithuanian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/greek-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/brazilian_portuguese-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/brazilian_portuguese-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/finnish-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/slovenian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/japanese-euc.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/afrikaans-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/slovak-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/russian-windows-1251.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/sort_lang.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/greek-iso-8859-7.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/arabic-windows-1256.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/catalan-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/romanian-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/danish-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/add_message.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/bulgarian-koi8-r.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/slovenian-windows-1250.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/korean-ks_c_5601-1987.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/croatian-windows-1250.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/hungarian-iso-8859-2.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/estonian-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/persian-windows-1256.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/chinese_big5-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/chinese_gb.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/thai-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/indonesian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/norwegian-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/norwegian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/russian-koi8-r.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/finnish-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/ukrainian-windows-1251.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/slovenian-iso-8859-2.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/croatian-iso-8859-2.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/malay-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/bulgarian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/romanian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/galician-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/dutch-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/remove_message.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/hungarian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/serbian_cyrillic-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/estonian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/basque-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/translatecount.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/chinese_big5.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/russian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/japanese-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/azerbaijani-iso-8859-9.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/check_lang.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/bosnian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/turkish-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/hindi-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/latvian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/polish-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/afrikaans-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/croatian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/slovak-iso-8859-2.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/turkish-iso-8859-9.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/portuguese-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/catalan-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/french-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/french-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/albanian-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/albanian-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/add_message_file.sh -A OfficeExcel/admin/zphpMyAdmin.old/lang/swedish-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/czech-windows-1250.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/hebrew-iso-8859-8-i.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/german-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/german-iso-8859-1.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/serbian_latin-utf-8.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/lang/lithuanian-windows-1257.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/db_details_export.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties_links.php -A OfficeExcel/admin/zphpMyAdmin.old/server_variables.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties_export.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_indexes.php -A OfficeExcel/admin/zphpMyAdmin.old/user_password.php -A OfficeExcel/admin/zphpMyAdmin.old/Documentation.txt -A OfficeExcel/admin/zphpMyAdmin.old/ChangeLog -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/index.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_alter.php -A OfficeExcel/admin/zphpMyAdmin.old/db_details_structure.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_query_box.php -A OfficeExcel/admin/zphpMyAdmin.old/queryframe.php -A OfficeExcel/admin/zphpMyAdmin.old/db_datadict.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_printview.php -A OfficeExcel/admin/zphpMyAdmin.old/server_privileges.php -A OfficeExcel/admin/zphpMyAdmin.old/mult_submits.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/header.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/db_details_common.php -A OfficeExcel/admin/zphpMyAdmin.old/phpinfo.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties_common.php -A OfficeExcel/admin/zphpMyAdmin.old/CREDITS -A OfficeExcel/admin/zphpMyAdmin.old/db_create.php -A OfficeExcel/admin/zphpMyAdmin.old/server_status.php -A OfficeExcel/admin/zphpMyAdmin.old/db_details_db_info.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_replace.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties_structure.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_relation.php -A OfficeExcel/admin/zphpMyAdmin.old/ldi_table.php -A OfficeExcel/admin/zphpMyAdmin.old/images -A OfficeExcel/admin/zphpMyAdmin.old/images/button_nodrop.png -A OfficeExcel/admin/zphpMyAdmin.old/images/pma_logo.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_unique.png -A OfficeExcel/admin/zphpMyAdmin.old/images/asc_order.png -A OfficeExcel/admin/zphpMyAdmin.old/images/browse.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_fulltext.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_select.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_noprimary.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_primary.png -A OfficeExcel/admin/zphpMyAdmin.old/images/vertical_line.png -A OfficeExcel/admin/zphpMyAdmin.old/images/plus.png -A OfficeExcel/admin/zphpMyAdmin.old/images/minus.png -A OfficeExcel/admin/zphpMyAdmin.old/images/arrow_ltr.gif -A OfficeExcel/admin/zphpMyAdmin.old/images/arrow_rtl.gif -A OfficeExcel/admin/zphpMyAdmin.old/images/button_browse.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_nounique.png -A OfficeExcel/admin/zphpMyAdmin.old/images/spacer.gif -A OfficeExcel/admin/zphpMyAdmin.old/images/button_noindex.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_nofulltext.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_drop.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_insert.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_bookmark.png -A OfficeExcel/admin/zphpMyAdmin.old/images/partialtext.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_index.png -A OfficeExcel/admin/zphpMyAdmin.old/images/Thumbs.db -A OfficeExcel/admin/zphpMyAdmin.old/images/fulltext.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_noselect.png -A OfficeExcel/admin/zphpMyAdmin.old/images/desc_order.png -A OfficeExcel/admin/zphpMyAdmin.old/images/item_rtl.png -A OfficeExcel/admin/zphpMyAdmin.old/images/item_ltr.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_edit.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_smallbrowse.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_noempty.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_properties.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_empty.png -A OfficeExcel/admin/zphpMyAdmin.old/images/button_nobrowse.png -A OfficeExcel/admin/zphpMyAdmin.old/INSTALL -A OfficeExcel/admin/zphpMyAdmin.old/db_details_qbe.php -A OfficeExcel/admin/zphpMyAdmin.old/server_common.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/left.php -A OfficeExcel/admin/zphpMyAdmin.old/db_details_importdocsql.php -A OfficeExcel/admin/zphpMyAdmin.old/LICENSE -A OfficeExcel/admin/zphpMyAdmin.old/server_collations.php -A OfficeExcel/admin/zphpMyAdmin.old/querywindow.php -A OfficeExcel/admin/zphpMyAdmin.old/sql.php -A OfficeExcel/admin/zphpMyAdmin.old/server_processlist.php -A OfficeExcel/admin/zphpMyAdmin.old/read_dump.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties_operations.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_move_copy.php -A OfficeExcel/admin/zphpMyAdmin.old/css -A OfficeExcel/admin/zphpMyAdmin.old/css/phpmyadmin.css.php -A OfficeExcel/admin/zphpMyAdmin.old/tbl_replace_fields.php -A OfficeExcel/admin/zphpMyAdmin.old/RELEASE-DATE-2.5.5-pl1 -A OfficeExcel/admin/zphpMyAdmin.old/footer.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/transformation_wrapper.php -A OfficeExcel/admin/zphpMyAdmin.old/README -A OfficeExcel/admin/zphpMyAdmin.old/tbl_rename.php -A OfficeExcel/admin/zphpMyAdmin.old/db_search.php -A OfficeExcel/admin/zphpMyAdmin.old/server_databases.php -A OfficeExcel/admin/zphpMyAdmin.old/TODO -A OfficeExcel/admin/zphpMyAdmin.old/tbl_properties_table_info.php -A OfficeExcel/admin/zphpMyAdmin.old/export.php -A OfficeExcel/admin/zphpMyAdmin.old/browse_foreigners.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries -A OfficeExcel/admin/zphpMyAdmin.old/libraries/export -A OfficeExcel/admin/zphpMyAdmin.old/libraries/export/csv.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/export/latex.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/export/sql.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/export/xml.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/mysql_wrappers.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/header_http.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/db_table_exists.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/config_import.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/mysql_charsets.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/sqlvalidator.class.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/bookmark.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/url_generating.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/auth -A OfficeExcel/admin/zphpMyAdmin.old/libraries/auth/config.auth.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/auth/cookie.auth.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/auth/http.auth.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/display_export.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/display_tbl_links.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/tbl_change.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/blowfish.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/left.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/db_config.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/sqlparser.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/server_privileges.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/user_password.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/relation_cleanup.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/fpdf.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/tahoma.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/timesi.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/tahomab.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/timesbi.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/zapfdingbats.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/helveticai.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/helveticabi.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/times.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/timesb.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/helvetica.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/symbol.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/helveticab.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/font/courier.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/fpdf/README -A OfficeExcel/admin/zphpMyAdmin.old/libraries/ip_allow_deny.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/get_foreign.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/functions.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/common.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/charset_conversion.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/image_png__inline.inc.php0000644 -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/text_plain__link.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/image_jpeg__inline.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/text_plain__imagelink.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/TEMPLATE_MIMETYPE -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/template_generator.sh -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/overview.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/README -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/global.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/generator.sh -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/image_jpeg__link.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/template_generator_mimetype.sh -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/text_plain__external.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/text_plain__substr.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/text_plain__formatted.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/text_plain__dateformat.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/transformations/TEMPLATE -A OfficeExcel/admin/zphpMyAdmin.old/libraries/read_dump.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/ob.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/dbg -A OfficeExcel/admin/zphpMyAdmin.old/libraries/dbg/profiling.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/dbg/setup.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/defines_mysql.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/zip.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/sqlvalidator.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/display_tbl.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/string.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/dom-drag.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/relation.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/defines.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/grab_globals.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/indexes.js -A OfficeExcel/admin/zphpMyAdmin.old/libraries/sqlparser.data.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/kanji-encoding.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/select_lang.lib.php -A OfficeExcel/admin/zphpMyAdmin.old/libraries/header_meta_style.inc.php -A OfficeExcel/admin/zphpMyAdmin.old/pdf_pages.php -A OfficeExcel/analog.css -A OfficeExcel/backups -A OfficeExcel/backups/OfficeExcel.rose.js.bak -A OfficeExcel/backups/OfficeExcel.pie.js.old -A OfficeExcel/css -A OfficeExcel/css/common.css -A OfficeExcel/css/ModalDialog.css -A OfficeExcel/css/website.css -A OfficeExcel/css/index.html -A OfficeExcel/css/.htaccess -A OfficeExcel/testimonial.html -A OfficeExcel/librariesOfficeExcel.rose.js.bak -A OfficeExcel/video.webm -A OfficeExcel/screenshots -A OfficeExcel/screenshots/led.png -A OfficeExcel/screenshots/bar.png -A OfficeExcel/screenshots/scatter.png -A OfficeExcel/screenshots/rose.png -A OfficeExcel/screenshots/meter.png -A OfficeExcel/screenshots/hprogress.png -A OfficeExcel/screenshots/hbar.png -A OfficeExcel/screenshots/tradar.png -A OfficeExcel/screenshots/pie.png -A OfficeExcel/screenshots/gantt.png -A OfficeExcel/screenshots/odo.png -A OfficeExcel/screenshots/rscatter.png -A OfficeExcel/screenshots/line.png -A OfficeExcel/screenshots/funnel.png -A OfficeExcel/screenshots/bipolar.png -A OfficeExcel/screenshots/donut.png -A OfficeExcel/screenshots/vprogress.png -A OfficeExcel/sitemap.xml -A OfficeExcel/documents -A OfficeExcel/documents/PG-invoice.html -A OfficeExcel/releases.xml -A OfficeExcel/entry.html -A OfficeExcel/potential-faqs.txt -A OfficeExcel/captcha.html -A OfficeExcel/favicon.png -A OfficeExcel/excanvas -A OfficeExcel/excanvas/EXCANVAS-LICENSE.txt -A OfficeExcel/excanvas/excanvas.compressed.js -A OfficeExcel/excanvas/excanvas.original.js -A OfficeExcel/excanvas/.htaccess -A OfficeExcel/excanvas/HTACCESS-SAMPLE -A OfficeExcel/index.html -A OfficeExcel/libraries -A OfficeExcel/libraries/OfficeExcel.skeleton.js -A OfficeExcel/libraries/OfficeExcel.radar.js -A OfficeExcel/libraries/OfficeExcel.vprogress.js -A OfficeExcel/libraries/OfficeExcel.thermometer.js -A OfficeExcel/libraries/OfficeExcel.fuel.js -A OfficeExcel/libraries/OfficeExcel.common.annotate.js -A OfficeExcel/libraries/financial-data.js -A OfficeExcel/libraries/OfficeExcel.common.zoom.js -A OfficeExcel/libraries/OfficeExcel.modaldialog.js -A OfficeExcel/libraries/OfficeExcel.hbar.js -A OfficeExcel/libraries/OfficeExcel.pie.js -A OfficeExcel/libraries/.htaccess -A OfficeExcel/libraries/jquery.min.js -A OfficeExcel/libraries/OfficeExcel.rscatter.js -A OfficeExcel/libraries/OfficeExcel.line.js -A OfficeExcel/libraries/OfficeExcel.funnel.js -A OfficeExcel/libraries/OfficeExcel.bipolar.js -A OfficeExcel/libraries/OfficeExcel.gauge.js -A OfficeExcel/libraries/OfficeExcel.led.js -A OfficeExcel/libraries/OfficeExcel.bar.js -A OfficeExcel/libraries/OfficeExcel.common.tooltips.js -A OfficeExcel/libraries/OfficeExcel.scatter.js -A OfficeExcel/libraries/OfficeExcel.common.effects.js -A OfficeExcel/libraries/OfficeExcel.rose.js -A OfficeExcel/libraries/OfficeExcel.common.context.js -A OfficeExcel/libraries/OfficeExcel.meter.js -A OfficeExcel/libraries/OfficeExcel.hprogress.js -A OfficeExcel/libraries/OfficeExcel.gantt.js -A OfficeExcel/libraries/index.html -A OfficeExcel/libraries/OfficeExcel.common.adjusting.js -A OfficeExcel/libraries/OfficeExcel.common.core.js -A OfficeExcel/libraries/OfficeExcel.common.key.js -A OfficeExcel/libraries/OfficeExcel.waterfall.js -A OfficeExcel/libraries/OfficeExcel.odo.js -A OfficeExcel/libraries/OfficeExcel.common.resizing.js -A OfficeExcel/social.html -A OfficeExcel/examples -A OfficeExcel/examples/meter.html -A OfficeExcel/examples/hprogress.html -A OfficeExcel/examples/hbar.html -A OfficeExcel/examples/showcase.html -A OfficeExcel/examples/gantt.html -A OfficeExcel/examples/pie.html -A OfficeExcel/examples/odo.html -A OfficeExcel/examples/basic.html -A OfficeExcel/examples/waterfall.html -A OfficeExcel/examples/text.html -A OfficeExcel/examples/line.html -A OfficeExcel/examples/funnel.html -A OfficeExcel/examples/rscatter.html -A OfficeExcel/examples/gauge.html -A OfficeExcel/examples/bipolar.html -A OfficeExcel/examples/donut.html -A OfficeExcel/examples/radar.html -A OfficeExcel/examples/vprogress.html -A OfficeExcel/examples/fuel.html -A OfficeExcel/examples/thermometer.html -A OfficeExcel/examples/led.html -A OfficeExcel/examples/bar.html -A OfficeExcel/examples/scatter.html -A OfficeExcel/examples/index.html -A OfficeExcel/examples/.htaccess -A OfficeExcel/examples/rose.html -Exported revision 1896. diff --git a/OfficeWeb/sdk/Common/Charts/docs/resizing.html b/OfficeWeb/sdk/Common/Charts/docs/resizing.html deleted file mode 100644 index e0a6779f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/resizing.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - Resizing your charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Resizing your charts

- - - - [No canvas support] - -

 

- -

- OfficeExcel has the facility to allow you to resize your charts. This is new as of 10th April 2010. Because of the - numerous events it has to install code on, it is unlikely to work with other dynamic features. The context - menu does though, and now that tooltips use DOM2 events, so do they. It can be useful if you are, - for example, doing a presentation and need to enlarge the chart. -

- -

- All you need to do to enable it is set chart.resizable to true. There are certain caveats that you should be aware of though: -

- -
- -
    -
  • - Charts can only be enlarged down and to the right, so you will get better results if your chart is not placed at the - right of the page. -
  • - -
  • - The minimum you can resize your charts to is 50% of the original chart width/height. -
  • - -
  • - Note: Resizing can change the layout of your page (reflows). As such you will need to be careful when laying out your - page, and you may need to experiment with things like CSS float:, width, height etc so that the effect is either not apparent - or is minimal. -
  • - -
  • - If your canvas is nested within a table, resizing can result in very minor (1-2px) positioning changes. These - can be mitigated by turning off table borders, setting the cellspacing to 0 and also setting the cellpadding to 0. -
  • -
- -


- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/rose.html b/OfficeWeb/sdk/Common/Charts/docs/rose.html deleted file mode 100644 index aa238c8b..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/rose.html +++ /dev/null @@ -1,634 +0,0 @@ - - - - - - Documentation about the Rose chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Rose charts documentation

- - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // The data to be shown on the Rose chart.
-        var data = [41,37,16,3,3];
-        
-        // To show a stacked Rose chart you specify the data like this. non-equi-angular
-        // Rose charts are very similar to this but with only two elements to
-        // each array - the magnitude of the segment and the size of the angle.
-        // var rose = new OfficeExcel.Rose('myRose', [[4,5], [6,8], [4,3]]);
-    
-        // Create the rose chart.
-        var rose = new OfficeExcel.Rose('myRose', data);
-        
-        // Configure the chart to look as you want.
-        rose.Set('chart.labels', ['MSIE 7 (41%)', 'MSIE 6 (37%)', 'Firefox (16%)', 'Safari (3%)', 'Other (3%)']);
-        
-        // Now call the .Draw() method to draw the chart.
-        rose.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- - -

- You can use these properties to control how the Rose chart appears. You can set them by using the Set() method. Eg: -

- -

- myRose.Set('name', 'value'); -

- - - - - -

Margins

- - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.margin
- This is the margin that is either side of each segment. This allows you to have a gap between each segment. It is the size - of the gap in degrees. It doesn't apply to non-equi-angular Rose charts - only regular and stacked charts. -
- Default: 0

- - - -

Colors

- - - chart.colors
- An array of colors to be used by the chart.
- Default: ['red', 'rgb(0,255,255)', 'rgb(0,255,0)', 'gray', 'blue', 'rgb(255,128,255)','green', 'pink', 'gray', 'aqua']

- - - chart.colors.alpha
- Instead of using rgba(), you can use color definitions such as red along with this setting to add - transparency.
- Default: null

- - - chart.colors.sequential
- Because of the new (as of July 2011) support for grouped Rose charts, the way colors are used has changed. So to have them - used in a sequential fashion as before the change, you will need to set this option to true. - Default: false

- - -

Labels and text

-chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size of the text (in points).
Default: 10

- -chart.labels
- The labels, if any, for the chart.
Default: none

- -chart.labels.axes
- This controls the axes that show the scale labels. Each letter stands for the appropriate axis (North, South, East and West)
Default: nsew

- -chart.labels.position
- This can be either center or edge and determines the position of the labels.
Default: center

- -

Titles

- - -chart.title
- The title of the chart.
Default: none

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - - chart.title.background
- The background color (if any) for the title.
- Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- - -

Axis properties

- chart.ymax
- This can be set to control the maximum value of the scale. It's so called to maintain a degree of API compatibility across chart libraries.
Default: null

- - -

Scale

- - - chart.scale.round
- Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.
- Default: null

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.scale.decimals
- This stipulates how many decimal places there are. -
Default: 0

- - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - - -

Interactive features

- - chart.tooltips
- An array of tooltips. You can use HTML if you so wish.
- Default: [] (An empty array)

- - - chart.tooltips.event
- This is the event that triggers the tooltips. It can be either onclick or onmousemove.
- Default: onclick

- - - chart.tooltips.effect
- The tooltip effect used. Can be either fade or expand.
- Default: fade

- - - chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
- Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more - information on the tooltips documentation page
- Default: null

- - - chart.contextmenu
- An array of context menu items. More information on context menus is here.
- Default: [] (An empty array)

- - - chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
- Default: false

- - - chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
- Default: black

- - - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - - -chart.adjustable
- Defaulting to false, this determines whether your rose chart will be adjustable (click the edge of a segment and drag to adjust it).
Default: false

- - -

Zoom

- - - chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: - thumbnail and canvas.
- Default: canvas

- - -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
- Default: true

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - -

Miscellaneous

- - - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - - chart.variant
- This option can be either stacked (the default) or non-equi-angular. Just because his option is set to - stacked does not automatically mean your chart is stacked. If you don't suppy the appropriate data you chart - may well appear as a regular Rose chart. Examples of appropriate data: - -

- A regular Rose chart -

- -
-myRose = new OfficeExcel.Rose('myCanvas', [8,5,4,8,6,7,2,3,5,8]);
-
- -

- A stacked Rose chart -

- -
-myRose = new OfficeExcel.Rose('myCanvas', [[2,6],[2,4],[1,5],[4,3],[7,5],[8,3],[4,5],[3,4],[2,6],[4,5]]);
-
- -

- A non-equi-angular Rose chart -

- -
-myRose = new OfficeExcel.Rose('myCanvas', [[45,23],[45,23],[5,26],[78,4],[49,12],[49,21],[40,18],[48,12],[43,23],[45,12]]);
-myRose.Set('chart.variant', 'non-equi-angular');
-
- -

- It is important to note that with a non-equi-angular each "value" is actually an array consisting of two values, - as shown. The first value represents the magnitude of the segment (ie how far the segment extends outwards), - and the second value represents the size of the segment. The second value is relative to all the other second - values - it is not the absolute angle used. The angle is calculated for you. -

- - Default: stacked

- - - chart.exploded
- This stipulates the exploded value for a segment. It can either be a number which is applied to all segments, - or an array of seperate values (eg [15,0,20,25]). The values are the distance from the center that the segment is.
- Default: 0

- - - -

 

-

Methods

- - obj.getSegment(event)

- - obj.getSegment() makes it easy to determine which segment of the Rose chart was clicked on. It provides: - -
    -
  • The start angle (measured in radians)
  • -
  • The end angle (measured in radians)
  • -
  • Start radius of the segment
  • -
  • End radius of the segment
  • -
  • The origins X coordinate
  • -
  • The origins Y coordinate
  • -
  • The numerical index of the segment
  • -
- -
-<script>
-    OfficeExcel.Register(myGraph);
-    
-    myGraph.canvas.onclick = function (e)
-    {
-        OfficeExcel.FixEventObject(e);
-        OfficeExcel.Redraw();
-
-        var canvas  = e.target;
-        var context = canvas.getContext('2d');
-        var obj     = canvas.__object__;
-        var segment = obj.getSegment(e);
-        
-        if (segment) {
-            context.fillStyle = 'rgba(255,255,255,0.5)';
-            context.beginPath();            
-                context.moveTo(segment[0], segment[1]);
-                context.arc(segment[0], segment[1], segment[3], segment[4], segment[5], 0);
-                context.arc(segment[0], segment[1], segment[2], segment[5], segment[4], true);
-            context.stroke();
-            context.fill();
-            
-            e.stopPropagation();
-        }
-    }
-    
-    window.onclick = function (e)
-    {
-        OfficeExcel.Redraw();
-    }
-</script>
-
- - Important Note - -

- This method was formerly a common object method, called OfficeExcel.getSegment(e), but has now (6th March 2011) been - moved to be part of the Rose chart object. -

- - - - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - -

 

-

Stacked Rose charts

-

- Rose charts can now be stacked, much like stacked Bar charts. For an example see the Rose - chart example page. The data should be supplied in the same format as a stacked Bar chart: -

- -
-myRose = new OfficeExcel.Rose('myCanvas', [[4,6,2],[8,4,7],[4,3,6],[1,5,6]]);
-
- - -

 

-

Non-equi-angular Rose charts

-

- Rose charts can be displayed in a non-equi-angular mode. For an example see the - Rose chart example page. Instead of a plain array of values (as with a regular - Rose chart), each data point should itself be a two element array consisting of the magnitude value and also a relative - circular size. This second value is not the actual size of the angle - this is calculated. For example: -

- -
-<script>
-    myRose = new OfficeExcel.Rose('myCanvas', [[47,6],[48,2],[40,4],[43,5],[45,6]]);
-    myRose.Set('chart.variant', 'non-equi-angular');
-    myRose.Draw();
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/rscatter.html b/OfficeWeb/sdk/Common/Charts/docs/rscatter.html deleted file mode 100644 index 65ba8361..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/rscatter.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - - Documentation about Radial scatter charts - - - - - - - - - - - - - - - - - - - - - - - - - - -

Radial scatter charts documentation

- - - - - - -

 

-

Example

-
 
-<script>
-    window.onload = function ()
-    {
-        // The data that is used for the chart. The first argument is the
-        // angle and the second argument is the magnitude shown.
-        var data = [ [15,53,'red'], [45,63,null, 'The tooltip'], [48,45,'green'], [52,38], [51,61] ];
-
-        // Create the chart with the data from above. The arguments are: the canvas ID and the
-        // points to show. You can specify multiple data arrays for multiple data sets.
-        var rscatter= new OfficeExcel.Rscatter('myCanvas', data);
-        
-        // Configure the chart to look as requested.
-        rscatter.Set('chart.labels', ['NE','E','SE','S','SW','W','NW','N']);
-        rscatter.Set('chart.gutter.left', 35);
-        rscatter.Set('chart.gutter.right', 35);
-        
-        // Now call the .Draw() method to draw the chart.
-        rscatter.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the chart appears. You can set them by using the Set() method. Eg: -

- -

- myRscatter.Set('name', 'value'); -

- - - - -

Margins

- - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Labels and text

-chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size (in points) of the labels.
Default: 10

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.labels
- The labels, if any, for the chart.
Default: none

- -chart.labels.axes
- This controls the axes that show the scale labels. Each letter stands for the appropriate axis (North, South, East and West)
Default: nsew

- -chart.labels.position
- This can be either center or edge and determines the position of the labels.
Default: center

- -

Titles

- - -chart.title
- The title of the chart, if any.
Default: null

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- - - - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - -

Scale

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.scale.decimals
- This stipulates how many decimal places there are. -
Default: 0

- - - -

Interactive features

-chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- -chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
Default: fade

- -chart.tooltips.event
- This is the event that triggers the tooltips. It can be either onclick or onmousemove.
Default: onclick

- -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- -chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- -

- - - -

 

-

Methods

- - - obj.getPoint(event)

-

- This method returns the details of any applicable/focused point on the chart. It returns: -

- -
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The index (starting at zero) of the point in the dataset
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/scatter.html b/OfficeWeb/sdk/Common/Charts/docs/scatter.html deleted file mode 100644 index 5477778b..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/scatter.html +++ /dev/null @@ -1,1069 +0,0 @@ - - - - - - - Documentation about Scatter charts - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Scatter charts documentation

- - - - - - -

 

-

Example

- -
-<script>
-    window.onload = function ()
-    {
-        // The data as shown on the chart. Each point is an array, described below.
-        var data = [
-                    [67,78,null, 'The winner!'],
-                    [67,40,'red']
-                   ];
-        
-        // Create the Scatter chart. The arguments are: the canvas ID and the data to be represented on the chart.
-        var sg = new OfficeExcel.Scatter('myScatter', data);
-        
-        // Configure the chart to look as you want it to.
-        sg.Set('chart.background.barcolor1','white');
-        sg.Set('chart.background.barcolor2', 'white');
-        sg.Set('chart.grid.color', 'rgba(238,238,238,1)');
-        sg.Set('chart.gutter.left', 30);
-        sg.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        sg.Set('chart.xmax', 365); // Important!
-        
-        // Now call the .Draw() method to draw the chart.
-        sg.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - - -

- Each point on the Scatter chart is made by supplying an array of up to 4 elements: -

- -
    -
  • The X value (required)
  • -
  • The Y value (required)
  • -
  • The color (optional)
  • -
  • The tooltip for this mark (optional)
  • -
- -

- If you wish to specify a tooltip, but not a color (ie use the default color instead), you can pass null instead of a color. -

- - - -

 

-

Properties

- -

- You can use these properties to control how the Scatter apears. You can set them by using the Set() method. Eg: -

- -

- myScatter.Set('chart.xmax', 365); -

- - - - - -

Background

-chart.background.barcolor1
- The color of the background bars.
Default: rgba(0,0,0,0)

- -chart.background.barcolor2
- The color of the background bars.
Default: rgba(0,0,0,0)

- -chart.background.grid
- Whether to show the background grid or not.
Default: true

- -chart.background.grid.color
- The color of the background grid.
Default: #eee

- - - chart.background.hbars
- An array of information stipulating horizontal coloured bars. You can use these to indicate limits. Eg: - -
myScatter.Set('chart.background.hbars', [[75, 10, 'yellow'], [85, 15, 'red']]);
- - This would give you two bars, one red and a lower yellow bar. The units correspond to your scale, and are the - starting point and the height.
- Default: null

- - chart.background.vbars
- An array of vertical bar information. They're specified like his: -
myScatter.Set('chart.background.vbars', [[0, 181, 'rgba(0,255,0,0.5)']]);
- Default: null

- - -chart.background.grid.border
- Determines whether a border line is drawn around the grid.
Default: true

- -chart.background.grid.hlines
- Determines whether to draw the horizontal grid lines.
Default: true

- -chart.background.grid.vlines
- Determines whether to draw the vertical grid lines.
Default: true

- - - chart.background.grid.autofit
- Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many horizontal and vertical lines you want.
- Default: true

- - -chart.background.grid.autofit.numhlines
- When using autofit this allows you to specify how many horizontal grid lines you want.
Default: 5

- - - chart.background.grid.autofit.numvlines
- When using autofit this allows you to specify how many vertical grid lines you want.
- Default: 20

- - - chart.background.grid.autofit.align
- If you want to have your grid lines line up with the labels (both X and Y axes), you can set this to true and OfficeExcel will - attempt to make the grid lines line up. If you have a chart.hmargin set then the alignment will be thrown out.
- Default: false

- - - chart.background.image
- If you want to specify a background image to use on your chart, specify it with this property.
- Default: null

- - - chart.background.image.stretch
- By default your background image is stretched (if necessary) to cover the whole chart area (gutters not included). - If this is not what you want then set this property to false.
- Default: true

- - - chart.background.image.x
- The X position of the image. The coordinates are the top left corner of the image.
- Default: null

- - - chart.background.image.y
- The Y position of the image. The coordinates are the top left corner of the image.
- Default: null

- - - chart.background.image.align
- Instead of specifying the coordinates of the image, you can instead simply align it top, bottom, left or right. - Examples are:
-
    -
  • top left
  • -
  • bottom right
  • -
  • bottom
  • -
  • right
  • -
- Default: null

- - -

Labels and text

- - - chart.labels
- An array of the X labels for the chart.
- Default: [] (An empty array)

- - - chart.labels.above
- If true this will show the values of the points above them.
- Default: false

- - - chart.labels.above.size
- If you're showing the labels above the points, this controls their size.
- Default: 8

- - - chart.labels.above.decimals
- If your points have lots of decimals, you use this option to curtail them.
- Default: 0

- - -chart.ylabels
- A boolean (true or false) that controls whether the chart has Y labels.
Default: true

- - - chart.ylabels.count
- A value (1, 3, 5 or 10) that controls how many Y labels there are.
- Default: 5

- - - chart.ylabels.invert
- Reverses the Y axis so that 0 is at the top, instead of the bottom.
- Default: false

- - - chart.ylabels.specific
- You can use this option to give your own Y labels (eg ['Low', 'Medium', 'High'].
- Default: null

- - -chart.text.font
- The font used to render the text.
Default: Verdana

- - - chart.text.color
- The color of the labels.
- Default: black

- - - chart.text.size
- The size of the text (in points).
- Default: 10

- - - chart.text.angle
- The angle of the horizontal text labels (at the bottom of the chart). This can be from 0-90 (degrees)
- Default: 0 (Horizontal)

- - - chart.labels.specific.align
- If you are using specific points for X labels, by default the labels are left aligned within its section. With this setting - you can center the labels within its section.
- Default: left

- - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Axis properties

- - - chart.xmin
- The minimum X axis value you wish to set.
- Default: 0

- - - chart.xmax
- The maximum X axis value you wish to set. For example if you're displaying products sold in a year, you might use 365.
- Default: none - must be supplied

- - -chart.ymax
- The optional maximum Y scale value. If not specified then it will be calculated.
Default: null (It's calculated)

- -chart.ymin
- The optional minimum Y scale value. If not specified it will be zero.
Default: null

- -chart.ticksize
- The size of the tickmarks.
Default: 3

- -chart.tickmarks
- The style of the tickmarks. Can be: cross, plus, circle, diamond, square or null (no tickmarks).
Default: cross

- -chart.xticks
- This controls whether the X axis tickmarks are drawn.
Default: true

- - - chart.noendxtick
- Whether to draw an end X tick. Usually used when combining Scatter charts
- Default: false

- - - chart.noendytick
- Whether to draw an end Y tick. Usually used when combining Scatter charts
- Default: true

- - -chart.xaxis
- This controls whether the X axis is drawn.
Default: true

- -chart.xaxispos
- Where the X axis should be drawn. Can be either center or bottom.
Default: bottom

- -chart.yaxispos
- Where the Y axis should be drawn. Can be either left or right.
Default: left

- -chart.axis.color
- The color of the axes.
Default: black

- -chart.noaxes
- If this is set to true, no axes will be drawn.
Default: false

- - - chart.xscale
- If true then an X scale is drawn instead of X labels.
- Default: false

- - - chart.xscale.units.pre
- These are units that are prepended to the number.
- Default: none

- - - chart.xscale.units.post
- These are units that are appended to the number.
- Default: none

- - - chart.xscale.formatter
- This can be a function, which is passed the object and the number and should return a formatted number (formatted as you wish).
- Default: null

- - - chart.xscale.numlabels
- This is a number representing how many X labels there should be when you're using the X scale.
- Default: 10

- - -

Titles

- - -chart.title
- The title of the scatter chart.
Default: none

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- -chart.title.color
- The color of the title.
Default: black

- - - chart.title.xaxis
- This allows to specify a title for the X axis.
- Default: none

- - - chart.title.xaxis.size
- This allows you to specify a size for the X axis title.
- Default: null

- - - chart.title.xaxis.font
- This allows to specify a font for the X axis title.
- Default: null

- - - chart.title.xaxis.bold
- This controls whether the X axis title is bold or not.
- Default: true

- - - chart.title.yaxis
- This allows to specify a title for the Y axis.
- Default: none

- - - chart.title.yaxis.size
- This allows you to specify a size for the Y axis title.
- Default: null

- - - chart.title.yaxis.font
- This allows to specify a font for the Y axis title.
- Default: null

- - - chart.title.yaxis.bold
- This controls whether the Y axis title is bold or not.
- Default: true

- - -chart.title.xaxis.pos
- This is multiplied with the gutter to give the position of the X axis title.
Default: 0.25

- -chart.title.yaxis.pos
- This is multiplied with the gutter to give the position of the Y axis title.
Default: 0.25

- - - chart.title.yaxis.position
- Instead of using the option above you can instead use this option, specifying left or right.
- Default: left

- - -

Scale

- - - chart.scale.formatter
- To allow thoroughly custom formats of numbers in the scale, you can use this option to - specify a function that is used by OfficeExcel to format numbers. This function should - handle ALL of the formatting. Eg:

-
-function myFormatter(obj, num)
-{
-    return num + 'F'; // An example of formatting
-}
-myGraph.Set('chart.scale.formatter', myFormatter);
-
-
Default: null

- - -chart.scale.decimals
- The number of decimal places to display for the Y scale.
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.scale.round
- Whether to round the maximum scale value up or not. This will produce slightly better scales in some instances.
- Default: null

- - -chart.units.pre
- The units (if any) that the Y axis is measured in (these are preppended to the number).
Default: none

- -chart.units.post
- The units (if any) that the Y axis is measured in (these are appended to the number).
Default: none

- - -

Interactive features

- -

- Note: Unlike other charts, the Scatter chart tooltips are specified as part of the data array. See above. -

- - - chart.tooltips.effect
- The animated effect used for showing tooltips.
- Default: fade

- - - chart.tooltips.hotspot
- This controls the size of the hotspot on the chart for tooltips.
Default: 3

- - - - chart.tooltips.highlight
- This controls whether points are highlighted when a tooltip is shown. If you're combining the Scatter with another chart - you may need to set this to false.
- Default: true

- - - chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more - information on the tooltips documentation page
- Default: null

- - -chart.crosshairs
- If true, you will get a crosshair centering on the current mouse position.
Default: false

- -chart.crosshairs.linewidth
- This controls the linewidth of the crosshairs.
Default: 1

- -chart.crosshairs.color
- The color of the crosshairs.
Default: #333

- - - chart.crosshairs.coords
- If true, this will show the coordinates that the crosshairs are currently over.
- Default: false

- - - chart.crosshairs.coords.fixed
- If true, this makes the coordinates static (attached), instead of following the pointer around.
- Default: false

- - -chart.crosshairs.fadeout
- If true, when you move your mouse off of the canvas the coordinates will fade out.
Default: false

- - - chart.crosshairs.coords.labels.x
- Instead ox X and Y, you can specify more meaningful labels.
- Default: X

- - - chart.crosshairs.labels.y
- Instead ox X and Y, you can specify more meaningful labels.
- Default: Y

- - - chart.crosshairs.hline
- This determines whether the horizontal crosshair line is shown.
- Default: true

- - - chart.crosshairs.vline
- This determines whether the vertical crosshair line is shown.
- Default: true

- - - -chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: null

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: #000

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -

Line properties

- - - chart.line
- Whether to show a connecting line (like in the sixth example).
- Default: false

- - - chart.line.colors
- The colors of the lines connecting the tick marks.
- Default: ['green', 'red']

- - - chart.line.shadow.color
- The color of the lines shadow (if any).
- Default: rgba(0,0,0,0) (invisible)

- - - chart.line.shadow.offsetx
- The X offset of the lines shadow.
- Default: 3

- - - chart.line.shadow.offsety
- The Y offset of the lines shadow.
- Default: 3

- - - chart.line.shadow.blur
- The severity of the line shadows blurring effect.
- Default: 2

- - - chart.line.stepped
- Like the line chart, Scatter chart lines can be stepped by setting this to true
- Default: false

- - - chart.line.linewidth
- This can be either a number or an array of numbers (for multiple lines) and controls the - linewidth that is used for the lines.
- Default: 1

- - - - - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: false

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - - - - - -

Zoom

-chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - -

Miscellaneous

- - - chart.defaultcolor
- This is the default color of tick marks, which is used if a color isn't given.
- Default: #000

- - - chart.boxplot.width
- This stipulates the default width of boxes. For more on boxplots, see here.
- Default: 8

- - - chart.boxplot.capped
- This stipulates whether the boxplot will have caps on the end of whickers. This could be useful if you're - creating a stock chart for example.For more on boxplots, see here.
- Default: true

- -

- - -

 

-

Methods

- - obj.getPoint(event) - -

- This method makes it easier to get hold of which point on the Scatter chart has been hovered over. It returns an array of: -

- -
    -
  • The X coordinate of the point
  • -
  • The Y coordinate of the point
  • -
  • The data set. This corresponds to the appropriate dataset (since mutiple datasets can be given to the constructor)
  • -
  • The index of the appropriate data point in the set
  • -
  • The tooltip (if any) for that particular point
  • -
- - (If the return value is null, then no point is being hovered over.) An example usage is: - -
-<script src="OfficeExcel.common.core.js"></script>
-<script src="OfficeExcel.line.js"></script>
-
-<canvas id="cvs" width="600" height="250" style="border: 1px gray dashed">[No canvas support]</canvas>
-
-<script>
-    scatter = new OfficeExcel.Scatter('cvs', [[5,1, 'red', 'A'],[4,2,, 'B'],[3,9,,'C'],[10,12,,'D'],[300,2,,'E']],
-                                        [[5,6, 'red', 'F'],[2,9,,'G'],[13,19,,'H'],[18,17,,'I'],[340,12,,'J']]);
-    scatter.Set('chart.xmax', 365);
-    scatter.Set('chart.line', true);
-    scatter.Set('chart.labels', ['Q1', 'Q2', 'Q3', 'Q4']);
-    scatter.Draw();
-
-    scatter.canvas.onmousemove = function (e)
-    {
-        var canvas  = e.target;
-        var context = canvas.getContext('2d');
-        var obj     = canvas.__object__;
-        var point   = obj.getPoint(e);
-
-        if (point) {
-            p('\r\nX Coordinate: ' + point[0] + '\r\n' +
-              'Y Coordinate: ' + point[1] + '\r\n' +
-              'Dataset: ' + point[2] + '\r\n' +
-              'Datapoint: ' + point[3] + '\r\n' +
-              'Tooltip: ' + point[4] + '\r\n');
-        }
-    }
-</script>
-
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - -

 

-

Box plots

- -

- Instead of a single Y value, you have the ability to specify an array of 5, 6, 7 or 8 values, which will be used to make a box plot. - The example page shows a box plot. These values are (in order): - -

    -
  • Lower whisker
  • -
  • Bottom of box
  • -
  • Middle value (which isn't necessarily in the center of the box - this depends on your data)
  • -
  • Top of box
  • -
  • Upper whisker
  • -
  • Upper color (optional)
  • -
  • Lower color (optional)
  • -
  • Width (optional)
  • -
- -
-<script>
-    scatter8 = new OfficeExcel.Scatter('scatter8', [
-                                               [10,[1,1,16,24,24, 'red', 'green']],
-                                               [105,[5,10,15,25,25, 'red', 'green']],
-                                               [125,[10,15,25,35,45, 'red', 'green']],
-                                               [325,[10,15,25,35,45, 'red', 'green', 30]]
-                                              ]);
-    scatter8.Set('chart.title', 'An example of a boxplot');
-    scatter8.Set('chart.labels', ['Q1', 'Q2', 'Q3', 'Q4']);
-    scatter8.Set('chart.xmax', 365);
-    scatter8.Set('chart.ymax', 50);
-    scatter8.Set('chart.boxplot.width', 12); // The default width
-    scatter8.Draw();
-</script>
-
-

- -

Capped ends

-

- For better compatibility with stock charts, you can now specify that the horizontal lines at the ends of the box plot - are not shown with chart.boxplot.capped. -

- - - -

 

-

Specific points for labels on the X axis

- -

- Instead of a simple string which is used as the label, each entry of the chart.labels array can be a two element array - consisting of the label, and the X value that the label should be placed at. For example: -

- -
-scatter.Set('chart.labels', [
-                             ['Quarter 1', 0],
-                             ['Quarter 2', 90],
-                             ['Quarter 3', 181],
-                             ['Quarter 4', 273]
-                            ]);
-
- - - - -

 

-

Custom tickmarks

- -

- If none of the available tickmark styles are suitable, you can instead specify a function object that draws the tickmark, - enabling you to draw the tickmark yourself. For example: -

- -
-<script>
-    line.Set('chart.tickmarks', myTick);
-
-    /**
-    * The function that is called once per tickmark, to draw it
-    * 
-    * @param object obj   The chart object
-    * @param object data  The chart data
-    * @param number x     The X coordinate
-    * @param number y     The Y coordinate
-    * @param number xVal  The X value
-    * @param number yVal  The Y value
-    * @param number xMax  The maximum X scale value
-    * @param number xMax  The maximum Y scale value
-    * @param string color The color of the tickmark
-    */
-    function myTick (obj, data, x, y, xVal, yVal, xMax, yMax, color)
-    {
-        // Draw your custom tick here
-    }
-</script>
-
- - -

 

-

Note about colors and the key

-

- If you're using a key you may need to set chart.line.colors to allow it to use the correct colors. For example: -

- -
myObj.Set('chart.line.colors', ['red','green','blue']);
- - -

 

-

Note about the oncrosshairs event

-

- With the Scatter chart you can use the oncrosshairs custom event to pull out the crosshair coordinates, like this: - The coordinates are only available if you have them displayed. -

- -
-function myFunc (obj)
-{
-    var xCoord = obj.canvas.__crosshairs_x__;
-    var yCoord = obj.canvas.__crosshairs_y__;
-}
-OfficeExcel.AddCustomEventListener(myScatter, 'oncrosshairs', myFunc);
-
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/setconfig.html b/OfficeWeb/sdk/Common/Charts/docs/setconfig.html deleted file mode 100644 index 6568fe36..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/setconfig.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - Information about the SetConfig() function - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The OfficeExcel.SetConfig() function

- - - - -
- [No canvas support] -
- - - -

- Instead of using a number of .Set() calls, you may find that using the OfficeExcel.SetConfig() method more to your tastes. The - method is an alternative to setting the configuration of your chart. It doesn't offer any speed benefits, but it can facilitate reuse better, so that the - appearance of your websites charts is the same. There's an example of its use below: -

- -
- -
-<script>
-    window.onload = function ()
-    {
-        /**
-        * This configuration could be stored in a central configuration file, making its reuse easier. You could also have
-        * several different configurations that you pick and choose from depending on the requirements. Values in
-        * subsequent calls to .SetConfig() will overwrite previous ones.
-        */
-        var config = {
-                      'chart.colors':                  ['red', 'green'],
-                      'chart.labels':                  ['John','Fred','June','Charles','Lou', 'Olga'],
-                      'chart.title.yaxis':             'Amount',
-                      'chart.title.yaxis.pos':         -0.2,
-                      'chart.title.xaxis':             'Person',
-                      'chart.background.grid.autofit': true,
-                      'chart.title': 'A chart showing OfficeExcel.SetConfig()'
-                     }
-        var bar = new OfficeExcel.Bar('cvs', [48,56,52,49,43,51]);
-        OfficeExcel.SetConfig(bar, config);
-        bar.Draw();
-    }
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/thermometer.html b/OfficeWeb/sdk/Common/Charts/docs/thermometer.html deleted file mode 100644 index 8a9dfaa5..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/thermometer.html +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - Documentation about the Thermometer chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Thermometer charts documentation

- - - - - - -

 

-

Example

-
 
-<script>
-    window.onload = function ()
-    {
-        // Create the Thermometer chart. The arguments are: the canvas ID, the minimum,
-        // the maximum and the indicated value.
-        var thermometer = new OfficeExcel.Thermometer('myCanvas', 0,100,14);
-        
-        // Configure the thermometer chart to look as you want.
-        thermometer.Set('chart.gutter.left', 45);
-        thermometer.Set('chart.gutter.right', 45);
-        thermometer.Set('chart.colors', ['rgba(255,0,0,1)']);
-        
-        // Now call the .Draw() method to draw the chart.
-        thermometer.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the chart apears. You can set them by using the Set() method. Eg: -

- -

- myBar.Set('name', 'value'); -

- - - - - -

Margins

- - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 15

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 15

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 15

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 15

- - -

Colors

- - - chart.colors
- An array of the colors of the actual bars.
- Default: An array - ['rgb(0,0,255)', '#0f0', '#00f', '#ff0', '#0ff', '#0f0']

- - - - -

Titles

- - - chart.title.side
- This is the text that is used as the side title on the left hand side of the thermometer.
- Default: '' (An empty string)

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - - chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
- Default: 0.5

- - -

Labels and text

- - - chart.value.label
- This controls whether the Thermometers value is shown in text.
- Default: true

- - - chart.ylabels.count
- A value that controls how many Y labels there are. Keep in mind that if you use this it may result in decimals, - and to see the full number you may need to use chart.scale.decimals.
- Default: 10

- - -

Shadow

- - - chart.shadow
- Whether a drop shadow is applied.
Default: true

- - - chart.shadow.color
- The color of the shadow.
Default: gray

- - - chart.shadow.offsetx
- The X offset of the shadow.
Default: 0

- - - chart.shadow.offsety
- The Y offset of the shadow.
Default: 0

- - - chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 15

- - -

Scale

- - - chart.scale.visible
- Defaulting to false, this controls whether the scale is visible.
- Default: false

- - - chart.scale.decimals
- This allows you to control the amount of decimals that the labels have.
- Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - -

Interactive features

- - - chart.adjustable
- Defaulting to false, this determines whether your bar chart will be adjustable.
- Default: false

- - - chart.contextmenu
- An array of context menu items. More information on context menus is here.
- Default: [] (An empty array)

- - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event - handlers this has to install code on, This feature is unlikely to work with other dynamic features (the - context menu is fine however).
- Default: false

- - - chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
- Default: false

- - - chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
- Default: black

- - -

Zoom

- - - chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
- Default: canvas

- - - chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
- Default: 1.5

- - - chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
- Default: true

- - - chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
- Default: true

- - - chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
- Default: right

- - - chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
- Default: down

- - - chart.zoom.delay
- The delay (in milliseconds) between frames.
- Default: 50

- - - chart.zoom.frames
- The number of frames in the zoom animation.
- Default: 10

- - - chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
- Default: true

- - - chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
- Default: 75

- - - chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
- Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - - - chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
- Default: true

- - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - - - - -

 

-

Methods

- - - obj.getBar(event)

-

- This methods returns details on the focused bar (there's only one). It returns an array consisting of: -

- -
    [obj, left, top, width, height] -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width
  • -
  • The height
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/tooltips.html b/OfficeWeb/sdk/Common/Charts/docs/tooltips.html deleted file mode 100644 index fcaa180d..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/tooltips.html +++ /dev/null @@ -1,515 +0,0 @@ - - - - - - Documentation about using tooltips in your charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Using tooltips in your charts

- - - -
- [No canvas support]
- Tooltip effect: - -
- - - - - - -

Introduction

- -

- Tooltips are a very effective and straight forward way to extend your charts and add more information to them, without overloading - the user. -

- - -

What can they hold?

- -

- At the base level, tooltips are DIVs, so they can hold a multitude of HTML - images, videos etc. See below - for information on showing charts in tooltips. -

- - -

How can I specify them?

- -

- You can specify them by including the tooltips code and then using the chart.tooltips property. For example: -

- -
    -
  1. - Include the OfficeExcel libraries. -
    -<script src="OfficeExcel.common.core.js"></script>
    -<script src="OfficeExcel.common.tooltips.js"></script>
    -<script src="OfficeExcel.line.js"></script>
    -
    -
  2. - -
  3. - Define your chart and set the tooltips property. -
    -<script>
    -    window.onload = function ()
    -    {
    -        var line = new OfficeExcel.Line('cvs', [64,34,26,35,51,24]);
    -        line.Set('chart.tooltips', ['<b>Winner!</b><br />John', 'Fred', 'Jane', 'Lou', 'Pete', 'Kev']);
    -        line.Set('chart.tooltips.effect', 'expand');
    -        line.Set('chart.hmargin', 10);
    -        line.Set('chart.linewidth', 2);
    -        line.Set('chart.shadow', true);
    -        line.Set('chart.shadow.offsetx', 0);
    -        line.Set('chart.shadow.offsety', 0);
    -        line.Set('chart.shadow.color', 'green');
    -        line.Set('chart.shadow.blur', 25);
    -        line.Set('chart.colors', ['green']);
    -        line.Set('chart.tickmarks', 'circle');
    -        line.Set('chart.labels', ['John', 'Fred', 'Jane', 'Lou', 'Pete', 'Kev']);
    -        line.Draw();
    -    }
    -</script>
    -
    -
  4. -
- - -

What can I specify?

- -

- The tooltips that you specify are usually strings (which can contain HTML). They can however also be functions which are called when they're about - to be displayed. The function should return the text that is used as the tooltip. You have the option to either specify - one function per data point, or just one function for all of the tooltips. You can mix functions and strings if you wish. - These functions are passed the numerical, zero-indexed tooltip index and the return value is used as the tooltip - text. So to summarise: -

- -
    -
  • - An array of strings. The string is used as the tooltip. Eg: -
    myGraph.Set('chart.tooltips', ['John', 'Fred', 'Lou']);
    -
  • - -
  • - An array of function objects. Each function is called and should return the text to be used. Eg: -
    myGraph.Set('chart.tooltips', [getJohnTooltip, getFredTooltip, getLouTooltip]);
    -
  • - -
  • - A single function object. This is probably the most useful. This function is called whenever a tooltip - is about to be displayed, and passed the numerical, zero-indexed tooltip index of the point on the chart. - The function should return the text to be used as the tooltip. Note that the function you specify is called - before - the tooltip DIV has been created, so you cannot access it. If you wish to customise the appearance - of the tooltip, you can use either the tooltip CSS class or a call to setTimeout(). Eg: -
    myGraph.Set('chart.tooltips', getTooltip);
    -
  • - -
  • - An array of DIV ids. This will make working with large tooltips easier. You basically specify the id of a DIV whose - .innerHTML is then used as the tooltip. Only the contents of the DIV are used, not the DIV itself, so you can hide - the DIV by setting its display CSS value to none. For example: - -
    myBar.Set('chart.tooltips', ['id:myDiv', ...])
    -
  • -
- - -

Can I show charts in tooltips?

- - [No canvas support] - -

- You can, and with the custom event support that OfficeExcel has, it's reasonably easy. Simply attach your function that - creates the chart to the ontooltip event. This allows the tooltip HTML to be created and added to the page - so that the code that creates the chart can run. The sequence is: -

- -
    -
  1. Specify the HTML for the tooltip as normal (including the <canvas> tag).
  2. -
  3. Use the ontooltip OfficeExcel event so that a function is called when a tooltip is shown.
  4. -
  5. This function should subsequently create the chart.
  6. -
- -

- The tooltip DIV is to be found in the OfficeExcel registry - OfficeExcel.Registry.Get('chart.tooltip'). And if you want it the - numerical zero indexed count of the tooltip is to be found in the __index__ property: - OfficeExcel.Registry.Get('chart.tooltip').__index__ -

- -
-<script src="OfficeExcel.common.core.js" ></script>
-<script src="OfficeExcel.common.tooltips.js" ></script>
-<script src="OfficeExcel.bar.js" ></script>
-<script src="OfficeExcel.line.js" ></script>
-
-<style>
-    .OfficeExcel_tooltip {
-        background-color: white ! important;
-    }
-</style>
-
-<canvas id="cvs" width="600" height="250">[No canvas support]</canvas>
-
-<script>
-    window.onload = function ()
-    {
-        labels = ['Gary','Pete','Lou','Ned','Kev','Fred'];
-
-        bar = new OfficeExcel.Bar("cvs", [4.5,28,13,26,35,36]);
-        bar.Set('chart.tooltips', function (idx) {return labels[idx] + 's stats<br/><canvas id="__tooltip_canvas__" width="400" height="150">[No canvas support]</canvas>';});
-        bar.Set('chart.hmargin', 10);
-        bar.Set('chart.tickmarks', 'endcircle');
-        bar.Set('chart.colors', ['blue']);
-        bar.Set('chart.ymax', 100);
-        bar.Set('chart.labels', labels);
-        bar.Draw();
-        
-        OfficeExcel.AddCustomEventListener(line, 'ontooltip', CreateTooltipGraph);
-    }
-      
-
-    
-    /**
-    * This is the function that is called by the ontooltip event to create the tooltip charts
-    * 
-    * @param obj object   The chart object
-    */
-    function CreateTooltipGraph(obj)
-    {
-        // This data could be dynamic
-        var line  = new OfficeExcel.Line('__tooltip_canvas__', [5,8,7,6,9,5,4,6,3,5,4,4]);
-        line.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-        line.Set('chart.hmargin', 5);
-        line.Set('chart.tickmarks', 'endcircle');
-        line.Set('chart.background.grid.autofit', true);
-        line.Draw();
-    }
-    
-</script>
-
- -

- If you want to see more source code, simply view the source of this page and look at the code that creates the bar chart. - There's also a basic stripped-down example here. -

- -
- - -

Can I customise the appearance of tooltips?

- -

- Yes. You can either use the default CSS class OfficeExcel_tooltip, or you can specify a specific CSS class that a - charts tooltips should use with the property chart.tooltips.css.class. The two charts on this page have - different looking tooltips by using this method - the line chart uses the default look, whilst the bar chart - overrides the CSS class name and sets it to bar_chart_tooltips_css. For example: -

- -
bar.Set('chart.tooltips.css.class', 'bar_chart_tooltips_css');
- -
-<style>
-    .bar_chart_tooltips_css {
-        background-color: white ! important;
-        border: 2px solid black ! important;
-        padding: 3px;
-    }
-</style>
-
- -

- You can read more about OfficeExcel CSS classes here. -

- - -

What tooltip effects are available?

- -

- These effects are available to you: -

- -
    -
  • fade
  • -
  • expand
  • -
  • contract
  • -
  • snap
  • -
  • none
  • -
- -

- All of them are as their names imply. fade is a straight forward fade in effect, expand is another effect - which expands outward from the center of the tooltip, contract is like the expand effect but in reverse, snap is an effect which can be used in a limited set of circumstances - and "snaps" to the current mouse position and none is simply no effect at all. The default effect used - by all chart types is fade. Note: If you're showing canvases in your tooltips then the expand, contract and snap - effects will not work - you must use fade or none. -

- -

- Note: The snap effect is only available to chart types where the tooltip is triggered using the onmousemove event. - Currently this means the Line chart, Rscatter chart, Scatter chart and Radar chart. It can also - be negatively effected when using multiple charts on one page. -

- - - -

Tooltips, the clipboard and Firefox

- -

- If you're using Firefox, there's a note about tooltips and the clipboard (ie copying text) on the issues page. -

- - -

Can I override the tooltip function?

- -

- You can by stipulating chart.tooltips.override. This should be a function object that handles everything with regard - to showing the tooltip. Highlighting the chart is still done for you - the override function is only concerned with showing - the tooltip. The override function is passed these arguments: -

- -
    -
  • canvas - The HTML canvas element, the same as what you get from document.getElementById()
  • -
  • text - The tooltip text (id:xxx strings are NOT expanded)
  • -
  • x - The X coordinate in relation to the entire page
  • -
  • y - The Y coordinate in relation to the entire page
  • -
  • index - The numerical index of the tooltip in the original tooltip array
  • -
- -

- Note: Although "id:xxx" strings are not expanded for you, you can easily do this yourself by using the - OfficeExcel.getTooltipText('id:xxx') function. -

- -
-<script>
-    function tooltip_override (canvas, text, x, y, idx)
-    {
-        alert('In tooltip override function...');
-    }
-    myObj.Set('chart.tooltips.override', tooltip_override);
-</script>
-
- -
Foo
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/vprogress.html b/OfficeWeb/sdk/Common/Charts/docs/vprogress.html deleted file mode 100644 index 0695a463..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/vprogress.html +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - Documentation about Vertical progress Bars - - - - - - - - - - - - - - - - - - - - - - - - - - -

Vertical progress bar documentation

- - - - - - -

 

-

Example

-
-<script>
-    window.onload = function ()
-    {
-        // Create the object. The arguments are: The canvas ID, the indicated value and the maximum value.
-        var myProgress = new OfficeExcel.VProgress('myProgress', 78, 100);
-        
-        // Configure the chart to look as you want.
-        myProgress.Set('chart.colors', ['red']);
-        
-        // Now call the .Draw() method to draw the chart.
-        myProgress.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the progress bar apears. You can set them by using the Set() method. Eg: -

- -

- myProgress.Set('name', 'value'); -

- - - - - -

Chart configuration

- - - chart.labels.count
- This controls how many labels there are. -
Default: 10

- - - chart.tickmarks
- Whether the tickmarks are drawn.
- Default: true

- - - chart.tickmarks.color
- The color used for tickmarks.
- Default: black

- - - chart.tickmarks.inner
- This controls whether the bar has inner tickmarks
- Default: false

- - - chart.tickmarks.zerostart
- If true, labels and tickmarks will start at and show zero.
- Default: false

- - - chart.min
- The minimum value. Setting a minimum value allows to show a more detailed progress bar.
- Default: 0

- - -chart.numticks
- How many tick marks there are.
Default: 10

- -chart.numticks.inner
- How many inner tick marks there are.
Default: 50

- -chart.arrows
- This stipulates that two indicator arrows are drawn. It works best if you have tickmarks off, and no title.
Default: false

- - -

Margins

- - - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - -

Colors

-chart.color
- The color of the bar. This can be a solid color, or a gradient that you create.
Default: #0c0

- -chart.background.color
- The background color.
Default: #eee

- -

Shadow

-chart.shadow
- Whether the progress bar has a shadow. This uses the canvas shadow API and therefore is only supported on Chrome 2, Safari 3.1 and Firefox 3.1 (and above).
Default: false

- -chart.shadow.offsetx
- The X offset of the progress bar shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the progress bar shadow.
Default: 3

- -chart.shadow.color
- The color of the shadow.
Default: rgba(0,0,0,0.5)

- -chart.shadow.blur
- The blurring effect that is applied to the shadow.
Default: 3

- -

Labels and text

-chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size of the text (in points).
Default: 10

- - - chart.labels
- Labels that are applied to the chart.
Default: An empty array

- - - chart.labels.position
- Can be left or right and controls which side the labels are positioned on.
- Default: right

- - - -

Scale

- chart.units.pre
- The units that the Y scale is measured in (these are preppend to the number).
Default: none

- - - chart.units.post
- The units that the Y scale is measured in (these are appended to the number).
Default: none

- - - chart.scale.decimals
- This stipulates how many decimal places there are. -
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
- Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - -

Titles

- - - chart.title
- The title of the progress bar.
- Default: An empty string

- - - chart.title.font
- The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
- Default: null

- - - chart.title.size
- The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
- Default: null

- - - chart.title.bold
- Whather the title is bold or not.
- Default: true

- - - chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 - and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
- Default: null

- - - chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
- Default: null

- - - chart.title.color
- The color of the title.
- Default: black

- - - chart.title.side
- Using this property you can specify a title for the chart that is displayed in the left hand gutter (vertically).
- Default: An empty string

- - - chart.title.side.font
- The font used to draw the side title.
- Default:

- - - chart.title.side.size
- The font size of the side title.
- Default: 12

- - - chart.title.side.color
- The color used for the side title.
- Default:

- - - chart.title.side.bold
- Whether the side title is bold or not.
- Default:

- - -

Interactive features

-chart.tooltips
- An array, albeit one element only. This is shown when the progress bar is clicked on. Tooltips can contain HTML.
Default: An empty array

- -chart.tooltips.effect
- The animated effect used for showing the tooltip. Can be either fade or expand.
Default: fade

- -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- - - chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
- Default: null

- -chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -chart.adjustable
- Defaulting to false, this determines whether your progress bar will be adjustable (click the bar and drag it).
Default: false

- -

Zoom

-chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - -

Key

- - - chart.key
- An array of key information.
- Default: [] (An empty array)

- - - chart.key.background
- The color of the key background. Typically white, you could set this to something like rgba(255,255,255,0.7) to allow people to see things behind it.
- Default: white

- - - chart.key.halign
- Instead of specifying the exact x/y coordinates, you can use this property to simply specify whether the key hould be - aligned left or right.
- Default: right

- - - chart.key.position
- Determines the position of the key.Either graph (default), or gutter.
- Default: graph

- - chart.key.position.x
- This allows you to specify a specific X coordinate for the key.
- Default: null

- - chart.key.position.y
- This allows you to specify a specific Y coordinate for the key.
- Default: null

- - chart.key.position.gutter.boxed
- If you have the key in gutter mode (ie horizontal), this allows you to give a background color.
- Default: true

- - - chart.key.shadow
- Whether a small drop shadow is applied to the key.
- Default: false

- - - chart.key.shadow.color
- The color of the shadow.
- Default: #666

- - - chart.key.shadow.blur
- The extent of the blurring effect used on the shadow.
- Default: 3

- - - chart.key.shadow.offsetx
- The X offset of the shadow.
- Default: 2

- - - chart.key.shadow.offsety
- The Y offset of the shadow.
- Default: 2

- - chart.key.rounded
- This controls whether the corners of the key (in graph mode) are curved. If the key is gutter mode, this has no effect.
- Default: true

- - chart.key.color.shape
- This can be square, circle or line and controls how the color indicators in the key appear.
- Default: square

- - chart.key.linewidth
- The line width of the surrounding border on the key.
- Default: 1

- - -

Miscellaneous

- - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- -

- - - - -

 

-

Methods

- - - obj.getBar(event)

-

- This method returns details of any focused bar. It returns: -

- -
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width of the section
  • -
  • The height of the segment
  • -
  • The index of the segment (starting at zero). This is here because you can have multiple bars on the progress bar.
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - obj.getValue(mixed) -

- This method can be used to get the value at a particular point or at the mouse coordinates, based on the scale that is in use. - Not simply the coordinates of the mouse. The argument can either be an event object (for use in event listener functions) OR a two element - array consisting of the X and Y coordinates (ie when you're not necessarily in an event listener). It returns null if the mouse - or coordinates are in the gutter areas. An example: -

- -
-myChart.canvas.onclick = function (e)
-{
-    var obj   = e.target.__object__;
-    var value = obj.getValue(e);
-    
-    // ...
-}
-
- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/waterfall.html b/OfficeWeb/sdk/Common/Charts/docs/waterfall.html deleted file mode 100644 index 59a099ac..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/waterfall.html +++ /dev/null @@ -1,614 +0,0 @@ - - - - - - Documentation about the Waterfall chart - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Waterfall charts documentation

- - - -

- - - - -

 

-

Example

-
 
-<script>
-    window.onload = function ()
-    {
-        // The data to be shown on the Waterfall chart.
-        var data = [90, -16, -18, -34];
-        
-        // Create the Waterfall chart. The arguments are: the canvas ID and the data
-        var waterfall = new OfficeExcel.Waterfall('cvs', data);
-        
-        // Now call the .Draw() method to draw the chart.
-        waterfall.Draw();
-    }
-</script>
-
- -

- The example file is here. -

- - -

 

-

Properties

- -

- You can use these properties to control how the Waterfall chart apears. You can set them by using the Set() method. Eg: -

- -

- myBar.Set('name', 'value'); -

- - - - - - -

Background

- - chart.background.barcolor1
- The color of the background bars, (1 of 2).
Default: white

- - - chart.background.barcolor2
- The color of the background bars, (2 of 2).
Default: white

- - - chart.background.grid
- Whether to show the background grid or not.
Default: true

- - - chart.background.grid.color
- The color of the background grid.
Default: #ddd

- - - chart.background.grid.hsize
- The horizontal background grid size.
Default: 40

- - - chart.background.grid.vsize
- The vertical background grid size.
Default: 18

- - - chart.background.grid.width
- The width that the background grid lines are. Decimals (eg 0.5) are permitted.
Default: 1

- - - chart.background.grid.border
- Determines whether a border line is drawn around the grid.
Default: true

- - - chart.background.grid.hlines
- Determines whether to draw the horizontal grid lines.
Default: true

- - - chart.background.grid.vlines
- Determines whether to draw the vertical grid lines.
Default: true

- - - chart.background.grid.autofit
- Instead of specifying a pixel width/height for the background grid, you can use autofit and specify how many horizontal and vertical lines you want.
Default: false

- - - chart.background.grid.autofit.numhlines
- When using autofit this allows you to specify how many horizontal grid lines you want.
Default: 7

- - - chart.background.grid.autofit.numvlines
- When using autofit this allows you to specify how many vertical grid lines you want.
Default: 20

- - - chart.background.grid.autofit.align
- If you want to have your grid lines line up with the labels (both X and Y axis), you can set this to true and OfficeExcel will - attempt to make the grid lines line up. If you have a chart.hmargin set then the alignment will be thrown out.
- Default: false

- - -chart.background.hbars
- An array of information stipulating horizontal coloured bars. You can use these to indicate limits. Eg: myBar.Set('hbars', [[75, 10, 'yellow'], [85, 15, 'red']]); This would give you two bars, one red and a lower yellow bar. The units correspond to your scale, and are the starting point and the height.
Default: null

- - - chart.background.image
- If you want to specify a background image to use on your chart, specify it with this property.
- Default: null

- - -

Axis properties

- - - chart.noaxes
- Whether the axes are drawn
- Default: false (the axes ARE drawn)

- - - chart.noxaxis
- Whether the X axis is drawn
- Default: false (the X axis IS drawn)

- - - chart.noyaxis
- Whether the Y axis is drawn
- Default: false (the Y axis IS drawn)

- - - chart.xaxispos
- This determines where the X axis is positioned. If you wish to show negative values then you should set this - to center.
- Default: bottom

- - -

Colors

- - -chart.strokestyle
- The color of the outline of the bars.
Default: #666

- - - chart.colors
- An array of the colors of the actual bars.
- Default: An array - ['green', 'red', 'blue']

- - -

Margins

-chart.hmargin
- The horizontal margin (in pixels) of the chart.
Default: 5

- - - - chart.gutter.left
- The left gutter of the chart, (the gutter is where the labels and title are)).
- Default: 25

- - - chart.gutter.right
- The right gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.top
- The top gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - - chart.gutter.bottom
- The bottom gutter of the chart, (the gutter is where the labels and title are).
- Default: 25

- - -

Labels and text

-chart.text.color
- The color of the labels.
Default: black

- -chart.text.size
- The size (in points) of the labels.
Default: 10

- -chart.text.angle
- The angle of the horizontal text labels (at the bottom of the chart). This can be one of three values - 0, 45 or 90.
Default: 0 (Horizontal)

- -chart.text.font
- The font used to render the text.
Default: Verdana

- -chart.labels
- An array of the labels to be used on the chart.
Default: An empty array

- -chart.ylabels
- Can be true or false and determines whether the chart has Y axis labels.
Default: true

- - - -chart.numyticks
- The number of Y tickmarks. If you have changed the number of Y labels, you may also want to change this to match.
Default: 10

- - - - -

Titles

- - -chart.title
-The title of the chart, if any.
-Default: null

- - - - -chart.title.font
-The font that the title is rendered in. If not specified the chart.text.font setting is used (usually Verdana)
-Default: null

- - -chart.title.size
-The size of the title. If not specified the size is usually 2pt bigger than the chart.text.size setting.
-Default: null

- - -chart.title.bold
-Whather the title is bold or not.
-Default: true

- - -chart.title.background
-The background color (if any) for the title.
-Default: null

- - -chart.title.color
- The color of the title.
Default: black

- -chart.title.hpos
- This allows you to completely override the horizontal positioning of the title. It should be a number between 0 and 1, and is multiplied with the whole width of the canvas and then used as the horizontal position.
Default: null

- -chart.title.vpos
- This allows you to completely override the vertical positioning of the title. It should be a number between 0 and 1, and is multiplied with the gutter and then used as the vertical position. It can be useful if you need to have a large gutter.
Default: null

- - - chart.title.xaxis
- This allows to specify a title for the X axis.
- Default: none

- - - - chart.title.xaxis.size
- This allows you to specify a size for the X axis title.
- Default: null

- - - chart.title.xaxis.font
- This allows to specify a font for the X axis title.
- Default: null

- - - chart.title.xaxis.bold
- This controls whether the X axis title is bold or not.
- Default: true

- - - chart.title.yaxis
- This allows to specify a title for the Y axis.
- Default: none

- - - chart.title.yaxis.size
- This allows you to specify a size for the Y axis title.
- Default: null

- - - chart.title.yaxis.font
- This allows to specify a font for the Y axis title.
- Default: null

- - - chart.title.yaxis.bold
- This controls whether the Y axis title is bold or not.
- Default: true

- - -chart.title.xaxis.pos
- This is multiplied with the gutter to give the position of the X axis title.
Default: 0.25

- -chart.title.yaxis.pos
- This is multiplied with the gutter to give the position of the Y axis title.
Default: 0.25

- - - - chart.title.yaxis.align
- Instead of using the option above you can instead use this option, specifying left or right.
- Default: left

- - -

Shadow

-chart.shadow
- Whether a drop shadow is applied.
Default: false

- -chart.shadow.color
- The color of the shadow.
Default: #666

- -chart.shadow.offsetx
- The X offset of the shadow.
Default: 3

- -chart.shadow.offsety
- The Y offset of the shadow.
Default: 3

- -chart.shadow.blur
- The severity of the shadow blurring effect.
Default: 3

- - -

Scale

- - - - - chart.scale.decimals
- The number of decimal places to display for the Y scale. -
Default: 0

- - - chart.scale.point
- The character used as the decimal point.
Default: .

- - - chart.scale.thousand
- The character used as the thousand separator
- Default: ,

- - - chart.scale.formatter
- To allow thoroughly custom formats of numbers in the scale, you can use this option to - specify a function that is used by OfficeExcel to format numbers. This function should - handle ALL of the formatting. Eg:

-
-function myFormatter(obj, num)
-{
-    return num + 'F'; // An example of formatting
-}
-myGraph.Set('chart.scale.formatter', myFormatter);
-
-
Default: null

- - - - - chart.units.pre
- The units that the Y axis is measured in. This string is displayed BEFORE the actual number, allowing you to specify values such as "$50".
Default: none

- - - chart.units.post
- The units that the Y axis is measured in. This string is displayed AFTER the actual number, allowing you to specify values such as "50ms".
Default: none

- - - chart.ymax
- The optional maximum Y scale value. If not specified then it will be calculated.
Default: null (It's calculated)

- - - - - -

Interactive features

-chart.contextmenu
- An array of context menu items. More information on context menus is here.
Default: [] (An empty array)

- -chart.tooltips
- A numerically indexed array of tooltips that are shown when a bar is clicked. These can contain HTML.
Default: null

- -chart.tooltips.effect
- The animated effect used for showing tooltips. Can be either fade or expand.
Default: fade

- -chart.tooltips.event
- This is the event that triggers the tooltips. It can be either onclick or onmousemove.
Default: onclick

- -chart.tooltips.css.class
- This is the name of the CSS class the chart uses.
Default: OfficeExcel_tooltip

- -chart.tooltips.override
- If you wish to handle showing tooltips yourself, this should be a function object which does just that. There's more information on the tooltips documentation page
Default: null

- - - -chart.crosshairs
- If true, you will get a crosshair centering on the current mouse position.
Default: false

- -chart.crosshairs.linewidth
- This controls the linewidth of the crosshairs.
Default: 1

- -chart.crosshairs.color
- The color of the crosshairs.
Default: #333

- - - chart.crosshairs.hlines
- This determines whether the horizontal crosshair is shown.
- Default: true

- - - chart.crosshairs.vlines
- This determines whether the vertical crosshair is shown.
- Default: true

- - - -chart.annotatable
- Whether annotations are enabled for the chart (ie you can draw on the chart interactively.
Default: false

- -chart.annotate.color
- If you do not allow the use of the palette, then this will be the only colour allowed for annotations.
Default: black

- - - chart.resizable
- Defaulting to false, this determines whether your chart will be resizable. Because of the numerous event handlers this has to install code on, This feature is unlikely to work with other dynamic features (the context menu is fine however).
- Default: false

- - - - chart.resize.handle.background
- With this you can specify the background color for the resize handle. If you're adjusting the position of the - handle then you may need this to make the handle stand out more.
- Default: null

- - -

Zoom

- -chart.zoom.mode
- Can be used to control whether the zoom is in thumbnail or canvas mode. Possible values are: thumbnail and canvas.
Default: canvas

- -chart.zoom.factor
- This is the factor that the chart will be zoomed by (bigger values means more zoom)
Default: 1.5

- -chart.zoom.fade.in
- Whether the zoomed canvas fades in or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.fade.out
- Whether the zoomed canvas fades out or not. This also can be used to control the fade in for the zoom in thumbnail mode.
Default: true

- -chart.zoom.hdir
- The horizontal direction of the zoom. Possible values are: left, center, right
Default: right

- -chart.zoom.vdir
- The vertical direction of the zoom. Possible values are: up, center, down
Default: down

- -chart.zoom.delay
- The delay (in milliseconds) between frames.
Default: 50

- -chart.zoom.frames
- The number of frames in the zoom animation.
Default: 10

- -chart.zoom.shadow
- Whether or not the zoomed canvas has a shadow or not.
Default: true

- -chart.zoom.thumbnail.width
- When the zoom is in thumbnail mode, this is the width (in pixels) of the thumbnail.
Default: 75

- -chart.zoom.thumbnail.height
- When the zoom is in thumbnail mode, this is the height (in pixels) of the thumbnail.
Default: 75

- - - chart.zoom.thumbnail.fixed
- When the zoom is in thumbnail mode, you can use this property to fix the zoom in the top left corner instead - of it following the cursor around.
- Default: false

- - -chart.zoom.background
- Defaulting to true, this determines whether the zoom has a dark, semi-opaque background that covers the entire web page.
Default: true

- - - -

Events

- - - chart.events.click
- If you want to add your own onclick function you can do so by assigning it to this property. See - here for details. -
Default: null

- - - chart.events.mousemove
- If you want to add your own onmousemove function you can do so by assigning it to this property. See - here for details. -
Default: null

- - -

Miscellaneous

- - chart.highlight.stroke
- If you use tooltips, this controls the colour of the highlight stroke. -
Default: black

- - - chart.highlight.fill
- If you use tooltips, this controls the colour of the highlight fill. -
Default: rgba(255,255,255,0.5)

- - - -chart.axis.color
- The color of the axis.
Default: black

- - - - - -

 

-

Methods

- - - obj.getBar(event)

-

- This method returns details of the focused bar (if any). It provides: -

- -
    -
  • The chart object
  • -
  • The X coordinate
  • -
  • The Y coordinate
  • -
  • The width of the bar
  • -
  • The height of the bar
  • -
  • The index of the pertinent bar (starting from zero).
  • -
- - - obj.getShape(event) -

- This method is an alternate name for the above method but has a generic name that is the same acoss the various libraries. -

- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/what-is-html5-canvas.html b/OfficeWeb/sdk/Common/Charts/docs/what-is-html5-canvas.html deleted file mode 100644 index 374f9f2f..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/what-is-html5-canvas.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - A short description of what HTML5 canvas is - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

What is HTML5 canvas?

- - - - - - -

Introduction

- -

- HTML5 canvas is a new HTML tag (<canvas>) which is part of the forthcoming HTML5 standard. It allows bitmap - drawing which is controlled using Javascript, and is what the OfficeExcel libraries use to draw the charts. You could - liken it to a piece of paper which is part of your HTML page, on to which you can draw. Because you use Javascript to - draw on the canvas it becomes part of your page and allows interaction very easily. -

- -

- Canvas uses a "fire and forget" drawing methodology - there is no DOM that is maintained, so if you want to alter something - you will probably have to redraw the entire canvas. The lack of a DOM means that canvas is fast to draw on and very - responsive - important when you're providing iteractive charts to your users. -

- - -

History

-

- HTML5 canvas was originally introduced by Apple for use in WebKit (which is used in their Safari browser and Google Chrome). - It is now part of the HTML5 specification and supported by all modern web browsers. -

- - -

Example

- - [No canvas support] - - -

- The example to the right is a very simple case of drawing a few primitives on the canvas. The dotted border is - provided by CSS to illustrate the drawing area. -

- -

- The <canvas> tag itself is defined with just a width/height/id attribute. The one here also has a style attribute - to make it more evident in the page. The HTML used is shown below: -

- -
- -
-<canvas id="cvs" width="375" height="250">[No canvas support]<canvas>
-
- - The content in between the tags is not shown if the browser supports canvas, and is if the browser doesn't. This provides - for fallback content if the users browser doesn't support canvas. - - -

HTML5 Canvas compared to SVG

-

- HTML5 canvas can be compared (a bit) to SVG - which is a vector based alternative for drawing in HTML pages. SVG is - at a more abstract level than canvas and maintains a record of everything drawn, using a DOM. This is then converted - to a bitmap when shown. In the above example, if the blue squares coordinates are changed (eg in an animation), - then the whole canvas needs to be cleared and redrawn for each frame of that animation. -

- -

- As a result of not having to maintain a DOM though, <canvas> is fast to draw on and display to the browser. -

- - -

Browser support for HTML5 canvas

-

- Modern browsers supporting HTML5 support canvas, including IE9+. Earlier versions of MSIE have some support through - compatibility layers provided by Google and Mozilla. One such library - ExCanvas - is provided in the OfficeExcel archive - allowing IE7 and 8 to display the graphs, albeit without many of the dynamic features. You can read more on this - here. -

- -

- - Full documentation » - -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/xml-data.html b/OfficeWeb/sdk/Common/Charts/docs/xml-data.html deleted file mode 100644 index 98aec14e..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/xml-data.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - An example of using XML data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Fetching data from an XML file (AJAX)

- -
- Warning: - Because of the XMLHttpRequest security restrictions this example does not work offline. You can view the online version - here. -
- - [No canvas support] - -

- This is an example of fetching data from an XML file that is located on the server. The page uses the XMLHttpRequest (Javascript) - object to fetch the XML file (sample.xml) then parses it in Javascript and creates the chart. The function that parses the XML response - and then uses the data to create the chart is shown below and called myXMLProcessor() (it's the XMLHttpRequest callback function). -

- -

- This example has been tested in modern browsers and also MSIE 7/8 (via MSIE9 compatibility modes). -

- -
- -
-<script>
-    
-    // This is the same AJAX function that is defined in the documentation here:
-    // http://www.OfficeExcel.net/docs/#ajax
-    AjaxCall('/sample.xml', myXMLProcessor);
-
-    /**
-    * This sample callback function is called when the data is ready (readyState=4). It is where
-    * the XML response is parsed, the data pulled out and finally the chart is created.
-    */
-    function myXMLProcessor ()
-    {
-        // Check the readystate to see if the XMLHttpRequest object is ready
-        if (this.readyState == 4 && this.status == 200) {
-
-            /**
-            * This gets an xmlDoc object, accounting for differences in MSIE and
-            * other browsers
-            */
-            if (window.DOMParser) {
-                var parser = new DOMParser();
-                var xmlDoc = parser.parseFromString(this.responseText,"text/xml");
-            } else {
-                var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
-                xmlDoc.async = "false";
-                xmlDoc.loadXML(this.responseText); 
-            }
-            
-            /**
-            * Initialise the arrays that we will populate with data
-            */
-            var john = [];
-            var fred = [];
-            var lucy = [];
-
-            /**
-            * Now the main loop that goes through the XML extracting the data
-            */
-            var days = xmlDoc.getElementsByTagName("stats");
-
-            for (var i=0; i<days[0].childNodes.length; ++i) {
-                
-                var node = days[0].childNodes[i]
-                
-                if (node.nodeName == 'day') {
-                    var john_tag = node.getElementsByTagName('john');
-                    var fred_tag = node.getElementsByTagName('fred');
-                    var lucy_tag = node.getElementsByTagName('lucy');
-                    
-                    john.push(Number(john_tag[0].childNodes[0].nodeValue));
-                    fred.push(Number(fred_tag[0].childNodes[0].nodeValue));
-                    lucy.push(Number(lucy_tag[0].childNodes[0].nodeValue));
-                }
-            }
-
-            /**
-            * Now we have the information, use it to create and show the chart
-            */
-            var myLine = new OfficeExcel.Line('cvs', john, fred, lucy);
-            myLine.Set('chart.title', 'A chart of Johns, Freds and Lucys weekly statistics');
-            myLine.Set('chart.linewidth', 2);
-            myLine.Set('chart.hmargin', 5);
-            myLine.Set('chart.tickmarks', 'endcircle');
-            myLine.Set('chart.labels', ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']);
-            myLine.Set('chart.key', ['John', 'Fred', 'Lucy']);
-            myLine.Draw();
-        }
-    }
-</script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/zoom.html b/OfficeWeb/sdk/Common/Charts/docs/zoom.html deleted file mode 100644 index df6e74af..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/zoom.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - The zoom feature of OfficeExcel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Zooming your charts

- - - - - - - - -

Canvas mode

- - - - - - - - - - - -
-

- As of November 2009 OfficeExcel has had the ability to provide a zoom facility. It's designed to be used in - conjunction with a context menu as in the example to the right. -

- -

- You can control the zoom using these properties: -

- -
    -
  • chart.zoom.modeDefault: canvas
  • -
  • chart.zoom.factorDefault: 1.5
  • -
  • chart.zoom.fade.in Default: true
  • -
  • chart.zoom.fade.out Default: true
  • -
  • chart.zoom.hdir Default: right
  • -
  • chart.zoom.vdir Default: down
  • -
  • chart.zoom.delay Default: 50
  • -
  • chart.zoom.frames Default: 10
  • -
  • chart.zoom.shadow Default: true
  • -
  • chart.zoom.mode Default: canvas
  • -
  • chart.zoom.thumbnail.width Default: 75
  • -
  • chart.zoom.thumbnail.height Default: 75
  • -
  • chart.zoom.background Default: true
  • -
-
- [No canvas support] -
- The possible values of chart.zoom.hdir are: left, center, right. - The possible values of chart.zoom.vdir are: up, center, down. chart.zoom.delay - is the delay in between frames (in milliseconds) and chart.zoom.frames is the number of frames in the zoom. chart.zoom.shadow - is whether the zoomed canvas has a shadow or not. The possible values of chart.zoom.mode are canvas (default) - and thumbnail. -
- - - -
- -
-<script>
-    var graph = new OfficeExcel.Line('myc', [4,6,8,7,9,4,3,8,7,4,5,5,5]);
-    graph.Set('chart.labels', ['Fry','Hav','Jim','Moo','Io','Olga','Tim','Gaz','Jake','Pippa','Lou','Fred','John']);
-    graph.Set('chart.contextmenu', [
-                                    ['Clear annotations', function () {OfficeExcel.Clear(graph.canvas); graph.Draw();}],
-                                    ['Zoom in', OfficeExcel.Zoom]
-                                   ]);
-    graph.Set('chart.title', 'Chart with zoom (context, annotatable)');
-    graph.Set('chart.shadow', true);
-    graph.Set('chart.annotatable', true);
-    graph.Draw();
-</script>
-
- - - -

Thumbnail mode

- - [No canvas support] - -

- The zoom has an alternative thumbnail mode, which displays a small thumbnail zoom instead of zooming the entire canvas. - The chart to the left shows an example of this. -

- -

- It uses some of the same properties as the regular zoom, eg chart.fade.in, chart.fade.out, chart.zoom.shadow -

- -
- -
-<script>
-    var myLine = new OfficeExcel.Line('myc2', [40,48,45,64,34,22,23,56,56,54,84,44], [4,5,6,7,20,21,1,9,9,8,5,4]);
-    myLine.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-    myLine.Set('chart.hmargin', 10);
-    myLine.Set('chart.linewidth', 3);
-    myLine.Set('chart.title', 'A sample line chart');
-    myLine.Set('chart.zoom.mode', 'thumbnail');
-    myLine.Set('chart.zoom.vdir', 'center');
-    myLine.Set('chart.zoom.thumbnail.width', 100);
-    myLine.Set('chart.zoom.thumbnail.height', 100);
-    myLine.Set('chart.colors', ['red', 'black']);
-    myLine.Set('chart.shadow', true);
-    myLine.Set('chart.contextmenu', [['Zoom entire chart', OfficeExcel.Zoom]]);
-</script>
-
- -

- Making the zoom circular

- A circular zoom window - It is possible to make the zoom in area mode circular by utilising the border-radius CSS property. Currently support for - this is limited to FireFox 4b7+ and MSIE9, so it's not part of the main OfficeExcel software. The CSS ncessary to achieve this is - thus: -

- -
-<style>
-    .OfficeExcel_zoom_window {
-        border-radius: 50px ! important;
-    }
-</style>
-
- - This a chart demonstrating this technique here. Note that browser support for this technique is limited. - -
- - - -

Area mode

- - [No canvas support] - -

- Another type of zoom available is area. This is somewhat similar to thumbnail, but allows you to draw a rectangle around - the specific area that you want to zoom. -

- -

- Again, this uses some common zoom properties, such as chart.zoom.factor. -

- -

- Once visible, you can drag the zoomed area around with the left mouse button (a left drag), and drag the zoomed canvas around - within the zoom by using the right mouse button (a right-drag). And a double click will expand the zoomed area to cover the - whole canvas. -

- -
- -
-<script>
-    var myLine = new OfficeExcel.Line('myc3', [15,30,62,26,46,86,48,51,51,35,32, 35]);
-    myLine.Set('chart.zoom.mode', 'area');
-    myLine.Set('chart.hmargin', 10);
-    myLine.Set('chart.linewidth', 1);
-    myLine.Set('chart.title', 'A chart with zoom in area mode');
-    myLine.Set('chart.tickmarks', 'endcircle');
-    myLine.Set('chart.labels', ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
-    myLine.Draw();
-<script>
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/docs/zoom_thumbnail.html b/OfficeWeb/sdk/Common/Charts/docs/zoom_thumbnail.html deleted file mode 100644 index 7f501374..00000000 --- a/OfficeWeb/sdk/Common/Charts/docs/zoom_thumbnail.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - An example of making the thumbnail zoom circular - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A circular thumbnail demonstration

- - - - - [No canvas support] - - -

- This is a demonstration of the zoom in thumbnail mode with some custom CSS (the border-radius property) which facilitates - making the thumbnail circular. -

- -

- Remember that browser support for this is limited - currently (5th September 2011) only Firefox 4+ and IE9+ support it. -

- -

- «Back to zoom documentation -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Bar/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Bar/testExample.html deleted file mode 100644 index c34f0588..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Bar/testExample.html +++ /dev/null @@ -1,2613 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Bipolar/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Bipolar/testExample.html deleted file mode 100644 index c3685926..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Bipolar/testExample.html +++ /dev/null @@ -1,2544 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Gantt/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Gantt/testExample.html deleted file mode 100644 index 57cfcf97..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Gantt/testExample.html +++ /dev/null @@ -1,2576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/HBar/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/HBar/testExample.html deleted file mode 100644 index e00daeec..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/HBar/testExample.html +++ /dev/null @@ -1,2668 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Line/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Line/testExample.html deleted file mode 100644 index f63316b6..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Line/testExample.html +++ /dev/null @@ -1,2767 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] - -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- -
-
- -
- -
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Pie/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Pie/testExample.html deleted file mode 100644 index e896c046..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Pie/testExample.html +++ /dev/null @@ -1,2610 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Radar/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Radar/testExample.html deleted file mode 100644 index b3ccd3d2..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Radar/testExample.html +++ /dev/null @@ -1,2644 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Rose/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Rose/testExample.html deleted file mode 100644 index 3d4b8f20..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Rose/testExample.html +++ /dev/null @@ -1,2576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Rscatter/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Rscatter/testExample.html deleted file mode 100644 index da2231c5..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Rscatter/testExample.html +++ /dev/null @@ -1,2576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Scatter/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Scatter/testExample.html deleted file mode 100644 index 99d2a7c7..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Scatter/testExample.html +++ /dev/null @@ -1,2648 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/Waterfall/testExample.html b/OfficeWeb/sdk/Common/Charts/examples/Waterfall/testExample.html deleted file mode 100644 index 9cfbcfa0..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/Waterfall/testExample.html +++ /dev/null @@ -1,2576 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -
- -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [No canvas support] -
- - - - - -
- - -
- -
- -
-
- hideNotWorkFunction
-
- -
-
- showAllOptions
-
- -
-
- -
-
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/allCharts.html b/OfficeWeb/sdk/Common/Charts/examples/allCharts.html deleted file mode 100644 index 1aecfbdd..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/allCharts.html +++ /dev/null @@ -1,31 +0,0 @@ - - -
- Draw Diagram
- Line Chart
- Line Chart(Accumulation)
- Line Chart(Normalized)
- - Bar Chart
- Bar Chart(Accumulation)
- Bar Chart(Normalized)
- - - Horizontal Bar Chart
- Horizontal Bar Chart(Accumulation)
- Horizontal Bar Chart(Normalized)
- - - - - Pie Chart
- Radar Chart
- - Scatter Chart
- Exchange Chart
- - - -
- - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/bar.html b/OfficeWeb/sdk/Common/Charts/examples/bar.html deleted file mode 100644 index b4b1d6ae..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/bar.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - An example of an OfficeExcel Bar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bar charts

- - - -
- -
-

- Bar charts are probably one of the most widely used of charts, and also one of the most versatile. - It's defined as a chart with rectangular bars with lengths proportional to the values they represent. - The bar chart can be used to represent two or more values. With grouped and stacked bar charts, you - can visualise two or more sets of data. For example two years worth of sales figures. Doing this you - will be able to easily see trends, for example a better year when it comes to sales. You can - also show negative values by having the X axis in the center, like the examples shown. If you use - a grouped or stacked bar chart, a key may be helpful to your users. -

- -

- By using the tooltips feature, you can provide more detail about what a particular bar represents. The - tooltips in OfficeExcel can contain wide range of HTML, so you can use them to show photos or movies for example. -

- -
- -
- [No canvas support] -
-
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/basic.html b/OfficeWeb/sdk/Common/Charts/examples/basic.html deleted file mode 100644 index eafe98f6..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/basic.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - A basic example of an OfficeExcel chart - - - - - - - - - - - - - -

A basic example

- - - [No canvas support] - - - - -

- This is a very basic example that does little more than display a chart. If you're trying to understand how OfficeExcel - works, this should help as there is very little happening on this page. To see the source code of this - page simply view the source (Right click > View Source). -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/bipolar.html b/OfficeWeb/sdk/Common/Charts/examples/bipolar.html deleted file mode 100644 index 7fab3d80..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/bipolar.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - An example of an OfficeExcel Bi-polar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bi-polar charts

- - - -
- -
-

- The Bi-polar chart is also known as an age-frequency chart or a population pyramid. It allows you to very - straight forwardly compare two sets of data. For example two years worth of sales figues. By using this type - of chart abnormalities will become apparent. Other charts that would also be comparable, include a grouped - bar chart, a stacked bar chart, and a multiple line chart. -

- - -
- - -
- [No canvas support] -
-
- - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/diagram.css b/OfficeWeb/sdk/Common/Charts/examples/css/diagram.css deleted file mode 100644 index bb2ebf5c..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/css/diagram.css +++ /dev/null @@ -1,84 +0,0 @@ -.inputStyle{ - font-size:11pt; -} -.hidden{ - display:none; -} - .lineSpacingSelect:hover { - background-color: #2177CD; /* */ -} - .lineSpacingSelect - { - font-size:10pt; - padding:3px; -} -.lineMainSelect:hover { - background-color: #2177CD; /* */ -} - .lineMainSelect - { - font-size:10pt; - padding:3px; -} -.lineMainSelect1:hover { - background-color: #2177CD; /* */ -} - .lineMainSelect1 - { - font-size:10pt; - padding:3px; -} -.paletteCellHover .colorWatch{border:1px solid #FFFFFF;width:16px;height:16px;} -.colorWatch { - height:18px; - width:18px; - border-bottom-color:#FFFF00; -} -.bordered {border:1px solid #666666;} -.bg_fill { - background-position:-544px 50%; - height:14px; - width:16px; -} -body { margin: 0; padding: 0; vertical-align:top; overflow:hidden;-moz-user-select: none; -khtml-user-select: none; user-select: none;background-color: #EEEEEE} -div, table, tbody, tr, th, td, form { - margin:0; - padding:0; - vertical-align:top; -} -#doc-edit { - background-color:#EEF0F2; -} -#blockUI{display: none; position:absolute; left:0px; top:0px; margin:0; padding:0; z-index:200; background-color:#000000; border:medium none; cursor:wait; filter:alpha(opacity=60); -moz-opacity:0.6; -khtml-opacity:0.6; opacity:0.6; } -table { - border-collapse:collapse; - border-spacing:0; - empty-cells:show; - table-layout:fixed; -} -.options{position: absolute; z-index: 3; background:none repeat scroll 0 0 #FFFFFF;border-color:#FFF #666666 #666666 #A8A8A8;border-style: none solid solid solid;border-width:1px;} - -.MenuSeparator -{ - border-top: 1px solid #CCCCCC; - margin: 4px 0; - padding: 0; - - -moz-user-select: none; - -khtml-user-select: none; - user-select: none; -} -.buttonMaket -{ - height:80px; - width:80px; - -} -.opacitBack -{ - background: #b2b2b2; opacity:0.55; -} -.dragBorder -{ - border: 2px dotted #CCCCCC; -} \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/blank.gif b/OfficeWeb/sdk/Common/Charts/examples/css/images/blank.gif deleted file mode 100644 index 75b945d2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/blank.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_background.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_background.png deleted file mode 100644 index 8401572f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_background.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hex.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hex.png deleted file mode 100644 index 4e532d7c..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hex.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_b.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_b.png deleted file mode 100644 index dfac595d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_b.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_h.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_h.png deleted file mode 100644 index 3977ed9f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_h.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_s.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_s.png deleted file mode 100644 index a2a69973..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_hsb_s.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_indic.gif b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_indic.gif deleted file mode 100644 index f9fa95e2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_indic.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_overlay.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_overlay.png deleted file mode 100644 index 561cdd9c..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_overlay.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_b.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_b.png deleted file mode 100644 index dfac595d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_b.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_g.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_g.png deleted file mode 100644 index 72b32760..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_g.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_r.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_r.png deleted file mode 100644 index 4855fe03..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_rgb_r.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_select.gif b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_select.gif deleted file mode 100644 index 599f7f13..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_select.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_submit.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_submit.png deleted file mode 100644 index 7f4c0825..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/colorpicker_submit.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/select.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/select.png deleted file mode 100644 index 21213bfd..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/select.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/slider.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/slider.png deleted file mode 100644 index 8b03da96..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/slider.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png deleted file mode 100644 index 954e22db..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_diagonals-thick_18_b81900_40x40.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_diagonals-thick_20_666666_40x40.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_diagonals-thick_20_666666_40x40.png deleted file mode 100644 index 64ece570..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_diagonals-thick_20_666666_40x40.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_flat_10_000000_40x100.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_flat_10_000000_40x100.png deleted file mode 100644 index abdc0108..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_flat_10_000000_40x100.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_100_f6f6f6_1x400.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_100_f6f6f6_1x400.png deleted file mode 100644 index 9b383f4d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_100_f6f6f6_1x400.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_100_fdf5ce_1x400.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_100_fdf5ce_1x400.png deleted file mode 100644 index a23baad2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_100_fdf5ce_1x400.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_65_ffffff_1x400.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 42ccba26..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png deleted file mode 100644 index f1273672..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png deleted file mode 100644 index 359397ac..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-bg_highlight-soft_75_ffe45c_1x100.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_222222_256x240.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_222222_256x240.png deleted file mode 100644 index ee039dc0..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_222222_256x240.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_228ef1_256x240.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_228ef1_256x240.png deleted file mode 100644 index 10e3631d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_228ef1_256x240.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ef8c08_256x240.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ef8c08_256x240.png deleted file mode 100644 index 35bb8efa..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ef8c08_256x240.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ffd27a_256x240.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ffd27a_256x240.png deleted file mode 100644 index baebb63e..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ffd27a_256x240.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ffffff_256x240.png b/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ffffff_256x240.png deleted file mode 100644 index bef5178a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/examples/css/images/ui-icons_ffffff_256x240.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/examples/css/jquery-ui.css b/OfficeWeb/sdk/Common/Charts/examples/css/jquery-ui.css deleted file mode 100644 index d3be5607..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/css/jquery-ui.css +++ /dev/null @@ -1,406 +0,0 @@ -/* -* jQuery UI CSS Framework -* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. -*/ - -/* Layout helpers -----------------------------------*/ -.ui-helper-hidden { display: none; } -.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } -.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } -.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } -.ui-helper-clearfix { display: inline-block; } -/* required comment for clearfix to work in Opera \*/ -* html .ui-helper-clearfix { height:1%; } -.ui-helper-clearfix { display:block; } -/* end clearfix */ -.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } - - -/* Interaction Cues -----------------------------------*/ -.ui-state-disabled { cursor: default !important; } - - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } - - - -/* -* jQuery UI CSS Framework -* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) -* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px -*/ - - -/* Component containers -----------------------------------*/ -.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; } -.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; } -.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; } -.ui-widget-content a { color: #333333; } -.ui-widget-header { border: 1px solid #6688EE; background: #BBCCFF 50% 50% repeat-x; color: #ffffff; font-weight: bold; } -.ui-widget-header a { color: #ffffff; } - -/* Interaction states -----------------------------------*/ -.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; outline: none; } -.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; outline: none; } -.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; outline: none; } -.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; outline: none; } -.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; outline: none; } -.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; outline: none; text-decoration: none; } - -/* Interaction Cues -----------------------------------*/ -.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; } -.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; } -.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; } -.ui-state-error a, .ui-widget-content .ui-state-error a { color: #ffffff; } -.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #ffffff; } -.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } -.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; } -.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } - -/* Icons -----------------------------------*/ - -/* states and images */ -.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } -.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); } -.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); } -.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); } -.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); } - -/* positioning */ -.ui-icon-carat-1-n { background-position: 0 0; } -.ui-icon-carat-1-ne { background-position: -16px 0; } -.ui-icon-carat-1-e { background-position: -32px 0; } -.ui-icon-carat-1-se { background-position: -48px 0; } -.ui-icon-carat-1-s { background-position: -64px 0; } -.ui-icon-carat-1-sw { background-position: -80px 0; } -.ui-icon-carat-1-w { background-position: -96px 0; } -.ui-icon-carat-1-nw { background-position: -112px 0; } -.ui-icon-carat-2-n-s { background-position: -128px 0; } -.ui-icon-carat-2-e-w { background-position: -144px 0; } -.ui-icon-triangle-1-n { background-position: 0 -16px; } -.ui-icon-triangle-1-ne { background-position: -16px -16px; } -.ui-icon-triangle-1-e { background-position: -32px -16px; } -.ui-icon-triangle-1-se { background-position: -48px -16px; } -.ui-icon-triangle-1-s { background-position: -64px -16px; } -.ui-icon-triangle-1-sw { background-position: -80px -16px; } -.ui-icon-triangle-1-w { background-position: -96px -16px; } -.ui-icon-triangle-1-nw { background-position: -112px -16px; } -.ui-icon-triangle-2-n-s { background-position: -128px -16px; } -.ui-icon-triangle-2-e-w { background-position: -144px -16px; } -.ui-icon-arrow-1-n { background-position: 0 -32px; } -.ui-icon-arrow-1-ne { background-position: -16px -32px; } -.ui-icon-arrow-1-e { background-position: -32px -32px; } -.ui-icon-arrow-1-se { background-position: -48px -32px; } -.ui-icon-arrow-1-s { background-position: -64px -32px; } -.ui-icon-arrow-1-sw { background-position: -80px -32px; } -.ui-icon-arrow-1-w { background-position: -96px -32px; } -.ui-icon-arrow-1-nw { background-position: -112px -32px; } -.ui-icon-arrow-2-n-s { background-position: -128px -32px; } -.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -.ui-icon-arrow-2-e-w { background-position: -160px -32px; } -.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -.ui-icon-arrowstop-1-n { background-position: -192px -32px; } -.ui-icon-arrowstop-1-e { background-position: -208px -32px; } -.ui-icon-arrowstop-1-s { background-position: -224px -32px; } -.ui-icon-arrowstop-1-w { background-position: -240px -32px; } -.ui-icon-arrowthick-1-n { background-position: 0 -48px; } -.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -.ui-icon-arrowthick-1-e { background-position: -32px -48px; } -.ui-icon-arrowthick-1-se { background-position: -48px -48px; } -.ui-icon-arrowthick-1-s { background-position: -64px -48px; } -.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -.ui-icon-arrowthick-1-w { background-position: -96px -48px; } -.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -.ui-icon-arrow-4 { background-position: 0 -80px; } -.ui-icon-arrow-4-diag { background-position: -16px -80px; } -.ui-icon-extlink { background-position: -32px -80px; } -.ui-icon-newwin { background-position: -48px -80px; } -.ui-icon-refresh { background-position: -64px -80px; } -.ui-icon-shuffle { background-position: -80px -80px; } -.ui-icon-transfer-e-w { background-position: -96px -80px; } -.ui-icon-transferthick-e-w { background-position: -112px -80px; } -.ui-icon-folder-collapsed { background-position: 0 -96px; } -.ui-icon-folder-open { background-position: -16px -96px; } -.ui-icon-document { background-position: -32px -96px; } -.ui-icon-document-b { background-position: -48px -96px; } -.ui-icon-note { background-position: -64px -96px; } -.ui-icon-mail-closed { background-position: -80px -96px; } -.ui-icon-mail-open { background-position: -96px -96px; } -.ui-icon-suitcase { background-position: -112px -96px; } -.ui-icon-comment { background-position: -128px -96px; } -.ui-icon-person { background-position: -144px -96px; } -.ui-icon-print { background-position: -160px -96px; } -.ui-icon-trash { background-position: -176px -96px; } -.ui-icon-locked { background-position: -192px -96px; } -.ui-icon-unlocked { background-position: -208px -96px; } -.ui-icon-bookmark { background-position: -224px -96px; } -.ui-icon-tag { background-position: -240px -96px; } -.ui-icon-home { background-position: 0 -112px; } -.ui-icon-flag { background-position: -16px -112px; } -.ui-icon-calendar { background-position: -32px -112px; } -.ui-icon-cart { background-position: -48px -112px; } -.ui-icon-pencil { background-position: -64px -112px; } -.ui-icon-clock { background-position: -80px -112px; } -.ui-icon-disk { background-position: -96px -112px; } -.ui-icon-calculator { background-position: -112px -112px; } -.ui-icon-zoomin { background-position: -128px -112px; } -.ui-icon-zoomout { background-position: -144px -112px; } -.ui-icon-search { background-position: -160px -112px; } -.ui-icon-wrench { background-position: -176px -112px; } -.ui-icon-gear { background-position: -192px -112px; } -.ui-icon-heart { background-position: -208px -112px; } -.ui-icon-star { background-position: -224px -112px; } -.ui-icon-link { background-position: -240px -112px; } -.ui-icon-cancel { background-position: 0 -128px; } -.ui-icon-plus { background-position: -16px -128px; } -.ui-icon-plusthick { background-position: -32px -128px; } -.ui-icon-minus { background-position: -48px -128px; } -.ui-icon-minusthick { background-position: -64px -128px; } -.ui-icon-close { background-position: -80px -128px; } -.ui-icon-closethick { background-position: -96px -128px; } -.ui-icon-key { background-position: -112px -128px; } -.ui-icon-lightbulb { background-position: -128px -128px; } -.ui-icon-scissors { background-position: -144px -128px; } -.ui-icon-clipboard { background-position: -160px -128px; } -.ui-icon-copy { background-position: -176px -128px; } -.ui-icon-contact { background-position: -192px -128px; } -.ui-icon-image { background-position: -208px -128px; } -.ui-icon-video { background-position: -224px -128px; } -.ui-icon-script { background-position: -240px -128px; } -.ui-icon-alert { background-position: 0 -144px; } -.ui-icon-info { background-position: -16px -144px; } -.ui-icon-notice { background-position: -32px -144px; } -.ui-icon-help { background-position: -48px -144px; } -.ui-icon-check { background-position: -64px -144px; } -.ui-icon-bullet { background-position: -80px -144px; } -.ui-icon-radio-off { background-position: -96px -144px; } -.ui-icon-radio-on { background-position: -112px -144px; } -.ui-icon-pin-w { background-position: -128px -144px; } -.ui-icon-pin-s { background-position: -144px -144px; } -.ui-icon-play { background-position: 0 -160px; } -.ui-icon-pause { background-position: -16px -160px; } -.ui-icon-seek-next { background-position: -32px -160px; } -.ui-icon-seek-prev { background-position: -48px -160px; } -.ui-icon-seek-end { background-position: -64px -160px; } -.ui-icon-seek-first { background-position: -80px -160px; } -.ui-icon-stop { background-position: -96px -160px; } -.ui-icon-eject { background-position: -112px -160px; } -.ui-icon-volume-off { background-position: -128px -160px; } -.ui-icon-volume-on { background-position: -144px -160px; } -.ui-icon-power { background-position: 0 -176px; } -.ui-icon-signal-diag { background-position: -16px -176px; } -.ui-icon-signal { background-position: -32px -176px; } -.ui-icon-battery-0 { background-position: -48px -176px; } -.ui-icon-battery-1 { background-position: -64px -176px; } -.ui-icon-battery-2 { background-position: -80px -176px; } -.ui-icon-battery-3 { background-position: -96px -176px; } -.ui-icon-circle-plus { background-position: 0 -192px; } -.ui-icon-circle-minus { background-position: -16px -192px; } -.ui-icon-circle-close { background-position: -32px -192px; } -.ui-icon-circle-triangle-e { background-position: -48px -192px; } -.ui-icon-circle-triangle-s { background-position: -64px -192px; } -.ui-icon-circle-triangle-w { background-position: -80px -192px; } -.ui-icon-circle-triangle-n { background-position: -96px -192px; } -.ui-icon-circle-arrow-e { background-position: -112px -192px; } -.ui-icon-circle-arrow-s { background-position: -128px -192px; } -.ui-icon-circle-arrow-w { background-position: -144px -192px; } -.ui-icon-circle-arrow-n { background-position: -160px -192px; } -.ui-icon-circle-zoomin { background-position: -176px -192px; } -.ui-icon-circle-zoomout { background-position: -192px -192px; } -.ui-icon-circle-check { background-position: -208px -192px; } -.ui-icon-circlesmall-plus { background-position: 0 -208px; } -.ui-icon-circlesmall-minus { background-position: -16px -208px; } -.ui-icon-circlesmall-close { background-position: -32px -208px; } -.ui-icon-squaresmall-plus { background-position: -48px -208px; } -.ui-icon-squaresmall-minus { background-position: -64px -208px; } -.ui-icon-squaresmall-close { background-position: -80px -208px; } -.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -.ui-icon-grip-solid-vertical { background-position: -32px -224px; } -.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; } -.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; } -.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; } -.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; } -.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; } -.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; } -.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; } -.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; } -.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; } - -/* Overlays */ -.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); } -.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; }/* Accordion -----------------------------------*/ -.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } -.ui-accordion .ui-accordion-li-fix { display: inline; } -.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } -.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; } -.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } -.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; } -.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker -----------------------------------*/ -.ui-datepicker { width: 17em; padding: .2em .2em 0; } -.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } -.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } -.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } -.ui-datepicker .ui-datepicker-prev { left:2px; } -.ui-datepicker .ui-datepicker-next { right:2px; } -.ui-datepicker .ui-datepicker-prev-hover { left:1px; } -.ui-datepicker .ui-datepicker-next-hover { right:1px; } -.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } -.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } -.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; } -.ui-datepicker select.ui-datepicker-month-year {width: 100%;} -.ui-datepicker select.ui-datepicker-month, -.ui-datepicker select.ui-datepicker-year { width: 49%;} -.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; } -.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } -.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } -.ui-datepicker td { border: 0; padding: 1px; } -.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } -.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } -.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } -.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } - -/* with multiple calendars */ -.ui-datepicker.ui-datepicker-multi { width:auto; } -.ui-datepicker-multi .ui-datepicker-group { float:left; } -.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } -.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } -.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } -.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } -.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } -.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } -.ui-datepicker-row-break { clear:both; width:100%; } - -/* RTL support */ -.ui-datepicker-rtl { direction: rtl; } -.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } -.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } -.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } -.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } -.ui-datepicker-rtl .ui-datepicker-group { float:right; } -.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } -.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } - -/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ -.ui-datepicker-cover { - display: none; /*sorry for IE5*/ - display/**/: block; /*sorry for IE5*/ - position: absolute; /*must have*/ - z-index: -1; /*must have*/ - filter: mask(); /*must have*/ - top: -4px; /*must have*/ - left: -4px; /*must have*/ - width: 200px; /*must have*/ - height: 200px; /*must have*/ -}/* Dialog -----------------------------------*/ -.ui-dialog { position: relative; padding: .2em; width: 300px; } -.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; } -.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; } -.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } -.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } -.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } -.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } -.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } -.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } -.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } -.ui-draggable .ui-dialog-titlebar { cursor: move; } -/* Progressbar -----------------------------------*/ -.ui-progressbar { height:2em; text-align: left; } -.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable -----------------------------------*/ -.ui-resizable { position: relative;} -.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} -.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } -.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; } -.ui-resizable-s { cursor: s-resize; height: 12px; width: 100%; bottom: -5px; left: 0px; } -.ui-resizable-e { cursor: e-resize; width: 15px; right: -5px; top: 0px; height: 100%; } -.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; } -.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider -----------------------------------*/ -.ui-slider { position: relative; text-align: left; } -.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } -.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; } - -.ui-slider-horizontal { height: .8em; } -.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } -.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } -.ui-slider-horizontal .ui-slider-range-min { left: 0; } -.ui-slider-horizontal .ui-slider-range-max { right: 0; } - -.ui-slider-vertical { width: .8em; height: 100px; } -.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } -.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } -.ui-slider-vertical .ui-slider-range-min { bottom: 0; } -.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs -----------------------------------*/ -.ui-tabs { padding: .2em; zoom: 1; } -.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; } -.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; } -.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; } -.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } -.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ -.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; } -.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/OfficeWeb/sdk/Common/Charts/examples/donut.html b/OfficeWeb/sdk/Common/Charts/examples/donut.html deleted file mode 100644 index c6d883aa..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/donut.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - An example of OfficeExcel Donut charts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Donut charts

- - - -
- -

- Formerly the Donut chart was a separate chart entirely, though now it's a variant of the Pie chart. This means smaller downloads and - a much simpler implementation. -

- - - -
- [No canvas support] -
-
- - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/gantt.html b/OfficeWeb/sdk/Common/Charts/examples/gantt.html deleted file mode 100644 index 3502ef25..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/gantt.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - An example of the OfficeExcel Gantt chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Gantt charts

- - - - -
-

- Gantt charts are used to show scheduling information. They are commonly used in project management but can also be used - to show holiday schedule information. In this case it would be easy to see when someone is unavailable. - Gantt charts can have clickable bars that can be used to provide extra detail. They can also show vertical bars that - can be used to indicate events, or as in the cases below, can be decorative. -

- -

- The charts are made of "units", in this case 365. This represents days in a year. The labels are separate, being - equally spaced across the chart. This means you can use more meaningful labels, which are easier to comprehend. - As in the example. -

- - -
- -
- [No canvas support] -
- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/hbar.html b/OfficeWeb/sdk/Common/Charts/examples/hbar.html deleted file mode 100644 index 148db45d..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/hbar.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - An example of the OfficeExcel Horizontal Bar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Horizontal bar charts

- - - -

- A horizontal bar chart can be useful when your labels are too big for regular bar charts. -

- - - - - [No canvas support] - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/index.html b/OfficeWeb/sdk/Common/Charts/examples/index.html deleted file mode 100644 index bad8d092..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/index.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - Examples of the types of charts that OfficeExcel supports - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Examples of supported charts

- - - -
-
- Need something that OfficeExcel doesn't currently support? OfficeExcel license holders can usually be accomodated - please -
-
- -

- The following Javascript charts and HTML5 examples are available. The charts are made with the HTML5 canvas tag so they're quick to load and interactive. -

- -
- A Rose chart of sales statistics - [No canvas support] -
- - -
-
-

Bar, line and pie chart examples

- - -

Planning and management chart examples

- -
- - -
- -
- -

Basic examples

- - - - - -

More examples

- -

- There are more usage examples as well as a few general HTML5 examples in the documentation. -

- - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/js/jquery-ui-1.8.13.custom.min.js b/OfficeWeb/sdk/Common/Charts/examples/js/jquery-ui-1.8.13.custom.min.js deleted file mode 100644 index 0074c6f3..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/js/jquery-ui-1.8.13.custom.min.js +++ /dev/null @@ -1,8607 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2014 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, - * EU, LV-1021. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - /* - * jQuery UI 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function (c, j) { - function k(a, b) { - var d = a.nodeName.toLowerCase(); - if ("area" === d) { - b = a.parentNode; - d = b.name; - if (!a.href || !d || b.nodeName.toLowerCase() !== "map") { - return false; - } - a = c("img[usemap=#" + d + "]")[0]; - return !! a && l(a); - } - return (/input|select|textarea|button|object/.test(d) ? !a.disabled : "a" == d ? a.href || b : b) && l(a); - } - function l(a) { - return !c(a).parents().andSelf().filter(function () { - return c.curCSS(this, "visibility") === "hidden" || c.expr.filters.hidden(this); - }).length; - } - c.ui = c.ui || {}; - if (!c.ui.version) { - c.extend(c.ui, { - version: "1.8.13", - keyCode: { - ALT: 18, - BACKSPACE: 8, - CAPS_LOCK: 20, - COMMA: 188, - COMMAND: 91, - COMMAND_LEFT: 91, - COMMAND_RIGHT: 93, - CONTROL: 17, - DELETE: 46, - DOWN: 40, - END: 35, - ENTER: 13, - ESCAPE: 27, - HOME: 36, - INSERT: 45, - LEFT: 37, - MENU: 93, - NUMPAD_ADD: 107, - NUMPAD_DECIMAL: 110, - NUMPAD_DIVIDE: 111, - NUMPAD_ENTER: 108, - NUMPAD_MULTIPLY: 106, - NUMPAD_SUBTRACT: 109, - PAGE_DOWN: 34, - PAGE_UP: 33, - PERIOD: 190, - RIGHT: 39, - SHIFT: 16, - SPACE: 32, - TAB: 9, - UP: 38, - WINDOWS: 91 - } - }); - c.fn.extend({ - _focus: c.fn.focus, - focus: function (a, b) { - return typeof a === "number" ? this.each(function () { - var d = this; - setTimeout(function () { - c(d).focus(); - b && b.call(d); - }, - a); - }) : this._focus.apply(this, arguments); - }, - scrollParent: function () { - var a; - a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function () { - return /(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)); - }).eq(0) : this.parents().filter(function () { - return /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)); - }).eq(0); - return /fixed/.test(this.css("position")) || !a.length ? c(document) : a; - }, - zIndex: function (a) { - if (a !== j) { - return this.css("zIndex", a); - } - if (this.length) { - a = c(this[0]); - for (var b; a.length && a[0] !== document;) { - b = a.css("position"); - if (b === "absolute" || b === "relative" || b === "fixed") { - b = parseInt(a.css("zIndex"), 10); - if (!isNaN(b) && b !== 0) { - return b; - } - } - a = a.parent(); - } - } - return 0; - }, - disableSelection: function () { - return this.bind((c.support.selectstart ? "selectstart" : "mousedown") + ".ui-disableSelection", function (a) { - a.preventDefault(); - }); - }, - enableSelection: function () { - return this.unbind(".ui-disableSelection"); - } - }); - c.each(["Width", "Height"], function (a, b) { - function d(f, g, m, n) { - c.each(e, function () { - g -= parseFloat(c.curCSS(f, "padding" + this, true)) || 0; - if (m) { - g -= parseFloat(c.curCSS(f, "border" + this + "Width", true)) || 0; - } - if (n) { - g -= parseFloat(c.curCSS(f, "margin" + this, true)) || 0; - } - }); - return g; - } - var e = b === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], - h = b.toLowerCase(), - i = { - innerWidth: c.fn.innerWidth, - innerHeight: c.fn.innerHeight, - outerWidth: c.fn.outerWidth, - outerHeight: c.fn.outerHeight - }; - c.fn["inner" + b] = function (f) { - if (f === j) { - return i["inner" + b].call(this); - } - return this.each(function () { - c(this).css(h, d(this, f) + "px"); - }); - }; - c.fn["outer" + b] = function (f, g) { - if (typeof f !== "number") { - return i["outer" + b].call(this, f); - } - return this.each(function () { - c(this).css(h, d(this, f, true, g) + "px"); - }); - }; - }); - c.extend(c.expr[":"], { - data: function (a, b, d) { - return !! c.data(a, d[3]); - }, - focusable: function (a) { - return k(a, !isNaN(c.attr(a, "tabindex"))); - }, - tabbable: function (a) { - var b = c.attr(a, "tabindex"), - d = isNaN(b); - return (d || b >= 0) && k(a, !d); - } - }); - c(function () { - var a = document.body, - b = a.appendChild(b = document.createElement("div")); - c.extend(b.style, { - minHeight: "100px", - height: "auto", - padding: 0, - borderWidth: 0 - }); - c.support.minHeight = b.offsetHeight === 100; - c.support.selectstart = "onselectstart" in b; - a.removeChild(b).style.display = "none"; - }); - c.extend(c.ui, { - plugin: { - add: function (a, b, d) { - a = c.ui[a].prototype; - for (var e in d) { - a.plugins[e] = a.plugins[e] || []; - a.plugins[e].push([b, d[e]]); - } - }, - call: function (a, b, d) { - if ((b = a.plugins[b]) && a.element[0].parentNode) { - for (var e = 0; e < b.length; e++) { - a.options[b[e][0]] && b[e][1].apply(a.element, d); - } - } - } - }, - contains: function (a, b) { - return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b); - }, - hasScroll: function (a, b) { - if (c(a).css("overflow") === "hidden") { - return false; - } - b = b && b === "left" ? "scrollLeft" : "scrollTop"; - var d = false; - if (a[b] > 0) { - return true; - } - a[b] = 1; - d = a[b] > 0; - a[b] = 0; - return d; - }, - isOverAxis: function (a, b, d) { - return a > b && a < b + d; - }, - isOver: function (a, b, d, e, h, i) { - return c.ui.isOverAxis(a, d, h) && c.ui.isOverAxis(b, e, i); - } - }); - } -})(jQuery); -/* - * jQuery UI Widget 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function (b, j) { - if (b.cleanData) { - var k = b.cleanData; - b.cleanData = function (a) { - for (var c = 0, d; - (d = a[c]) != null; c++) { - b(d).triggerHandler("remove"); - } - k(a); - }; - } else { - var l = b.fn.remove; - b.fn.remove = function (a, c) { - return this.each(function () { - if (!c) { - if (!a || b.filter(a, [this]).length) { - b("*", this).add([this]).each(function () { - b(this).triggerHandler("remove"); - }); - } - } - return l.call(b(this), a, c); - }); - }; - } - b.widget = function (a, c, d) { - var e = a.split(".")[0], - f; - a = a.split(".")[1]; - f = e + "-" + a; - if (!d) { - d = c; - c = b.Widget; - } - b.expr[":"][f] = function (h) { - return !! b.data(h, a); - }; - b[e] = b[e] || {}; - b[e][a] = function (h, g) { - arguments.length && this._createWidget(h, g); - }; - c = new c; - c.options = b.extend(true, {}, - c.options); - b[e][a].prototype = b.extend(true, c, { - namespace: e, - widgetName: a, - widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a, - widgetBaseClass: f - }, - d); - b.widget.bridge(a, b[e][a]); - }; - b.widget.bridge = function (a, c) { - b.fn[a] = function (d) { - var e = typeof d === "string", - f = Array.prototype.slice.call(arguments, 1), - h = this; - d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d; - if (e && d.charAt(0) === "_") { - return h; - } - e ? this.each(function () { - var g = b.data(this, a), - i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g; - if (i !== g && i !== j) { - h = i; - return false; - } - }) : this.each(function () { - var g = b.data(this, a); - g ? g.option(d || {})._init() : b.data(this, a, new c(d, this)); - }); - return h; - }; - }; - b.Widget = function (a, c) { - arguments.length && this._createWidget(a, c); - }; - b.Widget.prototype = { - widgetName: "widget", - widgetEventPrefix: "", - options: { - disabled: false - }, - _createWidget: function (a, c) { - b.data(c, this.widgetName, this); - this.element = b(c); - this.options = b.extend(true, {}, - this.options, this._getCreateOptions(), a); - var d = this; - this.element.bind("remove." + this.widgetName, function () { - d.destroy(); - }); - this._create(); - this._trigger("create"); - this._init(); - }, - _getCreateOptions: function () { - return b.metadata && b.metadata.get(this.element[0])[this.widgetName]; - }, - _create: function () {}, - _init: function () {}, - destroy: function () { - this.element.unbind("." + this.widgetName).removeData(this.widgetName); - this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled"); - }, - widget: function () { - return this.element; - }, - option: function (a, c) { - var d = a; - if (arguments.length === 0) { - return b.extend({}, - this.options); - } - if (typeof a === "string") { - if (c === j) { - return this.options[a]; - } - d = {}; - d[a] = c; - } - this._setOptions(d); - return this; - }, - _setOptions: function (a) { - var c = this; - b.each(a, function (d, e) { - c._setOption(d, e); - }); - return this; - }, - _setOption: function (a, c) { - this.options[a] = c; - if (a === "disabled") { - this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c); - } - return this; - }, - enable: function () { - return this._setOption("disabled", false); - }, - disable: function () { - return this._setOption("disabled", true); - }, - _trigger: function (a, c, d) { - var e = this.options[a]; - c = b.Event(c); - c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(); - d = d || {}; - if (c.originalEvent) { - a = b.event.props.length; - for (var f; a;) { - f = b.event.props[--a]; - c[f] = c.originalEvent[f]; - } - } - this.element.trigger(c, d); - return ! (b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented()); - } - }; -})(jQuery); -/* - * jQuery UI Mouse 1.8.13 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function (b) { - var d = false; - b(document).mousedown(function () { - d = false; - }); - b.widget("ui.mouse", { - options: { - cancel: ":input,option", - distance: 1, - delay: 0 - }, - _mouseInit: function () { - var a = this; - this.element.bind("mousedown." + this.widgetName, function (c) { - return a._mouseDown(c); - }).bind("click." + this.widgetName, function (c) { - if (true === b.data(c.target, a.widgetName + ".preventClickEvent")) { - b.removeData(c.target, a.widgetName + ".preventClickEvent"); - c.stopImmediatePropagation(); - return false; - } - }); - this.started = false; - }, - _mouseDestroy: function () { - this.element.unbind("." + this.widgetName); - }, - _mouseDown: function (a) { - if (!d) { - this._mouseStarted && this._mouseUp(a); - this._mouseDownEvent = a; - var c = this, - f = a.which == 1, - g = typeof this.options.cancel == "string" ? b(a.target).parents().add(a.target).filter(this.options.cancel).length : false; - if (!f || g || !this._mouseCapture(a)) { - return true; - } - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function () { - c.mouseDelayMet = true; - }, - this.options.delay); - } - if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) { - this._mouseStarted = this._mouseStart(a) !== false; - if (!this._mouseStarted) { - a.preventDefault(); - return true; - } - } - true === b.data(a.target, this.widgetName + ".preventClickEvent") && b.removeData(a.target, this.widgetName + ".preventClickEvent"); - this._mouseMoveDelegate = function (e) { - return c._mouseMove(e); - }; - this._mouseUpDelegate = function (e) { - return c._mouseUp(e); - }; - b(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); - a.preventDefault(); - return d = true; - } - }, - _mouseMove: function (a) { - if (b.browser.msie && !(document.documentMode >= 9) && !a.button) { - return this._mouseUp(a); - } - if (this._mouseStarted) { - this._mouseDrag(a); - return a.preventDefault(); - } - if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) { - (this._mouseStarted = this._mouseStart(this._mouseDownEvent, a) !== false) ? this._mouseDrag(a) : this._mouseUp(a); - } - return !this._mouseStarted; - }, - _mouseUp: function (a) { - b(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); - if (this._mouseStarted) { - this._mouseStarted = false; - a.target == this._mouseDownEvent.target && b.data(a.target, this.widgetName + ".preventClickEvent", true); - this._mouseStop(a); - } - return false; - }, - _mouseDistanceMet: function (a) { - return Math.max(Math.abs(this._mouseDownEvent.pageX - a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance; - }, - _mouseDelayMet: function () { - return this.mouseDelayMet; - }, - _mouseStart: function () {}, - _mouseDrag: function () {}, - _mouseStop: function () {}, - _mouseCapture: function () { - return true; - } - }); -})(jQuery); -(function (c) { - c.ui = c.ui || {}; - var n = /left|center|right/, - o = /top|center|bottom/, - t = c.fn.position, - u = c.fn.offset; - c.fn.position = function (b) { - if (!b || !b.of) { - return t.apply(this, arguments); - } - b = c.extend({}, - b); - var a = c(b.of), - d = a[0], - g = (b.collision || "flip").split(" "), - e = b.offset ? b.offset.split(" ") : [0, 0], - h, - k, - j; - if (d.nodeType === 9) { - h = a.width(); - k = a.height(); - j = { - top: 0, - left: 0 - }; - } else { - if (d.setTimeout) { - h = a.width(); - k = a.height(); - j = { - top: a.scrollTop(), - left: a.scrollLeft() - }; - } else { - if (d.preventDefault) { - b.at = "left top"; - h = k = 0; - j = { - top: b.of.pageY, - left: b.of.pageX - }; - } else { - h = a.outerWidth(); - k = a.outerHeight(); - j = a.offset(); - } - } - } - c.each(["my", "at"], function () { - var f = (b[this] || "").split(" "); - if (f.length === 1) { - f = n.test(f[0]) ? f.concat(["center"]) : o.test(f[0]) ? ["center"].concat(f) : ["center", "center"]; - } - f[0] = n.test(f[0]) ? f[0] : "center"; - f[1] = o.test(f[1]) ? f[1] : "center"; - b[this] = f; - }); - if (g.length === 1) { - g[1] = g[0]; - } - e[0] = parseInt(e[0], 10) || 0; - if (e.length === 1) { - e[1] = e[0]; - } - e[1] = parseInt(e[1], 10) || 0; - if (b.at[0] === "right") { - j.left += h; - } else { - if (b.at[0] === "center") { - j.left += h / 2; - } - } - if (b.at[1] === "bottom") { - j.top += k; - } else { - if (b.at[1] === "center") { - j.top += k / 2; - } - } - j.left += e[0]; - j.top += e[1]; - return this.each(function () { - var f = c(this), - l = f.outerWidth(), - m = f.outerHeight(), - p = parseInt(c.curCSS(this, "marginLeft", true)) || 0, - q = parseInt(c.curCSS(this, "marginTop", true)) || 0, - v = l + p + (parseInt(c.curCSS(this, "marginRight", true)) || 0), - w = m + q + (parseInt(c.curCSS(this, "marginBottom", true)) || 0), - i = c.extend({}, - j), - r; - if (b.my[0] === "right") { - i.left -= l; - } else { - if (b.my[0] === "center") { - i.left -= l / 2; - } - } - if (b.my[1] === "bottom") { - i.top -= m; - } else { - if (b.my[1] === "center") { - i.top -= m / 2; - } - } - i.left = Math.round(i.left); - i.top = Math.round(i.top); - r = { - left: i.left - p, - top: i.top - q - }; - c.each(["left", "top"], function (s, x) { - c.ui.position[g[s]] && c.ui.position[g[s]][x](i, { - targetWidth: h, - targetHeight: k, - elemWidth: l, - elemHeight: m, - collisionPosition: r, - collisionWidth: v, - collisionHeight: w, - offset: e, - my: b.my, - at: b.at - }); - }); - c.fn.bgiframe && f.bgiframe(); - f.offset(c.extend(i, { - using: b.using - })); - }); - }; - c.ui.position = { - fit: { - left: function (b, a) { - var d = c(window); - d = a.collisionPosition.left + a.collisionWidth - d.width() - d.scrollLeft(); - b.left = d > 0 ? b.left - d : Math.max(b.left - a.collisionPosition.left, b.left); - }, - top: function (b, a) { - var d = c(window); - d = a.collisionPosition.top + a.collisionHeight - d.height() - d.scrollTop(); - b.top = d > 0 ? b.top - d : Math.max(b.top - a.collisionPosition.top, b.top); - } - }, - flip: { - left: function (b, a) { - if (a.at[0] !== "center") { - var d = c(window); - d = a.collisionPosition.left + a.collisionWidth - d.width() - d.scrollLeft(); - var g = a.my[0] === "left" ? -a.elemWidth : a.my[0] === "right" ? a.elemWidth : 0, - e = a.at[0] === "left" ? a.targetWidth : -a.targetWidth, - h = -2 * a.offset[0]; - b.left += a.collisionPosition.left < 0 ? g + e + h : d > 0 ? g + e + h : 0; - } - }, - top: function (b, a) { - if (a.at[1] !== "center") { - var d = c(window); - d = a.collisionPosition.top + a.collisionHeight - d.height() - d.scrollTop(); - var g = a.my[1] === "top" ? -a.elemHeight : a.my[1] === "bottom" ? a.elemHeight : 0, - e = a.at[1] === "top" ? a.targetHeight : -a.targetHeight, - h = -2 * a.offset[1]; - b.top += a.collisionPosition.top < 0 ? g + e + h : d > 0 ? g + e + h : 0; - } - } - } - }; - if (!c.offset.setOffset) { - c.offset.setOffset = function (b, a) { - if (/static/.test(c.curCSS(b, "position"))) { - b.style.position = "relative"; - } - var d = c(b), - g = d.offset(), - e = parseInt(c.curCSS(b, "top", true), 10) || 0, - h = parseInt(c.curCSS(b, "left", true), 10) || 0; - g = { - top: a.top - g.top + e, - left: a.left - g.left + h - }; - "using" in a ? a.using.call(b, g) : d.css(g); - }; - c.fn.offset = function (b) { - var a = this[0]; - if (!a || !a.ownerDocument) { - return null; - } - if (b) { - return this.each(function () { - c.offset.setOffset(this, b); - }); - } - return u.call(this); - }; - } -})(jQuery); -(function (d) { - d.widget("ui.draggable", d.ui.mouse, { - widgetEventPrefix: "drag", - options: { - addClasses: true, - appendTo: "parent", - axis: false, - connectToSortable: false, - containment: false, - cursor: "auto", - cursorAt: false, - grid: false, - handle: false, - helper: "original", - iframeFix: false, - opacity: false, - refreshPositions: false, - revert: false, - revertDuration: 500, - scope: "default", - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - snap: false, - snapMode: "both", - snapTolerance: 20, - stack: false, - zIndex: false - }, - _create: function () { - if (this.options.helper == "original" && !/^(?:r|a|f)/.test(this.element.css("position"))) { - this.element[0].style.position = "relative"; - } - this.options.addClasses && this.element.addClass("ui-draggable"); - this.options.disabled && this.element.addClass("ui-draggable-disabled"); - this._mouseInit(); - }, - destroy: function () { - if (this.element.data("draggable")) { - this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); - this._mouseDestroy(); - return this; - } - }, - _mouseCapture: function (a) { - var b = this.options; - if (this.helper || b.disabled || d(a.target).is(".ui-resizable-handle")) { - return false; - } - this.handle = this._getHandle(a); - if (!this.handle) { - return false; - } - d(b.iframeFix === true ? "iframe" : b.iframeFix).each(function () { - d('
').css({ - width: this.offsetWidth + "px", - height: this.offsetHeight + "px", - position: "absolute", - opacity: "0.001", - zIndex: 1000 - }).css(d(this).offset()).appendTo("body"); - }); - return true; - }, - _mouseStart: function (a) { - var b = this.options; - this.helper = this._createHelper(a); - this._cacheHelperProportions(); - if (d.ui.ddmanager) { - d.ui.ddmanager.current = this; - } - this._cacheMargins(); - this.cssPosition = this.helper.css("position"); - this.scrollParent = this.helper.scrollParent(); - this.offset = this.positionAbs = this.element.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - d.extend(this.offset, { - click: { - left: a.pageX - this.offset.left, - top: a.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() - }); - this.originalPosition = this.position = this._generatePosition(a); - this.originalPageX = a.pageX; - this.originalPageY = a.pageY; - b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); - b.containment && this._setContainment(); - if (this._trigger("start", a) === false) { - this._clear(); - return false; - } - this._cacheHelperProportions(); - d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); - this.helper.addClass("ui-draggable-dragging"); - this._mouseDrag(a, true); - return true; - }, - _mouseDrag: function (a, b) { - this.position = this._generatePosition(a); - this.positionAbs = this._convertPositionTo("absolute"); - if (!b) { - b = this._uiHash(); - if (this._trigger("drag", a, b) === false) { - this._mouseUp({}); - return false; - } - this.position = b.position; - } - if (!this.options.axis || this.options.axis != "y") { - this.helper[0].style.left = this.position.left + "px"; - } - if (!this.options.axis || this.options.axis != "x") { - this.helper[0].style.top = this.position.top + "px"; - } - d.ui.ddmanager && d.ui.ddmanager.drag(this, a); - return false; - }, - _mouseStop: function (a) { - var b = false; - if (d.ui.ddmanager && !this.options.dropBehaviour) { - b = d.ui.ddmanager.drop(this, a); - } - if (this.dropped) { - b = this.dropped; - this.dropped = false; - } - if ((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") { - return false; - } - if (this.options.revert == "invalid" && !b || this.options.revert == "valid" && b || this.options.revert === true || d.isFunction(this.options.revert) && this.options.revert.call(this.element, b)) { - var c = this; - d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function () { - c._trigger("stop", a) !== false && c._clear(); - }); - } else { - this._trigger("stop", a) !== false && this._clear(); - } - return false; - }, - _mouseUp: function (a) { - this.options.iframeFix === true && d("div.ui-draggable-iframeFix").each(function () { - this.parentNode.removeChild(this); - }); - return d.ui.mouse.prototype._mouseUp.call(this, a); - }, - cancel: function () { - this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(); - return this; - }, - _getHandle: function (a) { - var b = !this.options.handle || !d(this.options.handle, this.element).length ? true : false; - d(this.options.handle, this.element).find("*").andSelf().each(function () { - if (this == a.target) { - b = true; - } - }); - return b; - }, - _createHelper: function (a) { - var b = this.options; - a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a])) : b.helper == "clone" ? this.element.clone().removeAttr("id") : this.element; - a.parents("body").length || a.appendTo(b.appendTo == "parent" ? this.element[0].parentNode : b.appendTo); - a[0] != this.element[0] && !/(fixed|absolute)/.test(a.css("position")) && a.css("position", "absolute"); - return a; - }, - _adjustOffsetFromHelper: function (a) { - if (typeof a == "string") { - a = a.split(" "); - } - if (d.isArray(a)) { - a = { - left: +a[0], - top: +a[1] || 0 - }; - } - if ("left" in a) { - this.offset.click.left = a.left + this.margins.left; - } - if ("right" in a) { - this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; - } - if ("top" in a) { - this.offset.click.top = a.top + this.margins.top; - } - if ("bottom" in a) { - this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top; - } - }, - _getParentOffset: function () { - this.offsetParent = this.helper.offsetParent(); - var a = this.offsetParent.offset(); - if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) { - a.left += this.scrollParent.scrollLeft(); - a.top += this.scrollParent.scrollTop(); - } - if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) { - a = { - top: 0, - left: 0 - }; - } - return { - top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), - left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) - }; - }, - _getRelativeOffset: function () { - if (this.cssPosition == "relative") { - var a = this.element.position(); - return { - top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), - left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { - top: 0, - left: 0 - }; - } - }, - _cacheMargins: function () { - this.margins = { - left: parseInt(this.element.css("marginLeft"), 10) || 0, - top: parseInt(this.element.css("marginTop"), 10) || 0, - right: parseInt(this.element.css("marginRight"), 10) || 0, - bottom: parseInt(this.element.css("marginBottom"), 10) || 0 - }; - }, - _cacheHelperProportions: function () { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - _setContainment: function () { - var a = this.options; - if (a.containment == "parent") { - a.containment = this.helper[0].parentNode; - } - if (a.containment == "document" || a.containment == "window") { - this.containment = [(a.containment == "document" ? 0 : d(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left, (a.containment == "document" ? 0 : d(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top, (a.containment == "document" ? 0 : d(window).scrollLeft()) + d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (a.containment == "document" ? 0 : d(window).scrollTop()) + (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; - } - if (!/^(document|window|parent)$/.test(a.containment) && a.containment.constructor != Array) { - a = d(a.containment); - var b = a[0]; - if (b) { - a.offset(); - var c = d(b).css("overflow") != "hidden"; - this.containment = [(parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0), (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0), (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom]; - this.relative_container = a; - } - } else { - if (a.containment.constructor == Array) { - this.containment = a.containment; - } - } - }, - _convertPositionTo: function (a, b) { - if (!b) { - b = this.position; - } - a = a == "absolute" ? 1 : -1; - var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, - f = /(html|body)/i.test(c[0].tagName); - return { - top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()) * a), - left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft()) * a) - }; - }, - _generatePosition: function (a) { - var b = this.options, - c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, - f = /(html|body)/i.test(c[0].tagName), - e = a.pageX, - h = a.pageY; - if (this.originalPosition) { - var g; - if (this.containment) { - if (this.relative_container) { - g = this.relative_container.offset(); - g = [this.containment[0] + g.left, this.containment[1] + g.top, this.containment[2] + g.left, this.containment[3] + g.top]; - } else { - g = this.containment; - } - if (a.pageX - this.offset.click.left < g[0]) { - e = g[0] + this.offset.click.left; - } - if (a.pageY - this.offset.click.top < g[1]) { - h = g[1] + this.offset.click.top; - } - if (a.pageX - this.offset.click.left > g[2]) { - e = g[2] + this.offset.click.left; - } - if (a.pageY - this.offset.click.top > g[3]) { - h = g[3] + this.offset.click.top; - } - } - if (b.grid) { - h = this.originalPageY + Math.round((h - this.originalPageY) / b.grid[1]) * b.grid[1]; - h = g ? !(h - this.offset.click.top < g[1] || h - this.offset.click.top > g[3]) ? h : !(h - this.offset.click.top < g[1]) ? h - b.grid[1] : h + b.grid[1] : h; - e = this.originalPageX + Math.round((e - this.originalPageX) / b.grid[0]) * b.grid[0]; - e = g ? !(e - this.offset.click.left < g[0] || e - this.offset.click.left > g[2]) ? e : !(e - this.offset.click.left < g[0]) ? e - b.grid[0] : e + b.grid[0] : e; - } - } - return { - top: h - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()), - left: e - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft()) - }; - }, - _clear: function () { - this.helper.removeClass("ui-draggable-dragging"); - this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(); - this.helper = null; - this.cancelHelperRemoval = false; - }, - _trigger: function (a, b, c) { - c = c || this._uiHash(); - d.ui.plugin.call(this, a, [b, c]); - if (a == "drag") { - this.positionAbs = this._convertPositionTo("absolute"); - } - return d.Widget.prototype._trigger.call(this, a, b, c); - }, - plugins: {}, - _uiHash: function () { - return { - helper: this.helper, - position: this.position, - originalPosition: this.originalPosition, - offset: this.positionAbs - }; - } - }); - d.extend(d.ui.draggable, { - version: "1.8.13" - }); - d.ui.plugin.add("draggable", "connectToSortable", { - start: function (a, b) { - var c = d(this).data("draggable"), - f = c.options, - e = d.extend({}, - b, { - item: c.element - }); - c.sortables = []; - d(f.connectToSortable).each(function () { - var h = d.data(this, "sortable"); - if (h && !h.options.disabled) { - c.sortables.push({ - instance: h, - shouldRevert: h.options.revert - }); - h.refreshPositions(); - h._trigger("activate", a, e); - } - }); - }, - stop: function (a, b) { - var c = d(this).data("draggable"), - f = d.extend({}, - b, { - item: c.element - }); - d.each(c.sortables, function () { - if (this.instance.isOver) { - this.instance.isOver = 0; - c.cancelHelperRemoval = true; - this.instance.cancelHelperRemoval = false; - if (this.shouldRevert) { - this.instance.options.revert = true; - } - this.instance._mouseStop(a); - this.instance.options.helper = this.instance.options._helper; - c.options.helper == "original" && this.instance.currentItem.css({ - top: "auto", - left: "auto" - }); - } else { - this.instance.cancelHelperRemoval = false; - this.instance._trigger("deactivate", a, f); - } - }); - }, - drag: function (a, b) { - var c = d(this).data("draggable"), - f = this; - d.each(c.sortables, function () { - this.instance.positionAbs = c.positionAbs; - this.instance.helperProportions = c.helperProportions; - this.instance.offset.click = c.offset.click; - if (this.instance._intersectsWith(this.instance.containerCache)) { - if (!this.instance.isOver) { - this.instance.isOver = 1; - this.instance.currentItem = d(f).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item", true); - this.instance.options._helper = this.instance.options.helper; - this.instance.options.helper = function () { - return b.helper[0]; - }; - a.target = this.instance.currentItem[0]; - this.instance._mouseCapture(a, true); - this.instance._mouseStart(a, true, true); - this.instance.offset.click.top = c.offset.click.top; - this.instance.offset.click.left = c.offset.click.left; - this.instance.offset.parent.left -= c.offset.parent.left - this.instance.offset.parent.left; - this.instance.offset.parent.top -= c.offset.parent.top - this.instance.offset.parent.top; - c._trigger("toSortable", a); - c.dropped = this.instance.element; - c.currentItem = c.element; - this.instance.fromOutside = c; - } - this.instance.currentItem && this.instance._mouseDrag(a); - } else { - if (this.instance.isOver) { - this.instance.isOver = 0; - this.instance.cancelHelperRemoval = true; - this.instance.options.revert = false; - this.instance._trigger("out", a, this.instance._uiHash(this.instance)); - this.instance._mouseStop(a, true); - this.instance.options.helper = this.instance.options._helper; - this.instance.currentItem.remove(); - this.instance.placeholder && this.instance.placeholder.remove(); - c._trigger("fromSortable", a); - c.dropped = false; - } - } - }); - } - }); - d.ui.plugin.add("draggable", "cursor", { - start: function () { - var a = d("body"), - b = d(this).data("draggable").options; - if (a.css("cursor")) { - b._cursor = a.css("cursor"); - } - a.css("cursor", b.cursor); - }, - stop: function () { - var a = d(this).data("draggable").options; - a._cursor && d("body").css("cursor", a._cursor); - } - }); - d.ui.plugin.add("draggable", "opacity", { - start: function (a, b) { - a = d(b.helper); - b = d(this).data("draggable").options; - if (a.css("opacity")) { - b._opacity = a.css("opacity"); - } - a.css("opacity", b.opacity); - }, - stop: function (a, b) { - a = d(this).data("draggable").options; - a._opacity && d(b.helper).css("opacity", a._opacity); - } - }); - d.ui.plugin.add("draggable", "scroll", { - start: function () { - var a = d(this).data("draggable"); - if (a.scrollParent[0] != document && a.scrollParent[0].tagName != "HTML") { - a.overflowOffset = a.scrollParent.offset(); - } - }, - drag: function (a) { - var b = d(this).data("draggable"), - c = b.options, - f = false; - if (b.scrollParent[0] != document && b.scrollParent[0].tagName != "HTML") { - if (!c.axis || c.axis != "x") { - if (b.overflowOffset.top + b.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity) { - b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop + c.scrollSpeed; - } else { - if (a.pageY - b.overflowOffset.top < c.scrollSensitivity) { - b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop - c.scrollSpeed; - } - } - } - if (!c.axis || c.axis != "y") { - if (b.overflowOffset.left + b.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity) { - b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft + c.scrollSpeed; - } else { - if (a.pageX - b.overflowOffset.left < c.scrollSensitivity) { - b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft - c.scrollSpeed; - } - } - } - } else { - if (!c.axis || c.axis != "x") { - if (a.pageY - d(document).scrollTop() < c.scrollSensitivity) { - f = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed); - } else { - if (d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity) { - f = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed); - } - } - } - if (!c.axis || c.axis != "y") { - if (a.pageX - d(document).scrollLeft() < c.scrollSensitivity) { - f = d(document).scrollLeft(d(document).scrollLeft() - c.scrollSpeed); - } else { - if (d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity) { - f = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed); - } - } - } - } - f !== false && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(b, a); - } - }); - d.ui.plugin.add("draggable", "snap", { - start: function () { - var a = d(this).data("draggable"), - b = a.options; - a.snapElements = []; - d(b.snap.constructor != String ? b.snap.items || ":data(draggable)": b.snap).each(function () { - var c = d(this), - f = c.offset(); - this != a.element[0] && a.snapElements.push({ - item: this, - width: c.outerWidth(), - height: c.outerHeight(), - top: f.top, - left: f.left - }); - }); - }, - drag: function (a, b) { - for (var c = d(this).data("draggable"), f = c.options, e = f.snapTolerance, h = b.offset.left, g = h + c.helperProportions.width, n = b.offset.top, o = n + c.helperProportions.height, i = c.snapElements.length - 1; i >= 0; i--) { - var j = c.snapElements[i].left, - l = j + c.snapElements[i].width, - k = c.snapElements[i].top, - m = k + c.snapElements[i].height; - if (j - e < h && h < l + e && k - e < n && n < m + e || j - e < h && h < l + e && k - e < o && o < m + e || j - e < g && g < l + e && k - e < n && n < m + e || j - e < g && g < l + e && k - e < o && o < m + e) { - if (f.snapMode != "inner") { - var p = Math.abs(k - o) <= e, - q = Math.abs(m - n) <= e, - r = Math.abs(j - g) <= e, - s = Math.abs(l - h) <= e; - if (p) { - b.position.top = c._convertPositionTo("relative", { - top: k - c.helperProportions.height, - left: 0 - }).top - c.margins.top; - } - if (q) { - b.position.top = c._convertPositionTo("relative", { - top: m, - left: 0 - }).top - c.margins.top; - } - if (r) { - b.position.left = c._convertPositionTo("relative", { - top: 0, - left: j - c.helperProportions.width - }).left - c.margins.left; - } - if (s) { - b.position.left = c._convertPositionTo("relative", { - top: 0, - left: l - }).left - c.margins.left; - } - } - var t = p || q || r || s; - if (f.snapMode != "outer") { - p = Math.abs(k - n) <= e; - q = Math.abs(m - o) <= e; - r = Math.abs(j - h) <= e; - s = Math.abs(l - g) <= e; - if (p) { - b.position.top = c._convertPositionTo("relative", { - top: k, - left: 0 - }).top - c.margins.top; - } - if (q) { - b.position.top = c._convertPositionTo("relative", { - top: m - c.helperProportions.height, - left: 0 - }).top - c.margins.top; - } - if (r) { - b.position.left = c._convertPositionTo("relative", { - top: 0, - left: j - }).left - c.margins.left; - } - if (s) { - b.position.left = c._convertPositionTo("relative", { - top: 0, - left: l - c.helperProportions.width - }).left - c.margins.left; - } - } - if (!c.snapElements[i].snapping && (p || q || r || s || t)) { - c.options.snap.snap && c.options.snap.snap.call(c.element, a, d.extend(c._uiHash(), { - snapItem: c.snapElements[i].item - })); - } - c.snapElements[i].snapping = p || q || r || s || t; - } else { - c.snapElements[i].snapping && c.options.snap.release && c.options.snap.release.call(c.element, a, d.extend(c._uiHash(), { - snapItem: c.snapElements[i].item - })); - c.snapElements[i].snapping = false; - } - } - } - }); - d.ui.plugin.add("draggable", "stack", { - start: function () { - var a = d(this).data("draggable").options; - a = d.makeArray(d(a.stack)).sort(function (c, f) { - return (parseInt(d(c).css("zIndex"), 10) || 0) - (parseInt(d(f).css("zIndex"), 10) || 0); - }); - if (a.length) { - var b = parseInt(a[0].style.zIndex) || 0; - d(a).each(function (c) { - this.style.zIndex = b + c; - }); - this[0].style.zIndex = b + a.length; - } - } - }); - d.ui.plugin.add("draggable", "zIndex", { - start: function (a, b) { - a = d(b.helper); - b = d(this).data("draggable").options; - if (a.css("zIndex")) { - b._zIndex = a.css("zIndex"); - } - a.css("zIndex", b.zIndex); - }, - stop: function (a, b) { - a = d(this).data("draggable").options; - a._zIndex && d(b.helper).css("zIndex", a._zIndex); - } - }); -})(jQuery); -(function (d) { - d.widget("ui.droppable", { - widgetEventPrefix: "drop", - options: { - accept: "*", - activeClass: false, - addClasses: true, - greedy: false, - hoverClass: false, - scope: "default", - tolerance: "intersect" - }, - _create: function () { - var a = this.options, - b = a.accept; - this.isover = 0; - this.isout = 1; - this.accept = d.isFunction(b) ? b : function (c) { - return c.is(b); - }; - this.proportions = { - width: this.element[0].offsetWidth, - height: this.element[0].offsetHeight - }; - d.ui.ddmanager.droppables[a.scope] = d.ui.ddmanager.droppables[a.scope] || []; - d.ui.ddmanager.droppables[a.scope].push(this); - a.addClasses && this.element.addClass("ui-droppable"); - }, - destroy: function () { - for (var a = d.ui.ddmanager.droppables[this.options.scope], b = 0; b < a.length; b++) { - a[b] == this && a.splice(b, 1); - } - this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"); - return this; - }, - _setOption: function (a, b) { - if (a == "accept") { - this.accept = d.isFunction(b) ? b : function (c) { - return c.is(b); - }; - } - d.Widget.prototype._setOption.apply(this, arguments); - }, - _activate: function (a) { - var b = d.ui.ddmanager.current; - this.options.activeClass && this.element.addClass(this.options.activeClass); - b && this._trigger("activate", a, this.ui(b)); - }, - _deactivate: function (a) { - var b = d.ui.ddmanager.current; - this.options.activeClass && this.element.removeClass(this.options.activeClass); - b && this._trigger("deactivate", a, this.ui(b)); - }, - _over: function (a) { - var b = d.ui.ddmanager.current; - if (! (!b || (b.currentItem || b.element)[0] == this.element[0])) { - if (this.accept.call(this.element[0], b.currentItem || b.element)) { - this.options.hoverClass && this.element.addClass(this.options.hoverClass); - this._trigger("over", a, this.ui(b)); - } - } - }, - _out: function (a) { - var b = d.ui.ddmanager.current; - if (! (!b || (b.currentItem || b.element)[0] == this.element[0])) { - if (this.accept.call(this.element[0], b.currentItem || b.element)) { - this.options.hoverClass && this.element.removeClass(this.options.hoverClass); - this._trigger("out", a, this.ui(b)); - } - } - }, - _drop: function (a, b) { - var c = b || d.ui.ddmanager.current; - if (!c || (c.currentItem || c.element)[0] == this.element[0]) { - return false; - } - var e = false; - this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function () { - var g = d.data(this, "droppable"); - if (g.options.greedy && !g.options.disabled && g.options.scope == c.options.scope && g.accept.call(g.element[0], c.currentItem || c.element) && d.ui.intersect(c, d.extend(g, { - offset: g.element.offset() - }), g.options.tolerance)) { - e = true; - return false; - } - }); - if (e) { - return false; - } - if (this.accept.call(this.element[0], c.currentItem || c.element)) { - this.options.activeClass && this.element.removeClass(this.options.activeClass); - this.options.hoverClass && this.element.removeClass(this.options.hoverClass); - this._trigger("drop", a, this.ui(c)); - return this.element; - } - return false; - }, - ui: function (a) { - return { - draggable: a.currentItem || a.element, - helper: a.helper, - position: a.position, - offset: a.positionAbs - }; - } - }); - d.extend(d.ui.droppable, { - version: "1.8.13" - }); - d.ui.intersect = function (a, b, c) { - if (!b.offset) { - return false; - } - var e = (a.positionAbs || a.position.absolute).left, - g = e + a.helperProportions.width, - f = (a.positionAbs || a.position.absolute).top, - h = f + a.helperProportions.height, - i = b.offset.left, - k = i + b.proportions.width, - j = b.offset.top, - l = j + b.proportions.height; - switch (c) { - case "fit": - return i <= e && g <= k && j <= f && h <= l; - case "intersect": - return i < e + a.helperProportions.width / 2 && g - a.helperProportions.width / 2 < k && j < f + a.helperProportions.height / 2 && h - a.helperProportions.height / 2 < l; - case "pointer": - return d.ui.isOver((a.positionAbs || a.position.absolute).top + (a.clickOffset || a.offset.click).top, (a.positionAbs || a.position.absolute).left + (a.clickOffset || a.offset.click).left, j, i, b.proportions.height, b.proportions.width); - case "touch": - return (f >= j && f <= l || h >= j && h <= l || f < j && h > l) && (e >= i && e <= k || g >= i && g <= k || e < i && g > k); - default: - return false; - } - }; - d.ui.ddmanager = { - current: null, - droppables: { - "default": [] - }, - prepareOffsets: function (a, b) { - var c = d.ui.ddmanager.droppables[a.options.scope] || [], - e = b ? b.type : null, - g = (a.currentItem || a.element).find(":data(droppable)").andSelf(), - f = 0; - a: for (; f < c.length; f++) { - if (! (c[f].options.disabled || a && !c[f].accept.call(c[f].element[0], a.currentItem || a.element))) { - for (var h = 0; h < g.length; h++) { - if (g[h] == c[f].element[0]) { - c[f].proportions.height = 0; - continue a; - } - } - c[f].visible = c[f].element.css("display") != "none"; - if (c[f].visible) { - e == "mousedown" && c[f]._activate.call(c[f], b); - c[f].offset = c[f].element.offset(); - c[f].proportions = { - width: c[f].element[0].offsetWidth, - height: c[f].element[0].offsetHeight - }; - } - } - } - }, - drop: function (a, b) { - var c = false; - d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function () { - if (this.options) { - if (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance)) { - c = c || this._drop.call(this, b); - } - if (!this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem || a.element)) { - this.isout = 1; - this.isover = 0; - this._deactivate.call(this, b); - } - } - }); - return c; - }, - drag: function (a, b) { - a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, b); - d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function () { - if (! (this.options.disabled || this.greedyChild || !this.visible)) { - var c = d.ui.intersect(a, this, this.options.tolerance); - if (c = !c && this.isover == 1 ? "isout" : c && this.isover == 0 ? "isover" : null) { - var e; - if (this.options.greedy) { - var g = this.element.parents(":data(droppable):eq(0)"); - if (g.length) { - e = d.data(g[0], "droppable"); - e.greedyChild = c == "isover" ? 1 : 0; - } - } - if (e && c == "isover") { - e.isover = 0; - e.isout = 1; - e._out.call(e, b); - } - this[c] = 1; - this[c == "isout" ? "isover" : "isout"] = 0; - this[c == "isover" ? "_over" : "_out"].call(this, b); - if (e && c == "isout") { - e.isout = 0; - e.isover = 1; - e._over.call(e, b); - } - } - } - }); - } - }; -})(jQuery); -(function (e) { - e.widget("ui.resizable", e.ui.mouse, { - widgetEventPrefix: "resize", - options: { - alsoResize: false, - animate: false, - animateDuration: "slow", - animateEasing: "swing", - aspectRatio: false, - autoHide: false, - containment: false, - ghost: false, - grid: false, - handles: "e,s,se", - helper: false, - maxHeight: null, - maxWidth: null, - minHeight: 10, - minWidth: 10, - zIndex: 1000 - }, - _create: function () { - var b = this, - a = this.options; - this.element.addClass("ui-resizable"); - e.extend(this, { - _aspectRatio: !!a.aspectRatio, - aspectRatio: a.aspectRatio, - originalElement: this.element, - _proportionallyResizeElements: [], - _helper: a.helper || a.ghost || a.animate ? a.helper || "ui-resizable-helper" : null - }); - if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { - /relative/.test(this.element.css("position")) && e.browser.opera && this.element.css({ - position: "relative", - top: "auto", - left: "auto" - }); - this.element.wrap(e('
').css({ - position: this.element.css("position"), - width: this.element.outerWidth(), - height: this.element.outerHeight(), - top: this.element.css("top"), - left: this.element.css("left") - })); - this.element = this.element.parent().data("resizable", this.element.data("resizable")); - this.elementIsWrapper = true; - this.element.css({ - marginLeft: this.originalElement.css("marginLeft"), - marginTop: this.originalElement.css("marginTop"), - marginRight: this.originalElement.css("marginRight"), - marginBottom: this.originalElement.css("marginBottom") - }); - this.originalElement.css({ - marginLeft: 0, - marginTop: 0, - marginRight: 0, - marginBottom: 0 - }); - this.originalResizeStyle = this.originalElement.css("resize"); - this.originalElement.css("resize", "none"); - this._proportionallyResizeElements.push(this.originalElement.css({ - position: "static", - zoom: 1, - display: "block" - })); - this.originalElement.css({ - margin: this.originalElement.css("margin") - }); - this._proportionallyResize(); - } - this.handles = a.handles || (!e(".ui-resizable-handle", this.element).length ? "e,s,se" : { - n: ".ui-resizable-n", - e: ".ui-resizable-e", - s: ".ui-resizable-s", - w: ".ui-resizable-w", - se: ".ui-resizable-se", - sw: ".ui-resizable-sw", - ne: ".ui-resizable-ne", - nw: ".ui-resizable-nw" - }); - if (this.handles.constructor == String) { - if (this.handles == "all") { - this.handles = "n,e,s,w,se,sw,ne,nw"; - } - var c = this.handles.split(","); - this.handles = {}; - for (var d = 0; d < c.length; d++) { - var f = e.trim(c[d]), - g = e('
'); - /sw|se|ne|nw/.test(f) && g.css({ - zIndex: ++a.zIndex - }); - "se" == f && g.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); - this.handles[f] = ".ui-resizable-" + f; - this.element.append(g); - } - } - this._renderAxis = function (h) { - h = h || this.element; - for (var i in this.handles) { - if (this.handles[i].constructor == String) { - this.handles[i] = e(this.handles[i], this.element).show(); - } - if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { - var j = e(this.handles[i], this.element), - k = 0; - k = /sw|ne|nw|se|n|s/.test(i) ? j.outerHeight() : j.outerWidth(); - j = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""); - h.css(j, k); - this._proportionallyResize(); - } - e(this.handles[i]); - } - }; - this._renderAxis(this.element); - this._handles = e(".ui-resizable-handle", this.element).disableSelection(); - this._handles.mouseover(function () { - if (!b.resizing) { - if (this.className) { - var h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); - } - b.axis = h && h[1] ? h[1] : "se"; - } - }); - if (a.autoHide) { - this._handles.hide(); - e(this.element).addClass("ui-resizable-autohide").hover(function () { - if (!a.disabled) { - e(this).removeClass("ui-resizable-autohide"); - b._handles.show(); - } - }, - function () { - if (!a.disabled) { - if (!b.resizing) { - e(this).addClass("ui-resizable-autohide"); - b._handles.hide(); - } - } - }); - } - this._mouseInit(); - }, - destroy: function () { - this._mouseDestroy(); - var b = function (c) { - e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); - }; - if (this.elementIsWrapper) { - b(this.element); - var a = this.element; - a.after(this.originalElement.css({ - position: a.css("position"), - width: a.outerWidth(), - height: a.outerHeight(), - top: a.css("top"), - left: a.css("left") - })).remove(); - } - this.originalElement.css("resize", this.originalResizeStyle); - b(this.originalElement); - return this; - }, - _mouseCapture: function (b) { - var a = false; - for (var c in this.handles) { - if (e(this.handles[c])[0] == b.target) { - a = true; - } - } - return !this.options.disabled && a; - }, - _mouseStart: function (b) { - var a = this.options, - c = this.element.position(), - d = this.element; - this.resizing = true; - this.documentScroll = { - top: e(document).scrollTop(), - left: e(document).scrollLeft() - }; - if (d.is(".ui-draggable") || /absolute/.test(d.css("position"))) { - d.css({ - position: "absolute", - top: c.top, - left: c.left - }); - } - e.browser.opera && /relative/.test(d.css("position")) && d.css({ - position: "relative", - top: "auto", - left: "auto" - }); - this._renderProxy(); - c = m(this.helper.css("left")); - var f = m(this.helper.css("top")); - if (a.containment) { - c += e(a.containment).scrollLeft() || 0; - f += e(a.containment).scrollTop() || 0; - } - this.offset = this.helper.offset(); - this.position = { - left: c, - top: f - }; - this.size = this._helper ? { - width: d.outerWidth(), - height: d.outerHeight() - } : { - width: d.width(), - height: d.height() - }; - this.originalSize = this._helper ? { - width: d.outerWidth(), - height: d.outerHeight() - } : { - width: d.width(), - height: d.height() - }; - this.originalPosition = { - left: c, - top: f - }; - this.sizeDiff = { - width: d.outerWidth() - d.width(), - height: d.outerHeight() - d.height() - }; - this.originalMousePosition = { - left: b.pageX, - top: b.pageY - }; - this.aspectRatio = typeof a.aspectRatio == "number" ? a.aspectRatio : this.originalSize.width / this.originalSize.height || 1; - a = e(".ui-resizable-" + this.axis).css("cursor"); - e("body").css("cursor", a == "auto" ? this.axis + "-resize" : a); - d.addClass("ui-resizable-resizing"); - this._propagate("start", b); - return true; - }, - _mouseDrag: function (b) { - var a = this.helper, - c = this.originalMousePosition, - d = this._change[this.axis]; - if (!d) { - return false; - } - c = d.apply(this, [b, b.pageX - c.left || 0, b.pageY - c.top || 0]); - if (this._aspectRatio || b.shiftKey) { - c = this._updateRatio(c, b); - } - c = this._respectSize(c, b); - this._propagate("resize", b); - a.css({ - top: this.position.top + "px", - left: this.position.left + "px", - width: this.size.width + "px", - height: this.size.height + "px" - }); ! this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(); - this._updateCache(c); - this._trigger("resize", b, this.ui()); - return false; - }, - _mouseStop: function (b) { - this.resizing = false; - var a = this.options, - c = this; - if (this._helper) { - var d = this._proportionallyResizeElements, - f = d.length && /textarea/i.test(d[0].nodeName); - d = f && e.ui.hasScroll(d[0], "left") ? 0 : c.sizeDiff.height; - f = f ? 0 : c.sizeDiff.width; - f = { - width: c.helper.width() - f, - height: c.helper.height() - d - }; - d = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null; - var g = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null; - a.animate || this.element.css(e.extend(f, { - top: g, - left: d - })); - c.helper.height(c.size.height); - c.helper.width(c.size.width); - this._helper && !a.animate && this._proportionallyResize(); - } - e("body").css("cursor", "auto"); - this.element.removeClass("ui-resizable-resizing"); - this._propagate("stop", b); - this._helper && this.helper.remove(); - return false; - }, - _updateCache: function (b) { - this.offset = this.helper.offset(); - if (l(b.left)) { - this.position.left = b.left; - } - if (l(b.top)) { - this.position.top = b.top; - } - if (l(b.height)) { - this.size.height = b.height; - } - if (l(b.width)) { - this.size.width = b.width; - } - }, - _updateRatio: function (b) { - var a = this.position, - c = this.size, - d = this.axis; - if (b.height) { - b.width = c.height * this.aspectRatio; - } else { - if (b.width) { - b.height = c.width / this.aspectRatio; - } - } - if (d == "sw") { - b.left = a.left + (c.width - b.width); - b.top = null; - } - if (d == "nw") { - b.top = a.top + (c.height - b.height); - b.left = a.left + (c.width - b.width); - } - return b; - }, - _respectSize: function (b) { - var a = this.options, - c = this.axis, - d = l(b.width) && a.maxWidth && a.maxWidth < b.width, - f = l(b.height) && a.maxHeight && a.maxHeight < b.height, - g = l(b.width) && a.minWidth && a.minWidth > b.width, - h = l(b.height) && a.minHeight && a.minHeight > b.height; - if (g) { - b.width = a.minWidth; - } - if (h) { - b.height = a.minHeight; - } - if (d) { - b.width = a.maxWidth; - } - if (f) { - b.height = a.maxHeight; - } - var i = this.originalPosition.left + this.originalSize.width, - j = this.position.top + this.size.height, - k = /sw|nw|w/.test(c); - c = /nw|ne|n/.test(c); - if (g && k) { - b.left = i - a.minWidth; - } - if (d && k) { - b.left = i - a.maxWidth; - } - if (h && c) { - b.top = j - a.minHeight; - } - if (f && c) { - b.top = j - a.maxHeight; - } - if ((a = !b.width && !b.height) && !b.left && b.top) { - b.top = null; - } else { - if (a && !b.top && b.left) { - b.left = null; - } - } - return b; - }, - _proportionallyResize: function () { - if (this._proportionallyResizeElements.length) { - for (var b = this.helper || this.element, a = 0; a < this._proportionallyResizeElements.length; a++) { - var c = this._proportionallyResizeElements[a]; - if (!this.borderDif) { - var d = [c.css("borderTopWidth"), c.css("borderRightWidth"), c.css("borderBottomWidth"), c.css("borderLeftWidth")], - f = [c.css("paddingTop"), c.css("paddingRight"), c.css("paddingBottom"), c.css("paddingLeft")]; - this.borderDif = e.map(d, function (g, h) { - g = parseInt(g, 10) || 0; - h = parseInt(f[h], 10) || 0; - return g + h; - }); - } - e.browser.msie && (e(b).is(":hidden") || e(b).parents(":hidden").length) || c.css({ - height: b.height() - this.borderDif[0] - this.borderDif[2] || 0, - width: b.width() - this.borderDif[1] - this.borderDif[3] || 0 - }); - } - } - }, - _renderProxy: function () { - var b = this.options; - this.elementOffset = this.element.offset(); - if (this._helper) { - this.helper = this.helper || e('
'); - var a = e.browser.msie && e.browser.version < 7, - c = a ? 1 : 0; - a = a ? 2 : -1; - this.helper.addClass(this._helper).css({ - width: this.element.outerWidth() + a, - height: this.element.outerHeight() + a, - position: "absolute", - left: this.elementOffset.left - c + "px", - top: this.elementOffset.top - c + "px", - zIndex: ++b.zIndex - }); - this.helper.appendTo("body").disableSelection(); - } else { - this.helper = this.element; - } - }, - _change: { - e: function (b, a) { - return { - width: this.originalSize.width + a - }; - }, - w: function (b, a) { - return { - left: this.originalPosition.left + a, - width: this.originalSize.width - a - }; - }, - n: function (b, a, c) { - return { - top: this.originalPosition.top + c, - height: this.originalSize.height - c - }; - }, - s: function (b, a, c) { - return { - height: this.originalSize.height + c - }; - }, - se: function (b, a, c) { - return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, a, c])); - }, - sw: function (b, a, c) { - return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, a, c])); - }, - ne: function (b, a, c) { - return e.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [b, a, c])); - }, - nw: function (b, a, c) { - return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, a, c])); - } - }, - _propagate: function (b, a) { - e.ui.plugin.call(this, b, [a, this.ui()]); - b != "resize" && this._trigger(b, a, this.ui()); - }, - plugins: {}, - ui: function () { - return { - originalElement: this.originalElement, - element: this.element, - helper: this.helper, - position: this.position, - size: this.size, - originalSize: this.originalSize, - originalPosition: this.originalPosition - }; - } - }); - e.extend(e.ui.resizable, { - version: "1.8.13" - }); - e.ui.plugin.add("resizable", "alsoResize", { - start: function () { - var b = e(this).data("resizable").options, - a = function (c) { - e(c).each(function () { - var d = e(this); - d.data("resizable-alsoresize", { - width: parseInt(d.width(), 10), - height: parseInt(d.height(), 10), - left: parseInt(d.css("left"), 10), - top: parseInt(d.css("top"), 10), - position: d.css("position") - }); - }); - }; - if (typeof b.alsoResize == "object" && !b.alsoResize.parentNode) { - if (b.alsoResize.length) { - b.alsoResize = b.alsoResize[0]; - a(b.alsoResize); - } else { - e.each(b.alsoResize, function (c) { - a(c); - }); - } - } else { - a(b.alsoResize); - } - }, - resize: function (b, a) { - var c = e(this).data("resizable"); - b = c.options; - var d = c.originalSize, - f = c.originalPosition, - g = { - height: c.size.height - d.height || 0, - width: c.size.width - d.width || 0, - top: c.position.top - f.top || 0, - left: c.position.left - f.left || 0 - }, - h = function (i, j) { - e(i).each(function () { - var k = e(this), - q = e(this).data("resizable-alsoresize"), - p = {}, - r = j && j.length ? j : k.parents(a.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; - e.each(r, function (n, o) { - if ((n = (q[o] || 0) + (g[o] || 0)) && n >= 0) { - p[o] = n || null; - } - }); - if (e.browser.opera && /relative/.test(k.css("position"))) { - c._revertToRelativePosition = true; - k.css({ - position: "absolute", - top: "auto", - left: "auto" - }); - } - k.css(p); - }); - }; - typeof b.alsoResize == "object" && !b.alsoResize.nodeType ? e.each(b.alsoResize, function (i, j) { - h(i, j); - }) : h(b.alsoResize); - }, - stop: function () { - var b = e(this).data("resizable"), - a = b.options, - c = function (d) { - e(d).each(function () { - var f = e(this); - f.css({ - position: f.data("resizable-alsoresize").position - }); - }); - }; - if (b._revertToRelativePosition) { - b._revertToRelativePosition = false; - typeof a.alsoResize == "object" && !a.alsoResize.nodeType ? e.each(a.alsoResize, function (d) { - c(d); - }) : c(a.alsoResize); - } - e(this).removeData("resizable-alsoresize"); - } - }); - e.ui.plugin.add("resizable", "animate", { - stop: function (b) { - var a = e(this).data("resizable"), - c = a.options, - d = a._proportionallyResizeElements, - f = d.length && /textarea/i.test(d[0].nodeName), - g = f && e.ui.hasScroll(d[0], "left") ? 0 : a.sizeDiff.height; - f = { - width: a.size.width - (f ? 0 : a.sizeDiff.width), - height: a.size.height - g - }; - g = parseInt(a.element.css("left"), 10) + (a.position.left - a.originalPosition.left) || null; - var h = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null; - a.element.animate(e.extend(f, h && g ? { - top: h, - left: g - } : {}), { - duration: c.animateDuration, - easing: c.animateEasing, - step: function () { - var i = { - width: parseInt(a.element.css("width"), 10), - height: parseInt(a.element.css("height"), 10), - top: parseInt(a.element.css("top"), 10), - left: parseInt(a.element.css("left"), 10) - }; - d && d.length && e(d[0]).css({ - width: i.width, - height: i.height - }); - a._updateCache(i); - a._propagate("resize", b); - } - }); - } - }); - e.ui.plugin.add("resizable", "containment", { - start: function () { - var b = e(this).data("resizable"), - a = b.element, - c = b.options.containment; - if (a = c instanceof e ? c.get(0) : /parent/.test(c) ? a.parent().get(0) : c) { - b.containerElement = e(a); - if (/document/.test(c) || c == document) { - b.containerOffset = { - left: 0, - top: 0 - }; - b.containerPosition = { - left: 0, - top: 0 - }; - b.parentData = { - element: e(document), - left: 0, - top: 0, - width: e(document).width(), - height: e(document).height() || document.body.parentNode.scrollHeight - }; - } else { - var d = e(a), - f = []; - e(["Top", "Right", "Left", "Bottom"]).each(function (i, j) { - f[i] = m(d.css("padding" + j)); - }); - b.containerOffset = d.offset(); - b.containerPosition = d.position(); - b.containerSize = { - height: d.innerHeight() - f[3], - width: d.innerWidth() - f[1] - }; - c = b.containerOffset; - var g = b.containerSize.height, - h = b.containerSize.width; - h = e.ui.hasScroll(a, "left") ? a.scrollWidth : h; - g = e.ui.hasScroll(a) ? a.scrollHeight : g; - b.parentData = { - element: a, - left: c.left, - top: c.top, - width: h, - height: g - }; - } - } - }, - resize: function (b) { - var a = e(this).data("resizable"), - c = a.options, - d = a.containerOffset, - f = a.position; - b = a._aspectRatio || b.shiftKey; - var g = { - top: 0, - left: 0 - }, - h = a.containerElement; - if (h[0] != document && /static/.test(h.css("position"))) { - g = d; - } - if (f.left < (a._helper ? d.left : 0)) { - a.size.width += a._helper ? a.position.left - d.left : a.position.left - g.left; - if (b) { - a.size.height = a.size.width / c.aspectRatio; - } - a.position.left = c.helper ? d.left : 0; - } - if (f.top < (a._helper ? d.top : 0)) { - a.size.height += a._helper ? a.position.top - d.top : a.position.top; - if (b) { - a.size.width = a.size.height * c.aspectRatio; - } - a.position.top = a._helper ? d.top : 0; - } - a.offset.left = a.parentData.left + a.position.left; - a.offset.top = a.parentData.top + a.position.top; - c = Math.abs((a._helper ? a.offset.left - g.left : a.offset.left - g.left) + a.sizeDiff.width); - d = Math.abs((a._helper ? a.offset.top - g.top : a.offset.top - d.top) + a.sizeDiff.height); - f = a.containerElement.get(0) == a.element.parent().get(0); - g = /relative|absolute/.test(a.containerElement.css("position")); - if (f && g) { - c -= a.parentData.left; - } - if (c + a.size.width >= a.parentData.width) { - a.size.width = a.parentData.width - c; - if (b) { - a.size.height = a.size.width / a.aspectRatio; - } - } - if (d + a.size.height >= a.parentData.height) { - a.size.height = a.parentData.height - d; - if (b) { - a.size.width = a.size.height * a.aspectRatio; - } - } - }, - stop: function () { - var b = e(this).data("resizable"), - a = b.options, - c = b.containerOffset, - d = b.containerPosition, - f = b.containerElement, - g = e(b.helper), - h = g.offset(), - i = g.outerWidth() - b.sizeDiff.width; - g = g.outerHeight() - b.sizeDiff.height; - b._helper && !a.animate && /relative/.test(f.css("position")) && e(this).css({ - left: h.left - d.left - c.left, - width: i, - height: g - }); - b._helper && !a.animate && /static/.test(f.css("position")) && e(this).css({ - left: h.left - d.left - c.left, - width: i, - height: g - }); - } - }); - e.ui.plugin.add("resizable", "ghost", { - start: function () { - var b = e(this).data("resizable"), - a = b.options, - c = b.size; - b.ghost = b.originalElement.clone(); - b.ghost.css({ - opacity: 0.25, - display: "block", - position: "relative", - height: c.height, - width: c.width, - margin: 0, - left: 0, - top: 0 - }).addClass("ui-resizable-ghost").addClass(typeof a.ghost == "string" ? a.ghost : ""); - b.ghost.appendTo(b.helper); - }, - resize: function () { - var b = e(this).data("resizable"); - b.ghost && b.ghost.css({ - position: "relative", - height: b.size.height, - width: b.size.width - }); - }, - stop: function () { - var b = e(this).data("resizable"); - b.ghost && b.helper && b.helper.get(0).removeChild(b.ghost.get(0)); - } - }); - e.ui.plugin.add("resizable", "grid", { - resize: function () { - var b = e(this).data("resizable"), - a = b.options, - c = b.size, - d = b.originalSize, - f = b.originalPosition, - g = b.axis; - a.grid = typeof a.grid == "number" ? [a.grid, a.grid] : a.grid; - var h = Math.round((c.width - d.width) / (a.grid[0] || 1)) * (a.grid[0] || 1); - a = Math.round((c.height - d.height) / (a.grid[1] || 1)) * (a.grid[1] || 1); - if (/^(se|s|e)$/.test(g)) { - b.size.width = d.width + h; - b.size.height = d.height + a; - } else { - if (/^(ne)$/.test(g)) { - b.size.width = d.width + h; - b.size.height = d.height + a; - b.position.top = f.top - a; - } else { - if (/^(sw)$/.test(g)) { - b.size.width = d.width + h; - b.size.height = d.height + a; - } else { - b.size.width = d.width + h; - b.size.height = d.height + a; - b.position.top = f.top - a; - } - b.position.left = f.left - h; - } - } - } - }); - var m = function (b) { - return parseInt(b, 10) || 0; - }, - l = function (b) { - return !isNaN(parseInt(b, 10)); - }; -})(jQuery); -(function (e) { - e.widget("ui.selectable", e.ui.mouse, { - options: { - appendTo: "body", - autoRefresh: true, - distance: 0, - filter: "*", - tolerance: "touch" - }, - _create: function () { - var c = this; - this.element.addClass("ui-selectable"); - this.dragged = false; - var f; - this.refresh = function () { - f = e(c.options.filter, c.element[0]); - f.each(function () { - var d = e(this), - b = d.offset(); - e.data(this, "selectable-item", { - element: this, - $element: d, - left: b.left, - top: b.top, - right: b.left + d.outerWidth(), - bottom: b.top + d.outerHeight(), - startselected: false, - selected: d.hasClass("ui-selected"), - selecting: d.hasClass("ui-selecting"), - unselecting: d.hasClass("ui-unselecting") - }); - }); - }; - this.refresh(); - this.selectees = f.addClass("ui-selectee"); - this._mouseInit(); - this.helper = e("
"); - }, - destroy: function () { - this.selectees.removeClass("ui-selectee").removeData("selectable-item"); - this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"); - this._mouseDestroy(); - return this; - }, - _mouseStart: function (c) { - var f = this; - this.opos = [c.pageX, c.pageY]; - if (!this.options.disabled) { - var d = this.options; - this.selectees = e(d.filter, this.element[0]); - this._trigger("start", c); - e(d.appendTo).append(this.helper); - this.helper.css({ - left: c.clientX, - top: c.clientY, - width: 0, - height: 0 - }); - d.autoRefresh && this.refresh(); - this.selectees.filter(".ui-selected").each(function () { - var b = e.data(this, "selectable-item"); - b.startselected = true; - if (!c.metaKey) { - b.$element.removeClass("ui-selected"); - b.selected = false; - b.$element.addClass("ui-unselecting"); - b.unselecting = true; - f._trigger("unselecting", c, { - unselecting: b.element - }); - } - }); - e(c.target).parents().andSelf().each(function () { - var b = e.data(this, "selectable-item"); - if (b) { - var g = !c.metaKey || !b.$element.hasClass("ui-selected"); - b.$element.removeClass(g ? "ui-unselecting" : "ui-selected").addClass(g ? "ui-selecting" : "ui-unselecting"); - b.unselecting = !g; - b.selecting = g; - (b.selected = g) ? f._trigger("selecting", c, { - selecting: b.element - }) : f._trigger("unselecting", c, { - unselecting: b.element - }); - return false; - } - }); - } - }, - _mouseDrag: function (c) { - var f = this; - this.dragged = true; - if (!this.options.disabled) { - var d = this.options, - b = this.opos[0], - g = this.opos[1], - h = c.pageX, - i = c.pageY; - if (b > h) { - var j = h; - h = b; - b = j; - } - if (g > i) { - j = i; - i = g; - g = j; - } - this.helper.css({ - left: b, - top: g, - width: h - b, - height: i - g - }); - this.selectees.each(function () { - var a = e.data(this, "selectable-item"); - if (! (!a || a.element == f.element[0])) { - var k = false; - if (d.tolerance == "touch") { - k = !(a.left > h || a.right < b || a.top > i || a.bottom < g); - } else { - if (d.tolerance == "fit") { - k = a.left > b && a.right < h && a.top > g && a.bottom < i; - } - } - if (k) { - if (a.selected) { - a.$element.removeClass("ui-selected"); - a.selected = false; - } - if (a.unselecting) { - a.$element.removeClass("ui-unselecting"); - a.unselecting = false; - } - if (!a.selecting) { - a.$element.addClass("ui-selecting"); - a.selecting = true; - f._trigger("selecting", c, { - selecting: a.element - }); - } - } else { - if (a.selecting) { - if (c.metaKey && a.startselected) { - a.$element.removeClass("ui-selecting"); - a.selecting = false; - a.$element.addClass("ui-selected"); - a.selected = true; - } else { - a.$element.removeClass("ui-selecting"); - a.selecting = false; - if (a.startselected) { - a.$element.addClass("ui-unselecting"); - a.unselecting = true; - } - f._trigger("unselecting", c, { - unselecting: a.element - }); - } - } - if (a.selected) { - if (!c.metaKey && !a.startselected) { - a.$element.removeClass("ui-selected"); - a.selected = false; - a.$element.addClass("ui-unselecting"); - a.unselecting = true; - f._trigger("unselecting", c, { - unselecting: a.element - }); - } - } - } - } - }); - return false; - } - }, - _mouseStop: function (c) { - var f = this; - this.dragged = false; - e(".ui-unselecting", this.element[0]).each(function () { - var d = e.data(this, "selectable-item"); - d.$element.removeClass("ui-unselecting"); - d.unselecting = false; - d.startselected = false; - f._trigger("unselected", c, { - unselected: d.element - }); - }); - e(".ui-selecting", this.element[0]).each(function () { - var d = e.data(this, "selectable-item"); - d.$element.removeClass("ui-selecting").addClass("ui-selected"); - d.selecting = false; - d.selected = true; - d.startselected = true; - f._trigger("selected", c, { - selected: d.element - }); - }); - this._trigger("stop", c); - this.helper.remove(); - return false; - } - }); - e.extend(e.ui.selectable, { - version: "1.8.13" - }); -})(jQuery); -(function (d) { - d.widget("ui.sortable", d.ui.mouse, { - widgetEventPrefix: "sort", - options: { - appendTo: "parent", - axis: false, - connectWith: false, - containment: false, - cursor: "auto", - cursorAt: false, - dropOnEmpty: true, - forcePlaceholderSize: false, - forceHelperSize: false, - grid: false, - handle: false, - helper: "original", - items: "> *", - opacity: false, - placeholder: false, - revert: false, - scroll: true, - scrollSensitivity: 20, - scrollSpeed: 20, - scope: "default", - tolerance: "intersect", - zIndex: 1000 - }, - _create: function () { - var a = this.options; - this.containerCache = {}; - this.element.addClass("ui-sortable"); - this.refresh(); - this.floating = this.items.length ? a.axis === "x" || /left|right/.test(this.items[0].item.css("float")) || /inline|table-cell/.test(this.items[0].item.css("display")) : false; - this.offset = this.element.offset(); - this._mouseInit(); - }, - destroy: function () { - this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable"); - this._mouseDestroy(); - for (var a = this.items.length - 1; a >= 0; a--) { - this.items[a].item.removeData("sortable-item"); - } - return this; - }, - _setOption: function (a, b) { - if (a === "disabled") { - this.options[a] = b; - this.widget()[b ? "addClass" : "removeClass"]("ui-sortable-disabled"); - } else { - d.Widget.prototype._setOption.apply(this, arguments); - } - }, - _mouseCapture: function (a, b) { - if (this.reverting) { - return false; - } - if (this.options.disabled || this.options.type == "static") { - return false; - } - this._refreshItems(a); - var c = null, - e = this; - d(a.target).parents().each(function () { - if (d.data(this, "sortable-item") == e) { - c = d(this); - return false; - } - }); - if (d.data(a.target, "sortable-item") == e) { - c = d(a.target); - } - if (!c) { - return false; - } - if (this.options.handle && !b) { - var f = false; - d(this.options.handle, c).find("*").andSelf().each(function () { - if (this == a.target) { - f = true; - } - }); - if (!f) { - return false; - } - } - this.currentItem = c; - this._removeCurrentsFromItems(); - return true; - }, - _mouseStart: function (a, b, c) { - b = this.options; - var e = this; - this.currentContainer = this; - this.refreshPositions(); - this.helper = this._createHelper(a); - this._cacheHelperProportions(); - this._cacheMargins(); - this.scrollParent = this.helper.scrollParent(); - this.offset = this.currentItem.offset(); - this.offset = { - top: this.offset.top - this.margins.top, - left: this.offset.left - this.margins.left - }; - this.helper.css("position", "absolute"); - this.cssPosition = this.helper.css("position"); - d.extend(this.offset, { - click: { - left: a.pageX - this.offset.left, - top: a.pageY - this.offset.top - }, - parent: this._getParentOffset(), - relative: this._getRelativeOffset() - }); - this.originalPosition = this._generatePosition(a); - this.originalPageX = a.pageX; - this.originalPageY = a.pageY; - b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); - this.domPosition = { - prev: this.currentItem.prev()[0], - parent: this.currentItem.parent()[0] - }; - this.helper[0] != this.currentItem[0] && this.currentItem.hide(); - this._createPlaceholder(); - b.containment && this._setContainment(); - if (b.cursor) { - if (d("body").css("cursor")) { - this._storedCursor = d("body").css("cursor"); - } - d("body").css("cursor", b.cursor); - } - if (b.opacity) { - if (this.helper.css("opacity")) { - this._storedOpacity = this.helper.css("opacity"); - } - this.helper.css("opacity", b.opacity); - } - if (b.zIndex) { - if (this.helper.css("zIndex")) { - this._storedZIndex = this.helper.css("zIndex"); - } - this.helper.css("zIndex", b.zIndex); - } - if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") { - this.overflowOffset = this.scrollParent.offset(); - } - this._trigger("start", a, this._uiHash()); - this._preserveHelperProportions || this._cacheHelperProportions(); - if (!c) { - for (c = this.containers.length - 1; c >= 0; c--) { - this.containers[c]._trigger("activate", a, e._uiHash(this)); - } - } - if (d.ui.ddmanager) { - d.ui.ddmanager.current = this; - } - d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); - this.dragging = true; - this.helper.addClass("ui-sortable-helper"); - this._mouseDrag(a); - return true; - }, - _mouseDrag: function (a) { - this.position = this._generatePosition(a); - this.positionAbs = this._convertPositionTo("absolute"); - if (!this.lastPositionAbs) { - this.lastPositionAbs = this.positionAbs; - } - if (this.options.scroll) { - var b = this.options, - c = false; - if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") { - if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < b.scrollSensitivity) { - this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop + b.scrollSpeed; - } else { - if (a.pageY - this.overflowOffset.top < b.scrollSensitivity) { - this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop - b.scrollSpeed; - } - } - if (this.overflowOffset.left + this.scrollParent[0].offsetWidth - a.pageX < b.scrollSensitivity) { - this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft + b.scrollSpeed; - } else { - if (a.pageX - this.overflowOffset.left < b.scrollSensitivity) { - this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft - b.scrollSpeed; - } - } - } else { - if (a.pageY - d(document).scrollTop() < b.scrollSensitivity) { - c = d(document).scrollTop(d(document).scrollTop() - b.scrollSpeed); - } else { - if (d(window).height() - (a.pageY - d(document).scrollTop()) < b.scrollSensitivity) { - c = d(document).scrollTop(d(document).scrollTop() + b.scrollSpeed); - } - } - if (a.pageX - d(document).scrollLeft() < b.scrollSensitivity) { - c = d(document).scrollLeft(d(document).scrollLeft() - b.scrollSpeed); - } else { - if (d(window).width() - (a.pageX - d(document).scrollLeft()) < b.scrollSensitivity) { - c = d(document).scrollLeft(d(document).scrollLeft() + b.scrollSpeed); - } - } - } - c !== false && d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); - } - this.positionAbs = this._convertPositionTo("absolute"); - if (!this.options.axis || this.options.axis != "y") { - this.helper[0].style.left = this.position.left + "px"; - } - if (!this.options.axis || this.options.axis != "x") { - this.helper[0].style.top = this.position.top + "px"; - } - for (b = this.items.length - 1; b >= 0; b--) { - c = this.items[b]; - var e = c.item[0], - f = this._intersectsWithPointer(c); - if (f) { - if (e != this.currentItem[0] && this.placeholder[f == 1 ? "next" : "prev"]()[0] != e && !d.ui.contains(this.placeholder[0], e) && (this.options.type == "semi-dynamic" ? !d.ui.contains(this.element[0], e) : true)) { - this.direction = f == 1 ? "down" : "up"; - if (this.options.tolerance == "pointer" || this._intersectsWithSides(c)) { - this._rearrange(a, c); - } else { - break; - } - this._trigger("change", a, this._uiHash()); - break; - } - } - } - this._contactContainers(a); - d.ui.ddmanager && d.ui.ddmanager.drag(this, a); - this._trigger("sort", a, this._uiHash()); - this.lastPositionAbs = this.positionAbs; - return false; - }, - _mouseStop: function (a, b) { - if (a) { - d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a); - if (this.options.revert) { - var c = this; - b = c.placeholder.offset(); - c.reverting = true; - d(this.helper).animate({ - left: b.left - this.offset.parent.left - c.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), - top: b.top - this.offset.parent.top - c.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) - }, - parseInt(this.options.revert, 10) || 500, function () { - c._clear(a); - }); - } else { - this._clear(a, b); - } - return false; - } - }, - cancel: function () { - var a = this; - if (this.dragging) { - this._mouseUp({ - target: null - }); - this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show(); - for (var b = this.containers.length - 1; b >= 0; b--) { - this.containers[b]._trigger("deactivate", null, a._uiHash(this)); - if (this.containers[b].containerCache.over) { - this.containers[b]._trigger("out", null, a._uiHash(this)); - this.containers[b].containerCache.over = 0; - } - } - } - if (this.placeholder) { - this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove(); - d.extend(this, { - helper: null, - dragging: false, - reverting: false, - _noFinalSort: null - }); - this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) : d(this.domPosition.parent).prepend(this.currentItem); - } - return this; - }, - serialize: function (a) { - var b = this._getItemsAsjQuery(a && a.connected), - c = []; - a = a || {}; - d(b).each(function () { - var e = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[-=_](.+)/); - if (e) { - c.push((a.key || e[1] + "[]") + "=" + (a.key && a.expression ? e[1] : e[2])); - } - }); ! c.length && a.key && c.push(a.key + "="); - return c.join("&"); - }, - toArray: function (a) { - var b = this._getItemsAsjQuery(a && a.connected), - c = []; - a = a || {}; - b.each(function () { - c.push(d(a.item || this).attr(a.attribute || "id") || ""); - }); - return c; - }, - _intersectsWith: function (a) { - var b = this.positionAbs.left, - c = b + this.helperProportions.width, - e = this.positionAbs.top, - f = e + this.helperProportions.height, - g = a.left, - h = g + a.width, - i = a.top, - k = i + a.height, - j = this.offset.click.top, - l = this.offset.click.left; - j = e + j > i && e + j < k && b + l > g && b + l < h; - return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? j : g < b + this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < h && i < e + this.helperProportions.height / 2 && f - this.helperProportions.height / 2 < k; - }, - _intersectsWithPointer: function (a) { - var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height); - a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width); - b = b && a; - a = this._getDragVerticalDirection(); - var c = this._getDragHorizontalDirection(); - if (!b) { - return false; - } - return this.floating ? c && c == "right" || a == "down" ? 2 : 1 : a && (a == "down" ? 2 : 1); - }, - _intersectsWithSides: function (a) { - var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height); - a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width); - var c = this._getDragVerticalDirection(), - e = this._getDragHorizontalDirection(); - return this.floating && e ? e == "right" && a || e == "left" && !a : c && (c == "down" && b || c == "up" && !b); - }, - _getDragVerticalDirection: function () { - var a = this.positionAbs.top - this.lastPositionAbs.top; - return a != 0 && (a > 0 ? "down" : "up"); - }, - _getDragHorizontalDirection: function () { - var a = this.positionAbs.left - this.lastPositionAbs.left; - return a != 0 && (a > 0 ? "right" : "left"); - }, - refresh: function (a) { - this._refreshItems(a); - this.refreshPositions(); - return this; - }, - _connectWith: function () { - var a = this.options; - return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith; - }, - _getItemsAsjQuery: function (a) { - var b = [], - c = [], - e = this._connectWith(); - if (e && a) { - for (a = e.length - 1; a >= 0; a--) { - for (var f = d(e[a]), g = f.length - 1; g >= 0; g--) { - var h = d.data(f[g], "sortable"); - if (h && h != this && !h.options.disabled) { - c.push([d.isFunction(h.options.items) ? h.options.items.call(h.element) : d(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h]); - } - } - } - } - c.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, { - options: this.options, - item: this.currentItem - }) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); - for (a = c.length - 1; a >= 0; a--) { - c[a][0].each(function () { - b.push(this); - }); - } - return d(b); - }, - _removeCurrentsFromItems: function () { - for (var a = this.currentItem.find(":data(sortable-item)"), b = 0; b < this.items.length; b++) { - for (var c = 0; c < a.length; c++) { - a[c] == this.items[b].item[0] && this.items.splice(b, 1); - } - } - }, - _refreshItems: function (a) { - this.items = []; - this.containers = [this]; - var b = this.items, - c = [[d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, { - item: this.currentItem - }) : d(this.options.items, this.element), this]], - e = this._connectWith(); - if (e) { - for (var f = e.length - 1; f >= 0; f--) { - for (var g = d(e[f]), h = g.length - 1; h >= 0; h--) { - var i = d.data(g[h], "sortable"); - if (i && i != this && !i.options.disabled) { - c.push([d.isFunction(i.options.items) ? i.options.items.call(i.element[0], a, { - item: this.currentItem - }) : d(i.options.items, i.element), i]); - this.containers.push(i); - } - } - } - } - for (f = c.length - 1; f >= 0; f--) { - a = c[f][1]; - e = c[f][0]; - h = 0; - for (g = e.length; h < g; h++) { - i = d(e[h]); - i.data("sortable-item", a); - b.push({ - item: i, - instance: a, - width: 0, - height: 0, - left: 0, - top: 0 - }); - } - } - }, - refreshPositions: function (a) { - if (this.offsetParent && this.helper) { - this.offset.parent = this._getParentOffset(); - } - for (var b = this.items.length - 1; b >= 0; b--) { - var c = this.items[b]; - if (! (c.instance != this.currentContainer && this.currentContainer && c.item[0] != this.currentItem[0])) { - var e = this.options.toleranceElement ? d(this.options.toleranceElement, c.item) : c.item; - if (!a) { - c.width = e.outerWidth(); - c.height = e.outerHeight(); - } - e = e.offset(); - c.left = e.left; - c.top = e.top; - } - } - if (this.options.custom && this.options.custom.refreshContainers) { - this.options.custom.refreshContainers.call(this); - } else { - for (b = this.containers.length - 1; b >= 0; b--) { - e = this.containers[b].element.offset(); - this.containers[b].containerCache.left = e.left; - this.containers[b].containerCache.top = e.top; - this.containers[b].containerCache.width = this.containers[b].element.outerWidth(); - this.containers[b].containerCache.height = this.containers[b].element.outerHeight(); - } - } - return this; - }, - _createPlaceholder: function (a) { - var b = a || this, - c = b.options; - if (!c.placeholder || c.placeholder.constructor == String) { - var e = c.placeholder; - c.placeholder = { - element: function () { - var f = d(document.createElement(b.currentItem[0].nodeName)).addClass(e || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; - if (!e) { - f.style.visibility = "hidden"; - } - return f; - }, - update: function (f, g) { - if (! (e && !c.forcePlaceholderSize)) { - g.height() || g.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10)); - g.width() || g.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10)); - } - } - }; - } - b.placeholder = d(c.placeholder.element.call(b.element, b.currentItem)); - b.currentItem.after(b.placeholder); - c.placeholder.update(b, b.placeholder); - }, - _contactContainers: function (a) { - for (var b = null, c = null, e = this.containers.length - 1; e >= 0; e--) { - if (!d.ui.contains(this.currentItem[0], this.containers[e].element[0])) { - if (this._intersectsWith(this.containers[e].containerCache)) { - if (! (b && d.ui.contains(this.containers[e].element[0], b.element[0]))) { - b = this.containers[e]; - c = e; - } - } else { - if (this.containers[e].containerCache.over) { - this.containers[e]._trigger("out", a, this._uiHash(this)); - this.containers[e].containerCache.over = 0; - } - } - } - } - if (b) { - if (this.containers.length === 1) { - this.containers[c]._trigger("over", a, this._uiHash(this)); - this.containers[c].containerCache.over = 1; - } else { - if (this.currentContainer != this.containers[c]) { - b = 10000; - e = null; - for (var f = this.positionAbs[this.containers[c].floating ? "left" : "top"], g = this.items.length - 1; g >= 0; g--) { - if (d.ui.contains(this.containers[c].element[0], this.items[g].item[0])) { - var h = this.items[g][this.containers[c].floating ? "left" : "top"]; - if (Math.abs(h - f) < b) { - b = Math.abs(h - f); - e = this.items[g]; - } - } - } - if (e || this.options.dropOnEmpty) { - this.currentContainer = this.containers[c]; - e ? this._rearrange(a, e, null, true) : this._rearrange(a, null, this.containers[c].element, true); - this._trigger("change", a, this._uiHash()); - this.containers[c]._trigger("change", a, this._uiHash(this)); - this.options.placeholder.update(this.currentContainer, this.placeholder); - this.containers[c]._trigger("over", a, this._uiHash(this)); - this.containers[c].containerCache.over = 1; - } - } - } - } - }, - _createHelper: function (a) { - var b = this.options; - a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a, this.currentItem])) : b.helper == "clone" ? this.currentItem.clone() : this.currentItem; - a.parents("body").length || d(b.appendTo != "parent" ? b.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]); - if (a[0] == this.currentItem[0]) { - this._storedCSS = { - width: this.currentItem[0].style.width, - height: this.currentItem[0].style.height, - position: this.currentItem.css("position"), - top: this.currentItem.css("top"), - left: this.currentItem.css("left") - }; - } - if (a[0].style.width == "" || b.forceHelperSize) { - a.width(this.currentItem.width()); - } - if (a[0].style.height == "" || b.forceHelperSize) { - a.height(this.currentItem.height()); - } - return a; - }, - _adjustOffsetFromHelper: function (a) { - if (typeof a == "string") { - a = a.split(" "); - } - if (d.isArray(a)) { - a = { - left: +a[0], - top: +a[1] || 0 - }; - } - if ("left" in a) { - this.offset.click.left = a.left + this.margins.left; - } - if ("right" in a) { - this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; - } - if ("top" in a) { - this.offset.click.top = a.top + this.margins.top; - } - if ("bottom" in a) { - this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top; - } - }, - _getParentOffset: function () { - this.offsetParent = this.helper.offsetParent(); - var a = this.offsetParent.offset(); - if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) { - a.left += this.scrollParent.scrollLeft(); - a.top += this.scrollParent.scrollTop(); - } - if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) { - a = { - top: 0, - left: 0 - }; - } - return { - top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), - left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0) - }; - }, - _getRelativeOffset: function () { - if (this.cssPosition == "relative") { - var a = this.currentItem.position(); - return { - top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), - left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft() - }; - } else { - return { - top: 0, - left: 0 - }; - } - }, - _cacheMargins: function () { - this.margins = { - left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, - top: parseInt(this.currentItem.css("marginTop"), 10) || 0 - }; - }, - _cacheHelperProportions: function () { - this.helperProportions = { - width: this.helper.outerWidth(), - height: this.helper.outerHeight() - }; - }, - _setContainment: function () { - var a = this.options; - if (a.containment == "parent") { - a.containment = this.helper[0].parentNode; - } - if (a.containment == "document" || a.containment == "window") { - this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; - } - if (!/^(document|window|parent)$/.test(a.containment)) { - var b = d(a.containment)[0]; - a = d(a.containment).offset(); - var c = d(b).css("overflow") != "hidden"; - this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]; - } - }, - _convertPositionTo: function (a, b) { - if (!b) { - b = this.position; - } - a = a == "absolute" ? 1 : -1; - var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, - e = /(html|body)/i.test(c[0].tagName); - return { - top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()) * a), - left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft()) * a) - }; - }, - _generatePosition: function (a) { - var b = this.options, - c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, - e = /(html|body)/i.test(c[0].tagName); - if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { - this.offset.relative = this._getRelativeOffset(); - } - var f = a.pageX, - g = a.pageY; - if (this.originalPosition) { - if (this.containment) { - if (a.pageX - this.offset.click.left < this.containment[0]) { - f = this.containment[0] + this.offset.click.left; - } - if (a.pageY - this.offset.click.top < this.containment[1]) { - g = this.containment[1] + this.offset.click.top; - } - if (a.pageX - this.offset.click.left > this.containment[2]) { - f = this.containment[2] + this.offset.click.left; - } - if (a.pageY - this.offset.click.top > this.containment[3]) { - g = this.containment[3] + this.offset.click.top; - } - } - if (b.grid) { - g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1]; - g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g; - f = this.originalPageX + Math.round((f - this.originalPageX) / b.grid[0]) * b.grid[0]; - f = this.containment ? !(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : !(f - this.offset.click.left < this.containment[0]) ? f - b.grid[0] : f + b.grid[0] : f; - } - } - return { - top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()), - left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft()) - }; - }, - _rearrange: function (a, b, c, e) { - c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? b.item[0] : b.item[0].nextSibling); - this.counter = this.counter ? ++this.counter : 1; - var f = this, - g = this.counter; - window.setTimeout(function () { - g == f.counter && f.refreshPositions(!e); - }, - 0); - }, - _clear: function (a, b) { - this.reverting = false; - var c = []; ! this._noFinalSort && this.currentItem[0].parentNode && this.placeholder.before(this.currentItem); - this._noFinalSort = null; - if (this.helper[0] == this.currentItem[0]) { - for (var e in this._storedCSS) { - if (this._storedCSS[e] == "auto" || this._storedCSS[e] == "static") { - this._storedCSS[e] = ""; - } - } - this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); - } else { - this.currentItem.show(); - } - this.fromOutside && !b && c.push(function (f) { - this._trigger("receive", f, this._uiHash(this.fromOutside)); - }); - if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !b) { - c.push(function (f) { - this._trigger("update", f, this._uiHash()); - }); - } - if (!d.ui.contains(this.element[0], this.currentItem[0])) { - b || c.push(function (f) { - this._trigger("remove", f, this._uiHash()); - }); - for (e = this.containers.length - 1; e >= 0; e--) { - if (d.ui.contains(this.containers[e].element[0], this.currentItem[0]) && !b) { - c.push(function (f) { - return function (g) { - f._trigger("receive", g, this._uiHash(this)); - }; - }.call(this, this.containers[e])); - c.push(function (f) { - return function (g) { - f._trigger("update", g, this._uiHash(this)); - }; - }.call(this, this.containers[e])); - } - } - } - for (e = this.containers.length - 1; e >= 0; e--) { - b || c.push(function (f) { - return function (g) { - f._trigger("deactivate", g, this._uiHash(this)); - }; - }.call(this, this.containers[e])); - if (this.containers[e].containerCache.over) { - c.push(function (f) { - return function (g) { - f._trigger("out", g, this._uiHash(this)); - }; - }.call(this, this.containers[e])); - this.containers[e].containerCache.over = 0; - } - } - this._storedCursor && d("body").css("cursor", this._storedCursor); - this._storedOpacity && this.helper.css("opacity", this._storedOpacity); - if (this._storedZIndex) { - this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex); - } - this.dragging = false; - if (this.cancelHelperRemoval) { - if (!b) { - this._trigger("beforeStop", a, this._uiHash()); - for (e = 0; e < c.length; e++) { - c[e].call(this, a); - } - this._trigger("stop", a, this._uiHash()); - } - return false; - } - b || this._trigger("beforeStop", a, this._uiHash()); - this.placeholder[0].parentNode.removeChild(this.placeholder[0]); - this.helper[0] != this.currentItem[0] && this.helper.remove(); - this.helper = null; - if (!b) { - for (e = 0; e < c.length; e++) { - c[e].call(this, a); - } - this._trigger("stop", a, this._uiHash()); - } - this.fromOutside = false; - return true; - }, - _trigger: function () { - d.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel(); - }, - _uiHash: function (a) { - var b = a || this; - return { - helper: b.helper, - placeholder: b.placeholder || d([]), - position: b.position, - originalPosition: b.originalPosition, - offset: b.positionAbs, - item: b.currentItem, - sender: a ? a.element : null - }; - } - }); - d.extend(d.ui.sortable, { - version: "1.8.13" - }); -})(jQuery); -(function (c) { - c.widget("ui.accordion", { - options: { - active: 0, - animated: "slide", - autoHeight: true, - clearStyle: false, - collapsible: false, - event: "click", - fillSpace: false, - header: "> li > :first-child,> :not(li):even", - icons: { - header: "ui-icon-triangle-1-e", - headerSelected: "ui-icon-triangle-1-s" - }, - navigation: false, - navigationFilter: function () { - return this.href.toLowerCase() === location.href.toLowerCase(); - } - }, - _create: function () { - var a = this, - b = a.options; - a.running = 0; - a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); - a.headers = a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function () { - b.disabled || c(this).addClass("ui-state-hover"); - }).bind("mouseleave.accordion", function () { - b.disabled || c(this).removeClass("ui-state-hover"); - }).bind("focus.accordion", function () { - b.disabled || c(this).addClass("ui-state-focus"); - }).bind("blur.accordion", function () { - b.disabled || c(this).removeClass("ui-state-focus"); - }); - a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); - if (b.navigation) { - var d = a.element.find("a").filter(b.navigationFilter).eq(0); - if (d.length) { - var h = d.closest(".ui-accordion-header"); - a.active = h.length ? h : d.closest(".ui-accordion-content").prev(); - } - } - a.active = a._findActive(a.active || b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"); - a.active.next().addClass("ui-accordion-content-active"); - a._createIcons(); - a.resize(); - a.element.attr("role", "tablist"); - a.headers.attr("role", "tab").bind("keydown.accordion", function (f) { - return a._keydown(f); - }).next().attr("role", "tabpanel"); - a.headers.not(a.active || "").attr({ - "aria-expanded": "false", - "aria-selected": "false", - tabIndex: -1 - }).next().hide(); - a.active.length ? a.active.attr({ - "aria-expanded": "true", - "aria-selected": "true", - tabIndex: 0 - }) : a.headers.eq(0).attr("tabIndex", 0); - c.browser.safari || a.headers.find("a").attr("tabIndex", -1); - b.event && a.headers.bind(b.event.split(" ").join(".accordion ") + ".accordion", function (f) { - a._clickHandler.call(a, f, this); - f.preventDefault(); - }); - }, - _createIcons: function () { - var a = this.options; - if (a.icons) { - c("").addClass("ui-icon " + a.icons.header).prependTo(this.headers); - this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected); - this.element.addClass("ui-accordion-icons"); - } - }, - _destroyIcons: function () { - this.headers.children(".ui-icon").remove(); - this.element.removeClass("ui-accordion-icons"); - }, - destroy: function () { - var a = this.options; - this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"); - this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); - this.headers.find("a").removeAttr("tabIndex"); - this._destroyIcons(); - var b = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled"); - if (a.autoHeight || a.fillHeight) { - b.css("height", ""); - } - return c.Widget.prototype.destroy.call(this); - }, - _setOption: function (a, b) { - c.Widget.prototype._setOption.apply(this, arguments); - a == "active" && this.activate(b); - if (a == "icons") { - this._destroyIcons(); - b && this._createIcons(); - } - if (a == "disabled") { - this.headers.add(this.headers.next())[b ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled"); - } - }, - _keydown: function (a) { - if (! (this.options.disabled || a.altKey || a.ctrlKey)) { - var b = c.ui.keyCode, - d = this.headers.length, - h = this.headers.index(a.target), - f = false; - switch (a.keyCode) { - case b.RIGHT: - case b.DOWN: - f = this.headers[(h + 1) % d]; - break; - case b.LEFT: - case b.UP: - f = this.headers[(h - 1 + d) % d]; - break; - case b.SPACE: - case b.ENTER: - this._clickHandler({ - target: a.target - }, - a.target); - a.preventDefault(); - } - if (f) { - c(a.target).attr("tabIndex", -1); - c(f).attr("tabIndex", 0); - f.focus(); - return false; - } - return true; - } - }, - resize: function () { - var a = this.options, - b; - if (a.fillSpace) { - if (c.browser.msie) { - var d = this.element.parent().css("overflow"); - this.element.parent().css("overflow", "hidden"); - } - b = this.element.parent().height(); - c.browser.msie && this.element.parent().css("overflow", d); - this.headers.each(function () { - b -= c(this).outerHeight(true); - }); - this.headers.next().each(function () { - c(this).height(Math.max(0, b - c(this).innerHeight() + c(this).height())); - }).css("overflow", "auto"); - } else { - if (a.autoHeight) { - b = 0; - this.headers.next().each(function () { - b = Math.max(b, c(this).height("").height()); - }).height(b); - } - } - return this; - }, - activate: function (a) { - this.options.active = a; - a = this._findActive(a)[0]; - this._clickHandler({ - target: a - }, - a); - return this; - }, - _findActive: function (a) { - return a ? typeof a === "number" ? this.headers.filter(":eq(" + a + ")") : this.headers.not(this.headers.not(a)) : a === false ? c([]) : this.headers.filter(":eq(0)"); - }, - _clickHandler: function (a, b) { - var d = this.options; - if (!d.disabled) { - if (a.target) { - a = c(a.currentTarget || b); - b = a[0] === this.active[0]; - d.active = d.collapsible && b ? false : this.headers.index(a); - if (! (this.running || !d.collapsible && b)) { - var h = this.active; - j = a.next(); - g = this.active.next(); - e = { - options: d, - newHeader: b && d.collapsible ? c([]) : a, - oldHeader: this.active, - newContent: b && d.collapsible ? c([]) : j, - oldContent: g - }; - var f = this.headers.index(this.active[0]) > this.headers.index(a[0]); - this.active = b ? c([]) : a; - this._toggle(j, g, e, b, f); - h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); - if (!b) { - a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected); - a.next().addClass("ui-accordion-content-active"); - } - } - } else { - if (d.collapsible) { - this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); - this.active.next().addClass("ui-accordion-content-active"); - var g = this.active.next(), - e = { - options: d, - newHeader: c([]), - oldHeader: d.active, - newContent: c([]), - oldContent: g - }, - j = this.active = c([]); - this._toggle(j, g, e); - } - } - } - }, - _toggle: function (a, b, d, h, f) { - var g = this, - e = g.options; - g.toShow = a; - g.toHide = b; - g.data = d; - var j = function () { - if (g) { - return g._completed.apply(g, arguments); - } - }; - g._trigger("changestart", null, g.data); - g.running = b.size() === 0 ? a.size() : b.size(); - if (e.animated) { - d = {}; - d = e.collapsible && h ? { - toShow: c([]), - toHide: b, - complete: j, - down: f, - autoHeight: e.autoHeight || e.fillSpace - } : { - toShow: a, - toHide: b, - complete: j, - down: f, - autoHeight: e.autoHeight || e.fillSpace - }; - if (!e.proxied) { - e.proxied = e.animated; - } - if (!e.proxiedDuration) { - e.proxiedDuration = e.duration; - } - e.animated = c.isFunction(e.proxied) ? e.proxied(d) : e.proxied; - e.duration = c.isFunction(e.proxiedDuration) ? e.proxiedDuration(d) : e.proxiedDuration; - h = c.ui.accordion.animations; - var i = e.duration, - k = e.animated; - if (k && !h[k] && !c.easing[k]) { - k = "slide"; - } - h[k] || (h[k] = function (l) { - this.slide(l, { - easing: k, - duration: i || 700 - }); - }); - h[k](d); - } else { - if (e.collapsible && h) { - a.toggle(); - } else { - b.hide(); - a.show(); - } - j(true); - } - b.prev().attr({ - "aria-expanded": "false", - "aria-selected": "false", - tabIndex: -1 - }).blur(); - a.prev().attr({ - "aria-expanded": "true", - "aria-selected": "true", - tabIndex: 0 - }).focus(); - }, - _completed: function (a) { - this.running = a ? 0 : --this.running; - if (!this.running) { - this.options.clearStyle && this.toShow.add(this.toHide).css({ - height: "", - overflow: "" - }); - this.toHide.removeClass("ui-accordion-content-active"); - if (this.toHide.length) { - this.toHide.parent()[0].className = this.toHide.parent()[0].className; - } - this._trigger("change", null, this.data); - } - } - }); - c.extend(c.ui.accordion, { - version: "1.8.13", - animations: { - slide: function (a, b) { - a = c.extend({ - easing: "swing", - duration: 300 - }, - a, b); - if (a.toHide.size()) { - if (a.toShow.size()) { - var d = a.toShow.css("overflow"), - h = 0, - f = {}, - g = {}, - e; - b = a.toShow; - e = b[0].style.width; - b.width(parseInt(b.parent().width(), 10) - parseInt(b.css("paddingLeft"), 10) - parseInt(b.css("paddingRight"), 10) - (parseInt(b.css("borderLeftWidth"), 10) || 0) - (parseInt(b.css("borderRightWidth"), 10) || 0)); - c.each(["height", "paddingTop", "paddingBottom"], function (j, i) { - g[i] = "hide"; - j = ("" + c.css(a.toShow[0], i)).match(/^([\d+-.]+)(.*)$/); - f[i] = { - value: j[1], - unit: j[2] || "px" - }; - }); - a.toShow.css({ - height: 0, - overflow: "hidden" - }).show(); - a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g, { - step: function (j, i) { - if (i.prop == "height") { - h = i.end - i.start === 0 ? 0 : (i.now - i.start) / (i.end - i.start); - } - a.toShow[0].style[i.prop] = h * f[i.prop].value + f[i.prop].unit; - }, - duration: a.duration, - easing: a.easing, - complete: function () { - a.autoHeight || a.toShow.css("height", ""); - a.toShow.css({ - width: e, - overflow: d - }); - a.complete(); - } - }); - } else { - a.toHide.animate({ - height: "hide", - paddingTop: "hide", - paddingBottom: "hide" - }, - a); - } - } else { - a.toShow.animate({ - height: "show", - paddingTop: "show", - paddingBottom: "show" - }, - a); - } - }, - bounceslide: function (a) { - this.slide(a, { - easing: a.down ? "easeOutBounce" : "swing", - duration: a.down ? 1000 : 200 - }); - } - } - }); -})(jQuery); -(function (d) { - var e = 0; - d.widget("ui.autocomplete", { - options: { - appendTo: "body", - autoFocus: false, - delay: 300, - minLength: 1, - position: { - my: "left top", - at: "left bottom", - collision: "none" - }, - source: null - }, - pending: 0, - _create: function () { - var a = this, - b = this.element[0].ownerDocument, - g; - this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({ - role: "textbox", - "aria-autocomplete": "list", - "aria-haspopup": "true" - }).bind("keydown.autocomplete", function (c) { - if (! (a.options.disabled || a.element.attr("readonly"))) { - g = false; - var f = d.ui.keyCode; - switch (c.keyCode) { - case f.PAGE_UP: - a._move("previousPage", c); - break; - case f.PAGE_DOWN: - a._move("nextPage", c); - break; - case f.UP: - a._move("previous", c); - c.preventDefault(); - break; - case f.DOWN: - a._move("next", c); - c.preventDefault(); - break; - case f.ENTER: - case f.NUMPAD_ENTER: - if (a.menu.active) { - g = true; - c.preventDefault(); - } - case f.TAB: - if (!a.menu.active) { - return; - } - a.menu.select(c); - break; - case f.ESCAPE: - a.element.val(a.term); - a.close(c); - break; - default: - clearTimeout(a.searching); - a.searching = setTimeout(function () { - if (a.term != a.element.val()) { - a.selectedItem = null; - a.search(null, c); - } - }, - a.options.delay); - break; - } - } - }).bind("keypress.autocomplete", function (c) { - if (g) { - g = false; - c.preventDefault(); - } - }).bind("focus.autocomplete", function () { - if (!a.options.disabled) { - a.selectedItem = null; - a.previous = a.element.val(); - } - }).bind("blur.autocomplete", function (c) { - if (!a.options.disabled) { - clearTimeout(a.searching); - a.closing = setTimeout(function () { - a.close(c); - a._change(c); - }, - 150); - } - }); - this._initSource(); - this.response = function () { - return a._response.apply(a, arguments); - }; - this.menu = d("
    ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo || "body", b)[0]).mousedown(function (c) { - var f = a.menu.element[0]; - d(c.target).closest(".ui-menu-item").length || setTimeout(function () { - d(document).one("mousedown", function (h) { - h.target !== a.element[0] && h.target !== f && !d.ui.contains(f, h.target) && a.close(); - }); - }, - 1); - setTimeout(function () { - clearTimeout(a.closing); - }, - 13); - }).menu({ - focus: function (c, f) { - f = f.item.data("item.autocomplete"); - false !== a._trigger("focus", c, { - item: f - }) && /^key/.test(c.originalEvent.type) && a.element.val(f.value); - }, - selected: function (c, f) { - var h = f.item.data("item.autocomplete"), - i = a.previous; - if (a.element[0] !== b.activeElement) { - a.element.focus(); - a.previous = i; - setTimeout(function () { - a.previous = i; - a.selectedItem = h; - }, - 1); - } - false !== a._trigger("select", c, { - item: h - }) && a.element.val(h.value); - a.term = a.element.val(); - a.close(c); - a.selectedItem = h; - }, - blur: function () { - a.menu.element.is(":visible") && a.element.val() !== a.term && a.element.val(a.term); - } - }).zIndex(this.element.zIndex() + 1).css({ - top: 0, - left: 0 - }).hide().data("menu"); - d.fn.bgiframe && this.menu.element.bgiframe(); - }, - destroy: function () { - this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); - this.menu.element.remove(); - d.Widget.prototype.destroy.call(this); - }, - _setOption: function (a, b) { - d.Widget.prototype._setOption.apply(this, arguments); - a === "source" && this._initSource(); - if (a === "appendTo") { - this.menu.element.appendTo(d(b || "body", this.element[0].ownerDocument)[0]); - } - a === "disabled" && b && this.xhr && this.xhr.abort(); - }, - _initSource: function () { - var a = this, - b, g; - if (d.isArray(this.options.source)) { - b = this.options.source; - this.source = function (c, f) { - f(d.ui.autocomplete.filter(b, c.term)); - }; - } else { - if (typeof this.options.source === "string") { - g = this.options.source; - this.source = function (c, f) { - a.xhr && a.xhr.abort(); - a.xhr = d.ajax({ - url: g, - data: c, - dataType: "json", - autocompleteRequest: ++e, - success: function (h) { - this.autocompleteRequest === e && f(h); - }, - error: function () { - this.autocompleteRequest === e && f([]); - } - }); - }; - } else { - this.source = this.options.source; - } - } - }, - search: function (a, b) { - a = a != null ? a : this.element.val(); - this.term = this.element.val(); - if (a.length < this.options.minLength) { - return this.close(b); - } - clearTimeout(this.closing); - if (this._trigger("search", b) !== false) { - return this._search(a); - } - }, - _search: function (a) { - this.pending++; - this.element.addClass("ui-autocomplete-loading"); - this.source({ - term: a - }, - this.response); - }, - _response: function (a) { - if (!this.options.disabled && a && a.length) { - a = this._normalize(a); - this._suggest(a); - this._trigger("open"); - } else { - this.close(); - } - this.pending--; - this.pending || this.element.removeClass("ui-autocomplete-loading"); - }, - close: function (a) { - clearTimeout(this.closing); - if (this.menu.element.is(":visible")) { - this.menu.element.hide(); - this.menu.deactivate(); - this._trigger("close", a); - } - }, - _change: function (a) { - this.previous !== this.element.val() && this._trigger("change", a, { - item: this.selectedItem - }); - }, - _normalize: function (a) { - if (a.length && a[0].label && a[0].value) { - return a; - } - return d.map(a, function (b) { - if (typeof b === "string") { - return { - label: b, - value: b - }; - } - return d.extend({ - label: b.label || b.value, - value: b.value || b.label - }, - b); - }); - }, - _suggest: function (a) { - var b = this.menu.element.empty().zIndex(this.element.zIndex() + 1); - this._renderMenu(b, a); - this.menu.deactivate(); - this.menu.refresh(); - b.show(); - this._resizeMenu(); - b.position(d.extend({ - of: this.element - }, - this.options.position)); - this.options.autoFocus && this.menu.next(new d.Event("mouseover")); - }, - _resizeMenu: function () { - var a = this.menu.element; - a.outerWidth(Math.max(a.width("").outerWidth(), this.element.outerWidth())); - }, - _renderMenu: function (a, b) { - var g = this; - d.each(b, function (c, f) { - g._renderItem(a, f); - }); - }, - _renderItem: function (a, b) { - return d("
  • ").data("item.autocomplete", b).append(d("").text(b.label)).appendTo(a); - }, - _move: function (a, b) { - if (this.menu.element.is(":visible")) { - if (this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a)) { - this.element.val(this.term); - this.menu.deactivate(); - } else { - this.menu[a](b); - } - } else { - this.search(null, b); - } - }, - widget: function () { - return this.menu.element; - } - }); - d.extend(d.ui.autocomplete, { - escapeRegex: function (a) { - return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }, - filter: function (a, b) { - var g = new RegExp(d.ui.autocomplete.escapeRegex(b), "i"); - return d.grep(a, function (c) { - return g.test(c.label || c.value || c); - }); - } - }); -})(jQuery); -(function (d) { - d.widget("ui.menu", { - _create: function () { - var e = this; - this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({ - role: "listbox", - "aria-activedescendant": "ui-active-menuitem" - }).click(function (a) { - if (d(a.target).closest(".ui-menu-item a").length) { - a.preventDefault(); - e.select(a); - } - }); - this.refresh(); - }, - refresh: function () { - var e = this; - this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex", -1).mouseenter(function (a) { - e.activate(a, d(this).parent()); - }).mouseleave(function () { - e.deactivate(); - }); - }, - activate: function (e, a) { - this.deactivate(); - if (this.hasScroll()) { - var b = a.offset().top - this.element.offset().top, - g = this.element.scrollTop(), - c = this.element.height(); - if (b < 0) { - this.element.scrollTop(g + b); - } else { - b >= c && this.element.scrollTop(g + b - c + a.height()); - } - } - this.active = a.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end(); - this._trigger("focus", e, { - item: a - }); - }, - deactivate: function () { - if (this.active) { - this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); - this._trigger("blur"); - this.active = null; - } - }, - next: function (e) { - this.move("next", ".ui-menu-item:first", e); - }, - previous: function (e) { - this.move("prev", ".ui-menu-item:last", e); - }, - first: function () { - return this.active && !this.active.prevAll(".ui-menu-item").length; - }, - last: function () { - return this.active && !this.active.nextAll(".ui-menu-item").length; - }, - move: function (e, a, b) { - if (this.active) { - e = this.active[e + "All"](".ui-menu-item").eq(0); - e.length ? this.activate(b, e) : this.activate(b, this.element.children(a)); - } else { - this.activate(b, this.element.children(a)); - } - }, - nextPage: function (e) { - if (this.hasScroll()) { - if (!this.active || this.last()) { - this.activate(e, this.element.children(".ui-menu-item:first")); - } else { - var a = this.active.offset().top, - b = this.element.height(), - g = this.element.children(".ui-menu-item").filter(function () { - var c = d(this).offset().top - a - b + d(this).height(); - return c < 10 && c > -10; - }); - g.length || (g = this.element.children(".ui-menu-item:last")); - this.activate(e, g); - } - } else { - this.activate(e, this.element.children(".ui-menu-item").filter(!this.active || this.last() ? ":first": ":last")); - } - }, - previousPage: function (e) { - if (this.hasScroll()) { - if (!this.active || this.first()) { - this.activate(e, this.element.children(".ui-menu-item:last")); - } else { - var a = this.active.offset().top, - b = this.element.height(); - result = this.element.children(".ui-menu-item").filter(function () { - var g = d(this).offset().top - a + b - d(this).height(); - return g < 10 && g > -10; - }); - result.length || (result = this.element.children(".ui-menu-item:first")); - this.activate(e, result); - } - } else { - this.activate(e, this.element.children(".ui-menu-item").filter(!this.active || this.first() ? ":last": ":first")); - } - }, - hasScroll: function () { - return this.element.height() < this.element[d.fn.prop ? "prop" : "attr"]("scrollHeight"); - }, - select: function (e) { - this._trigger("selected", e, { - item: this.active - }); - } - }); -})(jQuery); -(function (a) { - var g, i = function (b) { - a(":ui-button", b.target.form).each(function () { - var c = a(this).data("button"); - setTimeout(function () { - c.refresh(); - }, - 1); - }); - }, - h = function (b) { - var c = b.name, - d = b.form, - f = a([]); - if (c) { - f = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function () { - return !this.form; - }); - } - return f; - }; - a.widget("ui.button", { - options: { - disabled: null, - text: true, - label: null, - icons: { - primary: null, - secondary: null - } - }, - _create: function () { - this.element.closest("form").unbind("reset.button").bind("reset.button", i); - if (typeof this.options.disabled !== "boolean") { - this.options.disabled = this.element.attr("disabled"); - } - this._determineButtonType(); - this.hasTitle = !!this.buttonElement.attr("title"); - var b = this, - c = this.options, - d = this.type === "checkbox" || this.type === "radio", - f = "ui-state-hover" + (!d ? " ui-state-active" : ""); - if (c.label === null) { - c.label = this.buttonElement.html(); - } - if (this.element.is(":disabled")) { - c.disabled = true; - } - this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button", function () { - if (!c.disabled) { - a(this).addClass("ui-state-hover"); - this === g && a(this).addClass("ui-state-active"); - } - }).bind("mouseleave.button", function () { - c.disabled || a(this).removeClass(f); - }).bind("focus.button", function () { - a(this).addClass("ui-state-focus"); - }).bind("blur.button", function () { - a(this).removeClass("ui-state-focus"); - }).bind("click.button", function (e) { - c.disabled && e.stopImmediatePropagation(); - }); - d && this.element.bind("change.button", function () { - b.refresh(); - }); - if (this.type === "checkbox") { - this.buttonElement.bind("click.button", function () { - if (c.disabled) { - return false; - } - a(this).toggleClass("ui-state-active"); - b.buttonElement.attr("aria-pressed", b.element[0].checked); - }); - } else { - if (this.type === "radio") { - this.buttonElement.bind("click.button", function () { - if (c.disabled) { - return false; - } - a(this).addClass("ui-state-active"); - b.buttonElement.attr("aria-pressed", true); - var e = b.element[0]; - h(e).not(e).map(function () { - return a(this).button("widget")[0]; - }).removeClass("ui-state-active").attr("aria-pressed", false); - }); - } else { - this.buttonElement.bind("mousedown.button", function () { - if (c.disabled) { - return false; - } - a(this).addClass("ui-state-active"); - g = this; - a(document).one("mouseup", function () { - g = null; - }); - }).bind("mouseup.button", function () { - if (c.disabled) { - return false; - } - a(this).removeClass("ui-state-active"); - }).bind("keydown.button", function (e) { - if (c.disabled) { - return false; - } - if (e.keyCode == a.ui.keyCode.SPACE || e.keyCode == a.ui.keyCode.ENTER) { - a(this).addClass("ui-state-active"); - } - }).bind("keyup.button", function () { - a(this).removeClass("ui-state-active"); - }); - this.buttonElement.is("a") && this.buttonElement.keyup(function (e) { - e.keyCode === a.ui.keyCode.SPACE && a(this).click(); - }); - } - } - this._setOption("disabled", c.disabled); - }, - _determineButtonType: function () { - this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ? "input" : "button"; - if (this.type === "checkbox" || this.type === "radio") { - var b = this.element.parents().filter(":last"), - c = "label[for=" + this.element.attr("id") + "]"; - this.buttonElement = b.find(c); - if (!this.buttonElement.length) { - b = b.length ? b.siblings() : this.element.siblings(); - this.buttonElement = b.filter(c); - if (!this.buttonElement.length) { - this.buttonElement = b.find(c); - } - } - this.element.addClass("ui-helper-hidden-accessible"); - (b = this.element.is(":checked")) && this.buttonElement.addClass("ui-state-active"); - this.buttonElement.attr("aria-pressed", b); - } else { - this.buttonElement = this.element; - } - }, - widget: function () { - return this.buttonElement; - }, - destroy: function () { - this.element.removeClass("ui-helper-hidden-accessible"); - this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()); - this.hasTitle || this.buttonElement.removeAttr("title"); - a.Widget.prototype.destroy.call(this); - }, - _setOption: function (b, c) { - a.Widget.prototype._setOption.apply(this, arguments); - if (b === "disabled") { - c ? this.element.attr("disabled", true) : this.element.removeAttr("disabled"); - } - this._resetButton(); - }, - refresh: function () { - var b = this.element.is(":disabled"); - b !== this.options.disabled && this._setOption("disabled", b); - if (this.type === "radio") { - h(this.element[0]).each(function () { - a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", true) : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false); - }); - } else { - if (this.type === "checkbox") { - this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false); - } - } - }, - _resetButton: function () { - if (this.type === "input") { - this.options.label && this.element.val(this.options.label); - } else { - var b = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), - c = a("").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(), - d = this.options.icons, - f = d.primary && d.secondary, - e = []; - if (d.primary || d.secondary) { - if (this.options.text) { - e.push("ui-button-text-icon" + (f ? "s" : d.primary ? "-primary" : "-secondary")); - } - d.primary && b.prepend(""); - d.secondary && b.append(""); - if (!this.options.text) { - e.push(f ? "ui-button-icons-only" : "ui-button-icon-only"); - this.hasTitle || b.attr("title", c); - } - } else { - e.push("ui-button-text-only"); - } - b.addClass(e.join(" ")); - } - } - }); - a.widget("ui.buttonset", { - options: { - items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" - }, - _create: function () { - this.element.addClass("ui-buttonset"); - }, - _init: function () { - this.refresh(); - }, - _setOption: function (b, c) { - b === "disabled" && this.buttons.button("option", b, c); - a.Widget.prototype._setOption.apply(this, arguments); - }, - refresh: function () { - this.buttons = this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function () { - return a(this).button("widget")[0]; - }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end(); - }, - destroy: function () { - this.element.removeClass("ui-buttonset"); - this.buttons.map(function () { - return a(this).button("widget")[0]; - }).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); - a.Widget.prototype.destroy.call(this); - } - }); -})(jQuery); -(function (c, l) { - var m = { - buttons: true, - height: true, - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true, - width: true - }, - n = { - maxHeight: true, - maxWidth: true, - minHeight: true, - minWidth: true - }, - o = c.attrFn || { - val: true, - css: true, - html: true, - text: true, - data: true, - width: true, - height: true, - offset: true, - click: true - }; - c.widget("ui.dialog", { - options: { - autoOpen: true, - buttons: {}, - closeOnEscape: true, - closeText: "close", - dialogClass: "", - draggable: true, - hide: null, - height: "auto", - maxHeight: false, - maxWidth: false, - minHeight: 150, - minWidth: 150, - modal: false, - position: { - my: "center", - at: "center", - collision: "fit", - using: function (a) { - var b = c(this).css(a).offset().top; - b < 0 && c(this).css("top", a.top - b); - } - }, - resizable: true, - show: null, - stack: true, - title: "", - width: 300, - zIndex: 1000 - }, - _create: function () { - this.originalTitle = this.element.attr("title"); - if (typeof this.originalTitle !== "string") { - this.originalTitle = ""; - } - this.options.title = this.options.title || this.originalTitle; - var a = this, - b = a.options, - d = b.title || " ", - e = c.ui.dialog.getTitleId(a.element), - g = (a.uiDialog = c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b.dialogClass).css({ - zIndex: b.zIndex - }).attr("tabIndex", -1).css("outline", 0).keydown(function (i) { - if (b.closeOnEscape && i.keyCode && i.keyCode === c.ui.keyCode.ESCAPE) { - a.close(i); - i.preventDefault(); - } - }).attr({ - role: "dialog", - "aria-labelledby": e - }).mousedown(function (i) { - a.moveToTop(false, i); - }); - a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g); - var f = (a.uiDialogTitlebar = c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), - h = c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function () { - h.addClass("ui-state-hover"); - }, - function () { - h.removeClass("ui-state-hover"); - }).focus(function () { - h.addClass("ui-state-focus"); - }).blur(function () { - h.removeClass("ui-state-focus"); - }).click(function (i) { - a.close(i); - return false; - }).appendTo(f); - (a.uiDialogTitlebarCloseText = c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h); - c("").addClass("ui-dialog-title").attr("id", e).html(d).prependTo(f); - if (c.isFunction(b.beforeclose) && !c.isFunction(b.beforeClose)) { - b.beforeClose = b.beforeclose; - } - f.find("*").add(f).disableSelection(); - b.draggable && c.fn.draggable && a._makeDraggable(); - b.resizable && c.fn.resizable && a._makeResizable(); - a._createButtons(b.buttons); - a._isOpen = false; - c.fn.bgiframe && g.bgiframe(); - }, - _init: function () { - this.options.autoOpen && this.open(); - }, - destroy: function () { - var a = this; - a.overlay && a.overlay.destroy(); - a.uiDialog.hide(); - a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); - a.uiDialog.remove(); - a.originalTitle && a.element.attr("title", a.originalTitle); - return a; - }, - widget: function () { - return this.uiDialog; - }, - close: function (a) { - var b = this, - d, e; - if (false !== b._trigger("beforeClose", a)) { - b.overlay && b.overlay.destroy(); - b.uiDialog.unbind("keypress.ui-dialog"); - b._isOpen = false; - if (b.options.hide) { - b.uiDialog.hide(b.options.hide, function () { - b._trigger("close", a); - }); - } else { - b.uiDialog.hide(); - b._trigger("close", a); - } - c.ui.dialog.overlay.resize(); - if (b.options.modal) { - d = 0; - c(".ui-dialog").each(function () { - if (this !== b.uiDialog[0]) { - e = c(this).css("z-index"); - isNaN(e) || (d = Math.max(d, e)); - } - }); - c.ui.dialog.maxZ = d; - } - return b; - } - }, - isOpen: function () { - return this._isOpen; - }, - moveToTop: function (a, b) { - var d = this, - e = d.options; - if (e.modal && !a || !e.stack && !e.modal) { - return d._trigger("focus", b); - } - if (e.zIndex > c.ui.dialog.maxZ) { - c.ui.dialog.maxZ = e.zIndex; - } - if (d.overlay) { - c.ui.dialog.maxZ += 1; - d.overlay.$el.css("z-index", c.ui.dialog.overlay.maxZ = c.ui.dialog.maxZ); - } - a = { - scrollTop: d.element.attr("scrollTop"), - scrollLeft: d.element.attr("scrollLeft") - }; - c.ui.dialog.maxZ += 1; - d.uiDialog.css("z-index", c.ui.dialog.maxZ); - d.element.attr(a); - d._trigger("focus", b); - return d; - }, - open: function () { - if (!this._isOpen) { - var a = this, - b = a.options, - d = a.uiDialog; - a.overlay = b.modal ? new c.ui.dialog.overlay(a) : null; - a._size(); - a._position(b.position); - d.show(b.show); - a.moveToTop(true); - b.modal && d.bind("keypress.ui-dialog", function (e) { - if (e.keyCode === c.ui.keyCode.TAB) { - var g = c(":tabbable", this), - f = g.filter(":first"); - g = g.filter(":last"); - if (e.target === g[0] && !e.shiftKey) { - f.focus(1); - return false; - } else { - if (e.target === f[0] && e.shiftKey) { - g.focus(1); - return false; - } - } - } - }); - c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(); - a._isOpen = true; - a._trigger("open"); - return a; - } - }, - _createButtons: function (a) { - var b = this, - d = false, - e = c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), - g = c("
    ").addClass("ui-dialog-buttonset").appendTo(e); - b.uiDialog.find(".ui-dialog-buttonpane").remove(); - typeof a === "object" && a !== null && c.each(a, function () { - return ! (d = true); - }); - if (d) { - c.each(a, function (f, h) { - h = c.isFunction(h) ? { - click: h, - text: f - } : h; - var i = c('').click(function () { - h.click.apply(b.element[0], arguments); - }).appendTo(g); - c.each(h, function (j, k) { - if (j !== "click") { - j in o ? i[j](k) : i.attr(j, k); - } - }); - c.fn.button && i.button(); - }); - e.appendTo(b.uiDialog); - } - }, - _makeDraggable: function () { - function a(f) { - return { - position: f.position, - offset: f.offset - }; - } - var b = this, - d = b.options, - e = c(document), - g; - b.uiDialog.draggable({ - cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", - handle: ".ui-dialog-titlebar", - containment: "document", - start: function (f, h) { - g = d.height === "auto" ? "auto" : c(this).height(); - c(this).height(c(this).height()).addClass("ui-dialog-dragging"); - b._trigger("dragStart", f, a(h)); - }, - drag: function (f, h) { - b._trigger("drag", f, a(h)); - }, - stop: function (f, h) { - d.position = [h.position.left - e.scrollLeft(), h.position.top - e.scrollTop()]; - c(this).removeClass("ui-dialog-dragging").height(g); - b._trigger("dragStop", f, a(h)); - c.ui.dialog.overlay.resize(); - } - }); - }, - _makeResizable: function (a) { - function b(f) { - return { - originalPosition: f.originalPosition, - originalSize: f.originalSize, - position: f.position, - size: f.size - }; - } - a = a === l ? this.options.resizable : a; - var d = this, - e = d.options, - g = d.uiDialog.css("position"); - a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw"; - d.uiDialog.resizable({ - cancel: ".ui-dialog-content", - containment: "document", - alsoResize: d.element, - maxWidth: e.maxWidth, - maxHeight: e.maxHeight, - minWidth: e.minWidth, - minHeight: d._minHeight(), - handles: a, - start: function (f, h) { - c(this).addClass("ui-dialog-resizing"); - d._trigger("resizeStart", f, b(h)); - }, - resize: function (f, h) { - d._trigger("resize", f, b(h)); - }, - stop: function (f, h) { - c(this).removeClass("ui-dialog-resizing"); - e.height = c(this).height(); - e.width = c(this).width(); - d._trigger("resizeStop", f, b(h)); - c.ui.dialog.overlay.resize(); - } - }).css("position", g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se"); - }, - _minHeight: function () { - var a = this.options; - return a.height === "auto" ? a.minHeight : Math.min(a.minHeight, a.height); - }, - _position: function (a) { - var b = [], - d = [0, 0], - e; - if (a) { - if (typeof a === "string" || typeof a === "object" && "0" in a) { - b = a.split ? a.split(" ") : [a[0], a[1]]; - if (b.length === 1) { - b[1] = b[0]; - } - c.each(["left", "top"], function (g, f) { - if (+b[g] === b[g]) { - d[g] = b[g]; - b[g] = f; - } - }); - a = { - my: b.join(" "), - at: b.join(" "), - offset: d.join(" ") - }; - } - a = c.extend({}, - c.ui.dialog.prototype.options.position, a); - } else { - a = c.ui.dialog.prototype.options.position; - } (e = this.uiDialog.is(":visible")) || this.uiDialog.show(); - this.uiDialog.css({ - top: 0, - left: 0 - }).position(c.extend({ - of: window - }, - a)); - e || this.uiDialog.hide(); - }, - _setOptions: function (a) { - var b = this, - d = {}, - e = false; - c.each(a, function (g, f) { - b._setOption(g, f); - if (g in m) { - e = true; - } - if (g in n) { - d[g] = f; - } - }); - e && this._size(); - this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", d); - }, - _setOption: function (a, b) { - var d = this, - e = d.uiDialog; - switch (a) { - case "beforeclose": - a = "beforeClose"; - break; - case "buttons": - d._createButtons(b); - break; - case "closeText": - d.uiDialogTitlebarCloseText.text("" + b); - break; - case "dialogClass": - e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b); - break; - case "disabled": - b ? e.addClass("ui-dialog-disabled") : e.removeClass("ui-dialog-disabled"); - break; - case "draggable": - var g = e.is(":data(draggable)"); - g && !b && e.draggable("destroy"); ! g && b && d._makeDraggable(); - break; - case "position": - d._position(b); - break; - case "resizable": - (g = e.is(":data(resizable)")) && !b && e.resizable("destroy"); - g && typeof b === "string" && e.resizable("option", "handles", b); ! g && b !== false && d._makeResizable(b); - break; - case "title": - c(".ui-dialog-title", d.uiDialogTitlebar).html("" + (b || " ")); - break; - } - c.Widget.prototype._setOption.apply(d, arguments); - }, - _size: function () { - var a = this.options, - b, d, e = this.uiDialog.is(":visible"); - this.element.show().css({ - width: "auto", - minHeight: 0, - height: 0 - }); - if (a.minWidth > a.width) { - a.width = a.minWidth; - } - b = this.uiDialog.css({ - height: "auto", - width: a.width - }).height(); - d = Math.max(0, a.minHeight - b); - if (a.height === "auto") { - if (c.support.minHeight) { - this.element.css({ - minHeight: d, - height: "auto" - }); - } else { - this.uiDialog.show(); - a = this.element.css("height", "auto").height(); - e || this.uiDialog.hide(); - this.element.height(Math.max(a, d)); - } - } else { - this.element.height(Math.max(a.height - b, 0)); - } - this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight()); - } - }); - c.extend(c.ui.dialog, { - version: "1.8.13", - uuid: 0, - maxZ: 0, - getTitleId: function (a) { - a = a.attr("id"); - if (!a) { - this.uuid += 1; - a = this.uuid; - } - return "ui-dialog-title-" + a; - }, - overlay: function (a) { - this.$el = c.ui.dialog.overlay.create(a); - } - }); - c.extend(c.ui.dialog.overlay, { - instances: [], - oldInstances: [], - maxZ: 0, - events: c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function (a) { - return a + ".dialog-overlay"; - }).join(" "), - create: function (a) { - if (this.instances.length === 0) { - setTimeout(function () { - c.ui.dialog.overlay.instances.length && c(document).bind(c.ui.dialog.overlay.events, function (d) { - if (c(d.target).zIndex() < c.ui.dialog.overlay.maxZ) { - return false; - } - }); - }, - 1); - c(document).bind("keydown.dialog-overlay", function (d) { - if (a.options.closeOnEscape && d.keyCode && d.keyCode === c.ui.keyCode.ESCAPE) { - a.close(d); - d.preventDefault(); - } - }); - c(window).bind("resize.dialog-overlay", c.ui.dialog.overlay.resize); - } - var b = (this.oldInstances.pop() || c("
    ").addClass("ui-widget-overlay")).appendTo(document.body).css({ - width: this.width(), - height: this.height() - }); - c.fn.bgiframe && b.bgiframe(); - this.instances.push(b); - return b; - }, - destroy: function (a) { - var b = c.inArray(a, this.instances); - b != -1 && this.oldInstances.push(this.instances.splice(b, 1)[0]); - this.instances.length === 0 && c([document, window]).unbind(".dialog-overlay"); - a.remove(); - var d = 0; - c.each(this.instances, function () { - d = Math.max(d, this.css("z-index")); - }); - this.maxZ = d; - }, - height: function () { - var a, b; - if (c.browser.msie && c.browser.version < 7) { - a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); - b = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight); - return a < b ? c(window).height() + "px" : a + "px"; - } else { - return c(document).height() + "px"; - } - }, - width: function () { - var a, b; - if (c.browser.msie && c.browser.version < 7) { - a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); - b = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); - return a < b ? c(window).width() + "px" : a + "px"; - } else { - return c(document).width() + "px"; - } - }, - resize: function () { - var a = c([]); - c.each(c.ui.dialog.overlay.instances, function () { - a = a.add(this); - }); - a.css({ - width: 0, - height: 0 - }).css({ - width: c.ui.dialog.overlay.width(), - height: c.ui.dialog.overlay.height() - }); - } - }); - c.extend(c.ui.dialog.overlay.prototype, { - destroy: function () { - c.ui.dialog.overlay.destroy(this.$el); - } - }); -})(jQuery); -(function (d) { - d.widget("ui.slider", d.ui.mouse, { - widgetEventPrefix: "slide", - options: { - animate: false, - distance: 0, - max: 100, - min: 0, - orientation: "horizontal", - range: false, - step: 1, - value: 0, - values: null - }, - _create: function () { - var b = this, - a = this.options, - c = this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"), - f = a.values && a.values.length || 1, - e = []; - this._mouseSliding = this._keySliding = false; - this._animateOff = true; - this._handleIndex = null; - this._detectOrientation(); - this._mouseInit(); - this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all" + (a.disabled ? " ui-slider-disabled ui-disabled" : "")); - this.range = d([]); - if (a.range) { - if (a.range === true) { - if (!a.values) { - a.values = [this._valueMin(), this._valueMin()]; - } - if (a.values.length && a.values.length !== 2) { - a.values = [a.values[0], a.values[0]]; - } - } - this.range = d("
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header" + (a.range === "min" || a.range === "max" ? " ui-slider-range-" + a.range : "")); - } - for (var j = c.length; j < f; j += 1) { - e.push(""); - } - this.handles = c.add(d(e.join("")).appendTo(b.element)); - this.handle = this.handles.eq(0); - this.handles.add(this.range).filter("a").click(function (g) { - g.preventDefault(); - }).hover(function () { - a.disabled || d(this).addClass("ui-state-hover"); - }, - function () { - d(this).removeClass("ui-state-hover"); - }).focus(function () { - if (a.disabled) { - d(this).blur(); - } else { - d(".ui-slider .ui-state-focus").removeClass("ui-state-focus"); - d(this).addClass("ui-state-focus"); - } - }).blur(function () { - d(this).removeClass("ui-state-focus"); - }); - this.handles.each(function (g) { - d(this).data("index.ui-slider-handle", g); - }); - this.handles.keydown(function (g) { - var k = true, - l = d(this).data("index.ui-slider-handle"), - i, - h, - m; - if (!b.options.disabled) { - switch (g.keyCode) { - case d.ui.keyCode.HOME: - case d.ui.keyCode.END: - case d.ui.keyCode.PAGE_UP: - case d.ui.keyCode.PAGE_DOWN: - case d.ui.keyCode.UP: - case d.ui.keyCode.RIGHT: - case d.ui.keyCode.DOWN: - case d.ui.keyCode.LEFT: - k = false; - if (!b._keySliding) { - b._keySliding = true; - d(this).addClass("ui-state-active"); - i = b._start(g, l); - if (i === false) { - return; - } - } - break; - } - m = b.options.step; - i = b.options.values && b.options.values.length ? (h = b.values(l)) : (h = b.value()); - switch (g.keyCode) { - case d.ui.keyCode.HOME: - h = b._valueMin(); - break; - case d.ui.keyCode.END: - h = b._valueMax(); - break; - case d.ui.keyCode.PAGE_UP: - h = b._trimAlignValue(i + (b._valueMax() - b._valueMin()) / 5); - break; - case d.ui.keyCode.PAGE_DOWN: - h = b._trimAlignValue(i - (b._valueMax() - b._valueMin()) / 5); - break; - case d.ui.keyCode.UP: - case d.ui.keyCode.RIGHT: - if (i === b._valueMax()) { - return; - } - h = b._trimAlignValue(i + m); - break; - case d.ui.keyCode.DOWN: - case d.ui.keyCode.LEFT: - if (i === b._valueMin()) { - return; - } - h = b._trimAlignValue(i - m); - break; - } - b._slide(g, l, h); - return k; - } - }).keyup(function (g) { - var k = d(this).data("index.ui-slider-handle"); - if (b._keySliding) { - b._keySliding = false; - b._stop(g, k); - b._change(g, k); - d(this).removeClass("ui-state-active"); - } - }); - this._refreshValue(); - this._animateOff = false; - }, - destroy: function () { - this.handles.remove(); - this.range.remove(); - this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); - this._mouseDestroy(); - return this; - }, - _mouseCapture: function (b) { - var a = this.options, - c, f, e, j, g; - if (a.disabled) { - return false; - } - this.elementSize = { - width: this.element.outerWidth(), - height: this.element.outerHeight() - }; - this.elementOffset = this.element.offset(); - c = this._normValueFromMouse({ - x: b.pageX, - y: b.pageY - }); - f = this._valueMax() - this._valueMin() + 1; - j = this; - this.handles.each(function (k) { - var l = Math.abs(c - j.values(k)); - if (f > l) { - f = l; - e = d(this); - g = k; - } - }); - if (a.range === true && this.values(1) === a.min) { - g += 1; - e = d(this.handles[g]); - } - if (this._start(b, g) === false) { - return false; - } - this._mouseSliding = true; - j._handleIndex = g; - e.addClass("ui-state-active").focus(); - a = e.offset(); - this._clickOffset = !d(b.target).parents().andSelf().is(".ui-slider-handle") ? { - left: 0, - top: 0 - } : { - left: b.pageX - a.left - e.width() / 2, - top: b.pageY - a.top - e.height() / 2 - (parseInt(e.css("borderTopWidth"), 10) || 0) - (parseInt(e.css("borderBottomWidth"), 10) || 0) + (parseInt(e.css("marginTop"), 10) || 0) - }; - this.handles.hasClass("ui-state-hover") || this._slide(b, g, c); - return this._animateOff = true; - }, - _mouseStart: function () { - return true; - }, - _mouseDrag: function (b) { - var a = this._normValueFromMouse({ - x: b.pageX, - y: b.pageY - }); - this._slide(b, this._handleIndex, a); - return false; - }, - _mouseStop: function (b) { - this.handles.removeClass("ui-state-active"); - this._mouseSliding = false; - this._stop(b, this._handleIndex); - this._change(b, this._handleIndex); - this._clickOffset = this._handleIndex = null; - return this._animateOff = false; - }, - _detectOrientation: function () { - this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal"; - }, - _normValueFromMouse: function (b) { - var a; - if (this.orientation === "horizontal") { - a = this.elementSize.width; - b = b.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0); - } else { - a = this.elementSize.height; - b = b.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0); - } - a = b / a; - if (a > 1) { - a = 1; - } - if (a < 0) { - a = 0; - } - if (this.orientation === "vertical") { - a = 1 - a; - } - b = this._valueMax() - this._valueMin(); - return this._trimAlignValue(this._valueMin() + a * b); - }, - _start: function (b, a) { - var c = { - handle: this.handles[a], - value: this.value() - }; - if (this.options.values && this.options.values.length) { - c.value = this.values(a); - c.values = this.values(); - } - return this._trigger("start", b, c); - }, - _slide: function (b, a, c) { - var f; - if (this.options.values && this.options.values.length) { - f = this.values(a ? 0 : 1); - if (this.options.values.length === 2 && this.options.range === true && (a === 0 && c > f || a === 1 && c < f)) { - c = f; - } - if (c !== this.values(a)) { - f = this.values(); - f[a] = c; - b = this._trigger("slide", b, { - handle: this.handles[a], - value: c, - values: f - }); - this.values(a ? 0 : 1); - b !== false && this.values(a, c, true); - } - } else { - if (c !== this.value()) { - b = this._trigger("slide", b, { - handle: this.handles[a], - value: c - }); - b !== false && this.value(c); - } - } - }, - _stop: function (b, a) { - var c = { - handle: this.handles[a], - value: this.value() - }; - if (this.options.values && this.options.values.length) { - c.value = this.values(a); - c.values = this.values(); - } - this._trigger("stop", b, c); - }, - _change: function (b, a) { - if (!this._keySliding && !this._mouseSliding) { - var c = { - handle: this.handles[a], - value: this.value() - }; - if (this.options.values && this.options.values.length) { - c.value = this.values(a); - c.values = this.values(); - } - this._trigger("change", b, c); - } - }, - value: function (b) { - if (arguments.length) { - this.options.value = this._trimAlignValue(b); - this._refreshValue(); - this._change(null, 0); - } else { - return this._value(); - } - }, - values: function (b, a) { - var c, f, e; - if (arguments.length > 1) { - this.options.values[b] = this._trimAlignValue(a); - this._refreshValue(); - this._change(null, b); - } else { - if (arguments.length) { - if (d.isArray(arguments[0])) { - c = this.options.values; - f = arguments[0]; - for (e = 0; e < c.length; e += 1) { - c[e] = this._trimAlignValue(f[e]); - this._change(null, e); - } - this._refreshValue(); - } else { - return this.options.values && this.options.values.length ? this._values(b) : this.value(); - } - } else { - return this._values(); - } - } - }, - _setOption: function (b, a) { - var c, f = 0; - if (d.isArray(this.options.values)) { - f = this.options.values.length; - } - d.Widget.prototype._setOption.apply(this, arguments); - switch (b) { - case "disabled": - if (a) { - this.handles.filter(".ui-state-focus").blur(); - this.handles.removeClass("ui-state-hover"); - this.handles.attr("disabled", "disabled"); - this.element.addClass("ui-disabled"); - } else { - this.handles.removeAttr("disabled"); - this.element.removeClass("ui-disabled"); - } - break; - case "orientation": - this._detectOrientation(); - this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation); - this._refreshValue(); - break; - case "value": - this._animateOff = true; - this._refreshValue(); - this._change(null, 0); - this._animateOff = false; - break; - case "values": - this._animateOff = true; - this._refreshValue(); - for (c = 0; c < f; c += 1) { - this._change(null, c); - } - this._animateOff = false; - break; - } - }, - _value: function () { - var b = this.options.value; - return b = this._trimAlignValue(b); - }, - _values: function (b) { - var a, c; - if (arguments.length) { - a = this.options.values[b]; - return a = this._trimAlignValue(a); - } else { - a = this.options.values.slice(); - for (c = 0; c < a.length; c += 1) { - a[c] = this._trimAlignValue(a[c]); - } - return a; - } - }, - _trimAlignValue: function (b) { - if (b <= this._valueMin()) { - return this._valueMin(); - } - if (b >= this._valueMax()) { - return this._valueMax(); - } - var a = this.options.step > 0 ? this.options.step : 1, - c = (b - this._valueMin()) % a; - alignValue = b - c; - if (Math.abs(c) * 2 >= a) { - alignValue += c > 0 ? a : -a; - } - return parseFloat(alignValue.toFixed(5)); - }, - _valueMin: function () { - return this.options.min; - }, - _valueMax: function () { - return this.options.max; - }, - _refreshValue: function () { - var b = this.options.range, - a = this.options, - c = this, - f = !this._animateOff ? a.animate : false, - e, - j = {}, - g, - k, - l, - i; - if (this.options.values && this.options.values.length) { - this.handles.each(function (h) { - e = (c.values(h) - c._valueMin()) / (c._valueMax() - c._valueMin()) * 100; - j[c.orientation === "horizontal" ? "left" : "bottom"] = e + "%"; - d(this).stop(1, 1)[f ? "animate" : "css"](j, a.animate); - if (c.options.range === true) { - if (c.orientation === "horizontal") { - if (h === 0) { - c.range.stop(1, 1)[f ? "animate" : "css"]({ - left: e + "%" - }, - a.animate); - } - if (h === 1) { - c.range[f ? "animate" : "css"]({ - width: e - g + "%" - }, - { - queue: false, - duration: a.animate - }); - } - } else { - if (h === 0) { - c.range.stop(1, 1)[f ? "animate" : "css"]({ - bottom: e + "%" - }, - a.animate); - } - if (h === 1) { - c.range[f ? "animate" : "css"]({ - height: e - g + "%" - }, - { - queue: false, - duration: a.animate - }); - } - } - } - g = e; - }); - } else { - k = this.value(); - l = this._valueMin(); - i = this._valueMax(); - e = i !== l ? (k - l) / (i - l) * 100 : 0; - j[c.orientation === "horizontal" ? "left" : "bottom"] = e + "%"; - this.handle.stop(1, 1)[f ? "animate" : "css"](j, a.animate); - if (b === "min" && this.orientation === "horizontal") { - this.range.stop(1, 1)[f ? "animate" : "css"]({ - width: e + "%" - }, - a.animate); - } - if (b === "max" && this.orientation === "horizontal") { - this.range[f ? "animate" : "css"]({ - width: 100 - e + "%" - }, - { - queue: false, - duration: a.animate - }); - } - if (b === "min" && this.orientation === "vertical") { - this.range.stop(1, 1)[f ? "animate" : "css"]({ - height: e + "%" - }, - a.animate); - } - if (b === "max" && this.orientation === "vertical") { - this.range[f ? "animate" : "css"]({ - height: 100 - e + "%" - }, - { - queue: false, - duration: a.animate - }); - } - } - } - }); - d.extend(d.ui.slider, { - version: "1.8.13" - }); -})(jQuery); -(function (d, p) { - function u() { - return++v; - } - function w() { - return++x; - } - var v = 0, - x = 0; - d.widget("ui.tabs", { - options: { - add: null, - ajaxOptions: null, - cache: false, - cookie: null, - collapsible: false, - disable: null, - disabled: [], - enable: null, - event: "click", - fx: null, - idPrefix: "ui-tabs-", - load: null, - panelTemplate: "
    ", - remove: null, - select: null, - show: null, - spinner: "Loading…", - tabTemplate: "
  • #{label}
  • " - }, - _create: function () { - this._tabify(true); - }, - _setOption: function (b, e) { - if (b == "selected") { - this.options.collapsible && e == this.options.selected || this.select(e); - } else { - this.options[b] = e; - this._tabify(); - } - }, - _tabId: function (b) { - return b.title && b.title.replace(/\s/g, "_").replace(/[^\w\u00c0-\uFFFF-]/g, "") || this.options.idPrefix + u(); - }, - _sanitizeSelector: function (b) { - return b.replace(/:/g, "\\:"); - }, - _cookie: function () { - var b = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + w()); - return d.cookie.apply(null, [b].concat(d.makeArray(arguments))); - }, - _ui: function (b, e) { - return { - tab: b, - panel: e, - index: this.anchors.index(b) - }; - }, - _cleanup: function () { - this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function () { - var b = d(this); - b.html(b.data("label.tabs")).removeData("label.tabs"); - }); - }, - _tabify: function (b) { - function e(g, f) { - g.css("display", ""); ! d.support.opacity && f.opacity && g[0].style.removeAttribute("filter"); - } - var a = this, - c = this.options, - h = /^#.+/; - this.list = this.element.find("ol,ul").eq(0); - this.lis = d(" > li:has(a[href])", this.list); - this.anchors = this.lis.map(function () { - return d("a", this)[0]; - }); - this.panels = d([]); - this.anchors.each(function (g, f) { - var i = d(f).attr("href"), - l = i.split("#")[0], - q; - if (l && (l === location.toString().split("#")[0] || (q = d("base")[0]) && l === q.href)) { - i = f.hash; - f.href = i; - } - if (h.test(i)) { - a.panels = a.panels.add(a.element.find(a._sanitizeSelector(i))); - } else { - if (i && i !== "#") { - d.data(f, "href.tabs", i); - d.data(f, "load.tabs", i.replace(/#.*$/, "")); - i = a._tabId(f); - f.href = "#" + i; - f = a.element.find("#" + i); - if (!f.length) { - f = d(c.panelTemplate).attr("id", i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g - 1] || a.list); - f.data("destroy.tabs", true); - } - a.panels = a.panels.add(f); - } else { - c.disabled.push(g); - } - } - }); - if (b) { - this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); - this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); - this.lis.addClass("ui-state-default ui-corner-top"); - this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"); - if (c.selected === p) { - location.hash && this.anchors.each(function (g, f) { - if (f.hash == location.hash) { - c.selected = g; - return false; - } - }); - if (typeof c.selected !== "number" && c.cookie) { - c.selected = parseInt(a._cookie(), 10); - } - if (typeof c.selected !== "number" && this.lis.filter(".ui-tabs-selected").length) { - c.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")); - } - c.selected = c.selected || (this.lis.length ? 0 : -1); - } else { - if (c.selected === null) { - c.selected = -1; - } - } - c.selected = c.selected >= 0 && this.anchors[c.selected] || c.selected < 0 ? c.selected : 0; - c.disabled = d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"), function (g) { - return a.lis.index(g); - }))).sort(); - d.inArray(c.selected, c.disabled) != -1 && c.disabled.splice(d.inArray(c.selected, c.disabled), 1); - this.panels.addClass("ui-tabs-hide"); - this.lis.removeClass("ui-tabs-selected ui-state-active"); - if (c.selected >= 0 && this.anchors.length) { - a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide"); - this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active"); - a.element.queue("tabs", function () { - a._trigger("show", null, a._ui(a.anchors[c.selected], a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0])); - }); - this.load(c.selected); - } - d(window).bind("unload", function () { - a.lis.add(a.anchors).unbind(".tabs"); - a.lis = a.anchors = a.panels = null; - }); - } else { - c.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")); - } - this.element[c.collapsible ? "addClass" : "removeClass"]("ui-tabs-collapsible"); - c.cookie && this._cookie(c.selected, c.cookie); - b = 0; - for (var j; j = this.lis[b]; b++) { - d(j)[d.inArray(b, c.disabled) != -1 && !d(j).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled"); - } - c.cache === false && this.anchors.removeData("cache.tabs"); - this.lis.add(this.anchors).unbind(".tabs"); - if (c.event !== "mouseover") { - var k = function (g, f) { - f.is(":not(.ui-state-disabled)") && f.addClass("ui-state-" + g); - }, - n = function (g, f) { - f.removeClass("ui-state-" + g); - }; - this.lis.bind("mouseover.tabs", function () { - k("hover", d(this)); - }); - this.lis.bind("mouseout.tabs", function () { - n("hover", d(this)); - }); - this.anchors.bind("focus.tabs", function () { - k("focus", d(this).closest("li")); - }); - this.anchors.bind("blur.tabs", function () { - n("focus", d(this).closest("li")); - }); - } - var m, o; - if (c.fx) { - if (d.isArray(c.fx)) { - m = c.fx[0]; - o = c.fx[1]; - } else { - m = o = c.fx; - } - } - var r = o ? - function (g, f) { - d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); - f.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal", function () { - e(f, o); - a._trigger("show", null, a._ui(g, f[0])); - }); - } : function (g, f) { - d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); - f.removeClass("ui-tabs-hide"); - a._trigger("show", null, a._ui(g, f[0])); - }, - s = m ? - function (g, f) { - f.animate(m, m.duration || "normal", function () { - a.lis.removeClass("ui-tabs-selected ui-state-active"); - f.addClass("ui-tabs-hide"); - e(f, m); - a.element.dequeue("tabs"); - }); - } : function (g, f) { - a.lis.removeClass("ui-tabs-selected ui-state-active"); - f.addClass("ui-tabs-hide"); - a.element.dequeue("tabs"); - }; - this.anchors.bind(c.event + ".tabs", function () { - var g = this, - f = d(g).closest("li"), - i = a.panels.filter(":not(.ui-tabs-hide)"), - l = a.element.find(a._sanitizeSelector(g.hash)); - if (f.hasClass("ui-tabs-selected") && !c.collapsible || f.hasClass("ui-state-disabled") || f.hasClass("ui-state-processing") || a.panels.filter(":animated").length || a._trigger("select", null, a._ui(this, l[0])) === false) { - this.blur(); - return false; - } - c.selected = a.anchors.index(this); - a.abort(); - if (c.collapsible) { - if (f.hasClass("ui-tabs-selected")) { - c.selected = -1; - c.cookie && a._cookie(c.selected, c.cookie); - a.element.queue("tabs", function () { - s(g, i); - }).dequeue("tabs"); - this.blur(); - return false; - } else { - if (!i.length) { - c.cookie && a._cookie(c.selected, c.cookie); - a.element.queue("tabs", function () { - r(g, l); - }); - a.load(a.anchors.index(this)); - this.blur(); - return false; - } - } - } - c.cookie && a._cookie(c.selected, c.cookie); - if (l.length) { - i.length && a.element.queue("tabs", function () { - s(g, i); - }); - a.element.queue("tabs", function () { - r(g, l); - }); - a.load(a.anchors.index(this)); - } else { - throw "jQuery UI Tabs: Mismatching fragment identifier."; - } - d.browser.msie && this.blur(); - }); - this.anchors.bind("click.tabs", function () { - return false; - }); - }, - _getIndex: function (b) { - if (typeof b == "string") { - b = this.anchors.index(this.anchors.filter("[href$=" + b + "]")); - } - return b; - }, - destroy: function () { - var b = this.options; - this.abort(); - this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"); - this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); - this.anchors.each(function () { - var e = d.data(this, "href.tabs"); - if (e) { - this.href = e; - } - var a = d(this).unbind(".tabs"); - d.each(["href", "load", "cache"], function (c, h) { - a.removeData(h + ".tabs"); - }); - }); - this.lis.unbind(".tabs").add(this.panels).each(function () { - d.data(this, "destroy.tabs") ? d(this).remove() : d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); - }); - b.cookie && this._cookie(null, b.cookie); - return this; - }, - add: function (b, e, a) { - if (a === p) { - a = this.anchors.length; - } - var c = this, - h = this.options; - e = d(h.tabTemplate.replace(/#\{href\}/g, b).replace(/#\{label\}/g, e)); - b = !b.indexOf("#") ? b.replace("#", "") : this._tabId(d("a", e)[0]); - e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true); - var j = c.element.find("#" + b); - j.length || (j = d(h.panelTemplate).attr("id", b).data("destroy.tabs", true)); - j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); - if (a >= this.lis.length) { - e.appendTo(this.list); - j.appendTo(this.list[0].parentNode); - } else { - e.insertBefore(this.lis[a]); - j.insertBefore(this.panels[a]); - } - h.disabled = d.map(h.disabled, function (k) { - return k >= a ? ++k : k; - }); - this._tabify(); - if (this.anchors.length == 1) { - h.selected = 0; - e.addClass("ui-tabs-selected ui-state-active"); - j.removeClass("ui-tabs-hide"); - this.element.queue("tabs", function () { - c._trigger("show", null, c._ui(c.anchors[0], c.panels[0])); - }); - this.load(0); - } - this._trigger("add", null, this._ui(this.anchors[a], this.panels[a])); - return this; - }, - remove: function (b) { - b = this._getIndex(b); - var e = this.options, - a = this.lis.eq(b).remove(), - c = this.panels.eq(b).remove(); - if (a.hasClass("ui-tabs-selected") && this.anchors.length > 1) { - this.select(b + (b + 1 < this.anchors.length ? 1 : -1)); - } - e.disabled = d.map(d.grep(e.disabled, function (h) { - return h != b; - }), function (h) { - return h >= b ? --h : h; - }); - this._tabify(); - this._trigger("remove", null, this._ui(a.find("a")[0], c[0])); - return this; - }, - enable: function (b) { - b = this._getIndex(b); - var e = this.options; - if (d.inArray(b, e.disabled) != -1) { - this.lis.eq(b).removeClass("ui-state-disabled"); - e.disabled = d.grep(e.disabled, function (a) { - return a != b; - }); - this._trigger("enable", null, this._ui(this.anchors[b], this.panels[b])); - return this; - } - }, - disable: function (b) { - b = this._getIndex(b); - var e = this.options; - if (b != e.selected) { - this.lis.eq(b).addClass("ui-state-disabled"); - e.disabled.push(b); - e.disabled.sort(); - this._trigger("disable", null, this._ui(this.anchors[b], this.panels[b])); - } - return this; - }, - select: function (b) { - b = this._getIndex(b); - if (b == -1) { - if (this.options.collapsible && this.options.selected != -1) { - b = this.options.selected; - } else { - return this; - } - } - this.anchors.eq(b).trigger(this.options.event + ".tabs"); - return this; - }, - load: function (b) { - b = this._getIndex(b); - var e = this, - a = this.options, - c = this.anchors.eq(b)[0], - h = d.data(c, "load.tabs"); - this.abort(); - if (!h || this.element.queue("tabs").length !== 0 && d.data(c, "cache.tabs")) { - this.element.dequeue("tabs"); - } else { - this.lis.eq(b).addClass("ui-state-processing"); - if (a.spinner) { - var j = d("span", c); - j.data("label.tabs", j.html()).html(a.spinner); - } - this.xhr = d.ajax(d.extend({}, - a.ajaxOptions, { - url: h, - success: function (k, n) { - e.element.find(e._sanitizeSelector(c.hash)).html(k); - e._cleanup(); - a.cache && d.data(c, "cache.tabs", true); - e._trigger("load", null, e._ui(e.anchors[b], e.panels[b])); - try { - a.ajaxOptions.success(k, n); - } catch(m) {} - }, - error: function (k, n) { - e._cleanup(); - e._trigger("load", null, e._ui(e.anchors[b], e.panels[b])); - try { - a.ajaxOptions.error(k, n, b, c); - } catch(m) {} - } - })); - e.element.dequeue("tabs"); - return this; - } - }, - abort: function () { - this.element.queue([]); - this.panels.stop(false, true); - this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2)); - if (this.xhr) { - this.xhr.abort(); - delete this.xhr; - } - this._cleanup(); - return this; - }, - url: function (b, e) { - this.anchors.eq(b).removeData("cache.tabs").data("load.tabs", e); - return this; - }, - length: function () { - return this.anchors.length; - } - }); - d.extend(d.ui.tabs, { - version: "1.8.13" - }); - d.extend(d.ui.tabs.prototype, { - rotation: null, - rotate: function (b, e) { - var a = this, - c = this.options, - h = a._rotate || (a._rotate = function (j) { - clearTimeout(a.rotation); - a.rotation = setTimeout(function () { - var k = c.selected; - a.select(++k < a.anchors.length ? k : 0); - }, - b); - j && j.stopPropagation(); - }); - e = a._unrotate || (a._unrotate = !e ? - function (j) { - j.clientX && a.rotate(null); - } : function () { - t = c.selected; - h(); - }); - if (b) { - this.element.bind("tabsshow", h); - this.anchors.bind(c.event + ".tabs", e); - h(); - } else { - clearTimeout(a.rotation); - this.element.unbind("tabsshow", h); - this.anchors.unbind(c.event + ".tabs", e); - delete this._rotate; - delete this._unrotate; - } - return this; - } - }); -})(jQuery); -(function (d, B) { - function M() { - this.debug = false; - this._curInst = null; - this._keyEvent = false; - this._disabledInputs = []; - this._inDialog = this._datepickerShowing = false; - this._mainDivId = "ui-datepicker-div"; - this._inlineClass = "ui-datepicker-inline"; - this._appendClass = "ui-datepicker-append"; - this._triggerClass = "ui-datepicker-trigger"; - this._dialogClass = "ui-datepicker-dialog"; - this._disableClass = "ui-datepicker-disabled"; - this._unselectableClass = "ui-datepicker-unselectable"; - this._currentClass = "ui-datepicker-current-day"; - this._dayOverClass = "ui-datepicker-days-cell-over"; - this.regional = []; - this.regional[""] = { - closeText: "Done", - prevText: "Prev", - nextText: "Next", - currentText: "Today", - monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], - dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], - dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], - weekHeader: "Wk", - dateFormat: "mm/dd/yy", - firstDay: 0, - isRTL: false, - showMonthAfterYear: false, - yearSuffix: "" - }; - this._defaults = { - showOn: "focus", - showAnim: "fadeIn", - showOptions: {}, - defaultDate: null, - appendText: "", - buttonText: "...", - buttonImage: "", - buttonImageOnly: false, - hideIfNoPrevNext: false, - navigationAsDateFormat: false, - gotoCurrent: false, - changeMonth: false, - changeYear: false, - yearRange: "c-10:c+10", - showOtherMonths: false, - selectOtherMonths: false, - showWeek: false, - calculateWeek: this.iso8601Week, - shortYearCutoff: "+10", - minDate: null, - maxDate: null, - duration: "fast", - beforeShowDay: null, - beforeShow: null, - onSelect: null, - onChangeMonthYear: null, - onClose: null, - numberOfMonths: 1, - showCurrentAtPos: 0, - stepMonths: 1, - stepBigMonths: 12, - altField: "", - altFormat: "", - constrainInput: true, - showButtonPanel: false, - autoSize: false - }; - d.extend(this._defaults, this.regional[""]); - this.dpDiv = N(d('
    ')); - } - function N(a) { - return a.delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", "mouseout", function () { - d(this).removeClass("ui-state-hover"); - this.className.indexOf("ui-datepicker-prev") != -1 && d(this).removeClass("ui-datepicker-prev-hover"); - this.className.indexOf("ui-datepicker-next") != -1 && d(this).removeClass("ui-datepicker-next-hover"); - }).delegate("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a", "mouseover", function () { - if (!d.datepicker._isDisabledDatepicker(J.inline ? a.parent()[0] : J.input[0])) { - d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); - d(this).addClass("ui-state-hover"); - this.className.indexOf("ui-datepicker-prev") != -1 && d(this).addClass("ui-datepicker-prev-hover"); - this.className.indexOf("ui-datepicker-next") != -1 && d(this).addClass("ui-datepicker-next-hover"); - } - }); - } - function H(a, b) { - d.extend(a, b); - for (var c in b) { - if (b[c] == null || b[c] == B) { - a[c] = b[c]; - } - } - return a; - } - d.extend(d.ui, { - datepicker: { - version: "1.8.13" - } - }); - var z = (new Date).getTime(), - J; - d.extend(M.prototype, { - markerClassName: "hasDatepicker", - log: function () { - this.debug && console.log.apply("", arguments); - }, - _widgetDatepicker: function () { - return this.dpDiv; - }, - setDefaults: function (a) { - H(this._defaults, a || {}); - return this; - }, - _attachDatepicker: function (a, b) { - var c = null; - for (var e in this._defaults) { - var f = a.getAttribute("date:" + e); - if (f) { - c = c || {}; - try { - c[e] = eval(f); - } catch(h) { - c[e] = f; - } - } - } - e = a.nodeName.toLowerCase(); - f = e == "div" || e == "span"; - if (!a.id) { - this.uuid += 1; - a.id = "dp" + this.uuid; - } - var i = this._newInst(d(a), f); - i.settings = d.extend({}, - b || {}, - c || {}); - if (e == "input") { - this._connectDatepicker(a, i); - } else { - f && this._inlineDatepicker(a, i); - } - }, - _newInst: function (a, b) { - return { - id: a[0].id.replace(/([^A-Za-z0-9_-])/g, "\\\\$1"), - input: a, - selectedDay: 0, - selectedMonth: 0, - selectedYear: 0, - drawMonth: 0, - drawYear: 0, - inline: b, - dpDiv: !b ? this.dpDiv : N(d('
    ')) - }; - }, - _connectDatepicker: function (a, b) { - var c = d(a); - b.append = d([]); - b.trigger = d([]); - if (!c.hasClass(this.markerClassName)) { - this._attachments(c, b); - c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function (e, f, h) { - b.settings[f] = h; - }).bind("getData.datepicker", function (e, f) { - return this._get(b, f); - }); - this._autoSize(b); - d.data(a, "datepicker", b); - } - }, - _attachments: function (a, b) { - var c = this._get(b, "appendText"), - e = this._get(b, "isRTL"); - b.append && b.append.remove(); - if (c) { - b.append = d('' + c + ""); - a[e ? "before" : "after"](b.append); - } - a.unbind("focus", this._showDatepicker); - b.trigger && b.trigger.remove(); - c = this._get(b, "showOn"); - if (c == "focus" || c == "both") { - a.focus(this._showDatepicker); - } - if (c == "button" || c == "both") { - c = this._get(b, "buttonText"); - var f = this._get(b, "buttonImage"); - b.trigger = d(this._get(b, "buttonImageOnly") ? d("").addClass(this._triggerClass).attr({ - src: f, - alt: c, - title: c - }) : d('').addClass(this._triggerClass).html(f == "" ? c : d("").attr({ - src: f, - alt: c, - title: c - }))); - a[e ? "before" : "after"](b.trigger); - b.trigger.click(function () { - d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]); - return false; - }); - } - }, - _autoSize: function (a) { - if (this._get(a, "autoSize") && !a.inline) { - var b = new Date(2009, 11, 20), - c = this._get(a, "dateFormat"); - if (c.match(/[DM]/)) { - var e = function (f) { - for (var h = 0, i = 0, g = 0; g < f.length; g++) { - if (f[g].length > h) { - h = f[g].length; - i = g; - } - } - return i; - }; - b.setMonth(e(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort"))); - b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay()); - } - a.input.attr("size", this._formatDate(a, b).length); - } - }, - _inlineDatepicker: function (a, b) { - var c = d(a); - if (!c.hasClass(this.markerClassName)) { - c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function (e, f, h) { - b.settings[f] = h; - }).bind("getData.datepicker", function (e, f) { - return this._get(b, f); - }); - d.data(a, "datepicker", b); - this._setDate(b, this._getDefaultDate(b), true); - this._updateDatepicker(b); - this._updateAlternate(b); - b.dpDiv.show(); - } - }, - _dialogDatepicker: function (a, b, c, e, f) { - a = this._dialogInst; - if (!a) { - this.uuid += 1; - this._dialogInput = d(''); - this._dialogInput.keydown(this._doKeyDown); - d("body").append(this._dialogInput); - a = this._dialogInst = this._newInst(this._dialogInput, false); - a.settings = {}; - d.data(this._dialogInput[0], "datepicker", a); - } - H(a.settings, e || {}); - b = b && b.constructor == Date ? this._formatDate(a, b) : b; - this._dialogInput.val(b); - this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null; - if (!this._pos) { - this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)]; - } - this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"); - a.settings.onSelect = c; - this._inDialog = true; - this.dpDiv.addClass(this._dialogClass); - this._showDatepicker(this._dialogInput[0]); - d.blockUI && d.blockUI(this.dpDiv); - d.data(this._dialogInput[0], "datepicker", a); - return this; - }, - _destroyDatepicker: function (a) { - var b = d(a), - c = d.data(a, "datepicker"); - if (b.hasClass(this.markerClassName)) { - var e = a.nodeName.toLowerCase(); - d.removeData(a, "datepicker"); - if (e == "input") { - c.append.remove(); - c.trigger.remove(); - b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp); - } else { - if (e == "div" || e == "span") { - b.removeClass(this.markerClassName).empty(); - } - } - } - }, - _enableDatepicker: function (a) { - var b = d(a), - c = d.data(a, "datepicker"); - if (b.hasClass(this.markerClassName)) { - var e = a.nodeName.toLowerCase(); - if (e == "input") { - a.disabled = false; - c.trigger.filter("button").each(function () { - this.disabled = false; - }).end().filter("img").css({ - opacity: "1.0", - cursor: "" - }); - } else { - if (e == "div" || e == "span") { - b = b.children("." + this._inlineClass); - b.children().removeClass("ui-state-disabled"); - b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled"); - } - } - this._disabledInputs = d.map(this._disabledInputs, function (f) { - return f == a ? null : f; - }); - } - }, - _disableDatepicker: function (a) { - var b = d(a), - c = d.data(a, "datepicker"); - if (b.hasClass(this.markerClassName)) { - var e = a.nodeName.toLowerCase(); - if (e == "input") { - a.disabled = true; - c.trigger.filter("button").each(function () { - this.disabled = true; - }).end().filter("img").css({ - opacity: "0.5", - cursor: "default" - }); - } else { - if (e == "div" || e == "span") { - b = b.children("." + this._inlineClass); - b.children().addClass("ui-state-disabled"); - b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled", "disabled"); - } - } - this._disabledInputs = d.map(this._disabledInputs, function (f) { - return f == a ? null : f; - }); - this._disabledInputs[this._disabledInputs.length] = a; - } - }, - _isDisabledDatepicker: function (a) { - if (!a) { - return false; - } - for (var b = 0; b < this._disabledInputs.length; b++) { - if (this._disabledInputs[b] == a) { - return true; - } - } - return false; - }, - _getInst: function (a) { - try { - return d.data(a, "datepicker"); - } catch(b) { - throw "Missing instance data for this datepicker"; - } - }, - _optionDatepicker: function (a, b, c) { - var e = this._getInst(a); - if (arguments.length == 2 && typeof b == "string") { - return b == "defaults" ? d.extend({}, - d.datepicker._defaults) : e ? b == "all" ? d.extend({}, - e.settings) : this._get(e, b) : null; - } - var f = b || {}; - if (typeof b == "string") { - f = {}; - f[b] = c; - } - if (e) { - this._curInst == e && this._hideDatepicker(); - var h = this._getDateDatepicker(a, true), - i = this._getMinMaxDate(e, "min"), - g = this._getMinMaxDate(e, "max"); - H(e.settings, f); - if (i !== null && f.dateFormat !== B && f.minDate === B) { - e.settings.minDate = this._formatDate(e, i); - } - if (g !== null && f.dateFormat !== B && f.maxDate === B) { - e.settings.maxDate = this._formatDate(e, g); - } - this._attachments(d(a), e); - this._autoSize(e); - this._setDate(e, h); - this._updateAlternate(e); - this._updateDatepicker(e); - } - }, - _changeDatepicker: function (a, b, c) { - this._optionDatepicker(a, b, c); - }, - _refreshDatepicker: function (a) { - (a = this._getInst(a)) && this._updateDatepicker(a); - }, - _setDateDatepicker: function (a, b) { - if (a = this._getInst(a)) { - this._setDate(a, b); - this._updateDatepicker(a); - this._updateAlternate(a); - } - }, - _getDateDatepicker: function (a, b) { - (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, b); - return a ? this._getDate(a) : null; - }, - _doKeyDown: function (a) { - var b = d.datepicker._getInst(a.target), - c = true, - e = b.dpDiv.is(".ui-datepicker-rtl"); - b._keyEvent = true; - if (d.datepicker._datepickerShowing) { - switch (a.keyCode) { - case 9: - d.datepicker._hideDatepicker(); - c = false; - break; - case 13: - c = d("td." + d.datepicker._dayOverClass + ":not(." + d.datepicker._currentClass + ")", b.dpDiv); - c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker(); - return false; - case 27: - d.datepicker._hideDatepicker(); - break; - case 33: - d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); - break; - case 34: - d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); - break; - case 35: - if (a.ctrlKey || a.metaKey) { - d.datepicker._clearDate(a.target); - } - c = a.ctrlKey || a.metaKey; - break; - case 36: - if (a.ctrlKey || a.metaKey) { - d.datepicker._gotoToday(a.target); - } - c = a.ctrlKey || a.metaKey; - break; - case 37: - if (a.ctrlKey || a.metaKey) { - d.datepicker._adjustDate(a.target, e ? +1 : -1, "D"); - } - c = a.ctrlKey || a.metaKey; - if (a.originalEvent.altKey) { - d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); - } - break; - case 38: - if (a.ctrlKey || a.metaKey) { - d.datepicker._adjustDate(a.target, -7, "D"); - } - c = a.ctrlKey || a.metaKey; - break; - case 39: - if (a.ctrlKey || a.metaKey) { - d.datepicker._adjustDate(a.target, e ? -1 : +1, "D"); - } - c = a.ctrlKey || a.metaKey; - if (a.originalEvent.altKey) { - d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); - } - break; - case 40: - if (a.ctrlKey || a.metaKey) { - d.datepicker._adjustDate(a.target, +7, "D"); - } - c = a.ctrlKey || a.metaKey; - break; - default: - c = false; - } - } else { - if (a.keyCode == 36 && a.ctrlKey) { - d.datepicker._showDatepicker(this); - } else { - c = false; - } - } - if (c) { - a.preventDefault(); - a.stopPropagation(); - } - }, - _doKeyPress: function (a) { - var b = d.datepicker._getInst(a.target); - if (d.datepicker._get(b, "constrainInput")) { - b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat")); - var c = String.fromCharCode(a.charCode == B ? a.keyCode : a.charCode); - return a.ctrlKey || a.metaKey || c < " " || !b || b.indexOf(c) > -1; - } - }, - _doKeyUp: function (a) { - a = d.datepicker._getInst(a.target); - if (a.input.val() != a.lastVal) { - try { - if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) { - d.datepicker._setDateFromField(a); - d.datepicker._updateAlternate(a); - d.datepicker._updateDatepicker(a); - } - } catch(b) { - d.datepicker.log(b); - } - } - return true; - }, - _showDatepicker: function (a) { - a = a.target || a; - if (a.nodeName.toLowerCase() != "input") { - a = d("input", a.parentNode)[0]; - } - if (! (d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) { - var b = d.datepicker._getInst(a); - d.datepicker._curInst && d.datepicker._curInst != b && d.datepicker._curInst.dpDiv.stop(true, true); - var c = d.datepicker._get(b, "beforeShow"); - H(b.settings, c ? c.apply(a, [a, b]) : {}); - b.lastVal = null; - d.datepicker._lastInput = a; - d.datepicker._setDateFromField(b); - if (d.datepicker._inDialog) { - a.value = ""; - } - if (!d.datepicker._pos) { - d.datepicker._pos = d.datepicker._findPos(a); - d.datepicker._pos[1] += a.offsetHeight; - } - var e = false; - d(a).parents().each(function () { - e |= d(this).css("position") == "fixed"; - return !e; - }); - if (e && d.browser.opera) { - d.datepicker._pos[0] -= document.documentElement.scrollLeft; - d.datepicker._pos[1] -= document.documentElement.scrollTop; - } - c = { - left: d.datepicker._pos[0], - top: d.datepicker._pos[1] - }; - d.datepicker._pos = null; - b.dpDiv.empty(); - b.dpDiv.css({ - position: "absolute", - display: "block", - top: "-1000px" - }); - d.datepicker._updateDatepicker(b); - c = d.datepicker._checkOffset(b, c, e); - b.dpDiv.css({ - position: d.datepicker._inDialog && d.blockUI ? "static" : e ? "fixed" : "absolute", - display: "none", - left: c.left + "px", - top: c.top + "px" - }); - if (!b.inline) { - c = d.datepicker._get(b, "showAnim"); - var f = d.datepicker._get(b, "duration"), - h = function () { - var i = b.dpDiv.find("iframe.ui-datepicker-cover"); - if (i.length) { - var g = d.datepicker._getBorders(b.dpDiv); - i.css({ - left: -g[0], - top: -g[1], - width: b.dpDiv.outerWidth(), - height: b.dpDiv.outerHeight() - }); - } - }; - b.dpDiv.zIndex(d(a).zIndex() + 1); - d.datepicker._datepickerShowing = true; - d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f, h) : b.dpDiv[c || "show"](c ? f : null, h); - if (!c || !f) { - h(); - } - b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus(); - d.datepicker._curInst = b; - } - } - }, - _updateDatepicker: function (a) { - var b = d.datepicker._getBorders(a.dpDiv); - J = a; - a.dpDiv.empty().append(this._generateHTML(a)); - var c = a.dpDiv.find("iframe.ui-datepicker-cover"); - c.length && c.css({ - left: -b[0], - top: -b[1], - width: a.dpDiv.outerWidth(), - height: a.dpDiv.outerHeight() - }); - a.dpDiv.find("." + this._dayOverClass + " a").mouseover(); - b = this._getNumberOfMonths(a); - c = b[1]; - a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); - c > 1 && a.dpDiv.addClass("ui-datepicker-multi-" + c).css("width", 17 * c + "em"); - a.dpDiv[(b[0] != 1 || b[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); - a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); - a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus(); - if (a.yearshtml) { - var e = a.yearshtml; - setTimeout(function () { - e === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml); - e = a.yearshtml = null; - }, - 0); - } - }, - _getBorders: function (a) { - var b = function (c) { - return { - thin: 1, - medium: 2, - thick: 3 - } [c] || c; - }; - return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))]; - }, - _checkOffset: function (a, b, c) { - var e = a.dpDiv.outerWidth(), - f = a.dpDiv.outerHeight(), - h = a.input ? a.input.outerWidth() : 0, - i = a.input ? a.input.outerHeight() : 0, - g = document.documentElement.clientWidth + d(document).scrollLeft(), - j = document.documentElement.clientHeight + d(document).scrollTop(); - b.left -= this._get(a, "isRTL") ? e - h : 0; - b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0; - b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0; - b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0); - b.top -= Math.min(b.top, b.top + f > j && j > f ? Math.abs(f + i) : 0); - return b; - }, - _findPos: function (a) { - for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1 || d.expr.filters.hidden(a));) { - a = a[b ? "previousSibling" : "nextSibling"]; - } - a = d(a).offset(); - return [a.left, a.top]; - }, - _hideDatepicker: function (a) { - var b = this._curInst; - if (! (!b || a && b != d.data(a, "datepicker"))) { - if (this._datepickerShowing) { - a = this._get(b, "showAnim"); - var c = this._get(b, "duration"), - e = function () { - d.datepicker._tidyDialog(b); - this._curInst = null; - }; - d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e); - a || e(); - if (a = this._get(b, "onClose")) { - a.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() : "", b]); - } - this._datepickerShowing = false; - this._lastInput = null; - if (this._inDialog) { - this._dialogInput.css({ - position: "absolute", - left: "0", - top: "-100px" - }); - if (d.blockUI) { - d.unblockUI(); - d("body").append(this.dpDiv); - } - } - this._inDialog = false; - } - } - }, - _tidyDialog: function (a) { - a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); - }, - _checkExternalClick: function (a) { - if (d.datepicker._curInst) { - a = d(a.target); - a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) && !a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker(); - } - }, - _adjustDate: function (a, b, c) { - a = d(a); - var e = this._getInst(a[0]); - if (!this._isDisabledDatepicker(a[0])) { - this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c); - this._updateDatepicker(e); - } - }, - _gotoToday: function (a) { - a = d(a); - var b = this._getInst(a[0]); - if (this._get(b, "gotoCurrent") && b.currentDay) { - b.selectedDay = b.currentDay; - b.drawMonth = b.selectedMonth = b.currentMonth; - b.drawYear = b.selectedYear = b.currentYear; - } else { - var c = new Date; - b.selectedDay = c.getDate(); - b.drawMonth = b.selectedMonth = c.getMonth(); - b.drawYear = b.selectedYear = c.getFullYear(); - } - this._notifyChange(b); - this._adjustDate(a); - }, - _selectMonthYear: function (a, b, c) { - a = d(a); - var e = this._getInst(a[0]); - e._selectingMonthYear = false; - e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10); - this._notifyChange(e); - this._adjustDate(a); - }, - _clickMonthYear: function (a) { - var b = this._getInst(d(a)[0]); - b.input && b._selectingMonthYear && setTimeout(function () { - b.input.focus(); - }, - 0); - b._selectingMonthYear = !b._selectingMonthYear; - }, - _selectDay: function (a, b, c, e) { - var f = d(a); - if (! (d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) { - f = this._getInst(f[0]); - f.selectedDay = f.currentDay = d("a", e).html(); - f.selectedMonth = f.currentMonth = b; - f.selectedYear = f.currentYear = c; - this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear)); - } - }, - _clearDate: function (a) { - a = d(a); - this._getInst(a[0]); - this._selectDate(a, ""); - }, - _selectDate: function (a, b) { - a = this._getInst(d(a)[0]); - b = b != null ? b : this._formatDate(a); - a.input && a.input.val(b); - this._updateAlternate(a); - var c = this._get(a, "onSelect"); - if (c) { - c.apply(a.input ? a.input[0] : null, [b, a]); - } else { - a.input && a.input.trigger("change"); - } - if (a.inline) { - this._updateDatepicker(a); - } else { - this._hideDatepicker(); - this._lastInput = a.input[0]; - typeof a.input[0] != "object" && a.input.focus(); - this._lastInput = null; - } - }, - _updateAlternate: function (a) { - var b = this._get(a, "altField"); - if (b) { - var c = this._get(a, "altFormat") || this._get(a, "dateFormat"), - e = this._getDate(a), - f = this.formatDate(c, e, this._getFormatConfig(a)); - d(b).each(function () { - d(this).val(f); - }); - } - }, - noWeekends: function (a) { - a = a.getDay(); - return [a > 0 && a < 6, ""]; - }, - iso8601Week: function (a) { - a = new Date(a.getTime()); - a.setDate(a.getDate() + 4 - (a.getDay() || 7)); - var b = a.getTime(); - a.setMonth(0); - a.setDate(1); - return Math.floor(Math.round((b - a) / 86400000) / 7) + 1; - }, - parseDate: function (a, b, c) { - if (a == null || b == null) { - throw "Invalid arguments"; - } - b = typeof b == "object" ? b.toString() : b + ""; - if (b == "") { - return null; - } - var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff; - e = typeof e != "string" ? e : (new Date).getFullYear() % 100 + parseInt(e, 10); - for (var f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, j = c = -1, l = -1, u = -1, k = false, o = function (p) { - (p = A + 1 < a.length && a.charAt(A + 1) == p) && A++; - return p; - }, - m = function (p) { - var C = o(p); - p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" && C ? 4 : p == "o" ? 3 : 2) + "}"); - p = b.substring(s).match(p); - if (!p) { - throw "Missing number at position " + s; - } - s += p[0].length; - return parseInt(p[0], 10); - }, - n = function (p, C, K) { - p = d.map(o(p) ? K : C, function (w, x) { - return [[x, w]]; - }).sort(function (w, x) { - return - (w[1].length - x[1].length); - }); - var E = -1; - d.each(p, function (w, x) { - w = x[1]; - if (b.substr(s, w.length).toLowerCase() == w.toLowerCase()) { - E = x[0]; - s += w.length; - return false; - } - }); - if (E != -1) { - return E + 1; - } else { - throw "Unknown name at position " + s; - } - }, - r = function () { - if (b.charAt(s) != a.charAt(A)) { - throw "Unexpected literal at position " + s; - } - s++; - }, - s = 0, A = 0; A < a.length; A++) { - if (k) { - if (a.charAt(A) == "'" && !o("'")) { - k = false; - } else { - r(); - } - } else { - switch (a.charAt(A)) { - case "d": - l = m("d"); - break; - case "D": - n("D", f, h); - break; - case "o": - u = m("o"); - break; - case "m": - j = m("m"); - break; - case "M": - j = n("M", i, g); - break; - case "y": - c = m("y"); - break; - case "@": - var v = new Date(m("@")); - c = v.getFullYear(); - j = v.getMonth() + 1; - l = v.getDate(); - break; - case "!": - v = new Date((m("!") - this._ticksTo1970) / 10000); - c = v.getFullYear(); - j = v.getMonth() + 1; - l = v.getDate(); - break; - case "'": - if (o("'")) { - r(); - } else { - k = true; - } - break; - default: - r(); - } - } - } - if (c == -1) { - c = (new Date).getFullYear(); - } else { - if (c < 100) { - c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100); - } - } - if (u > -1) { - j = 1; - l = u; - do { - e = this._getDaysInMonth(c, j - 1); - if (l <= e) { - break; - } - j++; - l -= e; - } while (1); - } - v = this._daylightSavingAdjust(new Date(c, j - 1, l)); - if (v.getFullYear() != c || v.getMonth() + 1 != j || v.getDate() != l) { - throw "Invalid date"; - } - return v; - }, - ATOM: "yy-mm-dd", - COOKIE: "D, dd M yy", - ISO_8601: "yy-mm-dd", - RFC_822: "D, d M y", - RFC_850: "DD, dd-M-y", - RFC_1036: "D, d M y", - RFC_1123: "D, d M yy", - RFC_2822: "D, d M yy", - RSS: "D, d M y", - TICKS: "!", - TIMESTAMP: "@", - W3C: "yy-mm-dd", - _ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 10000000, - formatDate: function (a, b, c) { - if (!b) { - return ""; - } - var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, - f = (c ? c.dayNames : null) || this._defaults.dayNames, - h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort; - c = (c ? c.monthNames : null) || this._defaults.monthNames; - var i = function (o) { - (o = k + 1 < a.length && a.charAt(k + 1) == o) && k++; - return o; - }, - g = function (o, m, n) { - m = "" + m; - if (i(o)) { - for (; m.length < n;) { - m = "0" + m; - } - } - return m; - }, - j = function (o, m, n, r) { - return i(o) ? r[m] : n[m]; - }, - l = "", - u = false; - if (b) { - for (var k = 0; k < a.length; k++) { - if (u) { - if (a.charAt(k) == "'" && !i("'")) { - u = false; - } else { - l += a.charAt(k); - } - } else { - switch (a.charAt(k)) { - case "d": - l += g("d", b.getDate(), 2); - break; - case "D": - l += j("D", b.getDay(), e, f); - break; - case "o": - l += g("o", (b.getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 86400000, 3); - break; - case "m": - l += g("m", b.getMonth() + 1, 2); - break; - case "M": - l += j("M", b.getMonth(), h, c); - break; - case "y": - l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100; - break; - case "@": - l += b.getTime(); - break; - case "!": - l += b.getTime() * 10000 + this._ticksTo1970; - break; - case "'": - if (i("'")) { - l += "'"; - } else { - u = true; - } - break; - default: - l += a.charAt(k); - } - } - } - } - return l; - }, - _possibleChars: function (a) { - for (var b = "", c = false, e = function (h) { - (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++; - return h; - }, - f = 0; f < a.length; f++) { - if (c) { - if (a.charAt(f) == "'" && !e("'")) { - c = false; - } else { - b += a.charAt(f); - } - } else { - switch (a.charAt(f)) { - case "d": - case "m": - case "y": - case "@": - b += "0123456789"; - break; - case "D": - case "M": - return null; - case "'": - if (e("'")) { - b += "'"; - } else { - c = true; - } - break; - default: - b += a.charAt(f); - } - } - } - return b; - }, - _get: function (a, b) { - return a.settings[b] !== B ? a.settings[b] : this._defaults[b]; - }, - _setDateFromField: function (a, b) { - if (a.input.val() != a.lastVal) { - var c = this._get(a, "dateFormat"), - e = a.lastVal = a.input ? a.input.val() : null, - f, - h; - f = h = this._getDefaultDate(a); - var i = this._getFormatConfig(a); - try { - f = this.parseDate(c, e, i) || h; - } catch(g) { - this.log(g); - e = b ? "" : e; - } - a.selectedDay = f.getDate(); - a.drawMonth = a.selectedMonth = f.getMonth(); - a.drawYear = a.selectedYear = f.getFullYear(); - a.currentDay = e ? f.getDate() : 0; - a.currentMonth = e ? f.getMonth() : 0; - a.currentYear = e ? f.getFullYear() : 0; - this._adjustInstDate(a); - } - }, - _getDefaultDate: function (a) { - return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)); - }, - _determineDate: function (a, b, c) { - var e = function (h) { - var i = new Date; - i.setDate(i.getDate() + h); - return i; - }, - f = function (h) { - try { - return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a)); - } catch(i) {} - var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, - j = g.getFullYear(), - l = g.getMonth(); - g = g.getDate(); - for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, k = u.exec(h); k;) { - switch (k[2] || "d") { - case "d": - case "D": - g += parseInt(k[1], 10); - break; - case "w": - case "W": - g += parseInt(k[1], 10) * 7; - break; - case "m": - case "M": - l += parseInt(k[1], 10); - g = Math.min(g, d.datepicker._getDaysInMonth(j, l)); - break; - case "y": - case "Y": - j += parseInt(k[1], 10); - g = Math.min(g, d.datepicker._getDaysInMonth(j, l)); - break; - } - k = u.exec(h); - } - return new Date(j, l, g); - }; - if (b = (b = b == null || b === "" ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : new Date(b.getTime())) && b.toString() == "Invalid Date" ? c : b) { - b.setHours(0); - b.setMinutes(0); - b.setSeconds(0); - b.setMilliseconds(0); - } - return this._daylightSavingAdjust(b); - }, - _daylightSavingAdjust: function (a) { - if (!a) { - return null; - } - a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0); - return a; - }, - _setDate: function (a, b, c) { - var e = !b, - f = a.selectedMonth, - h = a.selectedYear; - b = this._restrictMinMax(a, this._determineDate(a, b, new Date)); - a.selectedDay = a.currentDay = b.getDate(); - a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth(); - a.drawYear = a.selectedYear = a.currentYear = b.getFullYear(); - if ((f != a.selectedMonth || h != a.selectedYear) && !c) { - this._notifyChange(a); - } - this._adjustInstDate(a); - if (a.input) { - a.input.val(e ? "" : this._formatDate(a)); - } - }, - _getDate: function (a) { - return !a.currentYear || a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); - }, - _generateHTML: function (a) { - var b = new Date; - b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate())); - var c = this._get(a, "isRTL"), - e = this._get(a, "showButtonPanel"), - f = this._get(a, "hideIfNoPrevNext"), - h = this._get(a, "navigationAsDateFormat"), - i = this._getNumberOfMonths(a), - g = this._get(a, "showCurrentAtPos"), - j = this._get(a, "stepMonths"), - l = i[0] != 1 || i[1] != 1, - u = this._daylightSavingAdjust(!a.currentDay ? new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), - k = this._getMinMaxDate(a, "min"), - o = this._getMinMaxDate(a, "max"); - g = a.drawMonth - g; - var m = a.drawYear; - if (g < 0) { - g += 12; - m--; - } - if (o) { - var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate())); - for (n = k && n < k ? k : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n;) { - g--; - if (g < 0) { - g = 11; - m--; - } - } - } - a.drawMonth = g; - a.drawYear = m; - n = this._get(a, "prevText"); - n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - j, 1)), this._getFormatConfig(a)); - n = this._canAdjustMonth(a, -1, m, g) ? '' + n + "" : f ? "" : '' + n + ""; - var r = this._get(a, "nextText"); - r = !h ? r : this.formatDate(r, this._daylightSavingAdjust(new Date(m, g + j, 1)), this._getFormatConfig(a)); - f = this._canAdjustMonth(a, +1, m, g) ? '' + r + "" : f ? "" : '' + r + ""; - j = this._get(a, "currentText"); - r = this._get(a, "gotoCurrent") && a.currentDay ? u : b; - j = !h ? j : this.formatDate(j, r, this._getFormatConfig(a)); - h = !a.inline ? '" : ""; - e = e ? '
    ' + (c ? h : "") + (this._isInRange(a, r) ? '" : "") + (c ? "" : h) + "
    " : ""; - h = parseInt(this._get(a, "firstDay"), 10); - h = isNaN(h) ? 0 : h; - j = this._get(a, "showWeek"); - r = this._get(a, "dayNames"); - this._get(a, "dayNamesShort"); - var s = this._get(a, "dayNamesMin"), - A = this._get(a, "monthNames"), - v = this._get(a, "monthNamesShort"), - p = this._get(a, "beforeShowDay"), - C = this._get(a, "showOtherMonths"), - K = this._get(a, "selectOtherMonths"); - this._get(a, "calculateWeek"); - for (var E = this._getDefaultDate(a), w = "", x = 0; x < i[0]; x++) { - for (var O = "", G = 0; G < i[1]; G++) { - var P = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)), - t = " ui-corner-all", - y = ""; - if (l) { - y += '
    ' + (/all|left/.test(t) && x == 0 ? c ? f : n : "") + (/all|right/.test(t) && x == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, k, o, x > 0 || G > 0, A, v) + '
    '; - var D = j ? '" : ""; - for (t = 0; t < 7; t++) { - var q = (t + h) % 7; - D += "= 5 ? ' class="ui-datepicker-week-end"' : "") + '>' + s[q] + ""; - } - y += D + ""; - D = this._getDaysInMonth(m, g); - if (m == a.selectedYear && g == a.selectedMonth) { - a.selectedDay = Math.min(a.selectedDay, D); - } - t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7; - D = l ? 6 : Math.ceil((t + D) / 7); - q = this._daylightSavingAdjust(new Date(m, g, 1 - t)); - for (var Q = 0; Q < D; Q++) { - y += ""; - var R = !j ? "" : '"; - for (t = 0; t < 7; t++) { - var I = p ? p.apply(a.input ? a.input[0] : null, [q]) : [true, ""], - F = q.getMonth() != g, - L = F && !K || !I[0] || k && q < k || o && q > o; - R += '"; - q.setDate(q.getDate() + 1); - q = this._daylightSavingAdjust(q); - } - y += R + ""; - } - g++; - if (g > 11) { - g = 0; - m++; - } - y += "
    ' + this._get(a, "weekHeader") + "
    ' + this._get(a, "calculateWeek")(q) + "" + (F && !C ? " " : L ? '' + q.getDate() + "" : '' + q.getDate() + "") + "
    " + (l ? "" + (i[0] > 0 && G == i[1] - 1 ? '
    ' : "") : ""); - O += y; - } - w += O; - } - w += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '': ""); - a._keyEvent = false; - return w; - }, - _generateMonthYearHeader: function (a, b, c, e, f, h, i, g) { - var j = this._get(a, "changeMonth"), - l = this._get(a, "changeYear"), - u = this._get(a, "showMonthAfterYear"), - k = '
    ', - o = ""; - if (h || !j) { - o += '' + i[b] + ""; - } else { - i = e && e.getFullYear() == c; - var m = f && f.getFullYear() == c; - o += '"; - } - u || (k += o + (h || !(j && l) ? " " : "")); - if (!a.yearshtml) { - a.yearshtml = ""; - if (h || !l) { - k += '' + c + ""; - } else { - g = this._get(a, "yearRange").split(":"); - var r = (new Date).getFullYear(); - i = function (s) { - s = s.match(/c[+-].*/) ? c + parseInt(s.substring(1), 10) : s.match(/[+-].*/) ? r + parseInt(s, 10) : parseInt(s, 10); - return isNaN(s) ? r : s; - }; - b = i(g[0]); - g = Math.max(b, i(g[1] || "")); - b = e ? Math.max(b, e.getFullYear()) : b; - g = f ? Math.min(g, f.getFullYear()) : g; - for (a.yearshtml += '"; - k += a.yearshtml; - a.yearshtml = null; - } - } - k += this._get(a, "yearSuffix"); - if (u) { - k += (h || !(j && l) ? " " : "") + o; - } - k += "
    "; - return k; - }, - _adjustInstDate: function (a, b, c) { - var e = a.drawYear + (c == "Y" ? b : 0), - f = a.drawMonth + (c == "M" ? b : 0); - b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0); - e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b))); - a.selectedDay = e.getDate(); - a.drawMonth = a.selectedMonth = e.getMonth(); - a.drawYear = a.selectedYear = e.getFullYear(); - if (c == "M" || c == "Y") { - this._notifyChange(a); - } - }, - _restrictMinMax: function (a, b) { - var c = this._getMinMaxDate(a, "min"); - a = this._getMinMaxDate(a, "max"); - b = c && b < c ? c : b; - return b = a && b > a ? a : b; - }, - _notifyChange: function (a) { - var b = this._get(a, "onChangeMonthYear"); - if (b) { - b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a]); - } - }, - _getNumberOfMonths: function (a) { - a = this._get(a, "numberOfMonths"); - return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a; - }, - _getMinMaxDate: function (a, b) { - return this._determineDate(a, this._get(a, b + "Date"), null); - }, - _getDaysInMonth: function (a, b) { - return 32 - this._daylightSavingAdjust(new Date(a, b, 32)).getDate(); - }, - _getFirstDayOfMonth: function (a, b) { - return (new Date(a, b, 1)).getDay(); - }, - _canAdjustMonth: function (a, b, c, e) { - var f = this._getNumberOfMonths(a); - c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1)); - b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())); - return this._isInRange(a, c); - }, - _isInRange: function (a, b) { - var c = this._getMinMaxDate(a, "min"); - a = this._getMinMaxDate(a, "max"); - return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime()); - }, - _getFormatConfig: function (a) { - var b = this._get(a, "shortYearCutoff"); - b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10); - return { - shortYearCutoff: b, - dayNamesShort: this._get(a, "dayNamesShort"), - dayNames: this._get(a, "dayNames"), - monthNamesShort: this._get(a, "monthNamesShort"), - monthNames: this._get(a, "monthNames") - }; - }, - _formatDate: function (a, b, c, e) { - if (!b) { - a.currentDay = a.selectedDay; - a.currentMonth = a.selectedMonth; - a.currentYear = a.selectedYear; - } - b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); - return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a)); - } - }); - d.fn.datepicker = function (a) { - if (!this.length) { - return this; - } - if (!d.datepicker.initialized) { - d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv); - d.datepicker.initialized = true; - } - var b = Array.prototype.slice.call(arguments, 1); - if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) { - return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); - } - if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") { - return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); - } - return this.each(function () { - typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a); - }); - }; - d.datepicker = new M; - d.datepicker.initialized = false; - d.datepicker.uuid = (new Date).getTime(); - d.datepicker.version = "1.8.13"; - window["DP_jQuery_" + z] = d; -})(jQuery); -(function (b, d) { - b.widget("ui.progressbar", { - options: { - value: 0, - max: 100 - }, - min: 0, - _create: function () { - this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ - role: "progressbar", - "aria-valuemin": this.min, - "aria-valuemax": this.options.max, - "aria-valuenow": this._value() - }); - this.valueDiv = b("
    ").appendTo(this.element); - this.oldValue = this._value(); - this._refreshValue(); - }, - destroy: function () { - this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); - this.valueDiv.remove(); - b.Widget.prototype.destroy.apply(this, arguments); - }, - value: function (a) { - if (a === d) { - return this._value(); - } - this._setOption("value", a); - return this; - }, - _setOption: function (a, c) { - if (a === "value") { - this.options.value = c; - this._refreshValue(); - this._value() === this.options.max && this._trigger("complete"); - } - b.Widget.prototype._setOption.apply(this, arguments); - }, - _value: function () { - var a = this.options.value; - if (typeof a !== "number") { - a = 0; - } - return Math.min(this.options.max, Math.max(this.min, a)); - }, - _percentage: function () { - return 100 * this._value() / this.options.max; - }, - _refreshValue: function () { - var a = this.value(), - c = this._percentage(); - if (this.oldValue !== a) { - this.oldValue = a; - this._trigger("change"); - } - this.valueDiv.toggle(a > this.min).toggleClass("ui-corner-right", a === this.options.max).width(c.toFixed(0) + "%"); - this.element.attr("aria-valuenow", a); - } - }); - b.extend(b.ui.progressbar, { - version: "1.8.13" - }); -})(jQuery); -jQuery.effects || -function (f, j) { - function m(c) { - var a; - if (c && c.constructor == Array && c.length == 3) { - return c; - } - if (a = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)) { - return [parseInt(a[1], 10), parseInt(a[2], 10), parseInt(a[3], 10)]; - } - if (a = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)) { - return [parseFloat(a[1]) * 2.55, parseFloat(a[2]) * 2.55, parseFloat(a[3]) * 2.55]; - } - if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)) { - return [parseInt(a[1], 16), parseInt(a[2], 16), parseInt(a[3], 16)]; - } - if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)) { - return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)]; - } - if (/rgba\(0, 0, 0, 0\)/.exec(c)) { - return n.transparent; - } - return n[f.trim(c).toLowerCase()]; - } - function s(c, a) { - var b; - do { - b = f.curCSS(c, a); - if (b != "" && b != "transparent" || f.nodeName(c, "body")) { - break; - } - a = "backgroundColor"; - } while (c = c.parentNode); - return m(b); - } - function o() { - var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle, - a = {}, - b, - d; - if (c && c.length && c[0] && c[c[0]]) { - for (var e = c.length; e--;) { - b = c[e]; - if (typeof c[b] == "string") { - d = b.replace(/\-(\w)/g, function (g, h) { - return h.toUpperCase(); - }); - a[d] = c[b]; - } - } - } else { - for (b in c) { - if (typeof c[b] === "string") { - a[b] = c[b]; - } - } - } - return a; - } - function p(c) { - var a, b; - for (a in c) { - b = c[a]; - if (b == null || f.isFunction(b) || a in t || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b))) { - delete c[a]; - } - } - return c; - } - function u(c, a) { - var b = { - _: 0 - }, - d; - for (d in a) { - if (c[d] != a[d]) { - b[d] = a[d]; - } - } - return b; - } - function k(c, a, b, d) { - if (typeof c == "object") { - d = a; - b = null; - a = c; - c = a.effect; - } - if (f.isFunction(a)) { - d = a; - b = null; - a = {}; - } - if (typeof a == "number" || f.fx.speeds[a]) { - d = b; - b = a; - a = {}; - } - if (f.isFunction(b)) { - d = b; - b = null; - } - a = a || {}; - b = b || a.duration; - b = f.fx.off ? 0 : typeof b == "number" ? b : b in f.fx.speeds ? f.fx.speeds[b] : f.fx.speeds._default; - d = d || a.complete; - return [c, a, b, d]; - } - function l(c) { - if (!c || typeof c === "number" || f.fx.speeds[c]) { - return true; - } - if (typeof c === "string" && !f.effects[c]) { - return true; - } - return false; - } - f.effects = {}; - f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderColor", "color", "outlineColor"], function (c, a) { - f.fx.step[a] = function (b) { - if (!b.colorInit) { - b.start = s(b.elem, a); - b.end = m(b.end); - b.colorInit = true; - } - b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")"; - }; - }); - var n = { - aqua: [0, 255, 255], - azure: [240, 255, 255], - beige: [245, 245, 220], - black: [0, 0, 0], - blue: [0, 0, 255], - brown: [165, 42, 42], - cyan: [0, 255, 255], - darkblue: [0, 0, 139], - darkcyan: [0, 139, 139], - darkgrey: [169, 169, 169], - darkgreen: [0, 100, 0], - darkkhaki: [189, 183, 107], - darkmagenta: [139, 0, 139], - darkolivegreen: [85, 107, 47], - darkorange: [255, 140, 0], - darkorchid: [153, 50, 204], - darkred: [139, 0, 0], - darksalmon: [233, 150, 122], - darkviolet: [148, 0, 211], - fuchsia: [255, 0, 255], - gold: [255, 215, 0], - green: [0, 128, 0], - indigo: [75, 0, 130], - khaki: [240, 230, 140], - lightblue: [173, 216, 230], - lightcyan: [224, 255, 255], - lightgreen: [144, 238, 144], - lightgrey: [211, 211, 211], - lightpink: [255, 182, 193], - lightyellow: [255, 255, 224], - lime: [0, 255, 0], - magenta: [255, 0, 255], - maroon: [128, 0, 0], - navy: [0, 0, 128], - olive: [128, 128, 0], - orange: [255, 165, 0], - pink: [255, 192, 203], - purple: [128, 0, 128], - violet: [128, 0, 128], - red: [255, 0, 0], - silver: [192, 192, 192], - white: [255, 255, 255], - yellow: [255, 255, 0], - transparent: [255, 255, 255] - }, - q = ["add", "remove", "toggle"], - t = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }; - f.effects.animateClass = function (c, a, b, d) { - if (f.isFunction(b)) { - d = b; - b = null; - } - return this.queue(function () { - var e = f(this), - g = e.attr("style") || " ", - h = p(o.call(this)), - r, - v = e.attr("class"); - f.each(q, function (w, i) { - c[i] && e[i + "Class"](c[i]); - }); - r = p(o.call(this)); - e.attr("class", v); - e.animate(u(h, r), { - queue: false, - duration: a, - easding: b, - complete: function () { - f.each(q, function (w, i) { - c[i] && e[i + "Class"](c[i]); - }); - if (typeof e.attr("style") == "object") { - e.attr("style").cssText = ""; - e.attr("style").cssText = g; - } else { - e.attr("style", g); - } - d && d.apply(this, arguments); - f.dequeue(this); - } - }); - }); - }; - f.fn.extend({ - _addClass: f.fn.addClass, - addClass: function (c, a, b, d) { - return a ? f.effects.animateClass.apply(this, [{ - add: c - }, - a, b, d]) : this._addClass(c); - }, - _removeClass: f.fn.removeClass, - removeClass: function (c, a, b, d) { - return a ? f.effects.animateClass.apply(this, [{ - remove: c - }, - a, b, d]) : this._removeClass(c); - }, - _toggleClass: f.fn.toggleClass, - toggleClass: function (c, a, b, d, e) { - return typeof a == "boolean" || a === j ? b ? f.effects.animateClass.apply(this, [a ? { - add: c - } : { - remove: c - }, - b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this, [{ - toggle: c - }, - a, b, d]); - }, - switchClass: function (c, a, b, d, e) { - return f.effects.animateClass.apply(this, [{ - add: a, - remove: c - }, - b, d, e]); - } - }); - f.extend(f.effects, { - version: "1.8.13", - save: function (c, a) { - for (var b = 0; b < a.length; b++) { - a[b] !== null && c.data("ec.storage." + a[b], c[0].style[a[b]]); - } - }, - restore: function (c, a) { - for (var b = 0; b < a.length; b++) { - a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b])); - } - }, - setMode: function (c, a) { - if (a == "toggle") { - a = c.is(":hidden") ? "show" : "hide"; - } - return a; - }, - getBaseline: function (c, a) { - var b; - switch (c[0]) { - case "top": - b = 0; - break; - case "middle": - b = 0.5; - break; - case "bottom": - b = 1; - break; - default: - b = c[0] / a.height; - } - switch (c[1]) { - case "left": - c = 0; - break; - case "center": - c = 0.5; - break; - case "right": - c = 1; - break; - default: - c = c[1] / a.width; - } - return { - x: c, - y: b - }; - }, - createWrapper: function (c) { - if (c.parent().is(".ui-effects-wrapper")) { - return c.parent(); - } - var a = { - width: c.outerWidth(true), - height: c.outerHeight(true), - "float": c.css("float") - }, - b = f("
    ").addClass("ui-effects-wrapper").css({ - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - }); - c.wrap(b); - b = c.parent(); - if (c.css("position") == "static") { - b.css({ - position: "relative" - }); - c.css({ - position: "relative" - }); - } else { - f.extend(a, { - position: c.css("position"), - zIndex: c.css("z-index") - }); - f.each(["top", "left", "bottom", "right"], function (d, e) { - a[e] = c.css(e); - if (isNaN(parseInt(a[e], 10))) { - a[e] = "auto"; - } - }); - c.css({ - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - }); - } - return b.css(a).show(); - }, - removeWrapper: function (c) { - if (c.parent().is(".ui-effects-wrapper")) { - return c.parent().replaceWith(c); - } - return c; - }, - setTransition: function (c, a, b, d) { - d = d || {}; - f.each(a, function (e, g) { - unit = c.cssUnit(g); - if (unit[0] > 0) { - d[g] = unit[0] * b + unit[1]; - } - }); - return d; - } - }); - f.fn.extend({ - effect: function (c) { - var a = k.apply(this, arguments), - b = { - options: a[1], - duration: a[2], - callback: a[3] - }; - a = b.options.mode; - var d = f.effects[c]; - if (f.fx.off || !d) { - return a ? this[a](b.duration, b.callback) : this.each(function () { - b.callback && b.callback.call(this); - }); - } - return d.call(this, b); - }, - _show: f.fn.show, - show: function (c) { - if (l(c)) { - return this._show.apply(this, arguments); - } else { - var a = k.apply(this, arguments); - a[1].mode = "show"; - return this.effect.apply(this, a); - } - }, - _hide: f.fn.hide, - hide: function (c) { - if (l(c)) { - return this._hide.apply(this, arguments); - } else { - var a = k.apply(this, arguments); - a[1].mode = "hide"; - return this.effect.apply(this, a); - } - }, - __toggle: f.fn.toggle, - toggle: function (c) { - if (l(c) || typeof c === "boolean" || f.isFunction(c)) { - return this.__toggle.apply(this, arguments); - } else { - var a = k.apply(this, arguments); - a[1].mode = "toggle"; - return this.effect.apply(this, a); - } - }, - cssUnit: function (c) { - var a = this.css(c), - b = []; - f.each(["em", "px", "%", "pt"], function (d, e) { - if (a.indexOf(e) > 0) { - b = [parseFloat(a), e]; - } - }); - return b; - } - }); - f.easing.jswing = f.easing.swing; - f.extend(f.easing, { - def: "easeOutQuad", - swing: function (c, a, b, d, e) { - return f.easing[f.easing.def](c, a, b, d, e); - }, - easeInQuad: function (c, a, b, d, e) { - return d * (a /= e) * a + b; - }, - easeOutQuad: function (c, a, b, d, e) { - return -d * (a /= e) * (a - 2) + b; - }, - easeInOutQuad: function (c, a, b, d, e) { - if ((a /= e / 2) < 1) { - return d / 2 * a * a + b; - } - return -d / 2 * (--a * (a - 2) - 1) + b; - }, - easeInCubic: function (c, a, b, d, e) { - return d * (a /= e) * a * a + b; - }, - easeOutCubic: function (c, a, b, d, e) { - return d * ((a = a / e - 1) * a * a + 1) + b; - }, - easeInOutCubic: function (c, a, b, d, e) { - if ((a /= e / 2) < 1) { - return d / 2 * a * a * a + b; - } - return d / 2 * ((a -= 2) * a * a + 2) + b; - }, - easeInQuart: function (c, a, b, d, e) { - return d * (a /= e) * a * a * a + b; - }, - easeOutQuart: function (c, a, b, d, e) { - return -d * ((a = a / e - 1) * a * a * a - 1) + b; - }, - easeInOutQuart: function (c, a, b, d, e) { - if ((a /= e / 2) < 1) { - return d / 2 * a * a * a * a + b; - } - return -d / 2 * ((a -= 2) * a * a * a - 2) + b; - }, - easeInQuint: function (c, a, b, d, e) { - return d * (a /= e) * a * a * a * a + b; - }, - easeOutQuint: function (c, a, b, d, e) { - return d * ((a = a / e - 1) * a * a * a * a + 1) + b; - }, - easeInOutQuint: function (c, a, b, d, e) { - if ((a /= e / 2) < 1) { - return d / 2 * a * a * a * a * a + b; - } - return d / 2 * ((a -= 2) * a * a * a * a + 2) + b; - }, - easeInSine: function (c, a, b, d, e) { - return -d * Math.cos(a / e * (Math.PI / 2)) + d + b; - }, - easeOutSine: function (c, a, b, d, e) { - return d * Math.sin(a / e * (Math.PI / 2)) + b; - }, - easeInOutSine: function (c, a, b, d, e) { - return -d / 2 * (Math.cos(Math.PI * a / e) - 1) + b; - }, - easeInExpo: function (c, a, b, d, e) { - return a == 0 ? b : d * Math.pow(2, 10 * (a / e - 1)) + b; - }, - easeOutExpo: function (c, a, b, d, e) { - return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b; - }, - easeInOutExpo: function (c, a, b, d, e) { - if (a == 0) { - return b; - } - if (a == e) { - return b + d; - } - if ((a /= e / 2) < 1) { - return d / 2 * Math.pow(2, 10 * (a - 1)) + b; - } - return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b; - }, - easeInCirc: function (c, a, b, d, e) { - return -d * (Math.sqrt(1 - (a /= e) * a) - 1) + b; - }, - easeOutCirc: function (c, a, b, d, e) { - return d * Math.sqrt(1 - (a = a / e - 1) * a) + b; - }, - easeInOutCirc: function (c, a, b, d, e) { - if ((a /= e / 2) < 1) { - return -d / 2 * (Math.sqrt(1 - a * a) - 1) + b; - } - return d / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; - }, - easeInElastic: function (c, a, b, d, e) { - c = 1.70158; - var g = 0, - h = d; - if (a == 0) { - return b; - } - if ((a /= e) == 1) { - return b + d; - } - g || (g = e * 0.3); - if (h < Math.abs(d)) { - h = d; - c = g / 4; - } else { - c = g / (2 * Math.PI) * Math.asin(d / h); - } - return - (h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b; - }, - easeOutElastic: function (c, a, b, d, e) { - c = 1.70158; - var g = 0, - h = d; - if (a == 0) { - return b; - } - if ((a /= e) == 1) { - return b + d; - } - g || (g = e * 0.3); - if (h < Math.abs(d)) { - h = d; - c = g / 4; - } else { - c = g / (2 * Math.PI) * Math.asin(d / h); - } - return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b; - }, - easeInOutElastic: function (c, a, b, d, e) { - c = 1.70158; - var g = 0, - h = d; - if (a == 0) { - return b; - } - if ((a /= e / 2) == 2) { - return b + d; - } - g || (g = e * 0.3 * 1.5); - if (h < Math.abs(d)) { - h = d; - c = g / 4; - } else { - c = g / (2 * Math.PI) * Math.asin(d / h); - } - if (a < 1) { - return -0.5 * h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b; - } - return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b; - }, - easeInBack: function (c, a, b, d, e, g) { - if (g == j) { - g = 1.70158; - } - return d * (a /= e) * a * ((g + 1) * a - g) + b; - }, - easeOutBack: function (c, a, b, d, e, g) { - if (g == j) { - g = 1.70158; - } - return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b; - }, - easeInOutBack: function (c, a, b, d, e, g) { - if (g == j) { - g = 1.70158; - } - if ((a /= e / 2) < 1) { - return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b; - } - return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b; - }, - easeInBounce: function (c, a, b, d, e) { - return d - f.easing.easeOutBounce(c, e - a, 0, d, e) + b; - }, - easeOutBounce: function (c, a, b, d, e) { - return (a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b; - }, - easeInOutBounce: function (c, a, b, d, e) { - if (a < e / 2) { - return f.easing.easeInBounce(c, a * 2, 0, d, e) * 0.5 + b; - } - return f.easing.easeOutBounce(c, a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b; - } - }); -} (jQuery); -(function (b) { - b.effects.blind = function (c) { - return this.queue(function () { - var a = b(this), - g = ["position", "top", "bottom", "left", "right"], - f = b.effects.setMode(a, c.options.mode || "hide"), - d = c.options.direction || "vertical"; - b.effects.save(a, g); - a.show(); - var e = b.effects.createWrapper(a).css({ - overflow: "hidden" - }), - h = d == "vertical" ? "height" : "width"; - d = d == "vertical" ? e.height() : e.width(); - f == "show" && e.css(h, 0); - var i = {}; - i[h] = f == "show" ? d : 0; - e.animate(i, c.duration, c.options.easing, function () { - f == "hide" && a.hide(); - b.effects.restore(a, g); - b.effects.removeWrapper(a); - c.callback && c.callback.apply(a[0], arguments); - a.dequeue(); - }); - }); - }; -})(jQuery); -(function (e) { - e.effects.bounce = function (b) { - return this.queue(function () { - var a = e(this), - l = ["position", "top", "bottom", "left", "right"], - h = e.effects.setMode(a, b.options.mode || "effect"), - d = b.options.direction || "up", - c = b.options.distance || 20, - m = b.options.times || 5, - i = b.duration || 250; - /show|hide/.test(h) && l.push("opacity"); - e.effects.save(a, l); - a.show(); - e.effects.createWrapper(a); - var f = d == "up" || d == "down" ? "top" : "left"; - d = d == "up" || d == "left" ? "pos" : "neg"; - c = b.options.distance || (f == "top" ? a.outerHeight({ - margin: true - }) / 3 : a.outerWidth({ - margin: true - }) / 3); - if (h == "show") { - a.css("opacity", 0).css(f, d == "pos" ? -c : c); - } - if (h == "hide") { - c /= m * 2; - } - h != "hide" && m--; - if (h == "show") { - var g = { - opacity: 1 - }; - g[f] = (d == "pos" ? "+=" : "-=") + c; - a.animate(g, i / 2, b.options.easing); - c /= 2; - m--; - } - for (g = 0; g < m; g++) { - var j = {}, - k = {}; - j[f] = (d == "pos" ? "-=" : "+=") + c; - k[f] = (d == "pos" ? "+=" : "-=") + c; - a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing); - c = h == "hide" ? c * 2 : c / 2; - } - if (h == "hide") { - g = { - opacity: 0 - }; - g[f] = (d == "pos" ? "-=" : "+=") + c; - a.animate(g, i / 2, b.options.easing, function () { - a.hide(); - e.effects.restore(a, l); - e.effects.removeWrapper(a); - b.callback && b.callback.apply(this, arguments); - }); - } else { - j = {}; - k = {}; - j[f] = (d == "pos" ? "-=" : "+=") + c; - k[f] = (d == "pos" ? "+=" : "-=") + c; - a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing, function () { - e.effects.restore(a, l); - e.effects.removeWrapper(a); - b.callback && b.callback.apply(this, arguments); - }); - } - a.queue("fx", function () { - a.dequeue(); - }); - a.dequeue(); - }); - }; -})(jQuery); -(function (b) { - b.effects.clip = function (e) { - return this.queue(function () { - var a = b(this), - i = ["position", "top", "bottom", "left", "right", "height", "width"], - f = b.effects.setMode(a, e.options.mode || "hide"), - c = e.options.direction || "vertical"; - b.effects.save(a, i); - a.show(); - var d = b.effects.createWrapper(a).css({ - overflow: "hidden" - }); - d = a[0].tagName == "IMG" ? d : a; - var g = { - size: c == "vertical" ? "height" : "width", - position: c == "vertical" ? "top" : "left" - }; - c = c == "vertical" ? d.height() : d.width(); - if (f == "show") { - d.css(g.size, 0); - d.css(g.position, c / 2); - } - var h = {}; - h[g.size] = f == "show" ? c : 0; - h[g.position] = f == "show" ? 0 : c / 2; - d.animate(h, { - queue: false, - duration: e.duration, - easing: e.options.easing, - complete: function () { - f == "hide" && a.hide(); - b.effects.restore(a, i); - b.effects.removeWrapper(a); - e.callback && e.callback.apply(a[0], arguments); - a.dequeue(); - } - }); - }); - }; -})(jQuery); -(function (c) { - c.effects.drop = function (d) { - return this.queue(function () { - var a = c(this), - h = ["position", "top", "bottom", "left", "right", "opacity"], - e = c.effects.setMode(a, d.options.mode || "hide"), - b = d.options.direction || "left"; - c.effects.save(a, h); - a.show(); - c.effects.createWrapper(a); - var f = b == "up" || b == "down" ? "top" : "left"; - b = b == "up" || b == "left" ? "pos" : "neg"; - var g = d.options.distance || (f == "top" ? a.outerHeight({ - margin: true - }) / 2 : a.outerWidth({ - margin: true - }) / 2); - if (e == "show") { - a.css("opacity", 0).css(f, b == "pos" ? -g : g); - } - var i = { - opacity: e == "show" ? 1 : 0 - }; - i[f] = (e == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + g; - a.animate(i, { - queue: false, - duration: d.duration, - easing: d.options.easing, - complete: function () { - e == "hide" && a.hide(); - c.effects.restore(a, h); - c.effects.removeWrapper(a); - d.callback && d.callback.apply(this, arguments); - a.dequeue(); - } - }); - }); - }; -})(jQuery); -(function (j) { - j.effects.explode = function (a) { - return this.queue(function () { - var c = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3, - d = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3; - a.options.mode = a.options.mode == "toggle" ? j(this).is(":visible") ? "hide" : "show" : a.options.mode; - var b = j(this).show().css("visibility", "hidden"), - g = b.offset(); - g.top -= parseInt(b.css("marginTop"), 10) || 0; - g.left -= parseInt(b.css("marginLeft"), 10) || 0; - for (var h = b.outerWidth(true), i = b.outerHeight(true), e = 0; e < c; e++) { - for (var f = 0; f < d; f++) { - b.clone().appendTo("body").wrap("
    ").css({ - position: "absolute", - visibility: "visible", - left: -f * (h / d), - top: -e * (i / c) - }).parent().addClass("ui-effects-explode").css({ - position: "absolute", - overflow: "hidden", - width: h / d, - height: i / c, - left: g.left + f * (h / d) + (a.options.mode == "show" ? (f - Math.floor(d / 2)) * (h / d) : 0), - top: g.top + e * (i / c) + (a.options.mode == "show" ? (e - Math.floor(c / 2)) * (i / c) : 0), - opacity: a.options.mode == "show" ? 0 : 1 - }).animate({ - left: g.left + f * (h / d) + (a.options.mode == "show" ? 0 : (f - Math.floor(d / 2)) * (h / d)), - top: g.top + e * (i / c) + (a.options.mode == "show" ? 0 : (e - Math.floor(c / 2)) * (i / c)), - opacity: a.options.mode == "show" ? 1 : 0 - }, - a.duration || 500); - } - } - setTimeout(function () { - a.options.mode == "show" ? b.css({ - visibility: "visible" - }) : b.css({ - visibility: "visible" - }).hide(); - a.callback && a.callback.apply(b[0]); - b.dequeue(); - j("div.ui-effects-explode").remove(); - }, - a.duration || 500); - }); - }; -})(jQuery); -(function (b) { - b.effects.fade = function (a) { - return this.queue(function () { - var c = b(this), - d = b.effects.setMode(c, a.options.mode || "hide"); - c.animate({ - opacity: d - }, - { - queue: false, - duration: a.duration, - easing: a.options.easing, - complete: function () { - a.callback && a.callback.apply(this, arguments); - c.dequeue(); - } - }); - }); - }; -})(jQuery); -(function (c) { - c.effects.fold = function (a) { - return this.queue(function () { - var b = c(this), - j = ["position", "top", "bottom", "left", "right"], - d = c.effects.setMode(b, a.options.mode || "hide"), - g = a.options.size || 15, - h = !!a.options.horizFirst, - k = a.duration ? a.duration / 2 : c.fx.speeds._default / 2; - c.effects.save(b, j); - b.show(); - var e = c.effects.createWrapper(b).css({ - overflow: "hidden" - }), - f = d == "show" != h, - l = f ? ["width", "height"] : ["height", "width"]; - f = f ? [e.width(), e.height()] : [e.height(), e.width()]; - var i = /([0-9]+)%/.exec(g); - if (i) { - g = parseInt(i[1], 10) / 100 * f[d == "hide" ? 0 : 1]; - } - if (d == "show") { - e.css(h ? { - height: 0, - width: g - } : { - height: g, - width: 0 - }); - } - h = {}; - i = {}; - h[l[0]] = d == "show" ? f[0] : g; - i[l[1]] = d == "show" ? f[1] : 0; - e.animate(h, k, a.options.easing).animate(i, k, a.options.easing, function () { - d == "hide" && b.hide(); - c.effects.restore(b, j); - c.effects.removeWrapper(b); - a.callback && a.callback.apply(b[0], arguments); - b.dequeue(); - }); - }); - }; -})(jQuery); -(function (b) { - b.effects.highlight = function (c) { - return this.queue(function () { - var a = b(this), - e = ["backgroundImage", "backgroundColor", "opacity"], - d = b.effects.setMode(a, c.options.mode || "show"), - f = { - backgroundColor: a.css("backgroundColor") - }; - if (d == "hide") { - f.opacity = 0; - } - b.effects.save(a, e); - a.show().css({ - backgroundImage: "none", - backgroundColor: c.options.color || "#ffff99" - }).animate(f, { - queue: false, - duration: c.duration, - easing: c.options.easing, - complete: function () { - d == "hide" && a.hide(); - b.effects.restore(a, e); - d == "show" && !b.support.opacity && this.style.removeAttribute("filter"); - c.callback && c.callback.apply(this, arguments); - a.dequeue(); - } - }); - }); - }; -})(jQuery); -(function (d) { - d.effects.pulsate = function (a) { - return this.queue(function () { - var b = d(this), - c = d.effects.setMode(b, a.options.mode || "show"); - times = (a.options.times || 5) * 2 - 1; - duration = a.duration ? a.duration / 2 : d.fx.speeds._default / 2; - isVisible = b.is(":visible"); - animateTo = 0; - if (!isVisible) { - b.css("opacity", 0).show(); - animateTo = 1; - } - if (c == "hide" && isVisible || c == "show" && !isVisible) { - times--; - } - for (c = 0; c < times; c++) { - b.animate({ - opacity: animateTo - }, - duration, a.options.easing); - animateTo = (animateTo + 1) % 2; - } - b.animate({ - opacity: animateTo - }, - duration, a.options.easing, function () { - animateTo == 0 && b.hide(); - a.callback && a.callback.apply(this, arguments); - }); - b.queue("fx", function () { - b.dequeue(); - }).dequeue(); - }); - }; -})(jQuery); -(function (c) { - c.effects.puff = function (b) { - return this.queue(function () { - var a = c(this), - e = c.effects.setMode(a, b.options.mode || "hide"), - g = parseInt(b.options.percent, 10) || 150, - h = g / 100, - i = { - height: a.height(), - width: a.width() - }; - c.extend(b.options, { - fade: true, - mode: e, - percent: e == "hide" ? g : 100, - from: e == "hide" ? i : { - height: i.height * h, - width: i.width * h - } - }); - a.effect("scale", b.options, b.duration, b.callback); - a.dequeue(); - }); - }; - c.effects.scale = function (b) { - return this.queue(function () { - var a = c(this), - e = c.extend(true, {}, - b.options), - g = c.effects.setMode(a, b.options.mode || "effect"), - h = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : g == "hide" ? 0 : 100), - i = b.options.direction || "both", - f = b.options.origin; - if (g != "effect") { - e.origin = f || ["middle", "center"]; - e.restore = true; - } - f = { - height: a.height(), - width: a.width() - }; - a.from = b.options.from || (g == "show" ? { - height: 0, - width: 0 - } : f); - h = { - y: i != "horizontal" ? h / 100 : 1, - x: i != "vertical" ? h / 100 : 1 - }; - a.to = { - height: f.height * h.y, - width: f.width * h.x - }; - if (b.options.fade) { - if (g == "show") { - a.from.opacity = 0; - a.to.opacity = 1; - } - if (g == "hide") { - a.from.opacity = 1; - a.to.opacity = 0; - } - } - e.from = a.from; - e.to = a.to; - e.mode = g; - a.effect("size", e, b.duration, b.callback); - a.dequeue(); - }); - }; - c.effects.size = function (b) { - return this.queue(function () { - var a = c(this), - e = ["position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity"], - g = ["position", "top", "bottom", "left", "right", "overflow", "opacity"], - h = ["width", "height", "overflow"], - i = ["fontSize"], - f = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], - k = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], - p = c.effects.setMode(a, b.options.mode || "effect"), - n = b.options.restore || false, - m = b.options.scale || "both", - l = b.options.origin, - j = { - height: a.height(), - width: a.width() - }; - a.from = b.options.from || j; - a.to = b.options.to || j; - if (l) { - l = c.effects.getBaseline(l, j); - a.from.top = (j.height - a.from.height) * l.y; - a.from.left = (j.width - a.from.width) * l.x; - a.to.top = (j.height - a.to.height) * l.y; - a.to.left = (j.width - a.to.width) * l.x; - } - var d = { - from: { - y: a.from.height / j.height, - x: a.from.width / j.width - }, - to: { - y: a.to.height / j.height, - x: a.to.width / j.width - } - }; - if (m == "box" || m == "both") { - if (d.from.y != d.to.y) { - e = e.concat(f); - a.from = c.effects.setTransition(a, f, d.from.y, a.from); - a.to = c.effects.setTransition(a, f, d.to.y, a.to); - } - if (d.from.x != d.to.x) { - e = e.concat(k); - a.from = c.effects.setTransition(a, k, d.from.x, a.from); - a.to = c.effects.setTransition(a, k, d.to.x, a.to); - } - } - if (m == "content" || m == "both") { - if (d.from.y != d.to.y) { - e = e.concat(i); - a.from = c.effects.setTransition(a, i, d.from.y, a.from); - a.to = c.effects.setTransition(a, i, d.to.y, a.to); - } - } - c.effects.save(a, n ? e : g); - a.show(); - c.effects.createWrapper(a); - a.css("overflow", "hidden").css(a.from); - if (m == "content" || m == "both") { - f = f.concat(["marginTop", "marginBottom"]).concat(i); - k = k.concat(["marginLeft", "marginRight"]); - h = e.concat(f).concat(k); - a.find("*[width]").each(function () { - child = c(this); - n && c.effects.save(child, h); - var o = { - height: child.height(), - width: child.width() - }; - child.from = { - height: o.height * d.from.y, - width: o.width * d.from.x - }; - child.to = { - height: o.height * d.to.y, - width: o.width * d.to.x - }; - if (d.from.y != d.to.y) { - child.from = c.effects.setTransition(child, f, d.from.y, child.from); - child.to = c.effects.setTransition(child, f, d.to.y, child.to); - } - if (d.from.x != d.to.x) { - child.from = c.effects.setTransition(child, k, d.from.x, child.from); - child.to = c.effects.setTransition(child, k, d.to.x, child.to); - } - child.css(child.from); - child.animate(child.to, b.duration, b.options.easing, function () { - n && c.effects.restore(child, h); - }); - }); - } - a.animate(a.to, { - queue: false, - duration: b.duration, - easing: b.options.easing, - complete: function () { - a.to.opacity === 0 && a.css("opacity", a.from.opacity); - p == "hide" && a.hide(); - c.effects.restore(a, n ? e : g); - c.effects.removeWrapper(a); - b.callback && b.callback.apply(this, arguments); - a.dequeue(); - } - }); - }); - }; -})(jQuery); -(function (d) { - d.effects.shake = function (a) { - return this.queue(function () { - var b = d(this), - j = ["position", "top", "bottom", "left", "right"]; - d.effects.setMode(b, a.options.mode || "effect"); - var c = a.options.direction || "left", - e = a.options.distance || 20, - l = a.options.times || 3, - f = a.duration || a.options.duration || 140; - d.effects.save(b, j); - b.show(); - d.effects.createWrapper(b); - var g = c == "up" || c == "down" ? "top" : "left", - h = c == "up" || c == "left" ? "pos" : "neg"; - c = {}; - var i = {}, - k = {}; - c[g] = (h == "pos" ? "-=" : "+=") + e; - i[g] = (h == "pos" ? "+=" : "-=") + e * 2; - k[g] = (h == "pos" ? "-=" : "+=") + e * 2; - b.animate(c, f, a.options.easing); - for (e = 1; e < l; e++) { - b.animate(i, f, a.options.easing).animate(k, f, a.options.easing); - } - b.animate(i, f, a.options.easing).animate(c, f / 2, a.options.easing, function () { - d.effects.restore(b, j); - d.effects.removeWrapper(b); - a.callback && a.callback.apply(this, arguments); - }); - b.queue("fx", function () { - b.dequeue(); - }); - b.dequeue(); - }); - }; -})(jQuery); -(function (c) { - c.effects.slide = function (d) { - return this.queue(function () { - var a = c(this), - h = ["position", "top", "bottom", "left", "right"], - f = c.effects.setMode(a, d.options.mode || "show"), - b = d.options.direction || "left"; - c.effects.save(a, h); - a.show(); - c.effects.createWrapper(a).css({ - overflow: "hidden" - }); - var g = b == "up" || b == "down" ? "top" : "left"; - b = b == "up" || b == "left" ? "pos" : "neg"; - var e = d.options.distance || (g == "top" ? a.outerHeight({ - margin: true - }) : a.outerWidth({ - margin: true - })); - if (f == "show") { - a.css(g, b == "pos" ? isNaN(e) ? "-" + e : -e : e); - } - var i = {}; - i[g] = (f == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + e; - a.animate(i, { - queue: false, - duration: d.duration, - easing: d.options.easing, - complete: function () { - f == "hide" && a.hide(); - c.effects.restore(a, h); - c.effects.removeWrapper(a); - d.callback && d.callback.apply(this, arguments); - a.dequeue(); - } - }); - }); - }; -})(jQuery); -(function (e) { - e.effects.transfer = function (a) { - return this.queue(function () { - var b = e(this), - c = e(a.options.to), - d = c.offset(); - c = { - top: d.top, - left: d.left, - height: c.innerHeight(), - width: c.innerWidth() - }; - d = b.offset(); - var f = e('
    ').appendTo(document.body).addClass(a.options.className).css({ - top: d.top, - left: d.left, - height: b.innerHeight(), - width: b.innerWidth(), - position: "absolute" - }).animate(c, a.duration, a.options.easing, function () { - f.remove(); - a.callback && a.callback.apply(b[0], arguments); - b.dequeue(); - }); - }); - }; -})(jQuery); \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/js/userScript.js b/OfficeWeb/sdk/Common/Charts/examples/js/userScript.js deleted file mode 100644 index 2a9a814c..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/js/userScript.js +++ /dev/null @@ -1,1408 +0,0 @@ -/* - * (c) Copyright Ascensio System SIA 2010-2014 - * - * This program is a free software product. You can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License (AGPL) - * version 3 as published by the Free Software Foundation. In accordance with - * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect - * that Ascensio System SIA expressly excludes the warranty of non-infringement - * of any third-party rights. - * - * This program is distributed WITHOUT ANY WARRANTY; without even the implied - * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For - * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html - * - * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, - * EU, LV-1021. - * - * The interactive user interfaces in modified source and object code versions - * of the Program must display Appropriate Legal Notices, as required under - * Section 5 of the GNU AGPL version 3. - * - * Pursuant to Section 7(b) of the License you must retain the original Product - * logo when distributing the program. Pursuant to Section 7(e) we decline to - * grant you any rights under trademark law for use of our trademarks. - * - * All the Product's GUI elements, including illustrations and icon sets, as - * well as technical writing content are licensed under the terms of the - * Creative Commons Attribution-ShareAlike 4.0 International. See the License - * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode - * - */ - var bar; -var temMass = []; -var data; -function getUrlVars() { - var vars = [], - hash; - var hashes = window.location.href.slice(window.location.href.indexOf("?")).split("&"); - for (var i = 0; i < hashes.length; i++) { - hash = hashes[i].split("="); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; -} -function formatDraw(value, fTitle) { - var name = "#" + value; - $(name).dialog({ - title: fTitle.innerText, - width: 550, - height: 550, - modal: true, - buttons: { - "�������": function () { - $(this).dialog("close"); - } - }, - }); -} -function changeGraph(nameGraph) { - var data = [280, 45, 133, 166, 84, 259, 266, 960, 219, 311, 67, 89]; - var data2 = [280, 45, 133, 166, 84, 259, 266, 960, 219, 311, 67, 89]; - if ("Line" != nameGraph) { - nameGraph = nameGraph.value; - } - if ("Line" == nameGraph) { - bar = new OfficeExcel.Line("myCanvas", data); - } else { - if ("Bar" == nameGraph) { - bar = new OfficeExcel.Bar("myCanvas", data); - bar._otherProps._variant = "bar"; - } else { - if ("Bipolar" == nameGraph) { - bar = new OfficeExcel.Bipolar("myCanvas", data, data2); - } else { - if ("HorizontalBar" == nameGraph) { - bar = new OfficeExcel.HBar("myCanvas", data); - } else { - if ("Pie" == nameGraph) { - bar = new OfficeExcel.Pie("myCanvas", data); - } else { - if ("Radar" == nameGraph) { - bar = new OfficeExcel.Radar("myCanvas", data); - } else { - if ("Rose" == nameGraph) { - bar = new OfficeExcel.Rose("myCanvas", data); - } else { - if ("Scatter" == nameGraph) { - bar = new OfficeExcel.Scatter("myCanvas", data); - } else { - if ("Waterfall" == nameGraph) { - bar = new OfficeExcel.Waterfall("myCanvas", data); - } else { - if ("Rscatter" == nameGraph) { - bar = new OfficeExcel.Rscatter("myCanvas", data); - } else { - if ("Donut" == nameGraph) { - var donut = new OfficeExcel.Pie("myCanvas", data); - bar._otherProps._variant = "donut"; - } else { - if ("Gantt" == nameGraph) { - var donut = new OfficeExcel.Gantt("myCanvas"); - } - } - } - } - } - } - } - } - } - } - } - } - bar._chartGutter._left = 35; - bar._chartGutter._bottom = 35; - upOptions(); -} -function insertOptions() { - var yFirstMin = bar.min; - var yFirstMax = bar.max; - var yFirstDiff = bar._otherProps._numyticks; - $("#optionsMin").val(yFirstMin); - $("#optionsMax").val(yFirstMax); - $("#optionsDiff").val((yFirstMax - yFirstMin) / yFirstDiff); - if (!isNaN(bar.min)) { - bar._otherProps._ymin = parseInt(bar.min); - } - bar._otherProps._labels = [1, 2, 3, 4, 5]; - bar._otherProps._key = ["���1"]; - bar._chartGutter._left = 145; - bar._chartGutter._right = 70; - bar._chartGutter._top = 25; - bar._chartGutter._bottom = 25; - upOptions(); -} -function upOptions() { - canvas = $("#myCanvas")[0]; - canvas.getContext("2d").clearRect(0, 0, canvas.width, canvas.height); - bar.Draw(); -} -function drawDiagram1() { - var data = $("#drawDiagramPoint").val().split(","); - bar = new OfficeExcel.Line("myCanvas", data); - bar._otherProps._ylabels_count = "auto"; - bar._chartGutter._left = 35; - bar._chartGutter._bottom = 35; - bar._otherProps._background_grid_autofit_numvlines = data.length; - bar._otherProps._background_grid_color = "graytext"; - bar._otherProps._background_barcolor1 = "white"; - bar._otherProps._background_barcolor2 = "white"; - bar._otherProps._colors = ["steelblue"]; - bar._otherProps._linewidth = 3; - bar._otherProps._key = ["���1"]; - var tempMas = []; - for (var i = 0; i <= data.length; i++) { - tempMas[i] = i; - } - bar._otherProps._labels = tempMas; - bar._chartGutter._left = 45; - bar._chartGutter._right = 90; - bar._chartGutter._top = 13; - bar._chartGutter._bottom = 30; - bar._otherProps._key_position_x = 395; - bar._otherProps._key_position_y = 123; - bar.Draw(); - bar._otherProps._hmargin = bar._otherProps._background_grid_vsize / 2; - upOptions(); - insertAllGraphs(); - insertDiffOptions(); - $("#hiddenCanvas").offset({ - top: $("#myCanvas").offset().top - parseInt($("#hiddenCanvas").css("border-width")), - left: $("#myCanvas").offset().left - parseInt($("#hiddenCanvas").css("border-width")), - right: $("#myCanvas").offset().right, - bottom: $("#myCanvas").offset().bottom - }); - $("#hiddenCanvas").css("height", $("#myCanvas").css("height")); - $("#hiddenCanvas").css("width", $("#myCanvas").css("width")); - $("#hiddenWorkArea").css("width", parseInt($("#myCanvas").css("width")) - bar._chartGutter._left - bar._chartGutter._right); - $("#hiddenWorkArea").css("height", parseInt($("#myCanvas").css("height")) - bar._chartGutter._top - bar._chartGutter._bottom); - $("#hiddenWorkArea").offset({ - top: bar._chartGutter._top, - left: bar._chartGutter._left, - right: bar._chartGutter._right, - bottom: bar._chartGutter._bottom - }); - $("#hiddenAxesX").css("width", parseInt($("#hiddenWorkArea").css("width")) + 5); - $("#hiddenAxesX").css("height", 20); - $("#hiddenAxesX").offset({ - top: parseInt($("#hiddenWorkArea").css("top")) + parseInt($("#hiddenWorkArea").css("height")), - left: parseInt($("#hiddenWorkArea").css("left")) - }); - $("#hiddenAxesY").css("width", 30); - $("#hiddenAxesY").css("height", parseInt($("#hiddenWorkArea").css("height")) + 30); - $("#hiddenAxesY").offset({ - top: parseInt($("#hiddenWorkArea").css("top")), - left: parseInt($("#hiddenWorkArea").css("left")) - 30 - }); - $("#hiddenDrag").css("width", parseInt($("#hiddenWorkArea").css("width")) + parseInt($("#hiddenAxesY").css("width"))); - $("#hiddenDrag").css("height", parseInt($("#hiddenWorkArea").css("height")) + parseInt($("#hiddenAxesX").css("height"))); - $("#hiddenDrag").offset({ - top: parseInt($("#hiddenAxesY").css("top")), - left: parseInt($("#hiddenAxesY").css("left")) - }); -} -function calcWidthGraph() { - var trueWidth = (parseInt($("#myCanvas").css("width")) - bar._chartGutter._left - bar._chartGutter._right); - if ("bar" == bar.type) { - var pointKoff = 1 - (1.11111) / (bar.data[0].length); - bar._otherProps._hmargin = (trueWidth - trueWidth * pointKoff) / 2; - } else { - var pointKoff = 1 - 1 / (bar.data[0].length); - bar._otherProps._hmargin = (trueWidth - trueWidth * pointKoff) / 2; - } -} -function calcGutter(axis) { - if (typeof(bar.data[0]) == "object") { - var arrMin = []; - var arrMax = []; - for (var j = 0; j < bar.data.length; j++) { - min = Math.min.apply(null, bar.data[j]); - max = Math.max.apply(null, bar.data[j]); - arrMin[j] = min; - arrMax[j] = max; - } - var min = Math.min.apply(null, arrMin); - var max = Math.max.apply(null, arrMax); - } else { - var min = Math.min.apply(null, bar.data); - var max = Math.max.apply(null, bar.data); - } - var scale = bar.scale; - if (undefined == scale) { - scale = [max, min]; - } - if ("scatter" == bar.type) { - bar.scale = OfficeExcel.getScale(this.max, bar); - bar.xScale = OfficeExcel.getScale(true, bar); - if (bar._otherProps._ymax > 0 && bar._otherProps._ymin < 0) { - bar._chartGutter._bottom = 14; - bar._chartGutter._top = 14; - } else { - if (bar._otherProps._ymax <= 0 && bar._otherProps._ymin < 0) { - bar._chartGutter._bottom = 14; - bar._chartGutter._top = 14; - } else { - bar._chartGutter._bottom = 14 + 20; - bar._chartGutter._top = 14; - } - } - if (bar._otherProps._xmax > 0 && bar._otherProps._xmin < 0) { - bar._chartGutter._left = 22; - bar._chartGutter._right = 93; - } else { - if (bar._otherProps._xmax <= 0 && bar._otherProps._xmin < 0) { - bar._chartGutter._left = 22; - bar._chartGutter._right = 93; - } else { - bar._chartGutter._left = bar.context.measureText(Math.max.apply(null, bar.scale)).width + 22; - bar._chartGutter._right = 93; - } - } - } else { - if ("hbar" == bar.type || "bar" == bar.type) { - if ("hbar" == bar.type) { - bar._chartGutter._left = bar.context.measureText(Math.max.apply(null, [bar.data.length])).width + 20; - } else { - bar._chartGutter._left = bar.context.measureText(Math.max.apply(null, scale)).width + 20; - } - bar._chartGutter._right = 72; - bar._chartGutter._bottom = 35; - bar._chartGutter._top = 14; - } else { - if (axis == undefined) { - bar._chartGutter._left = bar.context.measureText(Math.max.apply(null, scale)).width + 20; - bar._chartGutter._right = 90; - if (min < 0 && max < 0 || min < 0 && max > 0) { - bar._chartGutter._bottom = 14; - } else { - bar._chartGutter._bottom = 35; - } - bar._chartGutter._top = 14; - } else { - if (axis == "OX") { - if (min < 0 && max < 0 || min < 0 && max > 0) { - bar._chartGutter._bottom = 14; - } else { - bar._chartGutter._bottom = 35; - } - } else { - if (axis == "OY") { - bar._chartGutter._left = bar.context.measureText(Math.max.apply(null, scale)).width + 20; - } - } - } - } - } -} -function calcAllMargin() { - if (typeof(bar.data[0]) == "object") { - var arrMin = []; - var arrMax = []; - for (var j = 0; j < bar.data.length; j++) { - min = Math.min.apply(null, bar.data[j]); - max = Math.max.apply(null, bar.data[j]); - arrMin[j] = min; - arrMax[j] = max; - } - var min = Math.min.apply(null, arrMin); - var max = Math.max.apply(null, arrMax); - } else { - var min = Math.min.apply(null, bar.data); - var max = Math.max.apply(null, bar.data); - } - var left = 0; - var standartMargin = 14; - left = 21; - if (bar._otherProps._key_halign == "left") { - left += 76; - } - if (bar._yAxisTitle._align == "rev") { - left += 28; - } else { - if (bar._yAxisTitle._align == "hor") { - left += 95; - } else { - if (bar._yAxisTitle._align == "ver") { - left += 0; - } - } - } - bar._chartGutter._left = standartMargin + left; - var right = 0; - if (bar._otherProps._key_halign == "right") { - right += 76; - } - bar._chartGutter._right = standartMargin + right; - var top = 0; - if (bar._otherProps._key_halign == "top") { - top += 32; - } - if (bar._chartTitle._text != null && bar._chartTitle._text != "") { - top += 42; - } - bar._chartGutter._top = standartMargin + top; - var bottom = 0; - if (min < 0 && max < 0 || min < 0 && max > 0) { - bottom = 14; - } else { - bottom = 35; - } - if (bar._otherProps._key_halign == "bottom") { - bottom += 32; - } - if (bar._xAxisTitle._text != "") { - bottom += 29; - } - bar._chartGutter._bottom = bottom; -} -$(function () { - $(".buttonColor").click(function () { - var nameVal = "#" + this.value; - if ("none" != $(nameVal).css("display")) { - $(nameVal).hide(); - } else { - $(nameVal).show(); - } - }); - $(".lineMainSelect1").click(function () { - var nameVal = "#" + "d" + this.id; - var parentDiv = $(this).parent().parent().parent().parent(); - var margin = parseInt(parentDiv.css("margin-left").replace("px", "")) + parseInt(parentDiv.css("width").replace("px", "")); - $(nameVal).css("margin-left", margin); - if ("none" != $(nameVal).css("display")) { - $(nameVal).hide(); - } else { - $(nameVal).show(); - } - }); - $(".getMainName").click(function () { - var id = this.id; - if ("mNNot" == id) { - bar._chartTitle._text = null; - calcAllMargin(); - } else { - if ("mNCenter" == id) { - bar._chartTitle._text = "�������� ���������"; - bar._chartTitle._vpos = 32; - bar._chartTitle._hpos = 0.5; - bar._chartTitle._size = 18; - } else { - if ("mNUnder" == id) { - bar._chartTitle._text = "�������� ���������"; - bar._chartTitle._vpos = 32; - bar._chartTitle._hpos = 0.5; - bar._chartTitle._size = 18; - calcAllMargin(); - } - } - } - upOptions(); - $(this).parent().parent().parent().parent().hide(); - $("#allMainMenu").children().hide(); - }); - $(".getNameAxes").click(function () { - var id = this.id; - if ("mNOXYHorNot" == id) { - if (bar._xAxisTitle._text != "" && bar._xAxisTitle._text != null) { - bar._xAxisTitle._text = ""; - calcAllMargin(); - } - } else { - if ("mNOXYHorUp" == id) { - if (bar._xAxisTitle._text == "" || bar._xAxisTitle._text == null) { - bar._xAxisTitle._text = "�������� ���"; - calcAllMargin(); - bar._xAxisTitle._vpos = bar.canvas.height - 23; - bar._xAxisTitle._hpos = bar._chartGutter._left + (bar.canvas.width - bar._chartGutter._left - bar._chartGutter._right) / 2; - bar._xAxisTitle._size = 10; - } - } else { - if ("mNOXYVerNot" == id) { - bar._xAxisTitle._hpos = bar._chartGutter._left + (bar.canvas.width - bar._chartGutter._left - bar._chartGutter._right) / 2; - bar._yAxisTitle._text = ""; - bar._yAxisTitle._align = null; - calcAllMargin(); - } else { - if ("mNOXYVerCon" == id) { - bar._yAxisTitle._text = "�������� ���"; - bar._yAxisTitle._align = "rev"; - calcAllMargin(); - bar._yAxisTitle._vpos = bar._chartGutter._bottom + (bar.canvas.height - bar._chartGutter._top - bar._chartGutter._bottom) / 2; - var keyLeft = 0; - if (bar._otherProps._key_halign == "left") { - keyLeft = 70; - } - bar._yAxisTitle._hpos = 23 + keyLeft; - bar._yAxisTitle._angle = "null"; - bar._yAxisTitle._size = 10; - bar._xAxisTitle._hpos = bar._chartGutter._left + (bar.canvas.width - bar._chartGutter._left - bar._chartGutter._right) / 2; - } else { - if ("mNOXYVerName" == id) {} else { - if ("mNOXYHorName" == id) { - bar._yAxisTitle._text = "�������� ���"; - bar._yAxisTitle._align = "hor"; - calcAllMargin(); - bar._yAxisTitle._vpos = bar._chartGutter._bottom + (bar.canvas.height - bar._chartGutter._top - bar._chartGutter._bottom) / 2; - var keyLeft = 0; - if (bar._otherProps._key_halign == "left") { - keyLeft = 87; - } - bar._yAxisTitle._hpos = 48 + keyLeft; - bar._yAxisTitle._size = 10; - bar._yAxisTitle._angle = 0; - var keyLeft = 0; - if (bar._otherProps._key_halign == "left") { - keyLeft = 100; - } - bar._xAxisTitle._hpos = bar._chartGutter._left + (bar.canvas.width - bar._chartGutter._left - bar._chartGutter._right) / 2 + keyLeft; - } - } - } - } - } - } - upOptions(); - $(this).parent().parent().parent().parent().hide(); - $("#allMainMenu").children().hide(); - }); - $(".getAddKey").click(function () { - var id = this.id; - var heightVerKey = 90; - var heightHorKey = 0; - var widthVerKey = 32; - var widthHorKey = 0; - if ("keyOXYnot" == id) { - bar._otherProps._key_halign = null; - calcAllMargin(); - } else { - if ("keyOXYnotRight" == id) { - bar._otherProps._key_halign = "right"; - bar._otherProps._key_position_y = bar.canvas.height / 2 - heightVerKey / 2; - bar._otherProps._key_position_x = bar.canvas.width - widthVerKey - 28; - calcAllMargin(); - } else { - if ("keyOXYTop" == id) { - bar._otherProps._key_halign = "top"; - bar._otherProps._key_hpos = bar._otherProps._key_vpos = calcAllMargin(); - } else { - if ("keyOXYLeft" == id) { - bar._otherProps._key_halign = "left"; - bar._otherProps._key_position_y = bar.canvas.height / 2 - heightVerKey / 2; - bar._otherProps._key_position_x = 20; - calcAllMargin(); - } else { - if ("keyOXYBottom" == id) { - bar._otherProps._key_halign = "bottom"; - bar._otherProps._key_hpos = bar._otherProps._key_vpos = calcAllMargin(); - } - } - } - } - } - upOptions(); - $(this).parent().parent().parent().parent().hide(); - $("#allMainMenu").children().hide(); - }); - $(".lineMainSelect").click(function () { - var nameVal = "#" + this.id; - var massiveClass = $(".lineMainSelect"); - var widthCanvas = $("#myCanvas").css("width").replace("px", ""); - var heightCanvas = $("#myCanvas").css("height").replace("px", ""); - var temMass1 = "[1,2,3,4,5,6,7,8,9,10,11,12]"; - var defaultMas = ["���1"]; - var massiveCommand = ["TA_text", "TA_text;_vpos", "TA_text;_vpos", "TX_text", "TX_text", "TY_text", "TY_text", "TY_text", "TY_text", "_key", "_key", "_key", "_key", "_key", "_labels_above", "_labels_above", "_labels_above", "_labels.above", "_labels.above", "_labels.above", "tableBase", "tableBase", "tableBase", "_labels", "_labels", "_labels", "_labels", "_ylabels", "_ylabels", "_ylabels", "_ylabels", "_ylabels", "_ylabels", "_background_grid", "_background_grid", "_background_grid", "_background_grid", "_background_grid", "_background_grid", "_background_grid"]; - var massiveDefault = ["null", "�������� ���������;1", "�������� ���������;null", "null", "�������� ��� X", "null", "�������� ��� Y", "�������� ��� Y", "�������� ��� Y", "null", "['���1']", "['���1']", defaultMas, defaultMas, "false", "true", "true", "true", "true", "true", "tableBase", "tableBase", "tableBase", "null", temMass, temMass, temMass, "false", "true", "true", "true", "true", "true", "null", "true", "true", "true", "null", "true", "true"]; - for (var i = 0; i < massiveClass.length; i++) { - if (this == massiveClass[i]) { - var tempDefault; - var massiveDefTemp; - var massiveComTemp = massiveCommand[i].split(";"); - if (undefined == massiveDefault[i].split) { - massiveDefTemp = massiveDefault[i]; - } else { - massiveDefTemp = massiveDefault[i].split(";"); - } - for (var n = 0; n < massiveComTemp.length; n++) { - var checkDoubleName = massiveComTemp[n].substr(0, 2); - if ("null" == massiveDefTemp[n]) { - tempDefault = null; - } else { - if ("true" == massiveDefTemp[n]) { - tempDefault = true; - } else { - if ("false" == massiveDefTemp[n]) { - tempDefault = false; - } else { - tempDefault = parseInt(massiveDefTemp[n]); - } - } - } - if (isNaN(tempDefault)) { - tempDefault = massiveDefTemp[n]; - } - if ("TA" == checkDoubleName) { - bar._chartTitle[massiveComTemp[n].replace("TA", "")] = tempDefault; - } else { - if ("TY" == checkDoubleName) { - bar._yAxisTitle[massiveComTemp[n].replace("TY", "")] = tempDefault; - } else { - if ("TX" == checkDoubleName) { - bar._xAxisTitle[massiveComTemp[n].replace("TX", "")] = tempDefault; - } else { - if ("undefined" != typeof bar._otherProps[massiveComTemp[n]]) { - bar._otherProps[massiveComTemp[n]] = tempDefault; - } else { - if ("undefined" != typeof bar._chartGutter[massiveComTemp[n]]) { - bar._chartGutter[massiveComTemp[n]] = tempDefault; - } else { - if ("undefined" != typeof bar._chartTitle[massiveComTemp[n]]) { - bar._chartTitle[massiveComTemp[n]] = tempDefault; - } else { - if ("undefined" != typeof bar._shadow[massiveComTemp[n]]) { - bar._shadow[massiveComTemp[n]] = tempDefault; - } else { - if ("undefined" != typeof bar._tooltip[massiveComTemp[n]]) { - bar._tooltip[massiveComTemp[n]] = tempDefault; - } else { - if ("undefined" != typeof bar._xAxisTitle[massiveComTemp[n]]) { - bar._xAxisTitle[massiveComTemp[n]] = tempDefault; - } else { - if ("undefined" != typeof bar._yAxisTitle[massiveComTemp[n]]) { - bar._yAxisTitle[massiveComTemp[n]] = tempDefault; - } - } - } - } - } - } - } - } - } - } - } - upOptions(); - break; - } - } - $(this).parent().parent().parent().parent().hide(); - $("#allMainMenu").children().hide(); - }); - $("#commandButton").click(function () { - var value = $("#optionsMin1").val(); - var command = $("#TEST11")[0].selectedOptions[0].innerText; - if (!isNaN(parseInt(value))) { - value = parseInt(value); - } else { - if (value == "null") { - value = null; - } else { - if (value == "false") { - value = false; - } else { - if (value == "true") { - value = true; - } - } - } - } - addOptions(command, value); - }); - $("#angleTextX").click(function () { - var value = $("#varAngle").val(); - bar._otherProps._text_angle = parseInt(value); - upOptions(); - }); - $(".colorWatchNamerBack").click(function () { - var color = $(this).css("background-color"); - $("#colorNameBox").hide(); - bar._otherProps._tickmarks_linewidth = 3; - bar._chartTitle._background = color; - upOptions(); - }); - $(".colorWatchMarkerLine").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxMarkerLine").hide(); - bar._otherProps._tickmarks_dot_color = color; - upOptions(); - }); - $(".colorWatchNamerXBack").click(function () { - var color = $(this).css("background-color"); - $("#colorNameXBox").hide(); - bar._xAxisTitle._font = color; - upOptions(); - }); - $(".colorWatchNamerYBack").click(function () { - var color = $(this).css("background-color"); - $("#colorNameYBox").hide(); - bar._yAxisTitle._font = color; - upOptions(); - }); - $(".colorAMBack").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxAM").hide(); - var colorNew = [color]; - bar._otherProps._colors = colorNew; - upOptions(); - }); - $(".colorWatchArBack").click(function () { - var color = $(this).css("background-color"); - $("#colorBox").hide(); - bar._otherProps._background_barcolor1 = color; - bar._otherProps._background_barcolor2 = color; - upOptions(); - }); - $(".colorWatchGrid").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxGrid").hide(); - bar._otherProps._background_grid_color = color; - upOptions(); - }); - $(".colorWatchBackKeyColor").click(function () { - var color = $(this).css("background-color"); - $("#keyBackColorBox").hide(); - bar._otherProps._key_background = color; - upOptions(); - }); - $(".colorWatchKeyColor").click(function () { - var color = $(this).css("background-color"); - $("#keyColorBox").hide(); - bar._otherProps._key_background = color; - upOptions(); - }); - $(".colorWatchKeyColor").click(function () { - var color = $(this).css("background-color"); - $("#keyColorBox").hide(); - bar._otherProps._key_background = color; - upOptions(); - }); - $(".colorWatchLine").click(function () { - var color = [$(this).css("background-color")]; - $("#colorBoxLine").hide(); - bar._otherProps._colors = color; - upOptions(); - }); - $(".colorWatchLineBar").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxLine").hide(); - bar._otherProps._strokecolor = color; - upOptions(); - }); - $(".colorWatchShadowLine").click(function () { - var color = [$(this).css("background-color")]; - $("#colorBoxShadowLine").hide(); - bar._shadow._visible = true; - bar._shadow._color = color; - upOptions(); - }); - $(".colorWatchShadowKey").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxShadowKey").hide(); - bar._otherProps._key_shadow = true; - bar._otherProps._key_shadow_color = color; - upOptions(); - }); - $(".colorWatchAYBack").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxAYBack").hide(); - addOptions("chart.ylabels.inside", true); - bar._otherProps._ylabels_inside = true; - addOptions("chart.ylabels.inside.color", color); - bar._otherProps._ylabels_inside_color = color; - upOptions(); - }); - $(".colorWatchAYCol").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxAYCol").hide(); - bar._otherProps._noaxes = false; - bar._otherProps._axis_color = color; - upOptions(); - }); - $(".colorWatchAXCol").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxAXCol").hide(); - bar._otherProps._noaxes = false; - bar._otherProps._axis_color = color; - upOptions(); - }); - $(".colorWatchAXBack").click(function () { - var color = $(this).css("background-color"); - $("#colorBoxAXBack").hide(); - bar._otherProps._xlabels_inside = true; - bar._otherProps._xlabels_inside_color = color; - upOptions(); - }); - $(".optionsDiffIntAY").click(function () { - var valInt = $("#optionsDiffInt").val(); - var valIntNum = $("#optionsXVal").val(); - alert("�������� ����� ���������� �� OX ����������"); - }); - $(".lineSpacingSelect").click(function () { - var valueSelect = this.id; - var allChild = $(this).parent().parent().children(); - var styleMass = []; - for (var i = 0; i < allChild.length; i++) { - var nameFunc = allChild[i].children[0].id; - styleMass[i] = nameFunc; - } - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i] + "P"; - $(temp).hide(); - } - var valueInput = "#" + valueSelect + "P"; - $(valueInput).show(); - }); - $(".buttonMaket").click(function () { - var nameVal = "#" + this.parentNode.id + "P"; - if ("none" != $(nameVal).css("display")) { - $(nameVal).hide(); - } else { - $(nameVal).show(); - } - }); - $(".varOptionsAxisY").click(function () { - var tempMin = parseInt($("#optionsMin").val()); - var tempMax = parseInt($("#optionsMax").val()); - var tempDiff = parseInt($("#optionsDiff").val()); - bar._otherProps._numyticks = parseInt((tempMax - tempMin) / tempDiff); - bar._otherProps._ymin = tempMin; - bar._otherProps._ymax = tempMax; - upOptions(); - }); - $("#myCanvas").dblclick(function (e) { - var sd; - }); - $("#tempBase64").click(function () { - bar._otherProps._background_image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAsCAMAAACkN+1nAAABqlBMVEUAAAADAwMGBgYJCQkMDAwPDw8SEhIVFRUYGBgbGxseHh4hISEkJCQnJycqKiotLS0wMDAzMzM2NjY5OTk8PDw/Pz9CQkJFRUVISEhLS0tOTk5RUVFUVFRXV1daWlpdXV1gYGBjY2NmZmZpaWlsbGxvb29ycnJ4eHh7e3t+fn6BgYGEhISHh4eKioqNjY2QkJCTk5OWlpaZmZmcnJyfn5+ioqKlpaWoqKirq6uurq6xsbG0tLS3t7e6urq9vb3AwMDDw8PGxsbJycnMzMzPz8/S0tLV1dXY2Njb29ve3t7h4eHk5OTn5+fq6urt7e3w8PDz8/P29vb5+fn8/Pz/AAD/AwP/Bgb/CQn/DAz/Dw//EhL/FRX/GBj/Gxv/Hh7/ISH/JCT/Jyf/MDD/MzP/Pz//QkL/SEj/S0v/Tk7/UVH/YGD/Zmb/aWn/bGz/cnL/dXX/eHj/e3v/fn7/hIT/jY3/k5P/lpb/mZn/nJz/n5//paX/q6v/rq7/tLT/w8P/xsb/z8//1dX/2Nj/29v/3t7/4eH/5OT/7e3/8PD/8/P/9vb/+fn//Pz////dxpC1AAADeUlEQVR42u3V6VcTZxSA8WfIrlIbFCS0TSUUKBBToCGEpYhQCSKGhIyttZVaaWv3zbrQTW3rWu7/3DvJTAayDB7PmXP84PNlkpNkfufOO/MGqfb49vXtD0ztqvhQDblz2bT7yDfke9Pqs+0tH5HbKnzyxyORW/4hDz40zWsPRXxFfjTNi/fFX2RXF/1r8Rm5qyuy4zdyU5H7fiM/KPLUb+RbReQ5kPXsWLYo7drMj03kyy7SPMkURMUqBlNSLYXdCak1GgACWbEqB2BGj5UEdIrVfAwt/NaGjfykyN/7kQkIiVUIJqRaErvjUm2IWnOibQA5PeaAvGjTBtWMgo3s2HeXN/IGROLxsIPMAcPz3RAt70GOwjHRCkFILGQPMyw28kCRrw5EEli/SDpIHFIiF0Iw7iKzwKJofXBkU6Q0VnIQ+Vyf+LvPgIy6yDKwLNX3CRfpgj7RzgKzDdvKXzrK1j8HID1wykWGISbauxDYdJAFZw0G4ZA0ILp56clv/OuJHIOsi+i7XtFOAysO0gMDYnUY+psQ+c60a490wnwdqRgwJNoqMGsjSxA8L1oRmGhG5LcrjUhg0ipQ/3oEluvIOSAj2howZSN9MCJWi8BCC6S6S366veUidg5SBtbryHvAoSPuFywkBdGS2AtFoRXypWleeiS32iIrEJE6MouTiwQgVBSrDLDWAvlTB/lFFGl3uWagx0VyQG/qeLxavoakO+BtsRppjexeM83Lj73urlEYcpFpYE6c7DXph+C6jbS6XHpy84Z4IQnIucg8kG9ECgYMOpfrdBPyRO+tj594IZUQRtFF3gfeaUSsDzvO1/ZwJpuQn3WQX8ULWYRecZFNA5JNyIoB/faukmxEHl4yzStPPZEBmK4jWheENhoReR2MVR07CKFSA/KNDnJTvJByhM7KXiQDpBoQd4STwOB+5N5F3R//80TGISs2EhdtPQj0VxoQ6QPjrMgZtLHKXuQLHeSOeCClbj28GrcKo6+sm/cUWiSZ6nkltgdZAl6zRyH2Zqormq4h1nN4ddcLWWN/aXsmu4KLyAlgSaTcjZ2SGtf1L+t3qbWjz6RokxAVqzBMtkYkHQRrLuvkpQ6YEW0pDAlRZagDzeg/V0PkwCxEnAYcRErTmczcqrSpmEuPL26IPD/yzL1gyIUAR8VpBCPvA9LcS+Ql8gIh/wO4jFzH/PtOVAAAAABJRU5ErkJggg=="; - upOptions(); - }); - $(".formatAreaBackground").click(function () { - var dsf; - }); - $(".buttonDifComm").click(function () { - var id = this.id; - var valueLeft; - var valueRight; - var mainValueL = id.split("command")[1]; - var mainObj; - if (id == "commandotherProps") { - mainObj = bar._otherProps; - } else { - if (id == "commandchartGutter") { - mainObj = bar._chartGutter; - } else { - if (id == "commandchartTitle") { - mainObj = bar._chartTitle; - } else { - if (id == "commandshadow") { - mainObj = bar._shadow; - } else { - if (id == "commandxAxisTitle") { - mainObj = bar._xAxisTitle; - } else { - if (id == "commandyAxisTitle") { - mainObj = bar._yAxisTitle; - } else { - if (id == "commandzoom") { - mainObj = bar._zoom; - } else { - if (id == "commandtooltip") { - mainObj = bar._tooltip; - } - } - } - } - } - } - } - } - valueLeft = $("#" + mainValueL).val().split(":")[0]; - valueRight = $("#" + mainValueL + "Min").val(); - if (!isNaN(valueRight)) { - valueRight = parseInt(valueRight); - } - if ("null" == valueRight) { - valueRight = null; - } else { - if ("true" == valueRight) { - valueRight = true; - } else { - if ("false" == valueRight) { - valueRight = false; - } - } - } - mainObj[valueLeft] = valueRight; - upOptions(); - }); - $("#myCanvas").click(function () { - $("#hiddenCanvas").show(); - }); - $("#hiddenWorkArea").click(function () { - $("#hiddenWorkArea").css("border", "2px solid grey"); - }); - $("#hiddenCanvas").draggable({ - start: function (event, ui) { - $("#hiddenCanvas").addClass("opacitBack"); - }, - stop: function (event, ui) { - $("#myCanvas").offset({ - top: $("#hiddenCanvas").offset().top + parseInt($("#hiddenCanvas").css("border-width")), - left: $("#hiddenCanvas").offset().left + parseInt($("#hiddenCanvas").css("border-width")), - }); - $("#hiddenCanvas").removeClass("opacitBack"); - } - }); - $("#hiddenWorkArea").draggable({ - containment: "parent", - start: function (event, ui) {}, - stop: function (event, ui) { - $("#myCanvas").offset({ - top: $("#hiddenCanvas").offset().top + parseInt($("#hiddenCanvas").css("border-width")), - left: $("#hiddenCanvas").offset().left + parseInt($("#hiddenCanvas").css("border-width")), - }); - var top = parseInt($("#hiddenWorkArea").offset().top) - parseInt($("#hiddenCanvas").offset().top) - parseInt($("#hiddenCanvas").css("border-width")); - var left = parseInt($("#hiddenWorkArea").offset().left) - parseInt($("#hiddenCanvas").offset().left) - parseInt($("#hiddenCanvas").css("border-width")); - var right = parseInt($("#hiddenCanvas").css("width")) - left - parseInt($("#hiddenWorkArea").css("width")); - var bottom = parseInt($("#hiddenCanvas").css("height")) - top - parseInt($("#hiddenWorkArea").css("height")); - bar._chartGutter._top = top; - bar._chartGutter._bottom = bottom; - bar._chartGutter._left = left; - bar._chartGutter._right = right; - upOptions(); - } - }); - $("#hiddenCanvas").resizable({ - handles: "all", - ghost: true, - start: function (event, ui) { - $("#hiddenCanvas").addClass("opacitBack"); - }, - stop: function (event, ui) { - $("#myCanvas").offset({ - top: $("#hiddenCanvas").offset().top + parseInt($("#hiddenCanvas").css("border-width")), - left: $("#hiddenCanvas").offset().left + parseInt($("#hiddenCanvas").css("border-width")), - }); - $("#myCanvas").css("height", $("#hiddenCanvas").css("height")); - $("#myCanvas").css("width", $("#hiddenCanvas").css("width")); - myCanvas.width = parseInt($("#hiddenCanvas").css("width")); - myCanvas.height = parseInt($("#hiddenCanvas").css("height")); - $("#hiddenCanvas").removeClass("opacitBack"); - upOptions(); - } - }); - $("#hiddenWorkArea").resizable({ - containment: "parent", - handles: "all", - stop: function (event, ui) { - $("#myCanvas").offset({ - top: $("#hiddenCanvas").offset().top + parseInt($("#hiddenCanvas").css("border-width")), - left: $("#hiddenCanvas").offset().left + parseInt($("#hiddenCanvas").css("border-width")), - }); - var top = parseInt($("#hiddenWorkArea").offset().top) - parseInt($("#hiddenCanvas").offset().top) - parseInt($("#hiddenCanvas").css("border-width")); - var left = parseInt($("#hiddenWorkArea").offset().left) - parseInt($("#hiddenCanvas").offset().left) - parseInt($("#hiddenCanvas").css("border-width")); - var right = parseInt($("#hiddenCanvas").css("width")) - left - parseInt($("#hiddenWorkArea").css("width")); - var bottom = parseInt($("#hiddenCanvas").css("height")) - top - parseInt($("#hiddenWorkArea").css("height")); - bar._chartGutter._top = top; - bar._chartGutter._bottom = bottom; - bar._chartGutter._left = left; - bar._chartGutter._right = right; - upOptions(); - } - }); - document.onclick = function (e) { - if ("myCanvas" != e.target.id && "hiddenCanvas" != e.target.id && "hiddenWorkArea" != e.target.id) { - $("#hiddenCanvas").hide(); - } else { - $("#hiddenCanvas").show(); - } - }; -}); -function reBuild() { - var bar1 = new OfficeExcel.Line("myCanvas", data); - bar1._chartGutter = bar._chartGutter; - bar1._chartTitle = bar._chartTitle; - bar1._otherProps = bar._otherProps; - bar1._shadow = bar._shadow; - bar1._tooltip = bar._tooltip; - bar1._xAxisTitle = bar._xAxisTitle; - bar1._yAxisTitle = bar._yAxisTitle; - bar1._zoom = bar._zoom; - bar1.Draw(); - bar = bar1; -} -function forArBack(value) { - var styleMass = [allBackground, gradBackground, pictireBackground, colorBackground, autoBackground]; - bar._otherProps._background_image = null; - bar._otherProps._background_barcolor1 = "rgba(0,0,0,0)"; - bar._otherProps._background_barcolor2 = "rgba(0,0,0,0)"; - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forArBackAM(value) { - var styleMass = [allBackgroundAM, gradBackgroundAM, pictireBackgroundAM, colorBackgroundAM, autoBackgroundAM]; - value = value.value; - if ("notBackgroundAM" == value) { - bar._otherProps._colors = ["rgba(0,0,0,0)"]; - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forNameBack(value) { - var styleMass = [allNBackground, gradNBackground, pictireNBackground, colorNBackground, autoNBackground]; - if ("notNBackground" == value) { - bar._chartTitle._background = null; - upOptions(); - } - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forNameXBack(value) { - var styleMass = [allNXBackground, gradNXBackground, pictireNXBackground, colorNXBackground, autoNXBackground]; - if ("notNXBackground" == value) { - bar._xAxisTitle.font = null; - upOptions(); - } - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forNameYBack(value) { - var styleMass = [allNYBackground, gradNYBackground, pictireNYBackground, colorNYBackground, autoNYBackground]; - if ("notNYBackground" == value) { - bar._yAxisTitle.font = null; - upOptions(); - } - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forAXOpInt(value) { - if (value == "valIntAX") { - $("#optionsXVal").attr("disabled", false); - } else { - $("#optionsXVal").attr("disabled", "disabled"); - } -} -function OYtoOX(value) { - if (value == "valMax") { - bar._otherProps._yaxispos = "right"; - } else { - bar._otherProps._yaxispos = "left"; - } - upOptions(); -} -function aMForAllMarker(value) { - var styleMass = [notMainLine, mainLine, gradMainLine, autoMainLine]; - if ("notMainLine" == value) { - bar._otherProps._linewidth = 0.01; - } else { - bar._otherProps._linewidth = $("#widthLineGraph").val(); - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function MForAllMarker(value) { - var styleMass = [notMainLine, mainLine, gradMainLine, autoMainLine]; - if ("notMainLine" == value) { - bar._otherProps._linewidth = 0.01; - } else { - bar._otherProps._linewidth = $("#widthLineGraph").val(); - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forKeyBackColor(value) { - var styleMass = [allKeyBackColor, gradKeyBackColor, pictireKeyBackColor, colorKeyBackColor, autoKeyBackColor]; - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forKeyColor(value) { - var styleMass = [allKeyColor, gradKeyColor, autoKeyColor]; - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forAYBack(value) { - var styleMass = [allBackgroundAY, gradBackgroundAY, pictireBackgroundAY, colorBackgroundAY, autoBackgroundAY]; - if ("notBackgroundAY" == value) { - bar._otherProps._ylabels_inside = false; - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forAYCol(value) { - var styleMass = [allColorAY, gradColorAY, autoColorAY]; - if ("notColorAY" == value) { - bar._otherProps._noaxes = true; - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forAXCol(value) { - var styleMass = [allColorAX, gradColorAX, autoColorAX]; - if ("notColorAX" == value) { - bar._otherProps._noaxes = true; - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function aMForAllMarkerLine(value) { - var styleMass = [notMarkerLine, markerLine, gradMarkerLine, autoMarkerLine]; - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forAXBack(value) { - var styleMass = [allBackgroundAX, gradBackgroundAX, pictireBackgroundAX, colorBackgroundAX, autoBackgroundAX]; - if ("notBackgroundAX" == value) { - bar._otherProps.xlabels_inside = false; - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forAllMarker1(value) { - if (value == "notOptionsMarker") { - bar._otherProps._tickmarks = 0; - bar._otherProps._ticksize = 0; - upOptions(); - return; - } - var styleMass = [insideOptionsMarker]; - if (value == "insideOptionsMarker") { - bar._otherProps._ticksize = 1; - bar._otherProps._tickmarks = "circle"; - } - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function forLineGrid(value) { - var styleMass = [allLineGrid, gradLineGrid, autoLineGrid]; - var gridDefault; - if ("notLineGrid" == value) { - gridDefault = false; - } else { - gridDefault = true; - } - bar._otherProps._background_grid_vlines = gridDefault; - bar._otherProps._background_grid_hlines = gridDefault; - upOptions(); - for (var i = 0; i < styleMass.length; i++) { - var temp = "#" + styleMass[i].id; - $(temp).hide(); - } - var valueInput = "#" + value; - $(valueInput).show(); -} -function sizeChange(value) { - var valueSize = value.value; - bar._otherProps._background_grid_width = valueSize; - upOptions(); -} -function sizeMarkerChange(value) { - var valueSize = value.value; - bar._otherProps._ticksize = valueSize; - upOptions(); -} -function sizeLineChange(value) { - var valueSize = value.value; - bar._otherProps._linewidth = parseInt(valueSize); - upOptions(); -} -function sizeAYChange(value) { - var valueSize = value.value; - addOptions("chart.axis.linewidth", parseInt(valueSize)); -} -function sizeAXChange(value) { - var valueSize = value.value; - addOptions("chart.axis.linewidth", parseInt(valueSize)); - bar._otherProps._linewidth = valueSize; -} -function sizeMarLineChange(value) { - var valueSize = value.value; - bar._otherProps._tickmarks_linewidth = parseInt(valueSize); - upOptions(); -} -function typeMarkerChange(value) { - var valueType = value.value; - bar._otherProps._tickmarks = valueType; - upOptions(); -} -function checkCurvyline(value) { - bar._otherProps._curvy = value.checked; - upOptions(); -} -function showWorkFunction(value) { - if (true == value.checked) { - $(".notFunction").css("display", "none"); - } else { - $(".notFunction").css("display", "block"); - } -} -function showAllOptions(value) { - if (true == value.checked) { - $("#showAllOptions").css("display", "block"); - } else { - $("#showAllOptions").css("display", "none"); - } -} -function checkKeyOnD(value) { - var check; - if (false == value.checked) { - check = "graph"; - } else { - check = "gutter"; - } - bar._otherProps._key_position = check; - upOptions(); -} -function invertY(value) { - bar._otherProps._ylabels_invert = value.checked; - upOptions(); -} -function shadowLineChange(value) { - var valueSize = value.value; - if ("false" == valueSize) { - valueSize = false; - } - bar._shadow._visible = valueSize; - upOptions(); -} -function shadowKeyChange(value) { - var valueSize = value.value; - if ("false" == valueSize) { - valueSize = false; - } - bar._otherProps._key_shadow = valueSize; - upOptions(); -} -function forKeyOptions(value) { - var positionKey = bar._otherProps._key_position; - var valueSize = value; - if ("graph" == positionKey) { - var width = $("#myCanvas").css("width").replace("px", ""); - var height = $("#myCanvas").css("height").replace("px", ""); - var x = 0; - var y = 0; - if ("left" == valueSize) { - x = 0; - y = height / 2; - } else { - if ("right" == valueSize) { - x = width; - y = height / 2; - } else { - if ("bottom" == valueSize) { - x = width / 2; - y = height - 50; - } else { - if ("top" == valueSize) { - x = width / 2; - y = 0; - } - } - } - } - bar._otherProps._key_position_x = x; - bar._otherProps._key_position_y = y; - } else { - var width = $("#myCanvas").css("width").replace("px", ""); - var height = $("#myCanvas").css("height").replace("px", ""); - var x = 0; - var y = 0; - if ("left" == valueSize) { - x = 0; - y = height / 2; - } else { - if ("right" == valueSize) { - x = width; - y = height / 2; - } else { - if ("bottom" == valueSize) { - x = width / 2; - y = 0; - } else { - if ("top" == valueSize) { - x = width / 2; - y = height; - } - } - } - } - bar._otherProps._key_position_x = x; - bar._otherProps._key_position_y = y; - } - upOptions(); -} -function sizeKeyWidthChange(value) { - var valueSize = value.value; - bar._otherProps._key_linewidth = parseInt(valueSize); - upOptions(); -} -function cFlatXChange(value) { - bar._otherProps._text_angle = parseInt(value.value); - upOptions(); -} -function changeDiagram(value) { - var valueSize = value.value; - if (valueSize == "1") { - addOptions("chart.title", "�������� ���������"); - addOptions("chart.title.xaxis", "�������� ��� X"); - addOptions("chart.title.yaxis", "�������� ��� Y"); - } else { - if (valueSize == "2") { - addOptions("chart.title", "�������� ���������"); - addOptions("chart.title.xaxis", ""); - addOptions("chart.title.yaxis", "�������� ��� Y"); - } else { - if (valueSize == "3") { - addOptions("chart.title", "�������� ���������"); - addOptions("chart.title.xaxis", ""); - addOptions("chart.title.yaxis", ""); - } else { - if (valueSize == "4") { - addOptions("chart.title", ""); - addOptions("chart.title.xaxis", ""); - addOptions("chart.title.yaxis", ""); - } - } - } - } -} -function insertAllOptions() { - var allOptions = ["chart.background.barcolor1", "chart.background.barcolor2", "chart.background.grid", "chart.background.grid.color", "chart.background.hbars", "chart.background.grid.hsize", "chart.background.grid.vsize", "chart.background.grid.width", "chart.background.grid.border", "chart.background.grid.hline", "chart.background.grid.vline", "chart.background.grid.autofit", "chart.background.grid.autofit.numhlines", "chart.background.grid.autofit.numvlines", "chart.background.grid.autofit.align", "chart.background.image", "chart.background.image.stretch", "chart.background.image.x", "chart.background.image.y", "chart.background.image.w", "chart.background.image.h", "chart.background.image.align", "chart.backdrop", "chart.backdrop.size", "chart.backdrop.alpha", "chart.labels.above", "chart.labels.above.size", "chart.labels", "chart.labels.ingraph", "chart.ylabels", "chart.ylabels.invert", "chart.ylabels.count", "chart.ylabels.inside", "chart.ylabels.inside.color", "chart.ylabels.specific", "chart.xlabels.inside", "chart.xlabels.inside.color", "chart.text.size", "chart.text.angle", "chart.text.font", "chart.text.color", "chart.gutter.left", "chart.gutter.right", "chart.gutter.top", "chart.gutter.bottom", "chart.hmargin", "chart.colors", "chart.colors.alternate", "chart.fillstyle", "chart.filled", "chart.filled.accumulative", "chart.filled.range", "chart.shadow", "chart.shadow.color", "chart.shadow.offsetx", "chart.shadow.offsety", "chart.shadow.blur", "chart.tooltips", "chart.tooltips.effect", "chart.tooltips.css.class", "chart.tooltips.override", "chart.tooltips.highlight", "chart.tooltips.hotspot.xonly", "chart.tooltips.coords.page", "chart.tooltips.hotspot.size", "chart.crosshairs", "chart.crosshairs.linewidth", "chart.crosshairs.color", "chart.crosshairs.hlines", "chart.crosshairs.vlines", "chart.contextmenu", "chart.annotatable", "chart.annotate.color", "chart.resizable", "chart.resize.handle.background", "chart.adjustable", "chart.title", "chart.title.font", "chart.title.size", "chart.title.bold", "chart.title.background", "chart.title.vpos", "chart.title.color", "chart.title.xaxis", "chart.title.xaxis.size", "chart.title.xaxis.font", "chart.title.xaxis.bold", "chart.title.yaxis", "chart.title.yaxis.size", "chart.title.yaxis.font", "chart.title.yaxis.bold", "chart.title.xaxis.pos", "chart.title.yaxis.pos", "chart.title.yaxis.align", "chart.key", "chart.key.background", "chart.key.halign", "chart.key.position", "chart.key.position.x", "chart.key.position.y", "chart.key.position.gutter.boxed", "chart.key.shadow", "chart.key.shadow.color", "chart.key.shadow.blur", "chart.key.shadow.offsetx", "chart.key.shadow.offsety", "chart.key.rounded", "chart.key.color.shape", "chart.key.linewidth", "chart.key.interactive", "chart.key.colors", "chart.units.post", "chart.units.pre", "chart.scale.decimals", "chart.scale.point", "chart.scale.thousand", "chart.scale.round", "chart.ymin", "chart.ymax", "chart.outofbounds", "chart.numxticks", "chart.numyticks", "chart.ticksize", "chart.tickdirection", "chart.axis.color", "chart.xaxispos", "chart.yaxispos", "chart.noaxes", "chart.axesontop", "chart.noendxtick", "chart.noendytick", "chart.zoom.factor", "chart.zoom.fade.in", "chart.zoom.fade.out", "chart.zoom.hdir", "chart.zoom.vdir", "chart.zoom.delay", "chart.zoom.frames", "chart.zoom.shadow", "chart.zoom.background", "chart.events.click", "chart.events.mousemove", "chart.tickmarks", "chart.tickmarks.dot.color", "chart.tickmarks.linewidth", "chart.stepped", "chart.linewidth", "chart.variant", "chart.animation.unfold.x", "chart.animation.unfold.y", "chart.animation.unfold.initial", "chart.chromefix", "chart.highlight.stroke", "chart.highlight.fill", "chart.curvy", "chart.curvy.factor"]; - var allDefaultOptions = ["Default: rgba(0,0,0,0)", "Default: rgba(0,0,0,0)", "Default: true", "Default: #eee", "Default: null", "Default: 25", "Default: 25", "Default: 1", "Default: true", "Default: true", "Default: true", "Default: true", "Default: 5", "Default: 20", "Default: false", "Default: null", "Default: true", "Default: null", "Default: null", "Default: null", "Default: null", "Default: null", "Default: false", "Default: 30", "Default: 0.2", "Default: false", "Default: 8", "Default: [] (An empty array)", "Default: null", "Default: true", "Default: false", "Default: 5", "Default: false", "Default: rgba(255,255,255,0.5)", "Default:null", "Default: false", "Default: rgba(255,255,255,0.5)", "Default: 10", "Default: 0 (Horizontal)", "Default: Arial", "Default: black", "Default: 25", "Default: 25", "Default: 25", "Default: 25", "Default: 0", 'Default: ["#f00", "#0f0", "", #00f", "#f0f", "#ff0", "#0ff"]', "Default: false", "Default: null", "Default: false", "Default: true", "Default: false", "Default: false", "Default: rgba(0,0,0,0.5)", "Default: 3", "Default: 3", "Default: 3", "Default: [] (An empty array)", "Default: fade", "Default: RGraph_tooltip", "Default: null", "Default: true", "Default: false", "Default:alse", "Default: 5", "Default: false", "Default: 1", "Default: #333", "Default: true", "Default: true", "Default: [] (An empty array)", "Default: false", "Default: black", "Default: false", "Default:ull", "Default: false", "Default: none", "Default: null", "Default: null", "Default: true", "Default: null", "Default: null", "Default: black", "Default: none", "Default: null", "Default: null", "Default: true", "Default: none", "Default: null", "Default: null", "Default: true", "Default: 0.25", "Default: 0.25", "Default: left", "Default: [] (An empty array)", "Default: white", "Default: null", "Default: graph", "Default: null", "Default: null", "Default: true", "Default: false", "Default: #666", "Default: 3", "Default: 2", "Default: 2", "Default: false", "Default: square", "Default: 1", "Default: false", "Default: null", "Default: none", "Default: none", "Default: 0", "Default: .", "Default: ,", "Default: null", "Default: null", "Default: null ", "Default: false", "Default: null (linked to number of datapoints)", "Default: 10", "Default: 3", "Default: -1 (-1s below, 1 is above)", "Default: black", "Default: bottom", "Default: left", "Default: false (the axes ARE drawn)", "Default: false", "Default: false (the end tick IS drawn)", "Default: false (the end tick ISrawn)", "Default: 1.5", "Default: true", "Default: true", "Default: right", "Default: down", "Default: 50", "Default: 10", "Default: true", "Default: true", "Default: null", "Default: null", "Default: null", "Default:#fff", "Default: null", "Default: false", "Default: 1", "Default: null", "Default: false", "Default: true", "Default: 2", "Default: true", "Default: black", "Default: rgba(255,255,255,0.5)", "Default: false", "Default: 0.25"]; - for (var i = 0; i < allOptions.length; i++) { - var option = document.createElement("option"); - option.innerText = allOptions[i]; - option.value = allDefaultOptions[i]; - $("#TEST11").append(option); - } -} -function allFunction(value) { - $("#defaultValue")[0].innerText = $("#TEST11").val(); -} -function insertAllGraphs() { - var allOptions = ["Bar", "Bipolar", "HorizontalBar", "Line", "Pie", "Donut", "Waterfall", "Radar ", "Rscatter", "Rose", "Scatter"]; - for (var i = 0; i < allOptions.length; i++) { - var option = document.createElement("option"); - option.innerText = allOptions[i]; - $("#varGraph").append(option); - } -} -function insertDiffOptions() { - var otherProps = ["_accumulative: false", "_adjustable: false", '_align: "center"', "_animation_factor: 1", "_animation_grow_factor: 1", "_animation_unfold_initial: 2", "_animation_unfold_x: false", "_animation_unfold_y: true", "_annotatable: false", '_annotate_color: "black"', "_axesontop: false", '_axis_color: "black"', "_backdrop: false", "_backdrop_alpha: 0.2", "_backdrop_size: 30", '_background_barcolor1: "rgba(0,0,0,0)"', '_background_barcolor2: "rgba(0,0,0,0)"', "_background_circles: true", "_background_grid: true", "_background_grid_autofit: true", "_background_grid_autofit_align: false", "_background_grid_autofit_numhlines: 5", "_background_grid_autofit_numvlines: 20", "_background_grid_border: true", '_background_grid_color: "#ddd"', "_background_grid_hlines: true", "_background_grid_hsize: 30", "_background_grid_vlines: true", "_background_grid_vsize: 21.5", "_background_grid_width: 1", "_background_hbars: null", "_background_image: null", "_background_image_align: null", "_background_image_stretch: true", "_background_image_x: null", "_background_image_y: null", "_background_vbars: null", "_border: false", '_border_color: "rgba(255,255,255,0.5)"', "_borders: true", "_boxplot_capped: true", "_boxplot_width: 1", "_centerx: null", "_centery: null", "_chromefix: true", "_circle: 0", '_circle_fill: "red"', '_circle_stroke: "black"', "_colors: Array[6]", "_colors_alpha: null", "_colors_alternate: null", '_colors_default: "black"', "_colors_reverse: false", "_colors_sequential: false", "_contextmenu: null", "_contextmenu_bg: null", "_contextmenu_submenu: null", "_crosshairs: false", '_crosshairs_color: "#333"', "_crosshairs_coords: false", "_crosshairs_coords_fadeout: false", "_crosshairs_coords_fixed: true", '_crosshairs_coords_labels_x: "X"', '_crosshairs_coords_labels_y: "Y"', "_crosshairs_hline: true", "_crosshairs_linewidth: 1", "_crosshairs_vline: true", "_curvy: false", "_curvy_factor: 0.25", '_defaultcolor: "white"', "_effect_roundrobin_multiplier: 1", "_events: Array[0]", "_events_click: null", "_events_mousemove: null", "_events_mousemove_revertto: null", "_exploded: 0", "_filled: false", "_filled_accumulative: true", "_filled_range: false", "_fillstyle: null", '_grouping: "grouped"', "_gutter_center: 60", '_highlight_fill: "rgba(255,255,255,0.5)"', '_highlight_stroke: "black"', '_highlight_style: "explode"', '_highlight_style_2d_fill: "rgba(255,255,255,0.5)"', '_highlight_style_2d_stroke: "rgba(255,255,255,0)"', "_hmargin: 5", "_key: Array[1]", '_key_background: "white"', '_key_color_shape: "square"', "_key_colors: null", '_key_halign: "right"', "_key_interactive: false", "_key_linewidth: 1", '_key_position: "graph"', "_key_position_gutter_boxed: true", "_key_position_x: null", "_key_position_y: null", "_key_rounded: true", "_key_shadow: false", "_key_shadow_blur: 3", '_key_shadow_color: "#666"', "_key_shadow_offsetx: 2", "_key_shadow_offsety: 2", "_key_text_size: 10", "_labels: Array[9]", "_labels_above: false", "_labels_above_angle: null", "_labels_above_decimals: 0", "_labels_above_size: null", '_labels_align: "bottom"', '_labels_axes: ""', "_labels_ingraph: null", "_labels_offset: 0", "_labels_offsetx: 10", "_labels_offsety: 10", '_labels_position: "center"', "_labels_specific: null", '_labels_specific_align: "left"', "_labels_sticks: false", '_labels_sticks_color: "#aaa"', "_labels_sticks_length: 7", "_largexticks: 5", "_largeyticks: 5", "_line: false", "_line_colors: Array[2]", "_line_linewidth: 1", "_line_shadow_blur: 2", '_line_shadow_color: "rgba(0,0,0,0)"', "_line_shadow_offsetx: 3", "_line_shadow_offsety: 3", "_line_stepped: false", "_line_visible: true", "_linewidth: 1.01", "_margin: 2", "_multiplier_w: 1", "_multiplier_x: 1", "_noaxes: false", "_noendxtick: false", "_noendytick: true", "_noredraw: false", "_noxaxis: false", "_noyaxis: false", "_numyticks: 10", "_outofbounds: false", "_radius: null", "_resizable:false", "_resize_handle_adjust: Array[2]", "_resize_handle_background: null", "_scale_decimals: 0", "_scale_formatter: null", '_scale_point: "."', "_scale_round: false", '_scale_thousand: ","', "_segments: Array[0]", "_smallxticks: 3", "_smallyticks: 3", "_stepped: false", '_strokecolor: "#666"', "_text_angle: 0", '_text_color: "black"', '_text_font: "Arial"', "_text_size: 10", "_tickdirection: -1", "_tickmarks: null", '_tickmarks_dot_color: "white"', "_tickmarks_linewidth: null", "_ticksize: 3", '_title_left: ""', '_title_right: ""', '_title_yaxis_align: "left"', '_title_yaxis_position: "left"', "_total: true", "_units_ingraph: false", '_units_post: ""', '_units_pre: ""', "_variant: null", "_vmargin: 3", "_xaxis: true", '_xaxispos: "bottom"', "_xlabels: true", "_xlabels_inside: false", '_xlabels_inside_color: "rgba(255,255,255,0.5)"', "_xlabels_offset: 0", "_xmax: 0", "_xmin: 0", "_xscale: false", "_xscale_formatter: null", "_xscale_numlabels: 10", '_xscale_units_post: ""', '_xscale_units_pre: ""', "_xtickinterval: null", "_xticks: null", '_yaxispos: "left"', "_ylabels: true", "_ylabels_count: 5", "_ylabels_inside: false", "_ylabels_inside_color: null", "_ylabels_invert: false", "_ylabels_specific: null", "_ymax: 0", "_ymin: 0"]; - var chartGutter = ["_bottom: 50", "_left: 100", "_right: 70", "_top: 50"]; - var chartTitle = ["_background: null", "_bold: true", "_color: null", "_font: null", "_hpos: null", "_size: null", '_text: ""', "_vpos: null"]; - var shadow = ["_blur: 3", '_color: "rgba(0,0,0,0.5)"', "_offset_x: 2", "_offset_y: 2", "_visible: false"]; - var xAxisTitle = ["_background: null", "_bold: true", "_color: null", "_font: null", "_hpos: null", "_size: null", '_text: ""', "_vpos: null"]; - var yAxisTitle = ["_background: null", "_bold: true", "_color: null", "_font: null", "_hpos: null", "_size: null", '_text: ""', "_vpos: null"]; - var zoom = ['_action: "zoom"', "_background: true", "_delay: 16.666", "_factor: 1.5", "_fade_in: true", "_fade_out: true", "_frames: 25", '_hdir: "right"', '_mode: "canvas"', "_shadow: true", "_thumbnail_fixed: false", "_thumbnail_height: 75", "_thumbnail_width: 75", '_vdir: "down"']; - var tooltip = ["_coords_adjust: null", '_css_class: "OfficeExcel_tooltip"', '_effect: "fade"', '_event: "onmousemove"', "_highlight: true", "_hotspot: 3", "_hotspot_xonly: false", "_override: null", "_tooltips: null"]; - for (var i = 0; i < otherProps.length; i++) { - var option = document.createElement("option"); - option.innerText = otherProps[i]; - $("#otherProps").append(option); - } - for (var i = 0; i < chartGutter.length; i++) { - var option = document.createElement("option"); - option.innerText = chartGutter[i]; - $("#chartGutter").append(option); - } - for (var i = 0; i < chartTitle.length; i++) { - var option = document.createElement("option"); - option.innerText = chartTitle[i]; - $("#chartTitle").append(option); - } - for (var i = 0; i < shadow.length; i++) { - var option = document.createElement("option"); - option.innerText = shadow[i]; - $("#shadow").append(option); - } - for (var i = 0; i < xAxisTitle.length; i++) { - var option = document.createElement("option"); - option.innerText = xAxisTitle[i]; - $("#xAxisTitle").append(option); - } - for (var i = 0; i < yAxisTitle.length; i++) { - var option = document.createElement("option"); - option.innerText = yAxisTitle[i]; - $("#yAxisTitle").append(option); - } - for (var i = 0; i < zoom.length; i++) { - var option = document.createElement("option"); - option.innerText = zoom[i]; - $("#zoom").append(option); - } - for (var i = 0; i < tooltip.length; i++) { - var option = document.createElement("option"); - option.innerText = tooltip[i]; - $("#tooltip").append(option); - } -} \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/line.html b/OfficeWeb/sdk/Common/Charts/examples/line.html deleted file mode 100644 index 2c65bbe8..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/line.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - An example of the Line chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Line charts

    - - - -
    - -
    -

    - Like Bar charts, Line charts are one of the most versatile chart types. It is similar, but can indicate - chronological data better. Line charts are good if, for example, you want to illustrate sales figures - over a year (or any period of time). You'll then be able to easily see whether sales are going up, down - or are stagnant. It will also become apparent which months are busier than others. By using multiple - line charts you can show multiple sets of data (eg two or more years of figures) to your charts. You can - customise line charts by stipulating them as being filled, having drop shadows, keys, having the X - axis in the centre, different colors, different tickmark styles and tooltips etc. -

    - - -
    - -
    - [Please wait...] -
    -
    - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/pie.html b/OfficeWeb/sdk/Common/Charts/examples/pie.html deleted file mode 100644 index 510dfbf0..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/pie.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - An example of the Pie chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Pie charts

    - - - -
    -

    - Pie charts can be used when you need to represent a value as part of a whole. It is commonly used to represent - percentages, relative magnitudes or relative frequencies. If your intent is to compare a particular value (slice) - against the whole of the Pie chart, then it can be quite effective. If however you want to compare two seperate - segments, then it can get more difficult. If this is the case, you may want to consider bar charts or perhaps line charts. -

    - -

    - The colours can be customised, as can the borders (using the same color as the background. The charts can also have - a drop shadow if you want one. -

    - - -
    - -
    - [No canvas support] -
    - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/radar.html b/OfficeWeb/sdk/Common/Charts/examples/radar.html deleted file mode 100644 index c119bc8f..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/radar.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - An example of the Radar chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Radar charts

    - -
    - This chart used to be called the Tradar chart (T standing for "Traditional" - there used to be two Radar charts in OfficeExcel), - however now (July 2011), it has been renamed to the "Radar" chart to make it easier for people to identify. If you use it - you will need to update your code accordingly. Keep in mind that if you use the .type property - this has been updated too - (to radar). -
    - - - -
    -
    - -

    - Radar charts, that are similar to Rose charts. Each of the data points is - arranged equally in terms of angle, whilst the magnitude of each point is shown by the distance from the centre. Thus, - data points of a higher magnitude can be seen as they are more distant from the centre. -

    - -

    - Suitable for many datasets, but not all. If not, then Rose charts may be more apt. -

    - -

    - The circle, as can be seen in the second example, could be used to indicate a threshold of sorts. In the example, - it could be minimum sales required for a particular month. Months that fall below this threshold can be clearly seen. -

    - -
    - -
    - -
    - [No canvas support] -
    - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/rose.html b/OfficeWeb/sdk/Common/Charts/examples/rose.html deleted file mode 100644 index 28274af7..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/rose.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - An example of the Rose chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Rose charts

    - - - -

    - The Rose chart was formally called the Pseudo-Radar chart. -

    - - -
    -
    - A stacked Rose chart
    - [No canvas support] -
    -
    - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/rscatter.html b/OfficeWeb/sdk/Common/Charts/examples/rscatter.html deleted file mode 100644 index 031e15aa..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/rscatter.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - An example of the Radial Scatter chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Radial scatter charts

    - - - -

    - Radial scatter charts are a circular variant of regular Scatter charts, and as the name suggests, circular. They - may be more suited to your dataset than regular scatter charts. -

    - -
    - -
    - -
    - [No canvas support] -
    - - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/scatter.html b/OfficeWeb/sdk/Common/Charts/examples/scatter.html deleted file mode 100644 index 7436ac0b..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/scatter.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - An example of the Scatter chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Scatter charts

    - - - -

    - Scatter charts use two variables to plot points and makes it clear where there are congregations. The data points - make up the X and Y coordinates. The labels on the X axis are separate from the X units, allowing you to to have - lots of points, but only a few labels. The Scatter is a good chart to use if you want to show stock prices and - it also supports high/low charts - as shown below. -

    - -
    - -
    - -
    - - [No canvas support]
    - - Chart type: - -
    - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/showcase.html b/OfficeWeb/sdk/Common/Charts/examples/showcase.html deleted file mode 100644 index e69de29b..00000000 diff --git a/OfficeWeb/sdk/Common/Charts/examples/text.html b/OfficeWeb/sdk/Common/Charts/examples/text.html deleted file mode 100644 index bf96f0f0..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/text.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - Animated rotating text with the OfficeExcel software - - - - - - - - - - - - - - -

    A text function that does horizontal and vertical alignment (and spins)

    - - - - - - - - - - - -
    The fallback HTML
    -   -   - -
    - -

    - OfficeExcel.Text() is a text drawing function that allows vertical and horizontal alignment, and allows you to specify the angle of the - text too. The animation is done by a simple gobal variable, setTimeout() and redrawing the entire - canvas every frame. Perhaps not the most efficient of methods, but remember that your Javascript will likely be - running on computers that have more processing power than - some small countries... Reset the page -

    - -

    - In a similar vein you could easily make some text that bounces from one side of the screen to the other, - hurrah - the return of <marquee>! -

    - -
    - More examples can be found on the individual example pages, and a more complete - reference to the Text() function can be found in the API docs. -
    - - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/examples/waterfall.html b/OfficeWeb/sdk/Common/Charts/examples/waterfall.html deleted file mode 100644 index 0c14ddbf..00000000 --- a/OfficeWeb/sdk/Common/Charts/examples/waterfall.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - An example of the Waterfall chart - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Waterfall charts

    - - - -
    -

    - Waterfall charts can be used to represent sales and expenditure for an entity. More information can be found here: - http://en.wikipedia.org/wiki/Waterfall_chart -

    - - -
    - -
    - [No canvas support] -
    - - - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/format/╨д╨╛╤А╨╝╨░╤В ╨╛╨▒╨╗╨░╤Б╤В╨╕ ╨┐╨╛╤Б╤В╤А╨╛╨╡╨╜╨╕╤П.docx b/OfficeWeb/sdk/Common/Charts/format/╨д╨╛╤А╨╝╨░╤В ╨╛╨▒╨╗╨░╤Б╤В╨╕ ╨┐╨╛╤Б╤В╤А╨╛╨╡╨╜╨╕╤П.docx deleted file mode 100644 index 2e610de3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/format/╨д╨╛╤А╨╝╨░╤В ╨╛╨▒╨╗╨░╤Б╤В╨╕ ╨┐╨╛╤Б╤В╤А╨╛╨╡╨╜╨╕╤П.docx and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/alex.png b/OfficeWeb/sdk/Common/Charts/images/alex.png deleted file mode 100644 index b4bce5ee..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/alex.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/analogo.gif b/OfficeWeb/sdk/Common/Charts/images/analogo.gif deleted file mode 100644 index 9fd0aade..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/analogo.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/analogo.png b/OfficeWeb/sdk/Common/Charts/images/analogo.png deleted file mode 100644 index 8e921470..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/analogo.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/atom.png b/OfficeWeb/sdk/Common/Charts/images/atom.png deleted file mode 100644 index ac23fd7d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/atom.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara1.gif b/OfficeWeb/sdk/Common/Charts/images/bara1.gif deleted file mode 100644 index 9cdd5c21..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara1.png b/OfficeWeb/sdk/Common/Charts/images/bara1.png deleted file mode 100644 index 5b680241..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara16.gif b/OfficeWeb/sdk/Common/Charts/images/bara16.gif deleted file mode 100644 index d3bea17d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara16.png b/OfficeWeb/sdk/Common/Charts/images/bara16.png deleted file mode 100644 index 2e085c26..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara2.gif b/OfficeWeb/sdk/Common/Charts/images/bara2.gif deleted file mode 100644 index 1b978229..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara2.png b/OfficeWeb/sdk/Common/Charts/images/bara2.png deleted file mode 100644 index ec8904d6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara32.gif b/OfficeWeb/sdk/Common/Charts/images/bara32.gif deleted file mode 100644 index 919e4557..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara32.png b/OfficeWeb/sdk/Common/Charts/images/bara32.png deleted file mode 100644 index f2f1e60a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara4.gif b/OfficeWeb/sdk/Common/Charts/images/bara4.gif deleted file mode 100644 index 5f2200bd..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara4.png b/OfficeWeb/sdk/Common/Charts/images/bara4.png deleted file mode 100644 index 77a114be..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara8.gif b/OfficeWeb/sdk/Common/Charts/images/bara8.gif deleted file mode 100644 index dba41204..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bara8.png b/OfficeWeb/sdk/Common/Charts/images/bara8.png deleted file mode 100644 index a318390b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bara8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb1.gif b/OfficeWeb/sdk/Common/Charts/images/barb1.gif deleted file mode 100644 index 49a709aa..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb1.png b/OfficeWeb/sdk/Common/Charts/images/barb1.png deleted file mode 100644 index 59395506..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb16.gif b/OfficeWeb/sdk/Common/Charts/images/barb16.gif deleted file mode 100644 index 7d327d45..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb16.png b/OfficeWeb/sdk/Common/Charts/images/barb16.png deleted file mode 100644 index 2c78916f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb2.gif b/OfficeWeb/sdk/Common/Charts/images/barb2.gif deleted file mode 100644 index d8fcec29..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb2.png b/OfficeWeb/sdk/Common/Charts/images/barb2.png deleted file mode 100644 index cd365f5f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb32.gif b/OfficeWeb/sdk/Common/Charts/images/barb32.gif deleted file mode 100644 index 5579e9d3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb32.png b/OfficeWeb/sdk/Common/Charts/images/barb32.png deleted file mode 100644 index fe4049cd..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb4.gif b/OfficeWeb/sdk/Common/Charts/images/barb4.gif deleted file mode 100644 index 726cd51a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb4.png b/OfficeWeb/sdk/Common/Charts/images/barb4.png deleted file mode 100644 index 13e38e92..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb8.gif b/OfficeWeb/sdk/Common/Charts/images/barb8.gif deleted file mode 100644 index eb82f0c4..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barb8.png b/OfficeWeb/sdk/Common/Charts/images/barb8.png deleted file mode 100644 index 00db16cb..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barb8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc1.gif b/OfficeWeb/sdk/Common/Charts/images/barc1.gif deleted file mode 100644 index ac54bcd1..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc1.png b/OfficeWeb/sdk/Common/Charts/images/barc1.png deleted file mode 100644 index 797123b1..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc16.gif b/OfficeWeb/sdk/Common/Charts/images/barc16.gif deleted file mode 100644 index e81b8b4b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc16.png b/OfficeWeb/sdk/Common/Charts/images/barc16.png deleted file mode 100644 index 9309f185..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc2.gif b/OfficeWeb/sdk/Common/Charts/images/barc2.gif deleted file mode 100644 index c31c1229..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc2.png b/OfficeWeb/sdk/Common/Charts/images/barc2.png deleted file mode 100644 index e9894c6b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc32.gif b/OfficeWeb/sdk/Common/Charts/images/barc32.gif deleted file mode 100644 index a2d943b9..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc32.png b/OfficeWeb/sdk/Common/Charts/images/barc32.png deleted file mode 100644 index 25bf53ca..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc4.gif b/OfficeWeb/sdk/Common/Charts/images/barc4.gif deleted file mode 100644 index 757f05ec..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc4.png b/OfficeWeb/sdk/Common/Charts/images/barc4.png deleted file mode 100644 index 10f42382..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc8.gif b/OfficeWeb/sdk/Common/Charts/images/barc8.gif deleted file mode 100644 index 3dea117a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barc8.png b/OfficeWeb/sdk/Common/Charts/images/barc8.png deleted file mode 100644 index b9550cd5..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barc8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard1.gif b/OfficeWeb/sdk/Common/Charts/images/bard1.gif deleted file mode 100644 index 20df12ab..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard1.png b/OfficeWeb/sdk/Common/Charts/images/bard1.png deleted file mode 100644 index 08e8c06a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard16.gif b/OfficeWeb/sdk/Common/Charts/images/bard16.gif deleted file mode 100644 index 02effec6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard16.png b/OfficeWeb/sdk/Common/Charts/images/bard16.png deleted file mode 100644 index c5061e5c..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard2.gif b/OfficeWeb/sdk/Common/Charts/images/bard2.gif deleted file mode 100644 index 5ff157ea..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard2.png b/OfficeWeb/sdk/Common/Charts/images/bard2.png deleted file mode 100644 index f56db0ac..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard32.gif b/OfficeWeb/sdk/Common/Charts/images/bard32.gif deleted file mode 100644 index da07a92a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard32.png b/OfficeWeb/sdk/Common/Charts/images/bard32.png deleted file mode 100644 index 8b507f47..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard4.gif b/OfficeWeb/sdk/Common/Charts/images/bard4.gif deleted file mode 100644 index af9bbf4b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard4.png b/OfficeWeb/sdk/Common/Charts/images/bard4.png deleted file mode 100644 index 7f6ff824..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard8.gif b/OfficeWeb/sdk/Common/Charts/images/bard8.gif deleted file mode 100644 index b9c0faba..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bard8.png b/OfficeWeb/sdk/Common/Charts/images/bard8.png deleted file mode 100644 index c49f78b2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bard8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare1.gif b/OfficeWeb/sdk/Common/Charts/images/bare1.gif deleted file mode 100644 index 12ef53f4..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare1.png b/OfficeWeb/sdk/Common/Charts/images/bare1.png deleted file mode 100644 index 3dbd49a3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare16.gif b/OfficeWeb/sdk/Common/Charts/images/bare16.gif deleted file mode 100644 index 1e06ff5a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare16.png b/OfficeWeb/sdk/Common/Charts/images/bare16.png deleted file mode 100644 index 7b540c3b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare2.gif b/OfficeWeb/sdk/Common/Charts/images/bare2.gif deleted file mode 100644 index b807ac50..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare2.png b/OfficeWeb/sdk/Common/Charts/images/bare2.png deleted file mode 100644 index f47d362e..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare32.gif b/OfficeWeb/sdk/Common/Charts/images/bare32.gif deleted file mode 100644 index 6b7dae94..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare32.png b/OfficeWeb/sdk/Common/Charts/images/bare32.png deleted file mode 100644 index 9497e248..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare4.gif b/OfficeWeb/sdk/Common/Charts/images/bare4.gif deleted file mode 100644 index 8cad3114..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare4.png b/OfficeWeb/sdk/Common/Charts/images/bare4.png deleted file mode 100644 index 55e90888..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare8.gif b/OfficeWeb/sdk/Common/Charts/images/bare8.gif deleted file mode 100644 index 9929573b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bare8.png b/OfficeWeb/sdk/Common/Charts/images/bare8.png deleted file mode 100644 index 39462943..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bare8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf1.gif b/OfficeWeb/sdk/Common/Charts/images/barf1.gif deleted file mode 100644 index 40ccb7b3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf1.png b/OfficeWeb/sdk/Common/Charts/images/barf1.png deleted file mode 100644 index 5b680241..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf16.gif b/OfficeWeb/sdk/Common/Charts/images/barf16.gif deleted file mode 100644 index 06da0a86..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf16.png b/OfficeWeb/sdk/Common/Charts/images/barf16.png deleted file mode 100644 index 89e0f68f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf2.gif b/OfficeWeb/sdk/Common/Charts/images/barf2.gif deleted file mode 100644 index b1bbdac2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf2.png b/OfficeWeb/sdk/Common/Charts/images/barf2.png deleted file mode 100644 index 0301e204..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf32.gif b/OfficeWeb/sdk/Common/Charts/images/barf32.gif deleted file mode 100644 index 7cc2992a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf32.png b/OfficeWeb/sdk/Common/Charts/images/barf32.png deleted file mode 100644 index 8c30b582..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf4.gif b/OfficeWeb/sdk/Common/Charts/images/barf4.gif deleted file mode 100644 index a321258f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf4.png b/OfficeWeb/sdk/Common/Charts/images/barf4.png deleted file mode 100644 index 381e5ee6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf8.gif b/OfficeWeb/sdk/Common/Charts/images/barf8.gif deleted file mode 100644 index da63a1b9..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barf8.png b/OfficeWeb/sdk/Common/Charts/images/barf8.png deleted file mode 100644 index 4ea096ac..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barf8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg1.gif b/OfficeWeb/sdk/Common/Charts/images/barg1.gif deleted file mode 100644 index b5a22015..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg1.png b/OfficeWeb/sdk/Common/Charts/images/barg1.png deleted file mode 100644 index 42943495..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg16.gif b/OfficeWeb/sdk/Common/Charts/images/barg16.gif deleted file mode 100644 index 289b0e8e..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg16.png b/OfficeWeb/sdk/Common/Charts/images/barg16.png deleted file mode 100644 index 21696d52..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg2.gif b/OfficeWeb/sdk/Common/Charts/images/barg2.gif deleted file mode 100644 index 22dc6847..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg2.png b/OfficeWeb/sdk/Common/Charts/images/barg2.png deleted file mode 100644 index c68a70f2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg32.gif b/OfficeWeb/sdk/Common/Charts/images/barg32.gif deleted file mode 100644 index b57f0a7f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg32.png b/OfficeWeb/sdk/Common/Charts/images/barg32.png deleted file mode 100644 index 62f3d489..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg4.gif b/OfficeWeb/sdk/Common/Charts/images/barg4.gif deleted file mode 100644 index 927951f1..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg4.png b/OfficeWeb/sdk/Common/Charts/images/barg4.png deleted file mode 100644 index 262d862f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg8.gif b/OfficeWeb/sdk/Common/Charts/images/barg8.gif deleted file mode 100644 index 625b9d6c..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barg8.png b/OfficeWeb/sdk/Common/Charts/images/barg8.png deleted file mode 100644 index a5704037..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barg8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh1.gif b/OfficeWeb/sdk/Common/Charts/images/barh1.gif deleted file mode 100644 index f09f1cfb..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh1.png b/OfficeWeb/sdk/Common/Charts/images/barh1.png deleted file mode 100644 index fd4293ea..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh16.gif b/OfficeWeb/sdk/Common/Charts/images/barh16.gif deleted file mode 100644 index cff0ef19..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh16.png b/OfficeWeb/sdk/Common/Charts/images/barh16.png deleted file mode 100644 index 02f5330d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh2.gif b/OfficeWeb/sdk/Common/Charts/images/barh2.gif deleted file mode 100644 index 0ff2a4c2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh2.png b/OfficeWeb/sdk/Common/Charts/images/barh2.png deleted file mode 100644 index 4aea2193..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh32.gif b/OfficeWeb/sdk/Common/Charts/images/barh32.gif deleted file mode 100644 index 3214fb14..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh32.png b/OfficeWeb/sdk/Common/Charts/images/barh32.png deleted file mode 100644 index 265baebb..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh4.gif b/OfficeWeb/sdk/Common/Charts/images/barh4.gif deleted file mode 100644 index af0b116b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh4.png b/OfficeWeb/sdk/Common/Charts/images/barh4.png deleted file mode 100644 index ff546aae..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh8.gif b/OfficeWeb/sdk/Common/Charts/images/barh8.gif deleted file mode 100644 index 60462be3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barh8.png b/OfficeWeb/sdk/Common/Charts/images/barh8.png deleted file mode 100644 index bcc8b31f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barh8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari1.gif b/OfficeWeb/sdk/Common/Charts/images/bari1.gif deleted file mode 100644 index a27f61c1..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari1.png b/OfficeWeb/sdk/Common/Charts/images/bari1.png deleted file mode 100644 index 9b6bc7b9..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari16.gif b/OfficeWeb/sdk/Common/Charts/images/bari16.gif deleted file mode 100644 index 71ce8c1c..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari16.png b/OfficeWeb/sdk/Common/Charts/images/bari16.png deleted file mode 100644 index 1ff4e4c4..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari2.gif b/OfficeWeb/sdk/Common/Charts/images/bari2.gif deleted file mode 100644 index da930d85..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari2.png b/OfficeWeb/sdk/Common/Charts/images/bari2.png deleted file mode 100644 index f519228f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari32.gif b/OfficeWeb/sdk/Common/Charts/images/bari32.gif deleted file mode 100644 index 3293a995..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari32.png b/OfficeWeb/sdk/Common/Charts/images/bari32.png deleted file mode 100644 index 3d0e340a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari4.gif b/OfficeWeb/sdk/Common/Charts/images/bari4.gif deleted file mode 100644 index b688bf57..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari4.png b/OfficeWeb/sdk/Common/Charts/images/bari4.png deleted file mode 100644 index e0f3f046..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari8.gif b/OfficeWeb/sdk/Common/Charts/images/bari8.gif deleted file mode 100644 index 5af4a5fc..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bari8.png b/OfficeWeb/sdk/Common/Charts/images/bari8.png deleted file mode 100644 index 75fcce4c..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bari8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj1.gif b/OfficeWeb/sdk/Common/Charts/images/barj1.gif deleted file mode 100644 index 12f3be6a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj1.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj1.png b/OfficeWeb/sdk/Common/Charts/images/barj1.png deleted file mode 100644 index 93b15813..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj16.gif b/OfficeWeb/sdk/Common/Charts/images/barj16.gif deleted file mode 100644 index 227798da..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj16.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj16.png b/OfficeWeb/sdk/Common/Charts/images/barj16.png deleted file mode 100644 index b5b57f22..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj16.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj2.gif b/OfficeWeb/sdk/Common/Charts/images/barj2.gif deleted file mode 100644 index dcbe4f17..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj2.png b/OfficeWeb/sdk/Common/Charts/images/barj2.png deleted file mode 100644 index 35c0a9d0..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj32.gif b/OfficeWeb/sdk/Common/Charts/images/barj32.gif deleted file mode 100644 index cc4513b0..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj32.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj32.png b/OfficeWeb/sdk/Common/Charts/images/barj32.png deleted file mode 100644 index 75cfb8d8..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj32.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj4.gif b/OfficeWeb/sdk/Common/Charts/images/barj4.gif deleted file mode 100644 index beece422..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj4.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj4.png b/OfficeWeb/sdk/Common/Charts/images/barj4.png deleted file mode 100644 index da91e063..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj8.gif b/OfficeWeb/sdk/Common/Charts/images/barj8.gif deleted file mode 100644 index c680ba38..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj8.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/barj8.png b/OfficeWeb/sdk/Common/Charts/images/barj8.png deleted file mode 100644 index 17105d4d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/barj8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bg.jpg b/OfficeWeb/sdk/Common/Charts/images/bg.jpg deleted file mode 100644 index 91d14d67..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bg.jpg and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bg.png b/OfficeWeb/sdk/Common/Charts/images/bg.png deleted file mode 100644 index 9fecc5c2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bg.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bn.business.png b/OfficeWeb/sdk/Common/Charts/images/bn.business.png deleted file mode 100644 index c37f7c4d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bn.business.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/bn.personal.png b/OfficeWeb/sdk/Common/Charts/images/bn.personal.png deleted file mode 100644 index 0db605e5..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/bn.personal.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/border-radius.png b/OfficeWeb/sdk/Common/Charts/images/border-radius.png deleted file mode 100644 index 9f163860..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/border-radius.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/buy.png b/OfficeWeb/sdk/Common/Charts/images/buy.png deleted file mode 100644 index 5edf2dd3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/buy.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/buzz.png b/OfficeWeb/sdk/Common/Charts/images/buzz.png deleted file mode 100644 index a5e3e546..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/buzz.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/chrome_logo.png b/OfficeWeb/sdk/Common/Charts/images/chrome_logo.png deleted file mode 100644 index 8738a800..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/chrome_logo.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/close.png b/OfficeWeb/sdk/Common/Charts/images/close.png deleted file mode 100644 index bbf7f46b..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/close.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/coins.jpg b/OfficeWeb/sdk/Common/Charts/images/coins.jpg deleted file mode 100644 index e108b712..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/coins.jpg and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/context.png b/OfficeWeb/sdk/Common/Charts/images/context.png deleted file mode 100644 index 573658bc..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/context.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/delicious.png b/OfficeWeb/sdk/Common/Charts/images/delicious.png deleted file mode 100644 index 1bda07e7..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/delicious.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/download-beta-sml.png b/OfficeWeb/sdk/Common/Charts/images/download-beta-sml.png deleted file mode 100644 index 5b876e08..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/download-beta-sml.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/download-beta.png b/OfficeWeb/sdk/Common/Charts/images/download-beta.png deleted file mode 100644 index d0f22d19..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/download-beta.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/download-stable-sml.png b/OfficeWeb/sdk/Common/Charts/images/download-stable-sml.png deleted file mode 100644 index ba52e640..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/download-stable-sml.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/download-stable.png b/OfficeWeb/sdk/Common/Charts/images/download-stable.png deleted file mode 100644 index 434304d7..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/download-stable.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/download.png b/OfficeWeb/sdk/Common/Charts/images/download.png deleted file mode 100644 index 722b4591..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/download.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/facebook.png b/OfficeWeb/sdk/Common/Charts/images/facebook.png deleted file mode 100644 index 40b9d279..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/facebook.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/favicon.ico b/OfficeWeb/sdk/Common/Charts/images/favicon.ico deleted file mode 100644 index 421f02db..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/favicon.ico and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/favicon.png b/OfficeWeb/sdk/Common/Charts/images/favicon.png deleted file mode 100644 index d3275e62..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/favicon.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/friendfeed.png b/OfficeWeb/sdk/Common/Charts/images/friendfeed.png deleted file mode 100644 index 66f593f6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/friendfeed.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/fuel-pump.png b/OfficeWeb/sdk/Common/Charts/images/fuel-pump.png deleted file mode 100644 index ed3e9a13..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/fuel-pump.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/google_+1_button.png b/OfficeWeb/sdk/Common/Charts/images/google_+1_button.png deleted file mode 100644 index 40cd4e31..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/google_+1_button.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/googlegroups.png b/OfficeWeb/sdk/Common/Charts/images/googlegroups.png deleted file mode 100644 index 3a8dbaad..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/googlegroups.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/html2.gif b/OfficeWeb/sdk/Common/Charts/images/html2.gif deleted file mode 100644 index b908c3a4..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/html2.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/html2.png b/OfficeWeb/sdk/Common/Charts/images/html2.png deleted file mode 100644 index b9c40cd7..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/html2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/icons_combined.png b/OfficeWeb/sdk/Common/Charts/images/icons_combined.png deleted file mode 100644 index 7652beb6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/icons_combined.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/index.html b/OfficeWeb/sdk/Common/Charts/images/index.html deleted file mode 100644 index de5de71e..00000000 --- a/OfficeWeb/sdk/Common/Charts/images/index.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/OfficeWeb/sdk/Common/Charts/images/introspection.png b/OfficeWeb/sdk/Common/Charts/images/introspection.png deleted file mode 100644 index 0725852a..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/introspection.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/logo.jpg b/OfficeWeb/sdk/Common/Charts/images/logo.jpg deleted file mode 100644 index b7e079d2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/logo.jpg and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/logo.png b/OfficeWeb/sdk/Common/Charts/images/logo.png deleted file mode 100644 index fd2118b8..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/logo.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/merry-christmas-snowman.png b/OfficeWeb/sdk/Common/Charts/images/merry-christmas-snowman.png deleted file mode 100644 index 7e4de646..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/merry-christmas-snowman.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/new.png b/OfficeWeb/sdk/Common/Charts/images/new.png deleted file mode 100644 index f0f2f0dc..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/new.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/paypal.gif b/OfficeWeb/sdk/Common/Charts/images/paypal.gif deleted file mode 100644 index 9268432e..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/paypal.gif and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/png.icon.png b/OfficeWeb/sdk/Common/Charts/images/png.icon.png deleted file mode 100644 index f04b7a37..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/png.icon.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/reddit.png b/OfficeWeb/sdk/Common/Charts/images/reddit.png deleted file mode 100644 index 02b1926e..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/reddit.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/rgraph.logo.png b/OfficeWeb/sdk/Common/Charts/images/rgraph.logo.png deleted file mode 100644 index fd2118b8..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/rgraph.logo.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/rss.png b/OfficeWeb/sdk/Common/Charts/images/rss.png deleted file mode 100644 index ef47bcb9..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/rss.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/rss_big.png b/OfficeWeb/sdk/Common/Charts/images/rss_big.png deleted file mode 100644 index 88546f9f..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/rss_big.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/rss_sml.png b/OfficeWeb/sdk/Common/Charts/images/rss_sml.png deleted file mode 100644 index 4f99629e..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/rss_sml.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/search_party.jpg b/OfficeWeb/sdk/Common/Charts/images/search_party.jpg deleted file mode 100644 index 90432cd8..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/search_party.jpg and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq0.png b/OfficeWeb/sdk/Common/Charts/images/sq0.png deleted file mode 100644 index b0f6a42d..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq0.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq1.png b/OfficeWeb/sdk/Common/Charts/images/sq1.png deleted file mode 100644 index 4b86ffd6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq1.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq2.png b/OfficeWeb/sdk/Common/Charts/images/sq2.png deleted file mode 100644 index 763f5ef6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq2.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq3.png b/OfficeWeb/sdk/Common/Charts/images/sq3.png deleted file mode 100644 index b6e8e435..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq3.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq4.png b/OfficeWeb/sdk/Common/Charts/images/sq4.png deleted file mode 100644 index 7585cc80..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq4.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq5.png b/OfficeWeb/sdk/Common/Charts/images/sq5.png deleted file mode 100644 index 123aa103..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq5.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq6.png b/OfficeWeb/sdk/Common/Charts/images/sq6.png deleted file mode 100644 index cfd40b05..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq6.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq7.png b/OfficeWeb/sdk/Common/Charts/images/sq7.png deleted file mode 100644 index 0b2f95c3..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq7.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq8.png b/OfficeWeb/sdk/Common/Charts/images/sq8.png deleted file mode 100644 index 341f8e62..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq8.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sq9.png b/OfficeWeb/sdk/Common/Charts/images/sq9.png deleted file mode 100644 index a8b97864..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sq9.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/sqg.png b/OfficeWeb/sdk/Common/Charts/images/sqg.png deleted file mode 100644 index edbaf8b2..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/sqg.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/structure.png b/OfficeWeb/sdk/Common/Charts/images/structure.png deleted file mode 100644 index 855d5181..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/structure.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/stumble.png b/OfficeWeb/sdk/Common/Charts/images/stumble.png deleted file mode 100644 index 80c153e8..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/stumble.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/twitter.png b/OfficeWeb/sdk/Common/Charts/images/twitter.png deleted file mode 100644 index 4bcc4f21..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/twitter.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/unicef.png b/OfficeWeb/sdk/Common/Charts/images/unicef.png deleted file mode 100644 index f9f7fcd6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/unicef.png and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/images/water.jpg b/OfficeWeb/sdk/Common/Charts/images/water.jpg deleted file mode 100644 index e3e994d6..00000000 Binary files a/OfficeWeb/sdk/Common/Charts/images/water.jpg and /dev/null differ diff --git a/OfficeWeb/sdk/Common/Charts/index.html b/OfficeWeb/sdk/Common/Charts/index.html deleted file mode 100644 index dbe8896f..00000000 --- a/OfficeWeb/sdk/Common/Charts/index.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - - Homepage for OfficeExcel: HTML5 Javascript charts library - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    - OfficeExcel: HTML5 Javascript charts library -
    - -
    -

    OfficeExcel: HTML5 Javascript charts library

    -

    - Interactive javascript charts using the HTML5 canvas tag -

    -
    - - -
    - - - - - - - - - [IE7+ is required to view the charts.] - - -

    Faster websites with OfficeExcel charts

    -

    - OfficeExcel is a HTML5 Javascript charts library that supports over 20 different types of charts. Using the new HTML5 canvas tag, - OfficeExcel creates these Javascript charts in the web browser, meaning quicker pages and less web server load. Using OfficeExcel is - an easy way of speeding up your website. - -

    - - -
    -

    - -

    Free to use!

    -

    - OfficeExcel is free to use on non-commercial websites such as personal blogs, educational, - charity or government websites - you don't need a license. - Go here for details about a commercial license. -

    - -
    - - -

    Download OfficeExcel

    - - - - - - -
    - - - - diff --git a/ServerComponents/Bin/FileConverterUtils2.dll b/ServerComponents/Bin/FileConverterUtils2.dll index 66c93916..58e04868 100644 Binary files a/ServerComponents/Bin/FileConverterUtils2.dll and b/ServerComponents/Bin/FileConverterUtils2.dll differ