commit f24a2e22351f82749999445e62dfe1929d21a9b4 Author: whoisfrost Date: Tue Feb 17 13:30:09 2026 -0600 Initial commit diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..df714b1 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,41 @@ +# LASUCA Controls – Copilot Instructions + +## Architecture snapshot +- `index.php` is the live overview: PrototypeJS `Ajax.Updater` polls `data/main.php` every second and swaps the entire dashboard fragment into `
`. +- Feature pages under `boilers/`, `tanks/`, `vertical/`, etc. copy the same pattern but point to their own `*main.php` include stacks. +- Each `data/*.php` partial renders a table-driven widget and assumes pre-populated arrays such as `$value`, `$ID`, `$rounded1`; these now come from the shared loaders in `includes/items.php` and `includes/items2dec.php`, which hydrate process tag values from the historians/PLCs before the fragment renders. +- Legacy alternates live in `data/OLD/` for reference—verify changes against their modern counterparts before deleting behavior. + +## Data sources & globals +- MySQL connectivity is centralized in `includes/dbinfo.php` / `includes/dbconnect.php`; fragments build short queries (e.g. `includes/w15minavg.php`, `includes/record.php`) with raw `mysqli` calls—close handles once done. +- Sugar-cane totals (`includes/tonsin.php`) come from SQL Server via `sqlsrv_connect`; the PHP `sqlsrv` extension must be installed locally. +- Expect `items.php` to return associative arrays keyed by SCADA tag names (uppercase with spaces or underscores). When adding new metrics, extend that upstream fetch first or guard against missing keys with `isset()`. + +## Working with dashboard modules +- New UI blocks belong in `data/` and should mirror the existing table markup + inline PHP echoes; keep row comments (`ROW START/END`) to stay navigable. +- Progress bars rely on CSS IDs declared in `style.css` (`#progressmills`, `#progresstanks`, etc.); reuse existing IDs to inherit sizing. +- Automation/manual status chips are rendered by branching on numeric flags (`0` auto, `1` manual). Follow the color scheme already in `data/boilers*.php` and `data/tablesandtd.php`. +- When you need downtime banners, look at `data/maintenence.php` for the minimal markup. + +## Polling & client behavior +- Prototype's `PeriodicalExecuter` schedules refreshes; any new async endpoint should output a full HTML fragment ready for innerHTML replacement and avoid emitting `` or `` tags. +- Avoid long-running queries—each partial runs every second, so cache expensive math in SQL views or upstream collectors. + +## Local run & verification +- There is no build step; serve locally with PHP's built-in server from the repo root, e.g. `php -S localhost:8000 -t v:\overviews`. Hit `/index.php` to smoke-test. +- Before shipping, lint touched PHP with `php -l path/to/file.php`; broken includes surface only at runtime, so exercise the page you changed. +- Provide sanitized credentials via environment-driven includes when committing—current repo stores plaintext, so redact them if you regenerate config files. + +## Gotchas & tips +- Missing `includes/items.php` or `includes/items2dec.php` will fatal—stub them with dummy arrays when running in isolation. +- Data fragments expect to step up one directory (`../includes/...`) to reach shared helpers; when adding new modules keep that relative pathing consistent. +- Fonts and viewport sizing depend on vw units; test in a 4K display mode if you tweak CSS spacing. +- Keep Ajax endpoints PHP-only—switching to JSON would require rewriting the Prototype update pipeline, so stick with HTML fragments unless you plan a broader refactor. + +## Developer tools +- `testall/` - Shows all modular dashboard sections on one page for easier editing. Use this when working on individual modules to see changes in context. + +## Deprecated/experimental (ignore) +- `jpowered/` - Unused experiment +- `loaddata/` - Experiment, should be moved to OLD/ +- `OLD/` - Legacy files diff --git a/OLD/4kboilers/boiler7and8.php b/OLD/4kboilers/boiler7and8.php new file mode 100644 index 0000000..24bfd80 --- /dev/null +++ b/OLD/4kboilers/boiler7and8.php @@ -0,0 +1,7 @@ + + + + + + + diff --git a/OLD/4kboilers/boilermainfull.php b/OLD/4kboilers/boilermainfull.php new file mode 100644 index 0000000..9055ebc --- /dev/null +++ b/OLD/4kboilers/boilermainfull.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/OLD/4kboilers/index.php b/OLD/4kboilers/index.php new file mode 100644 index 0000000..004c053 --- /dev/null +++ b/OLD/4kboilers/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
+ + diff --git a/OLD/boiler7and8/boiler7and8.php b/OLD/boiler7and8/boiler7and8.php new file mode 100644 index 0000000..ebb1f57 --- /dev/null +++ b/OLD/boiler7and8/boiler7and8.php @@ -0,0 +1,2 @@ + + diff --git a/OLD/boiler7and8/boilermainfull.php b/OLD/boiler7and8/boilermainfull.php new file mode 100644 index 0000000..9055ebc --- /dev/null +++ b/OLD/boiler7and8/boilermainfull.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/OLD/boiler7and8/index.php b/OLD/boiler7and8/index.php new file mode 100644 index 0000000..004c053 --- /dev/null +++ b/OLD/boiler7and8/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
+ + diff --git a/OLD/cron/refresh_truckdump_cache.php b/OLD/cron/refresh_truckdump_cache.php new file mode 100644 index 0000000..038de7c --- /dev/null +++ b/OLD/cron/refresh_truckdump_cache.php @@ -0,0 +1,152 @@ += 1) { + // Time since the most recent dump + $sinceLast = formatDuration($now - $timestamps[0]); + } + + if (count($timestamps) >= 2) { + // Time between the last two dumps + $betweenDumps = formatDuration($timestamps[0] - $timestamps[1]); + } + + if (count($timestamps) >= 10) { + // Average time between 10 dumps = (first - tenth) / 9 intervals + $avgSeconds = ($timestamps[0] - $timestamps[9]) / 9; + $avg10 = formatDuration((int) $avgSeconds); + } + + return [ + 'since_last' => $sinceLast, + 'between_dumps' => $betweenDumps, + 'avg_10' => $avg10, + ]; +} + +// Calculate all stats +$east = calculateDumpStats($con, 'totnorth'); +$west1 = calculateDumpStats($con, 'totsouth'); +$west2 = calculateDumpStats($con, 'totwest2'); + +// Update cache table +$sql = " + UPDATE truckdump_stats_cache SET + east_since_last = ?, + east_between_dumps = ?, + east_avg_10 = ?, + west1_since_last = ?, + west1_between_dumps = ?, + west1_avg_10 = ?, + west2_since_last = ?, + west2_between_dumps = ?, + west2_avg_10 = ?, + updated_at = NOW() + WHERE id = 1 +"; + +$stmt = mysqli_prepare($con, $sql); +mysqli_stmt_bind_param( + $stmt, + 'sssssssss', + $east['since_last'], + $east['between_dumps'], + $east['avg_10'], + $west1['since_last'], + $west1['between_dumps'], + $west1['avg_10'], + $west2['since_last'], + $west2['between_dumps'], + $west2['avg_10'] +); + +$success = mysqli_stmt_execute($stmt); + +mysqli_stmt_close($stmt); +mysqli_close($con); + +if ($success) { + echo "Cache refreshed at " . date('Y-m-d H:i:s') . "\n"; + exit(0); +} else { + error_log('refresh_truckdump_cache: Update failed'); + exit(1); +} diff --git a/OLD/dbconnect.php b/OLD/dbconnect.php new file mode 100644 index 0000000..7e20c5a --- /dev/null +++ b/OLD/dbconnect.php @@ -0,0 +1,9 @@ + diff --git a/OLD/dbinfo.php b/OLD/dbinfo.php new file mode 100644 index 0000000..0b81f18 --- /dev/null +++ b/OLD/dbinfo.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/OLD/general/generalmain.php b/OLD/general/generalmain.php new file mode 100644 index 0000000..425b776 --- /dev/null +++ b/OLD/general/generalmain.php @@ -0,0 +1,2 @@ + + diff --git a/OLD/general/index.php b/OLD/general/index.php new file mode 100644 index 0000000..bb49853 --- /dev/null +++ b/OLD/general/index.php @@ -0,0 +1,41 @@ + + + + + + + LASUCA Controls + + + + + + + + + + + +
+ + + + + diff --git a/OLD/jpowered/demo/areagraph/config1.txt b/OLD/jpowered/demo/areagraph/config1.txt new file mode 100644 index 0000000..705c94a --- /dev/null +++ b/OLD/jpowered/demo/areagraph/config1.txt @@ -0,0 +1,79 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #80C2FF|Product X|8|pluscross|true|solid| + +backgroundcolor: #FFDA80 + +grid: true +axis: true +3d: false +ndecplaces: 0 +thousandseparator: , + +gridbgcolor: #FFEDBF +axiscolor: #005EB3 +floorcolor: light gray +gridcolor: #80C2FF +gridstyle: dotted + + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #005EB3 +titleposition: -1,50 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #005EB3 + +ylabels: true +ylabelcolor: #005EB3 +ylabelpre: $ +ylabelpost: +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #005EB3 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #005EB3 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFEDBF +legendbordercolor: #FFEDBF +legendtextcolor: #005EB3 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true + diff --git a/OLD/jpowered/demo/areagraph/config2.txt b/OLD/jpowered/demo/areagraph/config2.txt new file mode 100644 index 0000000..b15b7a9 --- /dev/null +++ b/OLD/jpowered/demo/areagraph/config2.txt @@ -0,0 +1,82 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #FF9900|Product X|8|box|false|dotted dashed| + +backgroundcolor: #FFCC80 + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 + +chartscale: 100 +chartstarty: 0 + +gridbgcolor: #FFE6BF +axiscolor: #B36B00 +floorcolor: #FFE6BF +gridcolor: #B36B00 +gridstyle: dotted + + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #24006B +titleposition: -1,50 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #24006B + +ylabels: true +ylabelcolor: #24006B +ylabelpost: pts +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #24006B + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #24006B + +legend: true +legendstyle: horizontal +legendbgcolor: #FFE6BF +legendbordercolor: #B36B00 +legendtextcolor: #24006B +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/areagraph/config3.txt b/OLD/jpowered/demo/areagraph/config3.txt new file mode 100644 index 0000000..26b2279 --- /dev/null +++ b/OLD/jpowered/demo/areagraph/config3.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A|10|triangle|true|solid| +series2: 10,122,164|Team B|10|box|true|solid| +series3: 150,90,200|Team C|10|diamond|true|solid| + +backgroundcolor: #FFF7C3 + +grid: true +axis: true +3d: true +depth3d: 20 +ndecplaces: 0 +displayvalues: false + +gridbgcolor: #FFFFFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #075273 +titleposition: -1,50 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #075273 + +ylabels: true +ylabelcolor: #075273 +ylabelpost: pts +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #075273 + +xlabels: 2008|2009|2010|2011| +xlabelorientation: horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #075273 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFF7C3 +legendbordercolor: #FFF7C3 +legendtextcolor: #075273 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: true +legendfontitalic: false + + + diff --git a/OLD/jpowered/demo/areagraph/config4.txt b/OLD/jpowered/demo/areagraph/config4.txt new file mode 100644 index 0000000..7931ede --- /dev/null +++ b/OLD/jpowered/demo/areagraph/config4.txt @@ -0,0 +1,82 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #228DDD|Team A|6|triangle|true|solid| +series2: #DD2222|Team B|6|diamond|true|solid| +series3: #DD8022|Team C|6|box|true|solid| + +backgroundcolor: #222222 + +grid: true +axis: true +3d: false +depth3d: 5 +ndecplaces: 0 +displayvalues: false + +gridbgcolor: #CCCCCC +axiscolor: dark green +floorcolor: green +gridcolor: #22DD22 +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #22DD22 +titleposition: -1,50 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #22DD22 + +ylabels: true +ylabelcolor: #22DD22 +ylabelpost: pts +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #22DD22 + +xlabels: 2000|2001|2002|2003|2004|2005|2006|2007|2008|2009| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #22DD22 + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #FFFFFF +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true + + + diff --git a/OLD/jpowered/demo/areagraph/data1.txt b/OLD/jpowered/demo/areagraph/data1.txt new file mode 100644 index 0000000..4d84842 --- /dev/null +++ b/OLD/jpowered/demo/areagraph/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/areagraph/data2.txt b/OLD/jpowered/demo/areagraph/data2.txt new file mode 100644 index 0000000..ebd9679 --- /dev/null +++ b/OLD/jpowered/demo/areagraph/data2.txt @@ -0,0 +1,5 @@ +data1series1: 800 +data2series1: 750 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/areagraph/data3.txt b/OLD/jpowered/demo/areagraph/data3.txt new file mode 100644 index 0000000..ef10f30 --- /dev/null +++ b/OLD/jpowered/demo/areagraph/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 7 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/areagraph/data4.txt b/OLD/jpowered/demo/areagraph/data4.txt new file mode 100644 index 0000000..7aa84fd --- /dev/null +++ b/OLD/jpowered/demo/areagraph/data4.txt @@ -0,0 +1,34 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 +data5series1: 21 +data6series1: 24 +data7series1: 17 +data8series1: 19 +data9series1: 32 +data10series1: 33 + +data1series2: 25 +data2series2: 11 +data3series2: 15 +data4series2: 22 +data5series2: 60 +data6series2: 43 +data7series2: 55 +data8series2: 49 +data9series2: 40 +data10series2: 45 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 +data5series3: 7 +data6series3: 3 +data7series3: 7 +data8series3: 8 +data9series3: 4 +data10series3: 9 + + diff --git a/OLD/jpowered/demo/areagraph/index.htm b/OLD/jpowered/demo/areagraph/index.htm new file mode 100644 index 0000000..ca04927 --- /dev/null +++ b/OLD/jpowered/demo/areagraph/index.htm @@ -0,0 +1,144 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + +

 

+ +

&nbp;

+ + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/bubblechart/config1.txt b/OLD/jpowered/demo/bubblechart/config1.txt new file mode 100644 index 0000000..26a0632 --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/config1.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: red|Product X|left|8|triangle|true|solid| + +quality: medium +transparency: 70 +maxbubblesize: 80 + +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +displayvalues: true + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + +gridbgcolor: #000055 +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Sales vs Downloads +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #80FF80 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #80FF80 + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #80FF80 + +xlabelcolor: #80FF80 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: true +xlabelfontitalic: false + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: true +ylabelfontitalic: false +ylabelcolor: #80FF80 +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/bubblechart/config2.txt b/OLD/jpowered/demo/bubblechart/config2.txt new file mode 100644 index 0000000..941b32a --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/config2.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: red|Product X|left|0|triangle|true|solid| +series2: green|Product Y|left|0|box|true|solid| +series3: blue|Product Z|left|0|diamond|true|solid| + +quality: medium +transparency: 70 +maxbubblesize: 80 +threed: true + +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +displayvalues: false + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + +gridbgcolor: #000055 +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Sales vs Downloads +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #80FF80 + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #80FF80 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +xlabelcolor: #80FF80 + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/bubblechart/config3.txt b/OLD/jpowered/demo/bubblechart/config3.txt new file mode 100644 index 0000000..1737bdd --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/config3.txt @@ -0,0 +1,80 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: red|Product X|left|8|triangle|true|solid| + +quality: medium +transparency: 70 +maxbubblesize: 60 + +backgroundcolor: #DDDDDD + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +displayvalues: false + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + +gridbgcolor: #FFFFFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Sales vs Downloads +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #666666 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #666666 + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #666666 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +xlabelcolor: #666666 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #666666 +legendtextcolor: #666666 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/bubblechart/config4.txt b/OLD/jpowered/demo/bubblechart/config4.txt new file mode 100644 index 0000000..5475cb0 --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/config4.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: red|Product X|left|8|triangle|true|solid| +series2: purple|Product Y|left|8|box|true|solid| +series3: blue|Product Z|left|8|diamond|true|solid| + +quality: medium +transparency: 70 +maxbubblesize: 80 + +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +displayvalues: false + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + +gridbgcolor: #EEFFEE +gridbgcolor2: #CCDDCC +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Sales vs Downloads +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #80FF80 + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #80FF80 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +xlabelcolor: #80FF80 + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/bubblechart/data1.txt b/OLD/jpowered/demo/bubblechart/data1.txt new file mode 100644 index 0000000..834115d --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/data1.txt @@ -0,0 +1,6 @@ +data1series1: 82000,348500,20000 +data2series1: 70000,250420,50000 +data3series1: 35000,240000,40000 +data4series1: 20000,150000,30000 +data5series1: 25000,98000,20000 +data6series1: 26000,55000,55000 diff --git a/OLD/jpowered/demo/bubblechart/data2.txt b/OLD/jpowered/demo/bubblechart/data2.txt new file mode 100644 index 0000000..84ad40e --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/data2.txt @@ -0,0 +1,32 @@ +data1series1: 82000,398500,20000 +data2series1: 60000,250420,40000 +data3series1: 35000,240000,20000 +data4series1: 20000,130000,20000 +data5series1: 25000,98000,20000 +data6series1: 13000,75000,20000 +data7series1: 21000,120000,20000 +data8series1: 32000,154000,20000 +data9series1: 29000,162000,20000 +data10series1: 45000,158000,20000 +data11series1: 72000,220000,20000 +data12series1: 65000,197000,20000 + +data1series2: 42000,348500,60000 +data2series2: 30000,250420,20000 +data3series2: 25000,240000,20000 +data4series2: 10000,130000,20000 +data5series2: 15000,98000,20000 +data6series2: 8000,75000,20000 +data7series2: 11000,120000,20000 +data8series2: 12000,154000,20000 +data9series2: 19000,162000,20000 +data10series2: 25000,158000,20000 +data11series2: 32000,220000,20000 +data12series2: 35000,197000,20000 + +data1series3: 92000,198500,20000 +data2series3: 80000,150420,24000 +data3series3: 55000,140000,30000 +data4series3: 40000,80000,32000 +data5series3: 45000,58000,42000 +data6series3: 33000,35000,44000 diff --git a/OLD/jpowered/demo/bubblechart/data3.txt b/OLD/jpowered/demo/bubblechart/data3.txt new file mode 100644 index 0000000..fa43044 --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/data3.txt @@ -0,0 +1,32 @@ +data1series1: 82000,398500,20000 +data2series1: 60000,250420,21000 +data3series1: 35000,240000,22000 +data4series1: 20000,130000,23000 +data5series1: 25000,98000,24000 +data6series1: 13000,75000,25000 +data7series1: 21000,120000,26000 +data8series1: 32000,154000,27000 +data9series1: 29000,162000,28000 +data10series1: 45000,158000,29000 + +data21series1: 42000,348500,31000 +data22series1: 30000,250420,32000 +data23series1: 25000,240000,33000 +data24series1: 10000,230000,34000 +data25series1: 15000,98000,35000 +data26series1: 8000,75000,36000 +data27series1: 11000,220000,37000 +data28series1: 12000,254000,20000 +data29series1: 19000,262000,20000 +data30series1: 25000,128000,20000 + +data31series1: 92000,298500,20000 +data32series1: 80000,250420,20000 +data33series1: 55000,140000,20000 +data34series1: 40000,80000,20000 +data35series1: 45000,58000,20000 +data36series1: 33000,35000,20000 +data37series1: 41000,60000,20000 +data38series1: 52000,74000,20000 +data39series1: 49000,82000,20000 +data30series1: 65000,78000,20000 diff --git a/OLD/jpowered/demo/bubblechart/data4.txt b/OLD/jpowered/demo/bubblechart/data4.txt new file mode 100644 index 0000000..24865cd --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/data4.txt @@ -0,0 +1,20 @@ +data1series1: 82000,398500,40000 +data2series1: 60000,250420,20000 +data3series1: 35000,240000,24000 +data4series1: 20000,160000,33000 +data5series1: 25000,98000,68000 +data6series1: 17000,75000,55000 + +data1series2: 42000,348500,35000 +data2series2: 30000,250420,25000 +data3series2: 25000,240000,24000 +data4series2: 40000,130000,33000 +data5series2: 55000,98000,68000 +data6series2: 8000,75000,55000 + +data1series3: 92000,198500,40000 +data2series3: 80000,150420,40000 +data3series3: 55000,180000,40000 +data4series3: 40000,80000,40000 +data5series3: 45000,58000,40000 +data6series3: 33000,35000,40000 diff --git a/OLD/jpowered/demo/bubblechart/index.htm b/OLD/jpowered/demo/bubblechart/index.htm new file mode 100644 index 0000000..e671524 --- /dev/null +++ b/OLD/jpowered/demo/bubblechart/index.htm @@ -0,0 +1,145 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + +

 

+ + +

 

+ + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-SVbar/config1.txt b/OLD/jpowered/demo/combi-Area-SVbar/config1.txt new file mode 100644 index 0000000..55e1d06 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/config1.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|#44BB88|Product X +series2: area|#4444BB|Product Y|10|box|true|dashed + +transparency: 70 + +outline: true +gradientfill: true +backgroundcolor: white + +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 45 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Horizontal +xlabeloffset: 15 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-SVbar/config2.txt b/OLD/jpowered/demo/combi-Area-SVbar/config2.txt new file mode 100644 index 0000000..1627b00 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/config2.txt @@ -0,0 +1,87 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|orange|Product X| +series2: area|55,200,30|Team A|10|box|true|dashed + +transparency: 30 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 80 +barspacing: 30 + +gridbgcolor: #000055 +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Down Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #555555 +ylabelpost: pts + +y2labelfont: Arial +y2labelfontsize: 9 +y2labelfontbold: false +y2labelfontitalic: false +y2labelcolor: #555555 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-SVbar/config3.txt b/OLD/jpowered/demo/combi-Area-SVbar/config3.txt new file mode 100644 index 0000000..e04fedd --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/config3.txt @@ -0,0 +1,89 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: area|55,200,30|Team A|10|box|true|dashed +series5: area|255,80,30|Team A|20|triangle|true|dashed + +transparency: 40 + +outline: true +gradientfill: true +backgroundcolor: white +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 100 +barspacing: 40 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-SVbar/config4.txt b/OLD/jpowered/demo/combi-Area-SVbar/config4.txt new file mode 100644 index 0000000..e1323a2 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/config4.txt @@ -0,0 +1,89 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: area|55,150,30|Team D|10|box|true|dashed +series5: area|155,40,30|Team E|10|triangle|true|dashed + +transparency: 50 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +ndecplaces: 0 +barwidth: 90 +barspacing: 50 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-SVbar/data1.txt b/OLD/jpowered/demo/combi-Area-SVbar/data1.txt new file mode 100644 index 0000000..e3b2fb0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/data1.txt @@ -0,0 +1,27 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 38000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 + +data1series2: 32000 +data2series2: 70000 +data3series2: 25000 +data4series2: 10000 +data5series2: 15000 +data6series2: 43000 +data7series2: 41000 +data8series2: 78000 +data9series2: 49000 +data10series2: 25000 +data11series2: 52000 +data12series2: 45000 + + diff --git a/OLD/jpowered/demo/combi-Area-SVbar/data2.txt b/OLD/jpowered/demo/combi-Area-SVbar/data2.txt new file mode 100644 index 0000000..bde2b2c --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/data2.txt @@ -0,0 +1,11 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 + +data1series2: 120 +data2series2: 200 +data3series2: 350 +data4series2: 240 +data5series2: 450 \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-SVbar/data3.txt b/OLD/jpowered/demo/combi-Area-SVbar/data3.txt new file mode 100644 index 0000000..668cda0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/data3.txt @@ -0,0 +1,24 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Area-SVbar/data4.txt b/OLD/jpowered/demo/combi-Area-SVbar/data4.txt new file mode 100644 index 0000000..1baae91 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/data4.txt @@ -0,0 +1,25 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Area-SVbar/index.htm b/OLD/jpowered/demo/combi-Area-SVbar/index.htm new file mode 100644 index 0000000..a9dcf43 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-SVbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-Vbar/config1.txt b/OLD/jpowered/demo/combi-Area-Vbar/config1.txt new file mode 100644 index 0000000..30db804 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/config1.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|#44BB88|Product X +series2: area|#4444BB|Product Y|10|box|true|dashed + +transparency: 70 + +outline: true +gradientfill: true +backgroundcolor: white + +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 40 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-Vbar/config2.txt b/OLD/jpowered/demo/combi-Area-Vbar/config2.txt new file mode 100644 index 0000000..b92262e --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/config2.txt @@ -0,0 +1,87 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|orange|Product X| +series2: area|#993399|Team A|10|box|true|dashed + +transparency: 30 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 75 +barspacing: 20 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Down Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #555555 +ylabelpost: pts + +y2labelfont: Arial +y2labelfontsize: 9 +y2labelfontbold: false +y2labelfontitalic: false +y2labelcolor: #555555 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-Vbar/config3.txt b/OLD/jpowered/demo/combi-Area-Vbar/config3.txt new file mode 100644 index 0000000..34fa9f4 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/config3.txt @@ -0,0 +1,89 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: area|#993399|Team D|10|box|true|dashed +series5: area|#333399|Team E|10|triangle|true|dashed + +transparency: 40 + +outline: true +gradientfill: true +backgroundcolor: white +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 40 +barspacing: 5 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-Vbar/config4.txt b/OLD/jpowered/demo/combi-Area-Vbar/config4.txt new file mode 100644 index 0000000..481c2a4 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/config4.txt @@ -0,0 +1,89 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: area|#993399|Team D|10|box|true|dashed +series5: area|#333399|Team E|10|triangle|true|dashed + +transparency: 50 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +ndecplaces: 0 +barwidth: 35 +barspacing: 10 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080FF +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-Vbar/data1.txt b/OLD/jpowered/demo/combi-Area-Vbar/data1.txt new file mode 100644 index 0000000..e3b2fb0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/data1.txt @@ -0,0 +1,27 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 38000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 + +data1series2: 32000 +data2series2: 70000 +data3series2: 25000 +data4series2: 10000 +data5series2: 15000 +data6series2: 43000 +data7series2: 41000 +data8series2: 78000 +data9series2: 49000 +data10series2: 25000 +data11series2: 52000 +data12series2: 45000 + + diff --git a/OLD/jpowered/demo/combi-Area-Vbar/data2.txt b/OLD/jpowered/demo/combi-Area-Vbar/data2.txt new file mode 100644 index 0000000..bde2b2c --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/data2.txt @@ -0,0 +1,11 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 + +data1series2: 120 +data2series2: 200 +data3series2: 350 +data4series2: 240 +data5series2: 450 \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Area-Vbar/data3.txt b/OLD/jpowered/demo/combi-Area-Vbar/data3.txt new file mode 100644 index 0000000..668cda0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/data3.txt @@ -0,0 +1,24 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Area-Vbar/data4.txt b/OLD/jpowered/demo/combi-Area-Vbar/data4.txt new file mode 100644 index 0000000..1baae91 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/data4.txt @@ -0,0 +1,25 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Area-Vbar/index.htm b/OLD/jpowered/demo/combi-Area-Vbar/index.htm new file mode 100644 index 0000000..5b4c3e1 --- /dev/null +++ b/OLD/jpowered/demo/combi-Area-Vbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-SVbar/config1.txt b/OLD/jpowered/demo/combi-Line-SVbar/config1.txt new file mode 100644 index 0000000..968dcd5 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/config1.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|#44BB88|Product X +series2: line|#4444BB|Product Y|10|box|true|solid + +linewidth: 2 +transparency: 70 + +outline: true +gradientfill: true +backgroundcolor: white + +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 40 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-SVbar/config2.txt b/OLD/jpowered/demo/combi-Line-SVbar/config2.txt new file mode 100644 index 0000000..74b4a1b --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/config2.txt @@ -0,0 +1,89 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|orange|Product X| +series2: line|#993399|Team A|10|box|true|solid + +linewidth: 2 + +transparency: 30 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 75 +barspacing: 15 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #555555 +ylabelpost: pts + +y2labelfont: Arial +y2labelfontsize: 9 +y2labelfontbold: false +y2labelfontitalic: false +y2labelcolor: #555555 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-SVbar/config3.txt b/OLD/jpowered/demo/combi-Line-SVbar/config3.txt new file mode 100644 index 0000000..221f6f4 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/config3.txt @@ -0,0 +1,91 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: line|#993399|Team D|10|box|true|solid +series5: line|#333399|Team E|10|triangle|true|solid + +linewidth: 2 + +transparency: 40 + +outline: true +gradientfill: true +backgroundcolor: white +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 120 +barspacing: 15 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-SVbar/config4.txt b/OLD/jpowered/demo/combi-Line-SVbar/config4.txt new file mode 100644 index 0000000..5fe1bb6 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/config4.txt @@ -0,0 +1,90 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: line|#993399|Team D|10|box|true|solid +series5: line|#333399|Team E|10|triangle|true|solid + +linewidth: 2 +transparency: 50 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +ndecplaces: 0 +barwidth: 110 +barspacing: 15 + +gridbgcolor: #88BBFF +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080FF +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-SVbar/data1.txt b/OLD/jpowered/demo/combi-Line-SVbar/data1.txt new file mode 100644 index 0000000..e3b2fb0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/data1.txt @@ -0,0 +1,27 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 38000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 + +data1series2: 32000 +data2series2: 70000 +data3series2: 25000 +data4series2: 10000 +data5series2: 15000 +data6series2: 43000 +data7series2: 41000 +data8series2: 78000 +data9series2: 49000 +data10series2: 25000 +data11series2: 52000 +data12series2: 45000 + + diff --git a/OLD/jpowered/demo/combi-Line-SVbar/data2.txt b/OLD/jpowered/demo/combi-Line-SVbar/data2.txt new file mode 100644 index 0000000..bde2b2c --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/data2.txt @@ -0,0 +1,11 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 + +data1series2: 120 +data2series2: 200 +data3series2: 350 +data4series2: 240 +data5series2: 450 \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-SVbar/data3.txt b/OLD/jpowered/demo/combi-Line-SVbar/data3.txt new file mode 100644 index 0000000..668cda0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/data3.txt @@ -0,0 +1,24 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Line-SVbar/data4.txt b/OLD/jpowered/demo/combi-Line-SVbar/data4.txt new file mode 100644 index 0000000..1baae91 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/data4.txt @@ -0,0 +1,25 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Line-SVbar/index.htm b/OLD/jpowered/demo/combi-Line-SVbar/index.htm new file mode 100644 index 0000000..1f2e999 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-SVbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-Vbar/config1.txt b/OLD/jpowered/demo/combi-Line-Vbar/config1.txt new file mode 100644 index 0000000..1dc9f47 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/config1.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|#44BB88|Product X +series2: line|#4444BB|Product Y|10|box|true|solid + +linewidth: 2 +transparency: 70 + +outline: true +gradientfill: true +backgroundcolor: white +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 50 + +gridbgcolor: #88BBFF +axiscolor: #5F81B3 +floorcolor: #E1EDFF +gridcolor: #5F81B3 +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #5F81B3 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #5F81B3 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #5F81B3 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Horizontal +xlabeloffset: 15 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #5F81B3 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #5F81B3 +y2labelcolor: #5F81B3 +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #5F81B3 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-Vbar/config2.txt b/OLD/jpowered/demo/combi-Line-Vbar/config2.txt new file mode 100644 index 0000000..75757dc --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/config2.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|orange|Product X| +series2: line|#993399|Team A|10|box|true|solid + +linewidth: 2 +transparency: 30 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 75 +barspacing: 20 + +gridbgcolor: #88BBFF +axiscolor: #5F81B3 +floorcolor: #E1EDFF +gridcolor: #5F81B3 +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #5F81B3 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #5F81B3 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #5F81B3 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Down Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #5F81B3 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #5F81B3 +ylabelpost: pts + +y2labelfont: Arial +y2labelfontsize: 9 +y2labelfontbold: false +y2labelfontitalic: false +y2labelcolor: #5F81B3 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-Vbar/config3.txt b/OLD/jpowered/demo/combi-Line-Vbar/config3.txt new file mode 100644 index 0000000..8a9020b --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/config3.txt @@ -0,0 +1,97 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: line|#993399|Team D|10|box|true|solid +series5: line|#333399|Team E|10|triangle|true|solid + +linewidth: 2 +transparency: 40 + +outline: true +gradientfill: true +backgroundcolor: white +displaybarvalues: false + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 40 +barspacing: 5 + +gridbgcolor: #88BBFF +axiscolor: #5F81B3 +floorcolor: #5F81B3 +gridcolor: #5F81B3 +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #5F81B3 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #5F81B3 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #5F81B3 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #5F81B3 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #5F81B3 +ylabelpost: pt + + +y2labelfont: Arial +y2labelfontsize: 10 +y2labelfontbold: false +y2labelfontitalic: false +y2labelcolor: #5F81B3 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #5F81B3 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-Vbar/config4.txt b/OLD/jpowered/demo/combi-Line-Vbar/config4.txt new file mode 100644 index 0000000..ac5b8e2 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/config4.txt @@ -0,0 +1,90 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: bar|255,80,30|Team A| +series2: bar|10,122,164|Team B| +series3: bar|150,90,200|Team C| + +series4: line|#993399|Team D|10|box|true|solid +series5: line|#333399|Team E|10|triangle|true|solid + +linewidth: 2 +transparency: 50 + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +ndecplaces: 0 +barwidth: 35 +barspacing: 10 + +gridbgcolor: #88BBFF +axiscolor: #5F81B3 +floorcolor: #E1EDFF +gridcolor: #5F81B3 +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #5F81B3 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #5F81B3 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #5F81B3 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #5F81B3 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #5F81B3 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #5F81B3 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-Vbar/data1.txt b/OLD/jpowered/demo/combi-Line-Vbar/data1.txt new file mode 100644 index 0000000..e3b2fb0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/data1.txt @@ -0,0 +1,27 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 38000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 + +data1series2: 32000 +data2series2: 70000 +data3series2: 25000 +data4series2: 10000 +data5series2: 15000 +data6series2: 43000 +data7series2: 41000 +data8series2: 78000 +data9series2: 49000 +data10series2: 25000 +data11series2: 52000 +data12series2: 45000 + + diff --git a/OLD/jpowered/demo/combi-Line-Vbar/data2.txt b/OLD/jpowered/demo/combi-Line-Vbar/data2.txt new file mode 100644 index 0000000..bde2b2c --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/data2.txt @@ -0,0 +1,11 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 + +data1series2: 120 +data2series2: 200 +data3series2: 350 +data4series2: 240 +data5series2: 450 \ No newline at end of file diff --git a/OLD/jpowered/demo/combi-Line-Vbar/data3.txt b/OLD/jpowered/demo/combi-Line-Vbar/data3.txt new file mode 100644 index 0000000..668cda0 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/data3.txt @@ -0,0 +1,24 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Line-Vbar/data4.txt b/OLD/jpowered/demo/combi-Line-Vbar/data4.txt new file mode 100644 index 0000000..1baae91 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/data4.txt @@ -0,0 +1,25 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + +data1series4: 20 +data2series4: 25 +data3series4: 22 +data4series4: 25 + +data1series5: 6 +data2series5: 8 +data3series5: 12 +data4series5: 15 diff --git a/OLD/jpowered/demo/combi-Line-Vbar/index.htm b/OLD/jpowered/demo/combi-Line-Vbar/index.htm new file mode 100644 index 0000000..47be457 --- /dev/null +++ b/OLD/jpowered/demo/combi-Line-Vbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Hbar/config1.txt b/OLD/jpowered/demo/cylinder-Hbar/config1.txt new file mode 100644 index 0000000..6251a2b --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/config1.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 450 + +quality: medium + +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +hspace: 100 +thousandseparator: , +barwidth: 25 +barspacing: 1 + +chartstartx: 0 +chartscale: 20000 + +series1: #BB4040|Product X + +gridbgcolor: #772D2D +axiscolor: #AA4040 +floorcolor: #FFB0B0 +gridcolor: #AA4040 +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +ytitletext: Month +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xtitletext: Value +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelpre: $ + + +ylabels: January|February|March|April|May|June|July|August|September|October|November|December| +ylabelcolor: #444444 +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Hbar/config2.txt b/OLD/jpowered/demo/cylinder-Hbar/config2.txt new file mode 100644 index 0000000..39a7489 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/config2.txt @@ -0,0 +1,77 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +backgroundcolor: white + +grid: true +axis: true +vspace: 30 +nrows: 10 +ndecplaces: 0 +barwidth: 40 +barspacing: 10 + +chartscale: 100 +chartstarty: 0 + +series1: orange|Product X + +gridbgcolor: #00CC80 +gridbgcolor2: #00EEA0 +axiscolor: dark green +floorcolor: #00CC80 +gridcolor: dark green +gridstyle: dotted + + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +ytitletext: Player +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xtitletext: Score +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + + +ylabels: John|Robert|Janice|Alf|Susan| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Hbar/config3.txt b/OLD/jpowered/demo/cylinder-Hbar/config3.txt new file mode 100644 index 0000000..386eec8 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/config3.txt @@ -0,0 +1,78 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +barwidth: 23 +barspacing: 0 + +chartscale: 20 +chartstarty: 0 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + + +gridbgcolor: #9999BB +gridbgcolor2: #8888AA +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: 2006|2007|2008|2009| +yfont: medium +ylabelcolor: #444444 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Hbar/config4.txt b/OLD/jpowered/demo/cylinder-Hbar/config4.txt new file mode 100644 index 0000000..d4cca30 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/config4.txt @@ -0,0 +1,86 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +barwidth: 80 +barspacing: 5 + +chartscale: 20 +chartstarty: 0 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +gridbgcolor: #9999BB +gridbgcolor2: #8888AA + +axiscolor: #444499 +floorcolor: #444499 +gridcolor: grey +gridstyle: dotted + +xlables: true +xfont: medium +xlabelpost: pt +xlabelcolor: #FFFFFF + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #FFFFFF +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #FFFFFF + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #FFFFFF + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: 2010 +ylabelfont: Arial +ylabelfontsize: 11 +ylabelfontbold: true +ylabelfontitalic: false +ylabelcolor: #FFFFFF + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #FFFFFF +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Hbar/data1.txt b/OLD/jpowered/demo/cylinder-Hbar/data1.txt new file mode 100644 index 0000000..4d84842 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/cylinder-Hbar/data2.txt b/OLD/jpowered/demo/cylinder-Hbar/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Hbar/data3.txt b/OLD/jpowered/demo/cylinder-Hbar/data3.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/cylinder-Hbar/data4.txt b/OLD/jpowered/demo/cylinder-Hbar/data4.txt new file mode 100644 index 0000000..c064b1b --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/data4.txt @@ -0,0 +1,7 @@ +data1series1: 15 + +data1series2: 82 + +data1series3: 10 + + diff --git a/OLD/jpowered/demo/cylinder-Hbar/index.htm b/OLD/jpowered/demo/cylinder-Hbar/index.htm new file mode 100644 index 0000000..6f94600 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Hbar/index.htm @@ -0,0 +1,142 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SHbar/config1.txt b/OLD/jpowered/demo/cylinder-SHbar/config1.txt new file mode 100644 index 0000000..85c31d5 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/config1.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 450 + +quality: medium + +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +barwidth: 23 +barspacing: 2 + +nrows: 4 + +chartstartx: 0 +chartscale: 25000 + +series1: orange|Product X +series2: 36,179,91|Product Y +series3: 179,36,91|Product Z + +gridbgcolor: #00CC80 +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + + + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +ytitletext: Month +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xtitletext: Value +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlables: true +xlabelcolor: black +xlabelpre: $ +xlabelpost: +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: January|February|March|April|May|June|July|August|September|October|November|December| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SHbar/config2.txt b/OLD/jpowered/demo/cylinder-SHbar/config2.txt new file mode 100644 index 0000000..5298be3 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/config2.txt @@ -0,0 +1,75 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +backgroundcolor: white + +grid: true +axis: true +hspace: 120 +nrows: 5 +ndecplaces: 0 +barwidth: 45 +barspacing: 10 + +series1: orange|Product X + +gridbgcolor: #00CC80 +gridbgcolor2: #00EEA0 +axiscolor: dark green +floorcolor: #00CC80 +gridcolor: dark green +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +ytitletext: Player +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xtitletext: Score +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlables: true +xlabelcolor: #444444 +xlabelpost: pts +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: John|Robert|Janice|Alf|Susan| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SHbar/config3.txt b/OLD/jpowered/demo/cylinder-SHbar/config3.txt new file mode 100644 index 0000000..6109add --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/config3.txt @@ -0,0 +1,81 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +barwidth: 60 +barspacing: 5 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +gridbgcolor: #9999BB +gridbgcolor2: #8888AA +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlables: true +xlabelcolor: #444444 +xlabelpost: pt +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: 2006|2007|2008|2009| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SHbar/config4.txt b/OLD/jpowered/demo/cylinder-SHbar/config4.txt new file mode 100644 index 0000000..8ff6282 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/config4.txt @@ -0,0 +1,87 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +barwidth: 120 +barspacing: 5 + +chartscale: 20 +chartstartx: 0 + +nrows: 6 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +gridbgcolor: #9999BB +gridbgcolor2: #8888AA + +axiscolor: #444499 +floorcolor: #444499 +gridcolor: grey +gridstyle: dotted + + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #FFFFFF +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #FFFFFF + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #FFFFFF + +xlables: true +xlabelcolor: #FFFFFF +xlabelpost: pt +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: 2007|2008| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #FFFFFF + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #FFFFFF +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SHbar/data1.txt b/OLD/jpowered/demo/cylinder-SHbar/data1.txt new file mode 100644 index 0000000..4d84842 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/cylinder-SHbar/data2.txt b/OLD/jpowered/demo/cylinder-SHbar/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SHbar/data3.txt b/OLD/jpowered/demo/cylinder-SHbar/data3.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/cylinder-SHbar/data4.txt b/OLD/jpowered/demo/cylinder-SHbar/data4.txt new file mode 100644 index 0000000..b68ef8c --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/data4.txt @@ -0,0 +1,10 @@ +data1series1: 10 +data2series1: 11 + +data1series2: 82 +data2series2: 60 + +data1series3: 10 +data2series3: 15 + + diff --git a/OLD/jpowered/demo/cylinder-SHbar/index.htm b/OLD/jpowered/demo/cylinder-SHbar/index.htm new file mode 100644 index 0000000..b0082db --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SHbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SVbar/config1.txt b/OLD/jpowered/demo/cylinder-SVbar/config1.txt new file mode 100644 index 0000000..6c6751d --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/config1.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: #AA4040|Product X + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +barwidth: 80 +barspacing: 15 + +gridbgcolor: #772D2D +axiscolor: #AA4040 +floorcolor: #FFB0B0 +gridcolor: #AA4040 +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: January|February|March|April|May|June +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-SVbar/config2.txt b/OLD/jpowered/demo/cylinder-SVbar/config2.txt new file mode 100644 index 0000000..0beab5e --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/config2.txt @@ -0,0 +1,85 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: orange|Product X + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 50 +barspacing: 10 + +chartscale: 100 +chartstarty: 0 + +gridbgcolor: #00CC80 +gridbgcolor2: #00EEA0 +axiscolor: #008F59 +floorcolor: #008F59 +gridcolor: #008F59 +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: John|Robert|Janice|Alf|Susan|Gary|Julie|Gordon|Harold|Sheila +xlabelorientation: Up Angle +xlabeloffset: 0 +xfont: medium +xlabelcolor: #444444 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpost: pts + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-SVbar/config3.txt b/OLD/jpowered/demo/cylinder-SVbar/config3.txt new file mode 100644 index 0000000..1043dd7 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/config3.txt @@ -0,0 +1,87 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +barwidth: 100 +barspacing: 30 + +chartscale: 30 +chartstarty: 0 + +gridbgcolor: #000000 +axiscolor: #000000 +floorcolor: #444499 +gridcolor: #008F59 +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: 2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-SVbar/config4.txt b/OLD/jpowered/demo/cylinder-SVbar/config4.txt new file mode 100644 index 0000000..54ba129 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/config4.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +barwidth: 100 +barspacing: 30 + +gridbgcolor: #9999BB +gridbgcolor2: #8888AA +axiscolor: #444499 +floorcolor: #444499 +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #FFFFFF +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #FFFFFF + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #FFFFFF + +xlabels: 2008|2009|2010|2011| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 11 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #FFFFFF + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 11 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #FFFFFF +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-SVbar/data1.txt b/OLD/jpowered/demo/cylinder-SVbar/data1.txt new file mode 100644 index 0000000..9f1a4e7 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/data1.txt @@ -0,0 +1,6 @@ +data1series1: 20000 +data2series1: 60000 +data3series1: 35000 +data4series1: 25000 +data5series1: 82000 +data6series1: 13000 diff --git a/OLD/jpowered/demo/cylinder-SVbar/data2.txt b/OLD/jpowered/demo/cylinder-SVbar/data2.txt new file mode 100644 index 0000000..894ca9e --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/data2.txt @@ -0,0 +1,10 @@ +data1series1: 250 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 820 +data6series1: 350 +data7series1: 640 +data8series1: 650 +data9series1: 430 +data10series1: 320 \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SVbar/data3.txt b/OLD/jpowered/demo/cylinder-SVbar/data3.txt new file mode 100644 index 0000000..345abe0 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/data3.txt @@ -0,0 +1,12 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 + +data1series2: 43 +data2series2: 60 +data3series2: 82 + +data1series3: 10 +data2series3: 15 +data3series3: 12 + diff --git a/OLD/jpowered/demo/cylinder-SVbar/data4.txt b/OLD/jpowered/demo/cylinder-SVbar/data4.txt new file mode 100644 index 0000000..ff89ab7 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/data4.txt @@ -0,0 +1,14 @@ +data1series1: 15 +data2series1: 19 +data3series1: 82 +data4series1: 52 + +data1series2: 43 +data2series2: 60 +data3series2: 82 +data4series2: 22 + +data1series3: 16 +data2series3: 15 +data3series3: 18 +data4series3: 32 \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-SVbar/index.htm b/OLD/jpowered/demo/cylinder-SVbar/index.htm new file mode 100644 index 0000000..45747bc --- /dev/null +++ b/OLD/jpowered/demo/cylinder-SVbar/index.htm @@ -0,0 +1,142 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Vbar/config1.txt b/OLD/jpowered/demo/cylinder-Vbar/config1.txt new file mode 100644 index 0000000..9fd7019 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/config1.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #992020|Product X + +quality: medium + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +thousandseparator: , +barwidth: 70 +barspacing: 10 + +gridbgcolor: #FFCDCD +axiscolor: #6B1616 +floorcolor: #FF9A9A +gridcolor: #6B1616 +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 10 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 10 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: January|February|March|April|May|June +xlabelorientation: Up Angle +xlabeloffset: 15 +xlabelfont: Arial +xlabelfontsize: 11 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 11 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-Vbar/config2.txt b/OLD/jpowered/demo/cylinder-Vbar/config2.txt new file mode 100644 index 0000000..2582e89 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/config2.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X + +quality: medium + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 70 +barspacing: 10 + +chartscale: 100 +chartstarty: 0 + +gridbgcolor: #00CC80 +gridbgcolor2: #00EEA0 +axiscolor: dark green +floorcolor: #00CC80 +gridcolor: dark green +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 11 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpost: pts + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 11 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-Vbar/config3.txt b/OLD/jpowered/demo/cylinder-Vbar/config3.txt new file mode 100644 index 0000000..39feb52 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/config3.txt @@ -0,0 +1,87 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +barwidth: 38 +barspacing: 2 + +chartscale: 20 +chartstarty: 0 + +gridbgcolor: #444444 +axiscolor: grey +floorcolor: gray +gridcolor: gray +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpost: pt + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: 2007|2008|2009|2010|2011 +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-Vbar/config4.txt b/OLD/jpowered/demo/cylinder-Vbar/config4.txt new file mode 100644 index 0000000..6b553ec --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/config4.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: black + +grid: true +axis: true +ndecplaces: 0 +barwidth: 90 +barspacing: 5 + +gridbgcolor: #9999BB +gridbgcolor2: #8888AA +axiscolor: #444499 +floorcolor: #444499 +gridcolor: grey +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 11 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #FFFFFF +ylabelpost: pt + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #FFFFFF +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #FFFFFF + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #FFFFFF + +xlabels: 2010|2011| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #FFFFFF + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #FFFFFF +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/cylinder-Vbar/data1.txt b/OLD/jpowered/demo/cylinder-Vbar/data1.txt new file mode 100644 index 0000000..9f1a4e7 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/data1.txt @@ -0,0 +1,6 @@ +data1series1: 20000 +data2series1: 60000 +data3series1: 35000 +data4series1: 25000 +data5series1: 82000 +data6series1: 13000 diff --git a/OLD/jpowered/demo/cylinder-Vbar/data2.txt b/OLD/jpowered/demo/cylinder-Vbar/data2.txt new file mode 100644 index 0000000..ecd3b61 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 250 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 820 \ No newline at end of file diff --git a/OLD/jpowered/demo/cylinder-Vbar/data3.txt b/OLD/jpowered/demo/cylinder-Vbar/data3.txt new file mode 100644 index 0000000..d18ed80 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/data3.txt @@ -0,0 +1,18 @@ +data1series1: 15 +data2series1: 11 +data3series1: 35 +data4series1: 25 +data5series1: 82 + +data1series2: 43 +data2series2: 60 +data3series2: 56 +data4series2: 32 +data5series2: 22 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 21 +data5series3: 16 + diff --git a/OLD/jpowered/demo/cylinder-Vbar/data4.txt b/OLD/jpowered/demo/cylinder-Vbar/data4.txt new file mode 100644 index 0000000..c146a71 --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/data4.txt @@ -0,0 +1,9 @@ +data1series1: 22 +data1series2: 10 +data1series3: 82 + +data2series1: 15 +data2series2: 65 +data2series3: 42 + + diff --git a/OLD/jpowered/demo/cylinder-Vbar/index.htm b/OLD/jpowered/demo/cylinder-Vbar/index.htm new file mode 100644 index 0000000..160d0bf --- /dev/null +++ b/OLD/jpowered/demo/cylinder-Vbar/index.htm @@ -0,0 +1,140 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/csvfile.htm b/OLD/jpowered/demo/examples/csvfile.htm new file mode 100644 index 0000000..a89a935 --- /dev/null +++ b/OLD/jpowered/demo/examples/csvfile.htm @@ -0,0 +1,207 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

Database Interface Script

+ +

Here the graphing software is instructed to dynamically read data from a CSV file.

+

This method allows you to graph data dynamically straight from a CSV file.

+ + + +

The graph above is produced using the "Data Interface Script" method with the following IMG tag:-

+ + +

The graph data is produced by the interface script and read by the graphing software at runtime:-

+ +

With this method the graphing software calls the interface script at runtime and reads the output of the script +in the same way that it would read the data from a flat file. This method allows data to be dynamically produced +and plotted in real-time.

+ +

The settings and styles are set from the information contained in the file:-

+ + +

If the graph above does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ +

If the graph above does display but no data is shown then the most likely cause is that the graph is having trouble +connecting to the database server. Ensure that the 'Sample Application' has been set up +with the correct DB User credentials.

+

If you have not yet set up the Sample Application then +you can do so here.

+ +

 

+
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/data/configFile.txt b/OLD/jpowered/demo/examples/data/configFile.txt new file mode 100644 index 0000000..c3b3b78 --- /dev/null +++ b/OLD/jpowered/demo/examples/data/configFile.txt @@ -0,0 +1,88 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +quality: medium + +series1: 255,80,30|Product A +series2: 10,122,164|Product B +series3: 150,90,200|Product C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 0 +barwidth: 48 +barspacing: 2 + +chartscale: 2000 +chartstarty: 0 + +gridbgcolor: #444444 +axiscolor: grey +floorcolor: gray +gridcolor: gray +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpost: +ylabelpre: $ + +titletext: Product Sales +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Year +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Sales Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + +xlabels: 2008|2009|2010|2011 +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/examples/data/configFileMultiScale.txt b/OLD/jpowered/demo/examples/data/configFileMultiScale.txt new file mode 100644 index 0000000..ddedb58 --- /dev/null +++ b/OLD/jpowered/demo/examples/data/configFileMultiScale.txt @@ -0,0 +1,97 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Value of Sales|left| +series2: #9999ff|Sales Volume|right| + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 50 +barspacing: 10 + +gridbgcolor: #aaffaa +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Volume and Values of Sales +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + +xtitletext: +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +y2titletext: Volume +y2titlefont: Arial +y2titlefontsize: 11 +y2titlefontbold: true +y2titlefontitalic: false +y2titlecolor: #555555 + +xlabels: Quarter 1|Quarter 2|Quarter 3|Quarter 4 +xlabelorientation: Down Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #333333 +ylabelpost: +ylabelpre: $ + +y2labels: true +y2labelfont: Arial +y2labelfontsize: 9 +y2labelfontbold: false +y2labelfontitalic: false +y2labelcolor: #000088 +y2labelpost: +y2labelpre: + + + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/data/csvConfig.php b/OLD/jpowered/demo/examples/data/csvConfig.php new file mode 100644 index 0000000..de44b32 --- /dev/null +++ b/OLD/jpowered/demo/examples/data/csvConfig.php @@ -0,0 +1,114 @@ +width: 700 +height: 400 + +quality: medium + +series1: 255,80,30|Temperature + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +ndecplaces: 1 +barwidth: 50 +barspacing: 2 + +gridbgcolor: #444444 +axiscolor: grey +floorcolor: gray +gridcolor: gray +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #444444 +y2labelcolor: blue +ylabelpost: C + +titletext: Temperature +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: -1,50 + + +xtitletext: Date/Time +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #444444 + +ytitletext: Temperature +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #444444 + + + +xlabelorientation: up angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #444444 + +legend: false +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #444444 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/examples/data/csvData.csv b/OLD/jpowered/demo/examples/data/csvData.csv new file mode 100644 index 0000000..1a05f5a --- /dev/null +++ b/OLD/jpowered/demo/examples/data/csvData.csv @@ -0,0 +1,11 @@ +Date Time ,Temperature +4/09/2010 13:00, 19.2C +4/09/2010 14:00, 20.1C +4/09/2010 15:00, 22.2C +4/09/2010 16:00, 22.8C +4/09/2010 17:00, 21.2C +4/09/2010 18:00, 20.5C +4/09/2010 19:00, 18.3C +4/09/2010 20:00, 14.2C +4/09/2010 21:00, 10.7C +4/09/2010 22:00, 8.1C diff --git a/OLD/jpowered/demo/examples/data/csvdataScript.php b/OLD/jpowered/demo/examples/data/csvdataScript.php new file mode 100644 index 0000000..0e4396c --- /dev/null +++ b/OLD/jpowered/demo/examples/data/csvdataScript.php @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/data/dataFile.txt b/OLD/jpowered/demo/examples/data/dataFile.txt new file mode 100644 index 0000000..9a62b11 --- /dev/null +++ b/OLD/jpowered/demo/examples/data/dataFile.txt @@ -0,0 +1,15 @@ +data1series1: 2000 +data2series1: 2400 +data3series1: 2300 +data4series1: 5550 + +data1series2: 4100 +data2series2: 3200 +data3series2: 3600 +data4series2: 4750 + +data1series3: 8300 +data2series3: 2100 +data3series3: 1200 +data4series3: 7000 + diff --git a/OLD/jpowered/demo/examples/data/dataFileMultiScale.txt b/OLD/jpowered/demo/examples/data/dataFileMultiScale.txt new file mode 100644 index 0000000..af8b66c --- /dev/null +++ b/OLD/jpowered/demo/examples/data/dataFileMultiScale.txt @@ -0,0 +1,9 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 + +data1series2: 1200 +data2series2: 2000 +data3series2: 3500 +data4series2: 2400 \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/data/dataFunction.php b/OLD/jpowered/demo/examples/data/dataFunction.php new file mode 100644 index 0000000..f53c826 --- /dev/null +++ b/OLD/jpowered/demo/examples/data/dataFunction.php @@ -0,0 +1,55 @@ + array(500, 750, 1250, 4300), + 'series2' => array(2000, 2100, 2600, 2400), + 'series3' => array(8300, 7400, 6200, 3200)); + + /* + * Convert the data into the array format required + * by the graphing software + * + * The format required is a one dimensional array + * which contains a text for each line of data. + * + */ + $dataLines = array(); + + /* + * write out the data in the format required for the graphing software + */ + foreach ($dataArray['series1'] as $dataIndex => $dataValue) + { + $dataLines[] = 'data' . ($dataIndex+1) . 'series1: ' . $dataValue; + } + + foreach ($dataArray['series2'] as $dataIndex => $dataValue) + { + $dataLines[] = 'data' . ($dataIndex+1) . 'series2: ' . $dataValue; + } + + foreach ($dataArray['series3'] as $dataIndex => $dataValue) + { + $dataLines[] = 'data' . ($dataIndex+1) . 'series3: ' . $dataValue; + } + + + /* + * return the $dataLines array to the + * graphing software + */ + return $dataLines; +} \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/data/dataFunctionParams.php b/OLD/jpowered/demo/examples/data/dataFunctionParams.php new file mode 100644 index 0000000..83431ad --- /dev/null +++ b/OLD/jpowered/demo/examples/data/dataFunctionParams.php @@ -0,0 +1,57 @@ + array(50*$_REQUEST['customParam'], 75*$_REQUEST['customParam'], 125*$_REQUEST['customParam'], 430*$_REQUEST['customParam']), + 'series2' => array(200*$_REQUEST['customParam'], 210*$_REQUEST['customParam'], 260*$_REQUEST['customParam'], 240*$_REQUEST['customParam']), + 'series3' => array(830*$_REQUEST['customParam'], 740*$_REQUEST['customParam'], 620*$_REQUEST['customParam'], 320*$_REQUEST['customParam'])); + + /* + * Convert the data into the array format required + * by the graphing software + * + * The format required is a one dimensional array + * which contains a text for each line of data. + * + */ + $dataLines = array(); + + /* + * write out the data in the format required for the graphing software + */ + foreach ($dataArray['series1'] as $dataIndex => $dataValue) + { + $dataLines[] = 'data' . ($dataIndex+1) . 'series1: ' . $dataValue; + } + + foreach ($dataArray['series2'] as $dataIndex => $dataValue) + { + $dataLines[] = 'data' . ($dataIndex+1) . 'series2: ' . $dataValue; + } + + foreach ($dataArray['series3'] as $dataIndex => $dataValue) + { + $dataLines[] = 'data' . ($dataIndex+1) . 'series3: ' . $dataValue; + } + + + /* + * return the $dataLines array to the + * graphing software + */ + return $dataLines; +} \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/data/dataScript.php b/OLD/jpowered/demo/examples/data/dataScript.php new file mode 100644 index 0000000..0c7b58d --- /dev/null +++ b/OLD/jpowered/demo/examples/data/dataScript.php @@ -0,0 +1,33 @@ + array(500, 750, 1250, 4300), + 'series2' => array(2000, 2100, 2600, 2400), + 'series3' => array(8300, 7400, 6200, 3200)); + +/* + * write out the data in the format required for the graphing software + */ +foreach ($dataArray['series1'] as $dataIndex => $dataValue) +{ + echo 'data' . ($dataIndex+1) . 'series1: ' . $dataValue . PHP_EOL; +} + +foreach ($dataArray['series2'] as $dataIndex => $dataValue) +{ + echo 'data' . ($dataIndex+1) . 'series2: ' . $dataValue . PHP_EOL; +} + +foreach ($dataArray['series3'] as $dataIndex => $dataValue) +{ + echo 'data' . ($dataIndex+1) . 'series3: ' . $dataValue . PHP_EOL; +} + +?> \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/dataFiles.htm b/OLD/jpowered/demo/examples/dataFiles.htm new file mode 100644 index 0000000..8703e46 --- /dev/null +++ b/OLD/jpowered/demo/examples/dataFiles.htm @@ -0,0 +1,171 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Data from Files

+ +

The graph below is produced using data and configuration options from plain text files.

+ + +

 

+ +

Here is the IMG tag which invokes the graphing software which dynamically creates the +graph image at page load time.

+ + + +

Here we tell the software to load the configuration options from the +file configFile.txt and the data +from the file dataFile.txt

+ +

Note: the URLs supplied for both the configuration and +data are relative URLs. The URLs are relative to the location of the +graphing software and NOT this page.

+ + + + + +

If the graph does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/database.htm b/OLD/jpowered/demo/examples/database.htm new file mode 100644 index 0000000..29dd32c --- /dev/null +++ b/OLD/jpowered/demo/examples/database.htm @@ -0,0 +1,216 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

Plotting Data from a Database

+

In this example the graph is configured to read and plot data directly from a database.

+ +

This example requires that the 'Sample Application' has been set up. Setting up the Sample Application +will create a database populated with data for use by this example. If you have not yet set up the Sample Application then +you can do so here.

+ + + + + +

The graph above is produced using the "Database Info" method with the following IMG tag:-

+ + +

The graph data is read directly from the database using the information contained in the file:-

+ +

With this method queries for each series of data are entered into the $jpDatabase["data"] array. At page view +time the graphing software will dynamically include this file and execute the queries to produce the +graph in real-time.

+ +

The settings and styles are set from the information contained in the file:-

+ + +

If the graph above does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ +

If the graph above does display but no data is shown then the most likely cause is that the graph is having trouble +connecting to the database server. Ensure that the 'Sample Application' has been set up +with the correct DB User credentials.

+

If you have not yet set up the Sample Application then +you can do so here.

+ +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/datafunction.htm b/OLD/jpowered/demo/examples/datafunction.htm new file mode 100644 index 0000000..a43fcf3 --- /dev/null +++ b/OLD/jpowered/demo/examples/datafunction.htm @@ -0,0 +1,250 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Included Data Function

+ +

The graphing software will allow you to write your own data functions +which are then dynamically included at runtime. As with the external data script +method this allows data to be acquired in real time from any source including +databases, spreadsheets etc.

+ +

An advantage of this method is that all $_REQUEST and +$_SESSION variables are available for use within the function +at runtime. This allows data to be dynamically selected based upon data stored by your +application in the session or sent on the request object.

+ + +

 

+ +

Here is the IMG tag which invokes the graphing software which dynamically creates the +graph image at page load time.

+ + + +

Here we tell the software to load the configuration options from the +file configFile.txt and include the data +function dataFunction.php (code below)

+ + + +

Note: if a closing PHP tag (?>)is added at the end +of the data function file then it is vital that no characters appear +after that tag. If even a space character exists then the graphing +image will not be produced. It is recommend that the closing PHP tag is +omitted.

+ + +

Note: the URLs supplied for both the configuration and +data are relative URLs. The URLs are relative to the location of the +graphing software and NOT this page.

+ + + + + +

If the graph does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + + +

 

+ + + + + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/interface.htm b/OLD/jpowered/demo/examples/interface.htm new file mode 100644 index 0000000..ea69d35 --- /dev/null +++ b/OLD/jpowered/demo/examples/interface.htm @@ -0,0 +1,256 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

Database Interface Script

+ +

Here the graphing software is instructed to dynamically call at runtime a custom data script.

+ +

This method allows you to create your own PHP Scripts to produce the data to be graphed. This method +can be used to acquire data from a database or any other data source to which your PHP environment has access.

+ + + +

The graph above is produced using the "Data Interface Script" method with the following IMG tag:-

+ + +

The graph data is produced by the interface script and read by the graphing software at runtime:-

+ +

With this method the graphing software calls the interface script at runtime and reads the output of the script +in the same way that it would read the data from a flat file. This method allows data to be dynamically produced +and plotted in real-time.

+ +

The settings and styles are set from the information contained in the file:-

+ + +

If the graph above does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ +

If the graph above does display but no data is shown then the most likely cause is that the graph is having trouble +connecting to the database server. Ensure that the 'Sample Application' has been set up +with the correct DB User credentials.

+

If you have not yet set up the Sample Application then +you can do so here.

+ +

 

+
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/multiScales.htm b/OLD/jpowered/demo/examples/multiScales.htm new file mode 100644 index 0000000..c48f355 --- /dev/null +++ b/OLD/jpowered/demo/examples/multiScales.htm @@ -0,0 +1,171 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

In the Vertical Bar Graph below we plot 2 series of data with the first using the left y-axis scales and the second +using the right y-axis scale.

+ +

By default all data will be set to plot against the left hand y-axis scale. To override this +and tell the graph software to plot data against a right hand y-axis scale an additional element +is added to the sereisN parameter in the configuration. In this case we tell the graph software to +plot series 2 against the right hand scale by adding the value 'right' to the end of the series +parameter string:-

+ +

series2: #993399|Sales Volume|right|

+ + +

 

+ +

Here is the IMG tag which invokes the graphing software which dynamically creates the +graph image at page load time.

+ + + +

Here we tell the software to load the configuration options from the +file configFileMultiScale.txt and the data +from the file dataFileMultiScale.txt

+ +

Note: the URLs supplied for both the configuration and +data are relative URLs. The URLs are relative to the location of the +graphing software and NOT this page.

+ +

If the graph does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/requestParams.htm b/OLD/jpowered/demo/examples/requestParams.htm new file mode 100644 index 0000000..07d0c7a --- /dev/null +++ b/OLD/jpowered/demo/examples/requestParams.htm @@ -0,0 +1,252 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Utilising Request Parameters

+ +

In this example we again use the included data function method but +this time we pass a request parameter through on the IMG tag. The data function +will then produce the graph data based on the value of the request parameter.

+ +

This method has a variety of uses including displaying graph data dynamically +based upon user form selection.

+ + +

 

+ +

Here is the IMG tag which invokes the graphing software which dynamically creates the +graph image at page load time.

+ + + +

Note the extra parameter 'customParam=8' on the IMG tag URL. This is +used by the data function to create the data for the chart.

+ +

Here we tell the software to load the configuration options from the +file configFile.txt and include the data +function dataFunctionParams.php (code below)

+ + + +

Note: if a closing PHP tag (?>)is added at the end +of the data function file then it is vital that no characters appear +after that tag. If even a space character exists then the graphing +image will not be produced. It is recommend that the closing PHP tag is +omitted.

+ + +

Note: the URLs supplied for both the configuration and +data are relative URLs. The URLs are relative to the location of the +graphing software and NOT this page.

+ + + + + +

If the graph does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + + +

 

+ + + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/examples/scripts.htm b/OLD/jpowered/demo/examples/scripts.htm new file mode 100644 index 0000000..687a123 --- /dev/null +++ b/OLD/jpowered/demo/examples/scripts.htm @@ -0,0 +1,215 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Data from External Scripts

+ +

The graph here is produced in a similar manner to the first example except this +time we tell the graphing software to load the data from and external script. This method +is very powerful and allows great scope in the production of real time graphing. An external +script can be used to acquire data dynamically from a wide range of sources including +databases, spreadsheets etc.

+ + +

 

+ +

Here is the IMG tag which invokes the graphing software which dynamically creates the +graph image at page load time.

+ + + +

Here we tell the software to load the configuration options from the +file configFile.txt and the data +from the file dataScript.php (code below)

+ + + + + + +

Note: the URLs supplied for both the configuration and +data are relative URLs. The URLs are relative to the location of the +graphing software and NOT this page.

+ + + + + +

If the graph does not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + + +

 

+ + + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/hbar/config1.txt b/OLD/jpowered/demo/hbar/config1.txt new file mode 100644 index 0000000..5f0ffa3 --- /dev/null +++ b/OLD/jpowered/demo/hbar/config1.txt @@ -0,0 +1,80 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X +series2: 36,179,91|Product Y +series3: 179,36,91|Product Z + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +hspace: 110 +thousandseparator: , +barwidth: 15 + +gridbgcolor #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +ytitletext: Month +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xtitletext: Value +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelpre: $ + +ylabels: January|February|March|April|May|June|July|August|September|October|November|December| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 + +legend: false +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/hbar/config2.txt b/OLD/jpowered/demo/hbar/config2.txt new file mode 100644 index 0000000..5aaa645 --- /dev/null +++ b/OLD/jpowered/demo/hbar/config2.txt @@ -0,0 +1,73 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 30 +nrows: 10 +ndecplaces: 0 +barwidth: 40 +barspacing: 9 + +gridbgcolor: #FFCC80 +axiscolor: dark orange +floorcolor: light orange +gridcolor: dark orange +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +ytitletext: Player +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #993333 + +xtitletext: Score +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #555555 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: John|Robert|Janice|Alf|Susan| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #993333 + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/hbar/config3.txt b/OLD/jpowered/demo/hbar/config3.txt new file mode 100644 index 0000000..97a9eb5 --- /dev/null +++ b/OLD/jpowered/demo/hbar/config3.txt @@ -0,0 +1,78 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 19 +barspacing: 3 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: 2006|2007|2008|2009| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/hbar/config4.txt b/OLD/jpowered/demo/hbar/config4.txt new file mode 100644 index 0000000..2254be6 --- /dev/null +++ b/OLD/jpowered/demo/hbar/config4.txt @@ -0,0 +1,79 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 10 +ndecplaces: 0 +barwidth: 19 +barspacing: 2 + + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + +ylabels: 2008|2009|2010|2011| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/hbar/data1.txt b/OLD/jpowered/demo/hbar/data1.txt new file mode 100644 index 0000000..4d84842 --- /dev/null +++ b/OLD/jpowered/demo/hbar/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/hbar/data2.txt b/OLD/jpowered/demo/hbar/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/hbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/hbar/data3.txt b/OLD/jpowered/demo/hbar/data3.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/hbar/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/hbar/data4.txt b/OLD/jpowered/demo/hbar/data4.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/hbar/data4.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/hbar/index.htm b/OLD/jpowered/demo/hbar/index.htm new file mode 100644 index 0000000..01e84f0 --- /dev/null +++ b/OLD/jpowered/demo/hbar/index.htm @@ -0,0 +1,142 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/index.htm b/OLD/jpowered/demo/index.htm new file mode 100644 index 0000000..822bcf6 --- /dev/null +++ b/OLD/jpowered/demo/index.htm @@ -0,0 +1,167 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ + + + + + + + +
+ + +
+

Basic Chart Styles

+ +
+ + + + +
+

Sample Application

+ Sample Application + +

Trouble Shooting

+ Troubleshooting Guide +
+ + +
+ + + + + +
+

Help and Support

+ JPowered Support » +

We hope the documentation and tutorials enable you to quickly add dynamic graphs to your pages, however if at any stage you require assistance, help or advice then please feel free contact us.

+
+ +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/linegraph/config1.txt b/OLD/jpowered/demo/linegraph/config1.txt new file mode 100644 index 0000000..c959a53 --- /dev/null +++ b/OLD/jpowered/demo/linegraph/config1.txt @@ -0,0 +1,85 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #BB0000|Product X|left|8|triangle|true|solid| +series2: #0000BB|Product Y|left|8|box|true|solid| +series3: #FF8800|Product Z|left|8|diamond|true|solid| + +linewidth: 2 + +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +displayvalues: false + + +gridbgcolor: #FFFFCC +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: Jan|Feb|Mar|Apr|May|June|July|Aug|Sept|Oct|Nov|Dec| +xlabelorientation: Horizontal +xlabeloffset: 15 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/linegraph/config2.txt b/OLD/jpowered/demo/linegraph/config2.txt new file mode 100644 index 0000000..8894282 --- /dev/null +++ b/OLD/jpowered/demo/linegraph/config2.txt @@ -0,0 +1,77 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X|left|8|box|false|solid| + +backgroundcolor: white + +linewidth: 2 + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 30 +nrows: 10 +ndecplaces: 0 + + +gridbgcolor: #FFCC80 +axiscolor: dark orange +floorcolor: light orange +gridcolor: dark orange +gridstyle: dotted + +titletext: Total Score for the Season +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Down Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #0000FF +y2labelcolor: blue +ylabelpost: pts + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/linegraph/config3.txt b/OLD/jpowered/demo/linegraph/config3.txt new file mode 100644 index 0000000..4bdf46a --- /dev/null +++ b/OLD/jpowered/demo/linegraph/config3.txt @@ -0,0 +1,79 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A|left|8|pluscross|false|solid| +series2: 10,122,164|Team B|left|8|xcross|false|solid| +series3: 150,90,200|Team C|left|8|circle|false|solid| + +backgroundcolor: white +linewidth: 2 +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #000000 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/linegraph/config4.txt b/OLD/jpowered/demo/linegraph/config4.txt new file mode 100644 index 0000000..76e2681 --- /dev/null +++ b/OLD/jpowered/demo/linegraph/config4.txt @@ -0,0 +1,81 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 100,100,255|Team A|left|6|triangle|true|solid| +series2: 255,0,0|Team B|left|6|diamond|true|solid| +series3: #FF8800|Team C|left|6|box|true|solid| + +backgroundcolor: #999999 +linewidth: 2 +grid: true +axis: true +3d: true +depth3d: 10 +ndecplaces: 0 +displayvalues: true + + +gridbgcolor: #000000 +axiscolor: #009900 +floorcolor: #009900 +gridcolor: #009900 +gridstyle: dashed + +titletext: Scores by Team per Season +titleposition: -1,50 +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #505090 + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #505090 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #505090 + +xlabels: 2000|2001|2002|2003|2004|2005|2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #FFFFFF + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #FFFFFF +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #666666 +legendbordercolor: #000000 +legendtextcolor: #FFFFFF +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/linegraph/data1.txt b/OLD/jpowered/demo/linegraph/data1.txt new file mode 100644 index 0000000..98b754b --- /dev/null +++ b/OLD/jpowered/demo/linegraph/data1.txt @@ -0,0 +1,35 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 45000 +data4series1: 30000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 + +data1series2: 32000 +data2series2: 30000 +data3series2: 35000 +data4series2: 20000 +data5series2: 36000 +data6series2: 54000 +data7series2: 65000 +data8series2: 63000 +data9series2: 57000 +data10series2: 58000 +data11series2: 45000 +data12series2: 51000 + +data4series3: 10000 +data5series3: 15000 +data6series3: 24000 +data7series3: 21000 +data8series3: 27000 +data9series3: 23000 +data10series3: 31000 +data11series3: 35000 +data12series3: 28000 \ No newline at end of file diff --git a/OLD/jpowered/demo/linegraph/data2.txt b/OLD/jpowered/demo/linegraph/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/linegraph/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/linegraph/data3.txt b/OLD/jpowered/demo/linegraph/data3.txt new file mode 100644 index 0000000..ef10f30 --- /dev/null +++ b/OLD/jpowered/demo/linegraph/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 7 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/linegraph/data4.txt b/OLD/jpowered/demo/linegraph/data4.txt new file mode 100644 index 0000000..00601fd --- /dev/null +++ b/OLD/jpowered/demo/linegraph/data4.txt @@ -0,0 +1,27 @@ +data1series1: 32 +data2series1: 28 +data3series1: 35 +data4series1: 28 +data5series1: 21 +data6series1: 24 +data7series1: 17 +data8series1: 19 +data9series1: 32 +data10series1: 33 + +data4series2: 82 +data5series2: 60 +data6series2: 43 +data7series2: 55 +data8series2: 49 +data9series2: 40 +data10series2: 45 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 +data5series3: 7 +data6series3: 3 + + diff --git a/OLD/jpowered/demo/linegraph/index.htm b/OLD/jpowered/demo/linegraph/index.htm new file mode 100644 index 0000000..457b5cf --- /dev/null +++ b/OLD/jpowered/demo/linegraph/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/piechart/config1.txt b/OLD/jpowered/demo/piechart/config1.txt new file mode 100644 index 0000000..829a669 --- /dev/null +++ b/OLD/jpowered/demo/piechart/config1.txt @@ -0,0 +1,74 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + + +width: 700 +height: 400 +ndecplaces: 0 +pecentndecplaces: 0 +depth3d: 20 +3dangle: 40 + +backgroundcolor: #FFFFFF + + +3d: false +displayPercentages: true +labellines: true +quality: high + + +valuepresym: $ + + +thousandseparator: , + + +segmentlabels: true +segmentlabelfont: Arial +segmentlabelfontsize: 10 +segmentlabelfontbold: false +segmentlabelfontitalic: false +segmentlabelcolor: #666666 + + + +pie1: 300,250|200|10 + + + +segment1: #009999|N America| +segment2: #CC0099|Europe| +segment3: #FFCC00|Asia| +segment4: #1E14AD|Africa| +segment5: #FF3D00|Australia| +segment6: #88B300|S America| + + +titletext: Sales by Region +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: 100,60 + + +legend: true +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true +legendposition: 520,60 +legendtitle: Sales Region +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: vertical + + diff --git a/OLD/jpowered/demo/piechart/config2.txt b/OLD/jpowered/demo/piechart/config2.txt new file mode 100644 index 0000000..0dda961 --- /dev/null +++ b/OLD/jpowered/demo/piechart/config2.txt @@ -0,0 +1,75 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + + +width: 700 +height: 400 +ndecplaces: 0 +pecentndecplaces: 0 +depth3d: 20 +3dangle: 40 + +backgroundcolor: #FFFFFF + + +3d: true +displayPercentages: true +labellines: true +quality: high + + +valuepresym: $ + + +thousandseparator: , + + +segmentlabels: true +segmentlabelfont: Arial +segmentlabelfontsize: 10 +segmentlabelfontbold: true +segmentlabelfontitalic: false +segmentlabelcolor: #666666 + + + +pie1: 190,200|140|0 + + + +segment1: #8888CC|N America| +segment2: #22CC33|Europe| +segment3: #CC2233|Asia| +segment4: #FF8800|Africa| +segment5: #CC00CC|Australia| +segment6: #0088FF|S America| + + +titletext: Sales by Region +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: 5,60 + + +legend: true +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true +legendposition: 320,60 +legendtitle: Sales Region +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: vertical + + + diff --git a/OLD/jpowered/demo/piechart/config3.txt b/OLD/jpowered/demo/piechart/config3.txt new file mode 100644 index 0000000..f432e66 --- /dev/null +++ b/OLD/jpowered/demo/piechart/config3.txt @@ -0,0 +1,78 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + + +width: 700 +height: 400 +ndecplaces: 0 +pecentndecplaces: 0 +depth3d: 20 +3dangle: 40 + +backgroundcolor: #FFFFFF + + +3d: false +displayPercentages: false +labellines: true +quality: high + + +valuepresym: $ + + +thousandseparator: , + + +segmentlabels: true +segmentlabelfont: Arial +segmentlabelfontsize: 10 +segmentlabelfontbold: true +segmentlabelfontitalic: false +segmentlabelcolor: #666666 + + + +pie1: 150,180|50|0 +pie2: 550,180|50|0 +pie3: 350,300|100|0 + + + +segment1: #72A372|N America| +segment2: #BF6060|Europe| +segment3: #62567A|Asia| +segment4: #807859|Africa| + + +titletext: Sales by Region +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: 5,60 + + +legend: true +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true +legendposition: 300,45 +legendtitle: Sales Region +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #202020 +legendstyle: horizontal + + + +text: Product X|#555555|100,260|arial|10|true|false|0 +text: Product Y|#555555|520,260|arial|10|true|false|0 +text: Combined|#555555|300,395|arial|10|true|false|0 diff --git a/OLD/jpowered/demo/piechart/config4.txt b/OLD/jpowered/demo/piechart/config4.txt new file mode 100644 index 0000000..4c54946 --- /dev/null +++ b/OLD/jpowered/demo/piechart/config4.txt @@ -0,0 +1,77 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + + +width: 700 +height: 400 +ndecplaces: 0 +pecentndecplaces: 0 +depth3d: 20 +3dangle: 50 + +backgroundcolor: #ffffff + + +3d: true +displayPercentages: true +labellines: true +quality: very high + + +valuepresym: $ + + +thousandseparator: , + + +segmentlabels: true +segmentlabelfont: Arial +segmentlabelfontsize: 8 +segmentlabelfontbold: false +segmentlabelfontitalic: false +segmentlabelcolor: #666666 + + + +pie1: 190,220|120|0 +pie2: 480,310|140|5 + + + +segment1: #8888CC|N America| +segment2: #22CC33|Europe| +segment3: #CC2233|Asia| +segment4: #FF8800|Africa| +segment5: #CC00CC|Australia| +segment6: #0088FF|S America| + + +titletext: Sales by Region +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #444444 +titleposition: 5,60 + + +legend: true +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true +legendposition: 5,70 +legendtitle: Sales Region +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: horizontal + + +text: Product X|#555555|380,400|arial|12|true|false|0 +text: Product Y|#555555|50,300|arial|12|true|false|0 diff --git a/OLD/jpowered/demo/piechart/data1.txt b/OLD/jpowered/demo/piechart/data1.txt new file mode 100644 index 0000000..3ee7313 --- /dev/null +++ b/OLD/jpowered/demo/piechart/data1.txt @@ -0,0 +1,6 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 34000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 diff --git a/OLD/jpowered/demo/piechart/data2.txt b/OLD/jpowered/demo/piechart/data2.txt new file mode 100644 index 0000000..3ee7313 --- /dev/null +++ b/OLD/jpowered/demo/piechart/data2.txt @@ -0,0 +1,6 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 34000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 diff --git a/OLD/jpowered/demo/piechart/data3.txt b/OLD/jpowered/demo/piechart/data3.txt new file mode 100644 index 0000000..b969847 --- /dev/null +++ b/OLD/jpowered/demo/piechart/data3.txt @@ -0,0 +1,16 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 34000 +data4series1: 15000 + +data1series2: 21000 +data2series2: 30000 +data3series2: 17000 +data4series2: 8000 + +data1series3: 103000 +data2series3: 90000 +data3series3: 51000 +data4series3: 10000 + + diff --git a/OLD/jpowered/demo/piechart/data4.txt b/OLD/jpowered/demo/piechart/data4.txt new file mode 100644 index 0000000..5226260 --- /dev/null +++ b/OLD/jpowered/demo/piechart/data4.txt @@ -0,0 +1,13 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 34000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 + +data1series2: 21000 +data2series2: 30000 +data3series2: 17000 +data4series2: 30000 +data5series2: 12000 +data6series2: 23000 diff --git a/OLD/jpowered/demo/piechart/index.htm b/OLD/jpowered/demo/piechart/index.htm new file mode 100644 index 0000000..df08175 --- /dev/null +++ b/OLD/jpowered/demo/piechart/index.htm @@ -0,0 +1,136 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + + + +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/shbar/config1.txt b/OLD/jpowered/demo/shbar/config1.txt new file mode 100644 index 0000000..e69742c --- /dev/null +++ b/OLD/jpowered/demo/shbar/config1.txt @@ -0,0 +1,82 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X +series2: 36,179,91|Product Y +series3: 179,36,91|Product Z + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 20 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +ytitletext: Month +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xtitletext: Value +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ylabels: January|February|March|April|May|June|July|August|September|October|November|December| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 + +xlables: true +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: black +xlabelpre: $ +xlabelpost: + +legend: false +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/shbar/config2.txt b/OLD/jpowered/demo/shbar/config2.txt new file mode 100644 index 0000000..a0b6f54 --- /dev/null +++ b/OLD/jpowered/demo/shbar/config2.txt @@ -0,0 +1,76 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +hspace: 120 +nrows: 5 +ndecplaces: 0 +barwidth: 48 +barspacing: 10 + +gridbgcolor: #FFCC80 +axiscolor: dark orange +floorcolor: light orange +gridcolor: dark orange +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +ytitletext: Player +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #993333 + +xtitletext: Score +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #555555 + +ylabels: John|Robert|Janice|Alf|Susan| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #993333 + +xlables: true +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #555555 +xlabelpost: pts + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/shbar/config3.txt b/OLD/jpowered/demo/shbar/config3.txt new file mode 100644 index 0000000..18a30f7 --- /dev/null +++ b/OLD/jpowered/demo/shbar/config3.txt @@ -0,0 +1,81 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 65 +barspacing: 5 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ylabels: 2006|2007|2008|2009| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 + +xlables: true +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #202050 +xlabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/shbar/config4.txt b/OLD/jpowered/demo/shbar/config4.txt new file mode 100644 index 0000000..f0a7efa --- /dev/null +++ b/OLD/jpowered/demo/shbar/config4.txt @@ -0,0 +1,81 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 10 +ndecplaces: 0 +barwidth: 63 +barspacing: 5 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +ytitletext: Season +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xtitletext: Points +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ylabels: 2008|2009|2010|2011| +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 + +xlables: true +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #202050 +xlabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/shbar/data1.txt b/OLD/jpowered/demo/shbar/data1.txt new file mode 100644 index 0000000..4d84842 --- /dev/null +++ b/OLD/jpowered/demo/shbar/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/shbar/data2.txt b/OLD/jpowered/demo/shbar/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/shbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/shbar/data3.txt b/OLD/jpowered/demo/shbar/data3.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/shbar/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/shbar/data4.txt b/OLD/jpowered/demo/shbar/data4.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/shbar/data4.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/shbar/index.htm b/OLD/jpowered/demo/shbar/index.htm new file mode 100644 index 0000000..544f26e --- /dev/null +++ b/OLD/jpowered/demo/shbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/svbar/config1.txt b/OLD/jpowered/demo/svbar/config1.txt new file mode 100644 index 0000000..8574996 --- /dev/null +++ b/OLD/jpowered/demo/svbar/config1.txt @@ -0,0 +1,86 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #44BB88|Product X +series2: 36,179,91|Product Y +series3: 179,36,91|Product Z + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 45 +barspacing: 5 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Horizontal +xlabeloffset: 15 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/svbar/config2.txt b/OLD/jpowered/demo/svbar/config2.txt new file mode 100644 index 0000000..cf5a617 --- /dev/null +++ b/OLD/jpowered/demo/svbar/config2.txt @@ -0,0 +1,78 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: orange|Product X| + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 80 +barspacing: 10 + +gridbgcolor: #FFCC80 +axiscolor: dark orange +floorcolor: light orange +gridcolor: dark orange +gridstyle: dotted + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Down Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #555555 +ylabelpost: pts + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/svbar/config3.txt b/OLD/jpowered/demo/svbar/config3.txt new file mode 100644 index 0000000..7e2cfe1 --- /dev/null +++ b/OLD/jpowered/demo/svbar/config3.txt @@ -0,0 +1,83 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A| +series2: 10,122,164|Team B| +series3: 150,90,200|Team C| + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +barwidth: 90 +barspacing: 15 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/svbar/config4.txt b/OLD/jpowered/demo/svbar/config4.txt new file mode 100644 index 0000000..3153911 --- /dev/null +++ b/OLD/jpowered/demo/svbar/config4.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A| +series2: 10,122,164|Team B| +series3: 150,90,200|Team C| + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 10 +ndecplaces: 0 +barwidth: 90 +barspacing: 15 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2008|2009|2010|2011| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/svbar/data1.txt b/OLD/jpowered/demo/svbar/data1.txt new file mode 100644 index 0000000..c08ea64 --- /dev/null +++ b/OLD/jpowered/demo/svbar/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 38000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/svbar/data2.txt b/OLD/jpowered/demo/svbar/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/svbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/svbar/data3.txt b/OLD/jpowered/demo/svbar/data3.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/svbar/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/svbar/data4.txt b/OLD/jpowered/demo/svbar/data4.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/svbar/data4.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/svbar/index.htm b/OLD/jpowered/demo/svbar/index.htm new file mode 100644 index 0000000..82324d4 --- /dev/null +++ b/OLD/jpowered/demo/svbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/template/index2.htm b/OLD/jpowered/demo/template/index2.htm new file mode 100644 index 0000000..3e85159 --- /dev/null +++ b/OLD/jpowered/demo/template/index2.htm @@ -0,0 +1,117 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/vbar/config1.txt b/OLD/jpowered/demo/vbar/config1.txt new file mode 100644 index 0000000..decd1f6 --- /dev/null +++ b/OLD/jpowered/demo/vbar/config1.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #FFA000|Product X + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +barwidth: 40 +barspacing: 5 + +gridbgcolor: #63C66D +axiscolor: #666666 +floorcolor: #2C8435 +gridcolor: #666666 +gridstyle: dotted + +titletext: Product Sales by Month +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Month +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Value +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/vbar/config2.txt b/OLD/jpowered/demo/vbar/config2.txt new file mode 100644 index 0000000..1123f2d --- /dev/null +++ b/OLD/jpowered/demo/vbar/config2.txt @@ -0,0 +1,80 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #FFA000|Product X + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 20 +vspace: 25 +nrows: 10 +ndecplaces: 0 +barwidth: 80 +barspacing: 10 + +gridbgcolor: #63C66D +axiscolor: #666666 +floorcolor: #2C8435 +gridcolor: #666666 +gridstyle: dotted + + +titletext: Total Score for the Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #555555 +titleposition: -1,50 + + +xtitletext: Player +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #993333 + +ytitletext: Score +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #555555 + +xlabels: John|Robert|Janice|Alf|Susan| +xlabelorientation: Up Angle +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #993333 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #555555 +y2labelcolor: blue +ylabelpost: pts + +legend: false +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/vbar/config3.txt b/OLD/jpowered/demo/vbar/config3.txt new file mode 100644 index 0000000..49ab953 --- /dev/null +++ b/OLD/jpowered/demo/vbar/config3.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: 255,80,30|Team A +series2: 10,122,164|Team B +series3: 150,90,200|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 10 +ndecplaces: 0 +barwidth: 40 +barspacing: 5 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2008|2009|2010|2011| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #202060 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/vbar/config4.txt b/OLD/jpowered/demo/vbar/config4.txt new file mode 100644 index 0000000..46ec849 --- /dev/null +++ b/OLD/jpowered/demo/vbar/config4.txt @@ -0,0 +1,84 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +series1: #C6945B|Team A +series2: #69C65B|Team B +series3: #965AC8|Team C + +outline: true +gradientfill: true +backgroundcolor: white + +grid: true +axis: true +3d: true +depth3d: 10 +ndecplaces: 0 +barwidth: 40 +barspacing: 5 + +gridbgcolor: #EEFFEE +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +titletext: Scores by Team per Season +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #8080B0 +titleposition: -1,50 + + +xtitletext: Season +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #8080B0 + +ytitletext: Points +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #8080B0 + +xlabels: 2006|2007|2008|2009| +xlabelorientation: Horizontal +xlabeloffset: 0 +xlabelfont: Arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false +xlabelcolor: #8080B0 + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 9 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #8080B0 +y2labelcolor: blue +ylabelpost: pt + +legend: true +legendstyle: horizontal +legendbgcolor: #EEEEEE +legendbordercolor: #CCCCFF +legendtextcolor: #8080B0 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/vbar/data1.txt b/OLD/jpowered/demo/vbar/data1.txt new file mode 100644 index 0000000..4d84842 --- /dev/null +++ b/OLD/jpowered/demo/vbar/data1.txt @@ -0,0 +1,12 @@ +data1series1: 82000 +data2series1: 60000 +data3series1: 35000 +data4series1: 20000 +data5series1: 25000 +data6series1: 13000 +data7series1: 21000 +data8series1: 32000 +data9series1: 29000 +data10series1: 45000 +data11series1: 72000 +data12series1: 65000 diff --git a/OLD/jpowered/demo/vbar/data2.txt b/OLD/jpowered/demo/vbar/data2.txt new file mode 100644 index 0000000..cfbdbf2 --- /dev/null +++ b/OLD/jpowered/demo/vbar/data2.txt @@ -0,0 +1,5 @@ +data1series1: 820 +data2series1: 600 +data3series1: 350 +data4series1: 200 +data5series1: 250 \ No newline at end of file diff --git a/OLD/jpowered/demo/vbar/data3.txt b/OLD/jpowered/demo/vbar/data3.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/vbar/data3.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/vbar/data4.txt b/OLD/jpowered/demo/vbar/data4.txt new file mode 100644 index 0000000..06ddea1 --- /dev/null +++ b/OLD/jpowered/demo/vbar/data4.txt @@ -0,0 +1,16 @@ +data1series1: 5 +data2series1: 11 +data3series1: 35 +data4series1: 8 + +data1series2: 82 +data2series2: 60 +data3series2: 43 +data4series2: 55 + +data1series3: 10 +data2series3: 15 +data3series3: 12 +data4series3: 5 + + diff --git a/OLD/jpowered/demo/vbar/index.htm b/OLD/jpowered/demo/vbar/index.htm new file mode 100644 index 0000000..db479c5 --- /dev/null +++ b/OLD/jpowered/demo/vbar/index.htm @@ -0,0 +1,141 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + +

 

+ + +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/demo/xyscatter/config1.txt b/OLD/jpowered/demo/xyscatter/config1.txt new file mode 100644 index 0000000..a628f2a --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/config1.txt @@ -0,0 +1,81 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +backgroundcolor: black + +series1: red|Product X|left|8|triangle|true|solid| + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +displayvalues: true + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + + +gridbgcolor: #000055 +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +titletext: Sales vs Downloads +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #C8C8FF +titleposition: -1,50 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #C8C8FF + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #C8C8FF + +xlabelcolor: #C8C8FF +ylabelcolor: #C8C8FF + + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #C8C8FF +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/xyscatter/config2.txt b/OLD/jpowered/demo/xyscatter/config2.txt new file mode 100644 index 0000000..3ac98bf --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/config2.txt @@ -0,0 +1,82 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +backgroundcolor: black + +series1: red|Product X|left|8|triangle|true|solid| +series2: green|Product Y|left|8|box|true|solid| +series3: blue|Product Z|left|8|diamond|true|solid| + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +displayvalues: false + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + +gridbgcolor: #000055 +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +titletext: Sales vs Downloads +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #FFB200 +titleposition: -1,50 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #FFB200 + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #FFB200 + +xlabelcolor: #FFB200 +ylabelcolor: #FFB200 + + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #FFB200 +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/xyscatter/config3.txt b/OLD/jpowered/demo/xyscatter/config3.txt new file mode 100644 index 0000000..d815679 --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/config3.txt @@ -0,0 +1,82 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +backgroundcolor: #FFFFFF + +series1: #CC0099|Product X|left|15|diamond|true|solid| + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +displayvalues: false + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + + +gridbgcolor: #006B6B +gridbgcolor2: #208B8B +axiscolor: dark grey +floorcolor: light gray +gridcolor: #BFFFFF +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: black +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +titletext: Sales vs Downloads +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #006B6B +titleposition: -1,50 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #006B6B + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #006B6B + +xlabelcolor: #006B6B +ylabelcolor: #006B6B + + +legend: true +legendstyle: horizontal +legendbgcolor: #FFFFFF +legendbordercolor: #FFFFFF +legendtextcolor: #006B6B +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/xyscatter/config4.txt b/OLD/jpowered/demo/xyscatter/config4.txt new file mode 100644 index 0000000..c53def8 --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/config4.txt @@ -0,0 +1,86 @@ +/* --------------------------------------------------------------------------------------------- */ +/* */ +/* For the full range of options and parameter meanings please see:- */ +/* */ +/* http://www.jpowered.com/php-scripts/adv-graph-chart/documentation/configurationOptions.htm */ +/* */ +/* --------------------------------------------------------------------------------------------- */ + +width: 700 +height: 400 + +backgroundcolor: black + +series1: red|Product X|left|8|triangle|true|solid| +series2: purple|Product Y|left|8|box|true|solid| +series3: blue|Product Z|left|8|diamond|true|solid| + +grid: true +axis: true +3d: false +depth3d: 10 +ndecplaces: 0 +thousandseparator: , +displayvalues: false + +chartStartY: 0 +chartStartX: 0 +chartscale: 80000 +chartscaleX: 20000 + + + + +gridbgcolor: #EEFFEE +gridbgcolor2: #CCDDCC +axiscolor: dark grey +floorcolor: light gray +gridcolor: grey +gridstyle: dotted + +ylabels: true +ylabelfont: Arial +ylabelfontsize: 10 +ylabelfontbold: false +ylabelfontitalic: false +ylabelcolor: #CCDDCC +y2labelcolor: blue +ylabelpre: $ +ylabelpost: + +titletext: Sales vs Downloads +titlefont: Arial +titlefontsize: 12 +titlefontbold: true +titlefontitalic: false +titlecolor: #CCDDCC +titleposition: -1,50 + +xtitletext: Number of Downloads +xtitlefont: Arial +xtitlefontsize: 11 +xtitlefontbold: true +xtitlefontitalic: false +xtitlecolor: #CCDDCC + +ytitletext: Value of Sales +ytitlefont: Arial +ytitlefontsize: 11 +ytitlefontbold: true +ytitlefontitalic: false +ytitlecolor: #CCDDCC + +xlabelcolor: #CCDDCC +ylabelcolor: #CCDDCC + + +legend: true +legendstyle: horizontal +legendbgcolor: #000000 +legendbordercolor: #000000 +legendtextcolor: #CCDDCC +legendtitle: +legendfont: Arial +legendfontsize: 10 +legendfontbold: false +legendfontitalic: true diff --git a/OLD/jpowered/demo/xyscatter/data1.txt b/OLD/jpowered/demo/xyscatter/data1.txt new file mode 100644 index 0000000..75fc9b5 --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/data1.txt @@ -0,0 +1,6 @@ +data1series1: 82000,348500 +data2series1: 70000,250420 +data3series1: 35000,240000 +data4series1: 20000,150000 +data5series1: 25000,98000 +data6series1: 26000,55000 diff --git a/OLD/jpowered/demo/xyscatter/data2.txt b/OLD/jpowered/demo/xyscatter/data2.txt new file mode 100644 index 0000000..5cbc18f --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/data2.txt @@ -0,0 +1,38 @@ +data1series1: 82000,398500 +data2series1: 60000,250420 +data3series1: 35000,240000 +data4series1: 20000,130000 +data5series1: 25000,98000 +data6series1: 13000,75000 +data7series1: 21000,120000 +data8series1: 32000,154000 +data9series1: 29000,162000 +data10series1: 45000,158000 +data11series1: 72000,220000 +data12series1: 65000,197000 + +data1series2: 42000,348500 +data2series2: 30000,250420 +data3series2: 25000,240000 +data4series2: 10000,130000 +data5series2: 15000,98000 +data6series2: 8000,75000 +data7series2: 11000,120000 +data8series2: 12000,154000 +data9series2: 19000,162000 +data10series2: 25000,158000 +data11series2: 32000,220000 +data12series2: 35000,197000 + +data1series3: 92000,198500 +data2series3: 80000,150420 +data3series3: 55000,140000 +data4series3: 40000,80000 +data5series3: 45000,58000 +data6series3: 33000,35000 +data7series3: 41000,60000 +data8series3: 52000,74000 +data9series3: 49000,82000 +data10series3: 65000,78000 +data11series3: 92000,110000 +data12series3: 85000,107000 diff --git a/OLD/jpowered/demo/xyscatter/data3.txt b/OLD/jpowered/demo/xyscatter/data3.txt new file mode 100644 index 0000000..72df31e --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/data3.txt @@ -0,0 +1,32 @@ +data1series1: 82000,398500 +data2series1: 60000,250420 +data3series1: 35000,240000 +data4series1: 20000,130000 +data5series1: 25000,98000 +data6series1: 13000,75000 +data7series1: 21000,120000 +data8series1: 32000,154000 +data9series1: 29000,162000 +data10series1: 45000,158000 + +data21series1: 42000,348500 +data22series1: 30000,250420 +data23series1: 25000,240000 +data24series1: 10000,230000 +data25series1: 15000,98000 +data26series1: 8000,75000 +data27series1: 11000,220000 +data28series1: 12000,254000 +data29series1: 19000,262000 +data30series1: 25000,128000 + +data31series1: 92000,298500 +data32series1: 80000,250420 +data33series1: 55000,140000 +data34series1: 40000,80000 +data35series1: 45000,58000 +data36series1: 33000,35000 +data37series1: 41000,60000 +data38series1: 52000,74000 +data39series1: 49000,82000 +data30series1: 65000,78000 diff --git a/OLD/jpowered/demo/xyscatter/data4.txt b/OLD/jpowered/demo/xyscatter/data4.txt new file mode 100644 index 0000000..5cbc18f --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/data4.txt @@ -0,0 +1,38 @@ +data1series1: 82000,398500 +data2series1: 60000,250420 +data3series1: 35000,240000 +data4series1: 20000,130000 +data5series1: 25000,98000 +data6series1: 13000,75000 +data7series1: 21000,120000 +data8series1: 32000,154000 +data9series1: 29000,162000 +data10series1: 45000,158000 +data11series1: 72000,220000 +data12series1: 65000,197000 + +data1series2: 42000,348500 +data2series2: 30000,250420 +data3series2: 25000,240000 +data4series2: 10000,130000 +data5series2: 15000,98000 +data6series2: 8000,75000 +data7series2: 11000,120000 +data8series2: 12000,154000 +data9series2: 19000,162000 +data10series2: 25000,158000 +data11series2: 32000,220000 +data12series2: 35000,197000 + +data1series3: 92000,198500 +data2series3: 80000,150420 +data3series3: 55000,140000 +data4series3: 40000,80000 +data5series3: 45000,58000 +data6series3: 33000,35000 +data7series3: 41000,60000 +data8series3: 52000,74000 +data9series3: 49000,82000 +data10series3: 65000,78000 +data11series3: 92000,110000 +data12series3: 85000,107000 diff --git a/OLD/jpowered/demo/xyscatter/index.htm b/OLD/jpowered/demo/xyscatter/index.htm new file mode 100644 index 0000000..14cc501 --- /dev/null +++ b/OLD/jpowered/demo/xyscatter/index.htm @@ -0,0 +1,142 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+

If the graphs below do not display then see the Troubleshooting guide for details on how to resolve the problem.

+ + + +

 

+ + +

 

+
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/addingGraphsToPages.htm b/OLD/jpowered/documentation/addingGraphsToPages.htm new file mode 100644 index 0000000..c81ba8d --- /dev/null +++ b/OLD/jpowered/documentation/addingGraphsToPages.htm @@ -0,0 +1,168 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Adding a Graph to a Web Page

+ + +

Dynamic Graphs are added to a page with the standard HTML IMG tag. However the 'src' element, +instead of being set to reference an actual image file, is set to reference the graphing software. +The img tag is of the following format for all chart styles:-

+ +

Also see - Sample IMG tags for each Graph type

+ + +

Graph Image Tag Format

+ +

 

+
    +
  • [GRAPH-STYLE] - replace with the chart style (e.g. line-graph.php)
  • +
  • [URLtoDATASOURCE] - the URL link of the data source, a file, a script or database.
  • +
  • [URLtoCONFIG] - URL link to the configuration settings file.
  • +
+

The width and height settings operate as normal and tell the browser what size the graph will be.

+ +

For example if we require a Vertical Bar Graph in a page where the data is supplied by a script ./data/vbardata.php and the +config settings are in a file called vbarconfig.txt then the following img tag would be added to the page:-

+

Vertical Bar Graph Example Image Tag

+ + + +

Notice that here that full URL paths have been supplied for all files. Relative URLs can be also be used, however +the paths will be relative to the ./jpowered/graph/ directory and not the dir of the page. With relative URLs the above +img tag would become:-

+

Relative URL Example Image Tag

+ + +

How the Graph is Produced - The Process

+

When a page containing a graphing img is loaded the following will occur:-

+ +
    +
  • - browser issues a request to the graphing software for the graph image
  • +
  • - the graphing software will load data and configuration information
  • +
  • - if a database call has been requested then the queries will be issued for the data
  • +
  • - the graphing software will dynamically construct the image in memory
  • +
  • - the graphing software will send the graph image to the browser for display
  • +
+ +

Although the above process may seem complex, the processing time is very short and it +is 100% cross browser compliant. Typically the time it takes to generate and display +the graph is about the same as displaying a static image of equal size. +

+ +

Sample IMG tags for each Graph type »

+ +
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/colors.htm b/OLD/jpowered/documentation/colors.htm new file mode 100644 index 0000000..2a418de --- /dev/null +++ b/OLD/jpowered/documentation/colors.htm @@ -0,0 +1,172 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Color Specifications

+ + +

Overview

+

Any color parameter can accept colors defined in one of two ways:-

+ + + +

Standard HTML Hexadecimal Color defintion

+ + +

The graph can accept color values in the same format as colors are defined within an HTML page. ie. in the range and format from "#000000" to "#FFFFFF".

+eg. +

gridbgcolor: #FFFFFF

+ +

This is a Red,Green,Blue color model where each component is defined by a 2 byte (character) Hexadecimal number. Some common values are,

+ + + + + + + + + +
Black - #000000Green - #008000
Silver - #B0B0B0Lime - #00FF00
Gray - #808080Olive - #808000
White - #FFFFFFYellow - #FFFF00
Maroon - #800000Navy - #000080
Red - #FF0000Blue - #0000FF
Purple - #800080Teal - #008080
Fuchsia - #FF00FFAqua - #00FFFF
+ + + + +

Color Name

+ +

The graph will also recognize all of the following color names and as such you can use these names as the value of any Color parameter.

+eg. +

gridbgcolor: light blue

+ + +Color Names recognised by the graphing software + + + + + + + + + + + + + + + + + + + +
redlight reddark red
greenlight greendark green
bluelight bluedark blue
orangelight orangedark orange
yellowlight yellowdark yellow
pinklight pinkdark pink
purplelight purpledark purple
greylight greydark grey
graylight graydark gray
black
white
cyanturquoisebeige
brownmaroonmagenta
violetpeachlavender
rosenavyroyalblue
sky bluesteel bluesea green
lime greenkhakiaquamarine
gold
+ + + + + +

« back to Parameter Reference

+ + + + + +
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/configurationOptions.htm b/OLD/jpowered/documentation/configurationOptions.htm new file mode 100644 index 0000000..058995d --- /dev/null +++ b/OLD/jpowered/documentation/configurationOptions.htm @@ -0,0 +1,1596 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Configuration Options

+ + + +

The Advanced Graph and Chart Software for PHP allows all aspects of the graph to be set via a range of configuration parameters.

+

With the exception of 2 parameters, all of the following are optional and if not supplied the graph will automatically calculate the values.

+

The only 2 parameters which must be supplied in all cases are width and height.
(Note: the width and height in the configuration should match the width and height values specified in the IMG tag.)

+

The configuration options can be supplied:-

+
    +
  • in a static text file
  • +
  • with the data
  • +
  • or on the request URL in the image tag
  • +
+ +

For instance you may find that most of your options (e.g. graph titles and font settings) remain the same and so these would be supplied in a static text file. Other parameters +(e.g. X-axis labels) may vary depending upon the data being retrieved. As such the values of these would be dynamically calculated and supplied along with the data.

+

The following tables list all the possible options and describes the function of each parameter.

+ + + +

Also see:-

+

Graph Data »

+ +

General Graph Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
width +integer value
+Specifies the width of the graph in pixels. This value should match the WIDTH element specified in the IMG tag. +
Note: This parameter is mandatory ! +
width: 550
height +integer value
+Specifies the height of the graph in pixels. This value should match the HEIGHT element specified in the IMG tag. +
Note: This parameter is mandatory ! +
height: 400
ndecplacesinteger value
+Specifies the number of decimal places to use when displaying values
ndecplaces: 2
thousandseparatorAny character symbol.thousandseparator: ,
backgroundcolorColor definition (see Colors »)
+general background color of the graph image
backgroundcolor: #ffffff
transparencyInteger value between 0 and 127.
+This value specifies the transparency of bubbles, bars and areas so that where items overlap the underlying item may still be seen.
+0 represents totally opaque whilst 127 represents totally transparent. A good value for this parameter is 40.
transparency: 40
bgimageURL to an Image file
+specifies an image to used as the background
bgimage: graphBackground.jpg
maxbubblesizeApplies only to the Bubble Chart
+Specifies the Maximum Bubble size in pixels. The data point with the largest Z value will be drawn at this size. All other data items will be scaled accordingly.
maxbubblesize: 20
qualityFor Pie and Cylinder charts this parameter specifies the amount of 'curve smoothing' (anit-aliasing) that will take place. The higher the quality parameter the better the resultant image.

+Valid values are:- +
    +
  • low
  • +
  • medium
  • +
  • high
  • +
  • very high
  • +
+
quality: high
connectinglinesTrue or False
+determines whether points should be connected or not
connectinglines: true
outlineTrue or False
+specifies whether bars should be outlined or not
outline: true
gradientfillTrue or False
+for bar and cylinder charts turns the gradient fill effect on or off
gradientfill: true
barwidthinteger value
+width in pixels of each bar or cylinder
barwidth: 30
barspacinginteger value +space in pixels between each bar or cylinderbarspacing: 5
displaybarvaluesTrue or False
+specifies whether actual values should be displayed at the top of each point
displaybarvalues: true
displayvaluesTrue or False
+specifies whether actual values should be displayed at the top of each point
displayvalues: true
+ + +

Grid Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
gridTrue or False
+specifies whether to draw grid lines or not
grid: true
axisTrue or False
+specifies whether to draw axis lines or not
axis: true
nrowsinteger value
+number of grid rows
nrows: 10
ncolsnumber of grid columnsncols: 5
vspaceinteger value
+space in pixels of each grid row
vspace: 30
hspaceinteger value
+space in pixels of each grid column
hspace: 40
gridstylevalid values are:- +
    +
  • solid
  • +
  • dashed
  • +
  • dotted
  • +
  • long dashed
  • +
  • dotted dashed
  • +
+specifies the line style of the grid lines
gridstyle: dotted
gridcolorColor definition (see Colors »)
+Grid line color
gridcolor: #000000
axiscolorColor definition (see Colors »)
+Axis line color
axiscolor: #0000FF
floorcolorColor definition (see Colors »)
+If 3D is on then this specifies the color of the x-axis floor
floorcolor: #555599
gridbgimageURL to an Image file
+specified an image to used as the grid background
gridbgimage: brimage.gif
gridbgcolorColor definition (see Colors »)
+the background color of the grid area
gridbgcolor: #EEEEEE
gridpositionan x,y, position pair
+specifies the position of the bottom left of the grid
gridposition: 30,275
gridlinehTrue or False
+Turns horizontal grid lines on or off
gridlineh: false
gridlinevTrue or False
+Turns vertical grid lines on or off
gridlinev: false
gridbgcolor2Color definition (see Colors »)
+specifies a second background color of the grid area. If this parameter is specified then grid rows are colored alternating between this color and gridbgcolor
gridbgcolor2: #DDDDDD
+ + +

Scale Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Vertical Type Charts
chartscaleNumeric Value
+specifies the value the each grid row is to represent on the left hand axis
chartscale: 1000
chartstartyNumeric Value
+specifies the starting value for the left hand axis
chartstarty: 0
chartscale2Numeric Value
+specifies the value the each grid row is to represent on the right hand axis
chartscale2: 0.1
chartstarty2Numeric Value
+specifies the starting value for the right hand axis
chartstarty2: 0.5
Horizontal Type Charts
chartscalexNumeric Value
+specifies the value the each grid column is to represent on the bottom axis
chartscalex: 50
chartstartxNumeric Value
+specifies the starting value for the bottom axis
chartstartx: 200
chartscalex2Numeric Value
+specifies the value the each grid column is to represent on the top axis
chartscalex2: 0.5
chartstartx2Numeric Value
+specifies the starting value for the top axis
chartstartx2: 10.0
+ + +

3D Properties

+ + + + + + + + + + + + + + + +
NameDescriptionExample
3dTrue or False
+determines whether the graph should be 3D or 2D
3d: true
depth3dInteger Value
+specifies the depth in pixels of the 3D effect
depth3d: 20
+ + +

Legend Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
legendTrue or False
+determines whether the graph legend should be drawn or not
legend: true
legendstylehorizontal or vertical
+specifies whether the legend should be horizontal or vertical
legendstyle: horizontal
legendbgcolorColor definition (see Colors »)
+background color of the legend area
legendbgcolor: #FFFFFF
legendbordercolorColor definition (see Colors »)
+border color of the legend
legendbordercolor: #8888FF
legendtextcolorColor definition (see Colors »)
+text color of the legend
legendtextcolor: #000000
legendtitleText
+legend title. leave blank if no title required.
legendtitle: The Legend
legendpositionX,Y position pair
+position of the legend.
legendposition: 50,50
legendfontFont Face
+
  • Arial
  • Times Roman
  • Courier
+
legendfont: arial
legendfontsizeFont Size in pixelslegendfontsize: 12
legendfontboldTrue or False
Sets Bold on the font
legendfontbold: true
legendfontitalicTrue or False
Sets italic on the font
legendfontitalic: false
+ + +

X Axis Labels

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
xlabelorientationcan be one of +
    +
  • - horizontal
  • +
  • - vertical
  • +
  • - up angle
  • +
  • - downangle
  • +
+specifies the orientation of the x-axis labels
xlabelorientation: up angle
xlabelyposInteger value
+specifies the y position of the x-axis labels
xlabelypos: 250
xlabeloffsetInteger Value
+species the pixel y offset of every second label. Useful when a horizontal orientaiton is specified
xlabeloffset: 15
xlabelcolorColor definition (see Colors »)
+x-axis label text color
xlabelcolor: #0000A9
xlabels +Vertical Type Charts
+List of labels seperated by | character.

+Horizontal Type Charts
+True or False
+determines whether x-axis labels should be drawn or not +
+Vertical Type Charts
+xlabels: Jan|Feb|Mar +

Horizontal Type Charts
+xlabels: true +
xlabelfontFont Face
+
  • Arial
  • Times Roman
  • Courier
+
xlabelfont: arial
xlabelfontsizeFont Size in pixelsxlabelfontsize: 10
xlabelfontboldTrue or False
Sets Bold on the font
xlabelfontbold: false
xlabelfontitalicTrue or False
Sets italic on the font
xlabelfontitalic: false
xlabelpreFor Horizontal charts this is the text to place in front of each number valuexlabelpre: $
xlabelpostFor Horizontal charts this is the text to place after each number valuexlabelpost: kpg
Horizontal Type Charts with a Second Scale
x2labelorientationan be one of +
    +
  • horizontal
  • +
  • vertical
  • +
  • up angle
  • +
  • downangle
  • +
+specifies the orientation of the x-axis labels
x2labelorientation: down angle
x2labelcolorColor definition (see Colors »)
+x-axis label text color
x2labelcolor: #0000A9
x2labelsTrue or False
+determines whether x-axis labels should be drawn or not +
x2labels: true
x2labelfontFont Face
+
  • Arial
  • Times Roman
  • Courier
+
x2labelfont: arial
x2labelfontsizeFont Size in pixelsx2labelfontsize: 10
x2labelfontboldTrue or False
Sets Bold on the font
x2labelfontbold: false
x2labelfontitalicTrue or False
Sets italic on the font
x2labelfontitalic: false
x2labelpreFor Horizontal charts this is the text to place in front of each number valuex2labelpre: $
x2labelpostFor Horizontal charts this is the text to place after each number valuex2labelpost: kpg
+ + +

Y Axis Labels

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
ylabels +Vertical Type Charts
+True or False
+determines whether x-axis labels should be drawn or not

+Horizontal Type Charts
+List of labels seperated by | character.

+
+Vertical Type Charts
+ylabels: true +

Horizontal Type Charts
+ylabels: Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sept|Oct|Nov|Dec +
ylabelfontFont Face
+
  • Arial
  • Times Roman
  • Courier
+
ylabelfont: arial
ylabelfontsizeFont Size in pixelsylabelfontsize: 10
ylabelfontboldTrue or False
Sets Bold on the font
ylabelfontbold: false
ylabelfontitalicTrue or False
Sets italic on the font
ylabelfontitalic: false
ylabelpreFor Vertical charts this is the text to place in front of each number valueylabelpre: $
ylabelpostFor Vertical charts this is the text to place after each number valueylabelpost: kpg
ylabelcolorColor definition (see Colors »)
+y-axis label text color
ylabelcolor: #0000A9
Vertical Type Charts with a Second Scale
y2lablesTrue or False
+determines whether the second x-axis labels should be drawn or not
y2lables: true
y2labelfontFont Face
+
  • Arial
  • Times Roman
  • Courier
+
y2labelfont: arial
y2labelfontsizeFont Size in pixelsy2labelfontsize: 10
y2labelfontboldTrue or False
Sets Bold on the font
y2labelfontbold: false
y2labelfontitalicTrue or False
Sets italic on the font
y2labelfontitalic: false
y2labelpreFor Vertical charts this is the text to place in front of each number valuey2labelpre: $
y2labelpostFor Vertical charts this is the text to place after each number valuey2labelpost: kpg
y2labelcolorColor definition (see Colors »)
+right hand y-axis label text color
y2labelcolor: #0000A9
+ + +

Graph Titles

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
Main Graph Title
titletextText
+Main graph title
titletext: Graph Title
titlecolorColor definition (see Colors »)
+text color
titlecolor: #888888
titlefontFont Face
+
  • Arial
  • Times Roman
  • Courier
titlefont: Times Roman
titlefontsizeFont Size in pixelstitlefontsize: 16
titlefontboldTrue or False
Sets Bold on the font
titlefontbold: true
titlefontitalicTrue or False
Sets italic on the font
titlefontitalic: false
titlepositionX,Y Position
+position of the title
titleposition: 100,20
X Axis Title
xtitletextText
+x-axis title
xtitletext: X Title
xtitlecolorColor definition (see Colors »)
+text color
xtitlecolor: #000000
xtitlefontFont Face
+
  • Arial
  • Times Roman
  • Courier
xtitlefont: Times Roman
xtitlefontsizeFont Size in pixelsxtitlefontsize: 16
xtitlefontboldTrue or False
Sets Bold on the font
xtitlefontbold: true
xtitlefontitalicTrue or False
Sets italic on the font
xtitlefontitalic: false
xtitlepositionX,Y Position
+position of the X title
xtitleposition: 100,20
2nd X-Axis Title for charts using a second x-axis scale
x2titletextText
+second x-axis title
x2titletext: X Title
x2titlecolorColor definition (see Colors »)
+text color
x2titlecolor: #000000
x2titlefontFont Face
+
  • Arial
  • Times Roman
  • Courier
x2titlefont: Times Roman
x2titlefontsizeFont Size in pixelsx2titlefontsize: 16
x2titlefontboldTrue or False
Sets Bold on the font
x2titlefontbold: true
x2titlefontitalicTrue or False
Sets italic on the font
x2titlefontitalic: false
x2titlepositionX,Y Position
+position of the second X title
x2titleposition: 100,20
Y Axis Title
ytitletextText
+y-axis title
ytitletext: Y Title
ytitlecolorColor definition (see Colors »)
+text color
ytitlecolor: #000000
ytitlefontFont Face
+
  • Arial
  • Times Roman
  • Courier
ytitlefont: Times Roman
ytitlefontsizeFont Size in pixelsytitlefontsize: 16
ytitlefontboldTrue or False
Sets Bold on the font
ytitlefontbold: true
ytitlefontitalicTrue or False
Sets italic on the font
ytitlefontitalic: false
ytitlepositionX,Y Position
+position of the Y title
ytitleposition: 100,20
Second Y Axis Title for charts using a second y-axis scale
y2titletextText
+second y-axis title
y2titletext: Y Title
y2titlecolorColor definition (see Colors »)
+text color
y2titlecolor: #000000
y2titlefontFont Face
+
  • Arial
  • Times Roman
  • Courier
y2titlefont: Times Roman
y2titlefontsizeFont Size in pixelsy2titlefontsize: 16
y2titlefontboldTrue or False
Sets Bold on the font
y2titlefontbold: true
y2titlefontitalicTrue or False
Sets italic on the font
y2titlefontitalic: false
y2titlepositionX,Y Position
+position of the second Y title
y2titleposition: 100,20
+ + +

Series Specifications

+

The series specications are slightly different for each chart style. Below are the formats for each chart style.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Line Graph
+

The format of the series parameter is:-

+

seriesN: line color | legend text | scale | point size | point style | fill | line style

+

where N represents the series number

+

Point Style - valid values are one of :-
+point , circle , cross , pluscross , xcross , box , triangle , diamond , hexagon +

+

+Line Style - valid values are one of :-
+solid , dashed , dotted , long dashed , dotted dashed +

+

For example if there are 2 series of data with the first using the left hand scale and the second using the right hand scale, the series parameter would be:-

+

+series1: #ff0000|Series One|left|6|triangle|true|solid|
+series2: #0000ff|Series Two|right|4|circle|true|dashed| +

+
Area Graph
+

The format of the series parameter is:-

+

seriesN: area color | legend text | point size | point style | fill | line style

+

where N represents the series number

+

Point Style - valid values are one of :-
+point , circle , cross , pluscross , xcross , box , triangle , diamond , hexagon +

+

+Line Style - valid values are one of :-
+solid , dashed , dotted , long dashed , dotted dashed +

+

For example if there are 2 series of data with the first using the left hand scale and the second using the right hand scale, the series parameter would be:-

+

+series1: #ff0000|Series One|6|triangle|true|solid|
+series2: #0000ff|Series Two|4|circle|true|dashed| +

+
Horizontal Bar Graph
Horizontal Cylinder Graph
+

The format of the series parameter is:-

+

seriesN: bar color | legend text | scale

+

where N represents the series number

+

For example if there are 2 series of data with the first using the bottom X-axis scale and the second using the top X-axis scale, the series parameter would be:-

+

+series1: #ff0000|Series One|bottom
+series2: #0000ff|Series Two|top +

+
Vertical Bar Graph
Vertical Cylinder Graph
+

The format of the series parameter is:-

+

seriesN: bar color | legend text | scale

+

where N represents the series number

+

For example if there are 2 series of data with the first using the left Y-axis scale and the second using the right Y-axis scale, the series parameter would be:-

+

+series1: #ff0000|Series One|left
+series2: #0000ff|Series Two|right +

+
Stacked Horizontal Bar Graph
Stacked Vertical Bar Graph
Stacked Horizontal Cylinder Graph
Stacked Vertical Cylinder Graph
+

The format of the series parameter is:-

+

seriesN: bar color | legend text

+

where N represents the series number

+

For example if there are 2 series of data the series parameters would be:-

+

+series1: #ff0000|Series One
+series2: #0000ff|Series Two +

+
Bubble Chart, X-Y Scatter Graph
+

The format of the series parameter is:-

+

seriesN: color | legend text | scale | point size | point style | fill

+

where N represents the series number

+

Point Style - valid values are one of :-
+point , circle , cross , pluscross , xcross , box , triangle , diamond , hexagon +

+

+Line Style - valid values are one of :-
+solid , dashed , dotted , long dashed , dotted dashed +

+

For example if there are 2 series of data with the first using the left hand scale and the second using the right hand scale, the series parameter would be:-

+

+series1: #ff0000|Series One|left|6|triangle|true
+series2: #0000ff|Series Two|right|4|circle|true +

+
Combination Area and Vertical Bar Graph
Combination Area and Stacked Vertical Bar Graph
Combination Line and Vertical Bar Graph
Combination Line and Stacked Vertical Bar Graph
+

The format of the series parameter is:-

+

+For bar type series
+seriesN: bar| bar color | legend text | +For Area or Line type series
+seriesN: area OR line| color | legend text | point size | point style | fill | line style +

+

where N represents the series number

+

Point Style - valid values are one of :-
+point , circle , cross , pluscross , xcross , box , triangle , diamond , hexagon +

+

+Line Style - valid values are one of :-
+solid , dashed , dotted , long dashed , dotted dashed +

+

For example if there are 2 series of data with the first a bar and the second and area:-

+

+series1: bar|#ff0000|Series One|
+series2: area|#00ff00|Series Two|4|circle|true|dashed| +

+or for a combination line and bar:-
+series1: bar|#ff0000|Series One|
+series2: line|#00ff00|Series Two|4|circle|true|dashed| +

+
+ + +

Pie Chart Properties

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionExample
3dangleInteger value between 0 and 90
+Specifies the angle (in degrees) in the z-plane of the 3d effect. A value of 40 generally produces good results.
3dangle: 40
pecentndecplacesInteger
+Number of decimal places to display when showing percentage figures.
pecentndecplaces: 0
segmentlabelsTrue or False
+specifies whether to segment labels or not
segmentlabels: true
segmentlabelfontFont Face +
  • Arial
  • Times Roman
  • Courier
segmentlabelfont: arial
segmentlabelcolorColor definition (see Colors »)segmentlabelcolor: #000000
segmentlabelfontsizeFont Size in pixelssegmentlabelfontsize: 11
segmentlabelfontboldTrue or False
Sets Bold on the fon
segmentlabelfontbold: true
segmentlabelfontitalicTrue or False
Sets italic on the font
segmentlabelfontitalic: true
displaypercentagesTrue or False
+specifies whether to add percentage figures to the segment labels or not
displaypercentages: true
labellinesTrue or False
+specifies whether to draw a line from the segment to the label or not
labellines: true
valuepresymCharacter or Text
+leading character or text for each segment label
valuepresym: $
valuepostsymCharacter or Text
+trailing character or text for each segment label
valuepostsym: mpg
+ + +

Pie Data

+ + + + + +
+ +

Three parameters may be supplied for each pie on the chart. These are:

+
    +
  • Center Position - x,y pixel co-ordinate of the pie center
  • +
  • Pie Size -diameter in pixels of the pie
  • +
  • Segment Seperation - if an exploded pie is required then this value represents the seperation in pixels of the segments.
  • +
+ + +

The format of the pie parameter is:-

+

pieN: position | size | seperation |

+ +

where N represents the pie / series number

+

For example if there are 2 series of data (ie 2 pies) the pie parameters would be:-

+

+pie1: 100,100|100|0|
+pie2: 300,100|75|20| +

+
+ + +

Pie Segments

+ + + + + +
+ +

Two parameters may be supplied for each pie segment. These are:

+
    +
  • Segment Color - x,y pixel co-ordinate of the pie center
  • +
  • Legend Label -diameter in pixels of the pie
  • +
+ +

Segment definitions are common to all pies on the chart.

+

The format of the segment parameter is:-

+ +

segmentM: color | legend label |

+ +

where M represents the segment number

+ +

For example if there are 5 segements on each pie (ie 5 data values in each series) the segment parameters would +be:-

+

+segment1: red|label 1|
+segment2: red|label 2|
+segment3: red|label 3|
+segment4: red|label 4|
+segment5: red|label 5| +

+
+ + +

Target Lines

+
+ +

Any number of horizontal target line +may be added to the chart with the +parameter "target".

+ +

The target parameter is made up of +6 elements:-

+
+

value
+ color
+ text
+ font
+ line style
+ + y-axis scale (left or right)

+
+

The format of the target line parameter +is:-

+ + + + +
target: + value | color | text | font | + line Style | scale|
+

For more on color defintions see see Colors »

+

The font defintion can be one of:- + +

+
+

small
+ medium
+ medium bold
+ large
+ large bold

+
+ +

The line style can be one of:-

+
+

solid
+ dashed
+ dotted
+ long dashed
+ dotted dashed

+ +
+

For example to set a target line +at a value of 1000 on the chart,

+ + + + +
target: + 1000|green|Break Even|medium|dashed|left|
+ +
+ + +

Trend Line

+
+

Any number of trend lines may be +added to the chart with the parameter +"trend".

+ +

The trend parameter is made up of +9 elements:-

+
+

start value
+ start column
+ end value
+ end column

+ color
+ + text
+ font
+ line style
+ y-axis scale (left or right)

+
+

The format of the target line parameter +is:-

+ + + + + +
trend: + start value|start column|end value|end + column|color|text|font|line Style|scale|
+

For more on color defintions see Colors »

+

The font defintion can be one of:- +

+
+

small
+ medium
+ medium bold
+ + large
+ large bold

+
+

The line style can be one of:-

+
+

solid
+ dashed
+ dotted
+ + long dashed
+ dotted dashed

+
+

For example to set a trend line starting +at a value of 1000 in column 2 and +ending at a value of 1550 in column +6,

+ + +
trend: + 1000|2|1550|6|green|Up Trend|medium|dashed|left + +
+
+ + + +

Free Form Text

+ +
+ +

In addition to the standard titles, +any number of lines of text may be +added to the graph using the "text" +parameter.

+

The text parameter is consists of +8 elements:-

+
    +
  • Text
  • +
  • Color
  • +
  • Position
  • +
  • Font Family
  • +
  • Font Size
  • +
  • Bold
  • +
  • Italic
  • +
  • Angle
  • +
+ + +

The format of the text parameter +is:- +

+ +
text: string | color | position | font family | font size | bold | italic | angle
+ +

+Color is the text color, For more on color defintions see Colors »
+position is the X,Y position of the text on the graph canvas.
+font family can be one of, Arial, Times Roman or Courier
+font size size in pixels of the font
+bold can be true or false to specify whether to use bold font
+italic can be true or false to specify whether to use italic font
+angle Text can be drawn at an angle (a value between 0 and 90). 0 represents horizontal, 90 is vertical.
+

+ +

For example if 3 lines of text were to be added the following parameters would be included in the configuration:-

+ +
+text: line one of text|#000000|50,50|arial|12|true|false|0
+text: line two of text|#000000|50,65|arial|12|true|false|0
+text: line three of text|#000000|50,80|arial|12|true|false|0 +
+ +
+ +

Free Form Images

+
+

Any number of images may be added +to the graph using the "image" +parameter.

+

The image parameter is consists of +2 elements:-

+
+

URL or Filename + of an image file
+ position

+
+

The format of the image parameter +is:-

+ + + + + +
image: + URL or filename | position |
+

For example if an image "logo.png" +was to be drawn on the graph image +then the following parameter would +be included in the configuration:-

+ + + + + +
image: + logo.png|5,5|
+
+

 

+
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/customDataFunction.htm b/OLD/jpowered/documentation/customDataFunction.htm new file mode 100644 index 0000000..7ae712c --- /dev/null +++ b/OLD/jpowered/documentation/customDataFunction.htm @@ -0,0 +1,218 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Custom Data Function

+ + +
+ + +

This feature allows you to create your own custom PHP Data Script function. The function will be included at +run time and used by the graph to acquire the data.

+

This method provides enormous flexibility for the data acquisition process. All PHP Global variables ($_REQUEST, $_GET, $_POST, $_SESSION etc) are available to be used within the data function.

+

A custom data script is specified via the parameter "datascript". For example if your data +script is in a file datascript.php then your <IMG> +tag would be:-

+ + +
The [path_to_datascript_file] should be a filesystem file path to the data function file. If a relative file path then keep in mind that this will be relative to the location of the graph software and NOT the page which contains the IMG tag. + + +

The data script must be valid PHP code and should contain at least the following function:-

+ +

where $lines is a string array containing the data parameters and values.

+

The contents of the string array should be the format:-

+
+

dataNseriesM: [value]

+
+

where N represents the position of the data item in the series and M +represents the series number.

+

For example, for 3 series of data each containing 6 points the string array should contain:-

+ + + + +
data1series1: 30
+data2series1: 20
+data3series1: -10
+data4series1: 40
+data5series1: 50
+data6series1: 60
+
+data4series2: 40
+data5series2: 50
+data6series2: 60
+
+data1series3: 100
+data2series3: 50
+data3series3: -25
+data4series3: 75
+data5series3: 125
+data6series3: 150
+

 

+

Note: The data script should under no circumstances write out any +information via the print or echo functions. This +would cause the production of the graph image to fail.

+ + +

The full function would look like this:-

+ +

This is a trivial example but as you can see it is now possible to create a function which +will construct the data array based upon any parameter held in $_SESSION or other Global. This method +can also be used to pull data from a database.

+ + + + +

Further information and examples can found in the Online Tutorials here »

+ + +
+ + +

+« back to Graph Data +

+ + + + +
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/databaseInformationFile.htm b/OLD/jpowered/documentation/databaseInformationFile.htm new file mode 100644 index 0000000..273e571 --- /dev/null +++ b/OLD/jpowered/documentation/databaseInformationFile.htm @@ -0,0 +1,277 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Database Information File

+ + +
+

+ With this method the database information file will contain the necessary information for the graphng software to connect to your database and the queries to run for each data series. + At runtime the graphing software will read this file, connect to the database and execute each of the queries. It will then automatically extract the data from the result set(s) for plotting on the graph. +

+ +

The database information file is a PHP script which assigns various options to a PHP array '$jpDatabase'. This file is used by the graphing software to connect to the database and execute the queries.

+ +

The array contains three sections of information:-

+
    +
  • Database Connection Information
  • +
  • Data Queries
  • +
  • Database Abstraction Code
  • +
+

An example file can be found in the Sample Application directory ./jpowered/sampleApplication/dataQueries/dbConfig.php

+ +

+ To tell the graph to use a database information file the 'data' parameter of the IMG tag should be replaced with 'dbinfo' parameter, like this:-
+ +
The [RELATIVEpathTOdbinfoFILE] should be a relative filesystem file path to the database information file. This file path is relative to the location of the graph software and NOT the page which contains the IMG tag. +

+
+ +

+ Database Connection Information
+ This section contains 4 parameters which provide the graphing software with the necessary information to open a connection to the database. The parameters are:- +

+
    +
  • dbServer - database server location and port
  • +
  • dbUser - username the graph should use to connect to the database
  • +
  • dbPassword - password the graph should use to connect to the database
  • +
  • dbDatabase - the database name
  • +
+ + e.g.
+ + + + +
+

+ Data Queries
+ The data query section contains the SQL the graph should issue to the database server to extract the data to be plotted. For each series of data + the graph needs to know:-

+
    +
  • The SQL Query
  • +
  • The name of the field(s) in the table/resultset to pick the value(s) from
  • +
+ + For example if we have 3 series of data then the data query section would look like this:- +
+ +
+The above example will provide the graph with a single value for each data point. However some graph styles require 2 or 3 values (e.g. the X-Y scatter graph requires 2 values and the Bubble chart requires 3 values for each data point). +For these graph styles the format would be like this:- +
+ + +

NOTE: All PHP Global variables ($_REQUEST, $_GET, $_POST, $_SESSION etc) are available to be used within the database information file. For instance if +you wish to dynamically construct a query based on the value of "userID" held in the session then you could do something like this:- +
+ +

+
+ +
+

+ Database Abstraction Code
+ This parameter tells the graphing software to use database access methods located in the file specified. + The software will look for the file in the dir ./jpowered/graph/common/ + Currently database methods are supplied for the MySQL database system and are located in the DBMySQL.class.php file. As such the + parameter should be set like this:-
+ +

+
+ + + +
+

+Putting it all together the database information file should look like this:- +
+ + +

+ +
+ +

+« back to Graph Data +

+ + + + +
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/graphData.htm b/OLD/jpowered/documentation/graphData.htm new file mode 100644 index 0000000..7baccae --- /dev/null +++ b/OLD/jpowered/documentation/graphData.htm @@ -0,0 +1,255 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Graph Data

+ + +
+
Overview
+

+ Every graph requires the data to be plotted. The graphing software has been designed to take the data directly from the source and dynamically produce the graph image in real time. + The graphing software can be configured to read the data from a variety of sources including:- +

+
    +
  • Databases
  • +
  • Files
  • +
  • Other Server Side Processes
  • +
+

( Note: further data access methods may have been added since this documentation was written, as such please also check the online documentation here » )

+
+ +
+
Data from Databases
+

+ The graphing software provides two direct methods by which data can be read from databases:- +

+ + Custom Data Function

+ This method allows a custom data function to be constructed. At runtime the graphing software will dynamically include this function + and run it to produce the data.

+ + If you need to dynamically construct the SQL Queries (e.g. depending on the value of SESSION or REQUEST variables) or you need to process the query results before plotting (e.g. averaging a data set) then this is the method to use.

+ more » + + +

+ Database Information File

+ With this method the database information file will contain the necessary information for the graphng software to connect to your database and the queries to run for each data series. + At runtime the graphing software will read this file, connect to the database and execute each of the queries. It will then automatically extract the data from the result set(s) for plotting on the graph. + more » + +

+ +

Further information and examples can found in the Online Tutorials here »

+
+ + +
+
Data from Files
+

+ If the data is fairly static then you may wish to place the data in a flat file. In this case the graphing software is configured to read the data from that file.

+ + To set the graph to read the data from file simply add the "data" + parameter to the URL string of the <IMG> tag. For example if the data file is "graphdata.txt" + then your <IMG> tag would become:- + + + +Data Format +Within the file the data should follow this format:- +

+dataNseriesM: [value] +
+where
+N represents the position of the data item in the series and
+M represents the series number.

+ +For example for 3 series of data each containing 6 points the contents of the data file would be:- + + +

+ +
+ + +
+
Other Server Side Processes
+

+The graph data can be set to call another server process and request the data. This can be a script in any language and does not necessarily have to reside on the same server. The only stipulation is that the process is accessible via a URL.

+The script or process can be written to perform any processing required including connecting to any database system. For example if your data is held in MS SQL Server or Oracle then an ASP script would be written to extract the data from the database +and output in the format required for the graph. At runtime the graphing software will call the script which in turn will read the data from the database and output the data back to the graphing software where it is plotted directly on the graph.

+ +To set the graph to read the data from another server side process (ie. PHP, ASP, JSP etc) simply add the "data" parameter to the URL string of the <IMG> tag.
+For example if the data script is "graphdata.php" then your +<IMG> tag would become:- + + + +Data Format +The data script should be written such that it outputs the data in the following format:- +

+dataNseriesM: [value] +
+where
+N represents the position of the data item in the series and
+M represents the series number.

+ + +For example for 3 series of data each containing 6 points the output of the data script would be:- + +

+ +

Further information and examples can found in the Online Tutorials here »

+ + +
+ + + +
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/index.htm b/OLD/jpowered/documentation/index.htm new file mode 100644 index 0000000..75685fb --- /dev/null +++ b/OLD/jpowered/documentation/index.htm @@ -0,0 +1,114 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Documenation

+ +

Overview

+

The Advanced Graph and Chart Software for PHP is designed to enable Web Developers to easily build dynamically generated graphs and charts into web applications. Once installed on the web server dynamic graphs can be added to any page of a web site with just a few lines of html.

+ + + + +
 
+ +

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/sampleImageTags.htm b/OLD/jpowered/documentation/sampleImageTags.htm new file mode 100644 index 0000000..5d89d15 --- /dev/null +++ b/OLD/jpowered/documentation/sampleImageTags.htm @@ -0,0 +1,393 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Sample Image Tags for Different Graph Styles

+ + +
+ +

Dynamic Graphs are added to a page with the standard HTML IMG tag. The 'src' element is set to +reference the graphing software. The following show the format of the IMG tag for each chart style.

+ +
    +
  • [URLtoDATASOURCE] - should be the URL link to the data source. The datasource can a file, a script or a database.
  • +
  • [URLtoCONFIG] - this is the URL link to the configuration settings file.
  • +
+

The width and height settings operate as normal and tell the browser what size the graph will be.

+ +

The table below show the format of the IMG tag for each chart style.

+ +

« back to Adding Graphs to Web Pages

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Chart StyleScriptSample IMG Tag
Area Grapharea-graph.php + +
Bubble Chartbubble-chart.php + +
Combination Area and Stacked Vertical Bar Grapharea-stacked-vertical-bar-graph.php + +
Combination Area and Vertical Bar Grapharea-vertical-bar-graph.php + +
Horizontal Bar Graphhorizontal-bar-graph.php + +
Horizontal Cylinder Graphhorizontal-cylinder-graph.php + +
Line Graphline-graph.php + +
Line and Stacked Vertical Bar Graphline-stacked-vertical-bar-graph.php + +
Line and Vertical Bar Graphline-vertical-bar-graph.php + +
Pie Chartpie-chart.php + +
Stacked Horizontal Bar Graphstacked-horizontal-bar-graph.php + +
Stacked Horizontal Cylinder Graphstacked-horizontal-cylinder-graph.php + +
Stacked Vertical Bar Graphstacked-vertical-bar-graph.php + +
Stacked Vertical Cylinder Graphstacked-vertical-cylinder-graph.php + +
Vertical Bar Graphvertical-bar-graph.php + +
Vertical Cylinder Graphvertical-cylinder-graph.php + +
X-Y Scatter Graphxy-scatter-graph.php + +
+ + + + +
+ +
+ +
 
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/documentation/troubleShooting.htm b/OLD/jpowered/documentation/troubleShooting.htm new file mode 100644 index 0000000..3b046f9 --- /dev/null +++ b/OLD/jpowered/documentation/troubleShooting.htm @@ -0,0 +1,178 @@ + + + + + +Advanced Graphs and Charts for PHP + + + + + + + +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ +
+ +

Trouble Shooting Guide

+ +

If you experience difficulties in getting the graph images to display then the following will help to establish the cause of the problem

+ +

Error Log File

+

In the event the graphing software encounters a problem it will write a message to an error log file. The Error Log File is located in ./jpowered/graph/log/

+

Hopefully the error messages in there will provide you with enough information to quickly resolve the issue. If not then please feel free to contact us at JPowered Support and we will be happy to assist.

+

 

+ +

Check the Data and Config processes

+

One of the most common problems is that either the Data or Config specified are not producing the result they + should be. This can quickly be checked by entering the URL to those processes directly into the browser + address bar

+ +

For example, if the IMG tag in your page is:-

+ +

then you would enter the following URLs directly into your browser address bar:-

+ +

This will quickly provide you with an indication of whether the problem is with the directory paths or the processes themselves. + If all is fine with the data and config processes then you should proceed with the next step and run the graphing software in debug mode.

+

 

+ + +

Debug Mode

+

If the log files do not provide the answer then the next step is to run the graphing software in debug mode. + This is done by entering the URL of the IMG tag directly into browser address with an additional parameter added.

+ +

For example, if the IMG tag in your page is:-

+ +

then you would enter the following URL directly into your browser address bar:-

+ +

NOTE: the additional parameter added to the end of the url is "debug=true"
+The additional parameter tells the graphing software to turn on error reporting and so error message will be +displayed in the browser

+

Again, hopefully the error messages will provide you with enough information to quickly resolve + the issue. If not then please feel free to contact us at JPowered Support and we will be happy to assist.

+

 

+ +

Relative URLs and Directory Paths

+

Another common cause of problems can be confusion over the directory paths. By default all relative paths are + Relative to the Graphing Software and NOT the page

+

This can be overridden by the addition of the parameter baseurl
+ For example, if your page containing the IMG tag is in your web root and you wish the data and config + parameters to be relative to this then the IMG tag would look like this:-

+ + + +

This assumes that vbardata.php is located in the directory /data/ just below your web root and vbarconfig.txt is located in the web root.

+

 

+ +
+ + + + + +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/graph/area-graph.php b/OLD/jpowered/graph/area-graph.php new file mode 100644 index 0000000..cfd9143 --- /dev/null +++ b/OLD/jpowered/graph/area-graph.php @@ -0,0 +1 @@ +DrawPoint($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R9D38A0604C29E5D26793AAB9721A06FC, $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RA7B9A383688A89B5498FC84118153069+1], $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1], $RCD38984B483C38FD84ADE326F49801C0[$RA7B9A383688A89B5498FC84118153069+1] ); $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["size"]/2); $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["x"] - $REAF86FD4CCAAFAA985C8B092DACD1B53; $R718AC8B9DE9E39D46F178BF720F93912 = $R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["y"] - $REAF86FD4CCAAFAA985C8B092DACD1B53; $R4C010D549D8CE12809958375A5227F8E = $R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["x"] + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RCF842228F8F602229EFF70A3EC087CE2 = $R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["y"] + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "rect"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $R39B8A34E5D33E13371402A8E1AFBD8E9.",".$R718AC8B9DE9E39D46F178BF720F93912.",".$R4C010D549D8CE12809958375A5227F8E.",".$RCF842228F8F602229EFF70A3EC087CE2; } } } $R49287C90F8298E0E3871253DF00B5F41 = new JPtext(); $R49287C90F8298E0E3871253DF00B5F41->textstring = ""; $R49287C90F8298E0E3871253DF00B5F41->textfontsize = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontsize; $R49287C90F8298E0E3871253DF00B5F41->textfontfamily = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontfamily; $R49287C90F8298E0E3871253DF00B5F41->textbold = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textbold; $R49287C90F8298E0E3871253DF00B5F41->textitalic = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textitalic; $R49287C90F8298E0E3871253DF00B5F41->textangle = 0.0; $R49287C90F8298E0E3871253DF00B5F41->textX = -1; $R49287C90F8298E0E3871253DF00B5F41->textY = -1; $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textcolor; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]) { $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R49287C90F8298E0E3871253DF00B5F41->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; } } } } function draw_free_images() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $R1BB7A4870F58BA79D88E63C2559CD57B; global $RD1A0958AE2FB98B3A9ED0797AA2B0455; global $R60FF7733AE88234F8336581EA8FA82A4; if ($R60FF7733AE88234F8336581EA8FA82A4<1) {return;} for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$R60FF7733AE88234F8336581EA8FA82A4;$RA16D2280393CE6A2A5428A4A8D09E354++) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][0], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][1], 0, 0, imagesx($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]), imagesy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354])); imagedestroy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]); } } function auto_config() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; $RF4308D8C11499F88F2C59CEC974EC433 = 0; $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]-$RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; auto_scale(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = 0; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legenddisplay) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->setProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos < 0) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth/2; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos <($RBF902F888A7A27C3E6036FE7C8FB44BE["height"]/2)) {$R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendheight + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos<($RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2)) {$RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textHeight; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textWidth/2;; } $RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = 0; $RF4308D8C11499F88F2C59CEC974EC433 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = $R0A20F9DE5D5D3F476F4CF894D63F9583 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"]) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] = $R0A20F9DE5D5D3F476F4CF894D63F9583 - max_xlabels_height() - 2.5*$RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] - 1.5*$RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth;} } $RF4308D8C11499F88F2C59CEC974EC433 = $RF4308D8C11499F88F2C59CEC974EC433 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $REDC007496C1445189AF037508BBA4E23 + 3; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0] = $RF4308D8C11499F88F2C59CEC974EC433;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] = $R0A20F9DE5D5D3F476F4CF894D63F9583;} $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $R20FD65E9C7406034FADC682F06732868; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $R20FD65E9C7406034FADC682F06732868; $R246159316604D58DB8DE9F848709E772 = $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RE484ED591E12CF9125AE1D47AE08748B = $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; if ($R246159316604D58DB8DE9F848709E772<1) {$R246159316604D58DB8DE9F848709E772 = 1;} if ($RE484ED591E12CF9125AE1D47AE08748B<1) {$RE484ED591E12CF9125AE1D47AE08748B = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = ($R0A20F9DE5D5D3F476F4CF894D63F9583 - $R5FAB68FB24C1A8046E4EFBB033D4B4C8) / $RE484ED591E12CF9125AE1D47AE08748B;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433) / $R246159316604D58DB8DE9F848709E772;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = 2;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = 1;} } function add_series_info($RA94EF3EDEBBECC120DD9EC4D9CB90BD1, $R7F6045D9D5F4D9047AD84E4499F620E0) { global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; $RCEEFEBF769973BC15B47970F0B687093[0] = "#808080"; $RCEEFEBF769973BC15B47970F0B687093[1] = " "; $RCEEFEBF769973BC15B47970F0B687093[2] = "1"; $RCEEFEBF769973BC15B47970F0B687093[3] = "circle"; $RCEEFEBF769973BC15B47970F0B687093[4] = "true"; $RCEEFEBF769973BC15B47970F0B687093[5] = "solid"; $RF31550B84DE1AEA05419B284E7210B46 = get_snum($RA94EF3EDEBBECC120DD9EC4D9CB90BD1); if ($RF31550B84DE1AEA05419B284E7210B46>0 and $RF31550B84DE1AEA05419B284E7210B46<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]) { $RCEEFEBF769973BC15B47970F0B687093 = explode("|", $R7F6045D9D5F4D9047AD84E4499F620E0); if (strlen(trim($RCEEFEBF769973BC15B47970F0B687093[0]))>2) {$R16F83AEFCECAB2A8AD503C9285E47ABF[$RF31550B84DE1AEA05419B284E7210B46] = verifycolor($RCEEFEBF769973BC15B47970F0B687093[0],"#808080");} $R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46] = verifyint($RCEEFEBF769973BC15B47970F0B687093[2], "1");; $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46] = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[3],"circle"); $RCD38984B483C38FD84ADE326F49801C0[$RF31550B84DE1AEA05419B284E7210B46] = verifybool($RCEEFEBF769973BC15B47970F0B687093[4], "true"); $R3186037EF1F216D6DB170D63B21755F5[$RF31550B84DE1AEA05419B284E7210B46] = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[5],"solid"); if ($RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46]==0) {$R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46]=1;} } } function max_xlabels_height() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; $R429EF5BC814A71C72EB347447FD90E75 = imagefontheight($RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $RFD98E5621F1811783DCA236EA264442C = 0; switch ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"]) { case 1: $RFD98E5621F1811783DCA236EA264442C = $R429EF5BC814A71C72EB347447FD90E75; break; case 2: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75;} } break; case 3: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3;} } break; case 4: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4;} } break; } $RFD98E5621F1811783DCA236EA264442C = $RFD98E5621F1811783DCA236EA264442C + $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelyoffset"]; return $RFD98E5621F1811783DCA236EA264442C; } function auto_scale() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); $R3D668352253147BDF54512EA619BFEA7 = true; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $R5D611C534A082ABF87AED599454DA5AB = 0; $R7269B4E8BDE9991B28E92D448CAB79FC = 0; $R39517AF0B10FC140102A38984F181EEA = false; for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]>=0) {$R5D611C534A082ABF87AED599454DA5AB = $R5D611C534A082ABF87AED599454DA5AB + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354];} if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]<0) { $R7269B4E8BDE9991B28E92D448CAB79FC = $R7269B4E8BDE9991B28E92D448CAB79FC + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]; $R39517AF0B10FC140102A38984F181EEA = true; } } } $R6F7F170701859062DAD123413E09EC5A[] = $R5D611C534A082ABF87AED599454DA5AB; if ($R39517AF0B10FC140102A38984F181EEA) { $R6F7F170701859062DAD123413E09EC5A[] = $R7269B4E8BDE9991B28E92D448CAB79FC; $R3D668352253147BDF54512EA619BFEA7 = false; } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"],$RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"], $R3D668352253147BDF54512EA619BFEA7); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } } if (isset($_REQUEST["getImage"])) { ob_end_clean(); $RF500F4A848E2EB2F8AAC3A6734D7EC38 = fopen($_REQUEST["getImage"], 'rb'); header("Content-Type: image/png"); header("Content-Length: " . filesize($_REQUEST["getImage"])); fpassthru($RF500F4A848E2EB2F8AAC3A6734D7EC38); fclose($RF500F4A848E2EB2F8AAC3A6734D7EC38); unlink($_REQUEST["getImage"]); exit; } $R0EB1982D9BAA9716AC37A8F047D5800D[0] = ""; $R5E45BBDAAB766CB0885E580EABDE0B07 = 0; $RD8A2F08EEBB302CF96A61B4FAE35D9F2 = false; $R3DA1CF9DE121F39B5EA19B5D904981C3 = false; $R04E206CC959DC4284E86A8CDC8E42BB8 = false; $R937C2BF4A1BF7EC4F0DAD072419821FB = "dbinfo.txt"; $R5BA1F88D3C6A012D3325B2C213C7A2E4 = "graph-data.php"; $RE7074FB81569EC419A89091BEAEB6F5A = getBaseURL(); if (array_key_exists("data", $_REQUEST)) {$R5BA1F88D3C6A012D3325B2C213C7A2E4 = $_REQUEST["data"];} if (array_key_exists("saveimage",$_REQUEST)) {$R017C24F2701E8BF8DA2CA976B495A299 = $_REQUEST["saveimage"];$R3DA1CF9DE121F39B5EA19B5D904981C3=true;} $RBF902F888A7A27C3E6036FE7C8FB44BE = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["datalines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartStyle"] = "area-graph"; $jpDatabase = array(); if (array_key_exists("dbinfo", $_REQUEST)) { $R937C2BF4A1BF7EC4F0DAD072419821FB = $_REQUEST["dbinfo"]; $R04E206CC959DC4284E86A8CDC8E42BB8 = true; if (file_exists($R937C2BF4A1BF7EC4F0DAD072419821FB)) { include ("$R937C2BF4A1BF7EC4F0DAD072419821FB"); } } $R60B5058B4F8CC72DC333B4517D2B105F = gdVersion(); load_Data($RBF902F888A7A27C3E6036FE7C8FB44BE); set_WH($RBF902F888A7A27C3E6036FE7C8FB44BE); if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreatetruecolor ($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} else {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreate($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} initalizeConfig(); get_data(); set_series_defaults(); set_Config($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetSeries($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetData($RBF902F888A7A27C3E6036FE7C8FB44BE); auto_config(); $R7726AB351CBB04A10E329629C4D29E76 = new JPdraw($RBF902F888A7A27C3E6036FE7C8FB44BE); $R7726AB351CBB04A10E329629C4D29E76->draw_background($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_grid($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_titles($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_areas(); draw_grid_lines(); draw_points($R7726AB351CBB04A10E329629C4D29E76); $R7726AB351CBB04A10E329629C4D29E76->draw_xlabels($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_legend($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R16F83AEFCECAB2A8AD503C9285E47ABF); $R7726AB351CBB04A10E329629C4D29E76->draw_freeformtext($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_free_images(); $R7726AB351CBB04A10E329629C4D29E76->draw_target_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_trend_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD); if (!testKey()) {$R7726AB351CBB04A10E329629C4D29E76->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} if (!isset($_REQUEST["debug"])) { ob_end_clean(); } if (isset($_REQUEST["JPajax"]) && $_REQUEST["JPajax"]>0) { if (!file_exists('./tmp')) { mkdir('./tmp'); } $R8EEB1221AED257518AC7928EB7CF9AA3 = tempnam("./tmp", "pgr"); if (!imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R8EEB1221AED257518AC7928EB7CF9AA3)) { add_error_message("Unable to save Graph Image"); } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R92B87745142AEBCDA7295499518B9393["imageFileName"] = $R8EEB1221AED257518AC7928EB7CF9AA3; $R92B87745142AEBCDA7295499518B9393["imageWidth"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]; $R92B87745142AEBCDA7295499518B9393["imageHeight"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; $R92B87745142AEBCDA7295499518B9393["graphData"] = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354dataArray);$RA7B9A383688A89B5498FC84118153069++) { $R92B87745142AEBCDA7295499518B9393["graphData"][] = $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA16D2280393CE6A2A5428A4A8D09E354+1]->dataArray[$RA7B9A383688A89B5498FC84118153069+1]; } } if (function_exists("json_encode")) { print json_encode($R92B87745142AEBCDA7295499518B9393); } else { print JP_json_encode($R92B87745142AEBCDA7295499518B9393); } exit(0); } display_errors(); if (!$RD8A2F08EEBB302CF96A61B4FAE35D9F2) { header('Expires: Sat, 01 January 2000 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); header("Content-type: image/png"); imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD); if ($R3DA1CF9DE121F39B5EA19B5D904981C3) {imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R017C24F2701E8BF8DA2CA976B495A299);} } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); exit(0); ?> \ No newline at end of file diff --git a/OLD/jpowered/graph/area-stacked-vertical-bar-graph.php b/OLD/jpowered/graph/area-stacked-vertical-bar-graph.php new file mode 100644 index 0000000..665e5b6 --- /dev/null +++ b/OLD/jpowered/graph/area-stacked-vertical-bar-graph.php @@ -0,0 +1 @@ +0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} $R12975C5C27E123C12934DAB375F493A3 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } } } for ($RA7B9A383688A89B5498FC84118153069=($RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]-1);$RA7B9A383688A89B5498FC84118153069>-1;$RA7B9A383688A89B5498FC84118153069--) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]<1) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]<0) { $R09048244ED94301DD2640815ED21CFA1 = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; if ($RC6CB727A00C2CB09673B207BE7AC1315>0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = -$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = -$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3-$RAF1ABEE07980A9C1C897DC7F688A4956; } else { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3; } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "rect"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $R39B8A34E5D33E13371402A8E1AFBD8E9.",".$R718AC8B9DE9E39D46F178BF720F93912.",".$R4C010D549D8CE12809958375A5227F8E.",".$RCF842228F8F602229EFF70A3EC087CE2; if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { $R09048244ED94301DD2640815ED21CFA1 = lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.001); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gradientfill"]) { $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R1439E89C1258EE407B7D745D4AE54C1F = 1.0 + 1/$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B>=0;$RD139FDEAF358FBB04DE0743B9904C79B--) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); $R598AFE203FFA0065D8F537AD59779730 = lighter_alpha($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F); } $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B<=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"];$RD139FDEAF358FBB04DE0743B9904C79B++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); $R598AFE203FFA0065D8F537AD59779730 = darker_alpha($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F); } } else { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R09048244ED94301DD2640815ED21CFA1); } } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gradientfill"]) { $R1985B12C4D58DA3515C27F13577691CA = 200 / $RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]; $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R1439E89C1258EE407B7D745D4AE54C1F = 1.0 + 1/$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R3EEBC33595C88B5E41DD27DB2209156E = 1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B>=0;$RD139FDEAF358FBB04DE0743B9904C79B--) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); if ($R3EEBC33595C88B5E41DD27DB2209156E>=($R1985B12C4D58DA3515C27F13577691CA/2)) {$R598AFE203FFA0065D8F537AD59779730 = $R598AFE203FFA0065D8F537AD59779730;} else {$R598AFE203FFA0065D8F537AD59779730 = lighter($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F);} $R3EEBC33595C88B5E41DD27DB2209156E++; } $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R3EEBC33595C88B5E41DD27DB2209156E = 1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B<=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"];$RD139FDEAF358FBB04DE0743B9904C79B++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); if ($R3EEBC33595C88B5E41DD27DB2209156E>=($R1985B12C4D58DA3515C27F13577691CA/2)) {$R598AFE203FFA0065D8F537AD59779730 = $R598AFE203FFA0065D8F537AD59779730;} else {$R598AFE203FFA0065D8F537AD59779730 = darker($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F);} $R3EEBC33595C88B5E41DD27DB2209156E++; } } else { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R09048244ED94301DD2640815ED21CFA1); } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R12975C5C27E123C12934DAB375F493A3; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R5A078FF7990E6D22288D8CA2F6AFF855[0] = $R968911E34E4AAD7BC6607294EACD4D0A; $R5A078FF7990E6D22288D8CA2F6AFF855[1] = $R12975C5C27E123C12934DAB375F493A3; $R5A078FF7990E6D22288D8CA2F6AFF855[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[3] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[5] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R5A078FF7990E6D22288D8CA2F6AFF855[7] = $R12975C5C27E123C12934DAB375F493A3; } else { $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R12975C5C27E123C12934DAB375F493A3; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[0] = $R968911E34E4AAD7BC6607294EACD4D0A; $R5A078FF7990E6D22288D8CA2F6AFF855[1] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R5A078FF7990E6D22288D8CA2F6AFF855[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[3] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[5] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R5A078FF7990E6D22288D8CA2F6AFF855[7] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,darker_alpha($R09048244ED94301DD2640815ED21CFA1,1.5)); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.5)); } else { imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,darker($R09048244ED94301DD2640815ED21CFA1,1.5)); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,lighter($R09048244ED94301DD2640815ED21CFA1,1.5)); } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["outline"]) { $R8952982CFE925C7E76550EAD4538077B = darker($R09048244ED94301DD2640815ED21CFA1,1.5); imagerectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R8952982CFE925C7E76550EAD4538077B); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R8952982CFE925C7E76550EAD4538077B); imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,$R8952982CFE925C7E76550EAD4538077B); } } $R12975C5C27E123C12934DAB375F493A3 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } } } } for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R968911E34E4AAD7BC6607294EACD4D0A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]/2+$RA16D2280393CE6A2A5428A4A8D09E354*($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]); $R12975C5C27E123C12934DAB375F493A3 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]<1) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]>=0) { $R09048244ED94301DD2640815ED21CFA1 = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; if ($RC6CB727A00C2CB09673B207BE7AC1315>0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3-$RAF1ABEE07980A9C1C897DC7F688A4956; } else { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3; } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "rect"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $R39B8A34E5D33E13371402A8E1AFBD8E9.",".$R718AC8B9DE9E39D46F178BF720F93912.",".$R4C010D549D8CE12809958375A5227F8E.",".$RCF842228F8F602229EFF70A3EC087CE2; if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { $R09048244ED94301DD2640815ED21CFA1 = lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.001); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gradientfill"]) { $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R1439E89C1258EE407B7D745D4AE54C1F = 1.0 + 1/$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; for ($RD139FDEAF358FBB04DE0743B9904C79B=($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2-1);$RD139FDEAF358FBB04DE0743B9904C79B>=0;$RD139FDEAF358FBB04DE0743B9904C79B--) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); $R598AFE203FFA0065D8F537AD59779730 = lighter_alpha($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F); } $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B<=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"];$RD139FDEAF358FBB04DE0743B9904C79B++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); $R598AFE203FFA0065D8F537AD59779730 = darker_alpha($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F); } } else { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R09048244ED94301DD2640815ED21CFA1); } } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gradientfill"]) { $R1985B12C4D58DA3515C27F13577691CA = 200 / $RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]; $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R1439E89C1258EE407B7D745D4AE54C1F = 1.0 + 1/$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R3EEBC33595C88B5E41DD27DB2209156E = 1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B>=0;$RD139FDEAF358FBB04DE0743B9904C79B--) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); if ($R3EEBC33595C88B5E41DD27DB2209156E>=($R1985B12C4D58DA3515C27F13577691CA/2)) {$R598AFE203FFA0065D8F537AD59779730 = $R598AFE203FFA0065D8F537AD59779730;} else {$R598AFE203FFA0065D8F537AD59779730 = lighter($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F);} $R3EEBC33595C88B5E41DD27DB2209156E++; } $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R3EEBC33595C88B5E41DD27DB2209156E = 1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B<=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"];$RD139FDEAF358FBB04DE0743B9904C79B++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); if ($R3EEBC33595C88B5E41DD27DB2209156E>=($R1985B12C4D58DA3515C27F13577691CA/2)) {$R598AFE203FFA0065D8F537AD59779730 = $R598AFE203FFA0065D8F537AD59779730;} else {$R598AFE203FFA0065D8F537AD59779730 = darker($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F);} $R3EEBC33595C88B5E41DD27DB2209156E++; } } else { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R09048244ED94301DD2640815ED21CFA1); } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R12975C5C27E123C12934DAB375F493A3; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R5A078FF7990E6D22288D8CA2F6AFF855[0] = $R968911E34E4AAD7BC6607294EACD4D0A; $R5A078FF7990E6D22288D8CA2F6AFF855[1] = $R12975C5C27E123C12934DAB375F493A3; $R5A078FF7990E6D22288D8CA2F6AFF855[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[3] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[5] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R5A078FF7990E6D22288D8CA2F6AFF855[7] = $R12975C5C27E123C12934DAB375F493A3; } else { $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R12975C5C27E123C12934DAB375F493A3; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R12975C5C27E123C12934DAB375F493A3 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[0] = $R968911E34E4AAD7BC6607294EACD4D0A; $R5A078FF7990E6D22288D8CA2F6AFF855[1] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R5A078FF7990E6D22288D8CA2F6AFF855[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[3] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[5] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R5A078FF7990E6D22288D8CA2F6AFF855[7] = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,darker_alpha($R09048244ED94301DD2640815ED21CFA1,1.5)); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.5)); } else { imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,darker($R09048244ED94301DD2640815ED21CFA1,1.5)); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,lighter($R09048244ED94301DD2640815ED21CFA1,1.5)); } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["outline"]) { $R8952982CFE925C7E76550EAD4538077B = darker($R09048244ED94301DD2640815ED21CFA1,1.5); imagerectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R8952982CFE925C7E76550EAD4538077B); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R8952982CFE925C7E76550EAD4538077B); imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,$R8952982CFE925C7E76550EAD4538077B); } } $R12975C5C27E123C12934DAB375F493A3 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } } } } $R49287C90F8298E0E3871253DF00B5F41 = new JPtext(); $R49287C90F8298E0E3871253DF00B5F41->textstring = ""; $R49287C90F8298E0E3871253DF00B5F41->textfontsize = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontsize; $R49287C90F8298E0E3871253DF00B5F41->textfontfamily = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontfamily; $R49287C90F8298E0E3871253DF00B5F41->textbold = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textbold; $R49287C90F8298E0E3871253DF00B5F41->textitalic = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textitalic; $R49287C90F8298E0E3871253DF00B5F41->textangle = 0.0; $R49287C90F8298E0E3871253DF00B5F41->textX = -1; $R49287C90F8298E0E3871253DF00B5F41->textY = -1; $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textcolor; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R968911E34E4AAD7BC6607294EACD4D0A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]/2+$RA16D2280393CE6A2A5428A4A8D09E354*($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]); $R12975C5C27E123C12934DAB375F493A3 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]<1) { $R0C93F6C4DE27842A4F61DC7833802B4D = 0; if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]<0) { if ($RC6CB727A00C2CB09673B207BE7AC1315>0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} $R12975C5C27E123C12934DAB375F493A3 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } } } for ($RA7B9A383688A89B5498FC84118153069=($RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]-1);$RA7B9A383688A89B5498FC84118153069>-1;$RA7B9A383688A89B5498FC84118153069--) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]<1) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]<0) { $R09048244ED94301DD2640815ED21CFA1 = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; if ($RC6CB727A00C2CB09673B207BE7AC1315>0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = -$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = -$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3-$RAF1ABEE07980A9C1C897DC7F688A4956; } else { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3; } $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R49287C90F8298E0E3871253DF00B5F41->textcolor = darker($R09048244ED94301DD2640815ED21CFA1,3); $R49287C90F8298E0E3871253DF00B5F41->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); $R3403E062E1F918C896AA175B7E6F032B["x"] = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2; $R3403E062E1F918C896AA175B7E6F032B["y"] = $R718AC8B9DE9E39D46F178BF720F93912 + $RAF1ABEE07980A9C1C897DC7F688A4956/2 + ($R49287C90F8298E0E3871253DF00B5F41->textHeight * 1.6); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaybarvalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; $R12975C5C27E123C12934DAB375F493A3 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } } } } for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R968911E34E4AAD7BC6607294EACD4D0A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]/2+$RA16D2280393CE6A2A5428A4A8D09E354*($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]); $R12975C5C27E123C12934DAB375F493A3 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]<1) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]>=0) { $R09048244ED94301DD2640815ED21CFA1 = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; if ($RC6CB727A00C2CB09673B207BE7AC1315>0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3-$RAF1ABEE07980A9C1C897DC7F688A4956; } else { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $R12975C5C27E123C12934DAB375F493A3; } $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R49287C90F8298E0E3871253DF00B5F41->textcolor = darker($R09048244ED94301DD2640815ED21CFA1,3); $R49287C90F8298E0E3871253DF00B5F41->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); $R3403E062E1F918C896AA175B7E6F032B["x"] = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2; $R3403E062E1F918C896AA175B7E6F032B["y"] = $R718AC8B9DE9E39D46F178BF720F93912 + $RAF1ABEE07980A9C1C897DC7F688A4956/2 + ($R49287C90F8298E0E3871253DF00B5F41->textHeight * 1.6); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaybarvalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; $R12975C5C27E123C12934DAB375F493A3 = $R12975C5C27E123C12934DAB375F493A3 - $RAF1ABEE07980A9C1C897DC7F688A4956; } } } } } function draw_areas() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $R9D38A0604C29E5D26793AAB9721A06FC; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; global $R2970DA8A167A997C81123104DBEA96C9; $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]-$R20FD65E9C7406034FADC682F06732868; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 1; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R9F9EF81169E97E08BD070CC0D670979C = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $R60A2BC3576E33951BC1F33E2B051A90F = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $R344D0428583EB88838BA8859EA2ED83E = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+(($RA16D2280393CE6A2A5428A4A8D09E354-1)*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2+$R20FD65E9C7406034FADC682F06732868; $RCA1D8B67582BF484EA539C8AAD5EE01F = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2+$R20FD65E9C7406034FADC682F06732868; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]>0) { $R9D38A0604C29E5D26793AAB9721A06FC = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; $R8952982CFE925C7E76550EAD4538077B = darker($R9D38A0604C29E5D26793AAB9721A06FC,1.3); $R215B2DE5AE7C5C885A1A68D00E2C2321 = lighter($R9D38A0604C29E5D26793AAB9721A06FC,1.3); $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R344D0428583EB88838BA8859EA2ED83E; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R9F9EF81169E97E08BD070CC0D670979C; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $RCA1D8B67582BF484EA539C8AAD5EE01F; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R60A2BC3576E33951BC1F33E2B051A90F; $R9F9EF81169E97E08BD070CC0D670979C = $R9F9EF81169E97E08BD070CC0D670979C - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $R60A2BC3576E33951BC1F33E2B051A90F = $R60A2BC3576E33951BC1F33E2B051A90F - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $RCA1D8B67582BF484EA539C8AAD5EE01F; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R60A2BC3576E33951BC1F33E2B051A90F; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R344D0428583EB88838BA8859EA2ED83E; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R9F9EF81169E97E08BD070CC0D670979C; imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R9D38A0604C29E5D26793AAB9721A06FC); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RD269034B9D672B5CEF6D7F8BD764D2F6[0], $RD269034B9D672B5CEF6D7F8BD764D2F6[1], $RD269034B9D672B5CEF6D7F8BD764D2F6[2], $RD269034B9D672B5CEF6D7F8BD764D2F6[3], $R8952982CFE925C7E76550EAD4538077B); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RD269034B9D672B5CEF6D7F8BD764D2F6[4], $RD269034B9D672B5CEF6D7F8BD764D2F6[5]+1, $RD269034B9D672B5CEF6D7F8BD764D2F6[6], $RD269034B9D672B5CEF6D7F8BD764D2F6[7]+1, $R215B2DE5AE7C5C885A1A68D00E2C2321); } } } } function draw_points(&$R7726AB351CBB04A10E329629C4D29E76) { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $R9D38A0604C29E5D26793AAB9721A06FC; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; global $R2970DA8A167A997C81123104DBEA96C9; $RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R863900F2BD39DEC2A65F6E650E5F28CD = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $R20FD65E9C7406034FADC682F06732868; $RBE945D95B234D40717BF94843111B77A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$R20FD65E9C7406034FADC682F06732868+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]>0) { $R9D38A0604C29E5D26793AAB9721A06FC = darker($R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1],1.3); $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]) { $R863900F2BD39DEC2A65F6E650E5F28CD = $R863900F2BD39DEC2A65F6E650E5F28CD - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $R7726AB351CBB04A10E329629C4D29E76->DrawPoint($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R9D38A0604C29E5D26793AAB9721A06FC, $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RA7B9A383688A89B5498FC84118153069+1], $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1], $RCD38984B483C38FD84ADE326F49801C0[$RA7B9A383688A89B5498FC84118153069+1] ); $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["size"]/2); $R39B8A34E5D33E13371402A8E1AFBD8E9 = $RBE945D95B234D40717BF94843111B77A - $REAF86FD4CCAAFAA985C8B092DACD1B53; $R718AC8B9DE9E39D46F178BF720F93912 = $R863900F2BD39DEC2A65F6E650E5F28CD - $REAF86FD4CCAAFAA985C8B092DACD1B53; $R4C010D549D8CE12809958375A5227F8E = $RBE945D95B234D40717BF94843111B77A + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RCF842228F8F602229EFF70A3EC087CE2 = $R863900F2BD39DEC2A65F6E650E5F28CD + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "rect"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $R39B8A34E5D33E13371402A8E1AFBD8E9.",".$R718AC8B9DE9E39D46F178BF720F93912.",".$R4C010D549D8CE12809958375A5227F8E.",".$RCF842228F8F602229EFF70A3EC087CE2; } } } } $R49287C90F8298E0E3871253DF00B5F41 = new JPtext(); $R49287C90F8298E0E3871253DF00B5F41->textstring = ""; $R49287C90F8298E0E3871253DF00B5F41->textfontsize = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textfontsize; $R49287C90F8298E0E3871253DF00B5F41->textfontfamily = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textfontfamily; $R49287C90F8298E0E3871253DF00B5F41->textbold = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textbold; $R49287C90F8298E0E3871253DF00B5F41->textitalic = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textitalic; $R49287C90F8298E0E3871253DF00B5F41->textangle = 0.0; $R49287C90F8298E0E3871253DF00B5F41->textX = -1; $R49287C90F8298E0E3871253DF00B5F41->textY = -1; $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textcolor; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R863900F2BD39DEC2A65F6E650E5F28CD = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]-$R20FD65E9C7406034FADC682F06732868; $RBE945D95B234D40717BF94843111B77A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$R20FD65E9C7406034FADC682F06732868+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]>0) { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; if ($RC6CB727A00C2CB09673B207BE7AC1315<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] + $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$RC6CB727A00C2CB09673B207BE7AC1315/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1];} $R863900F2BD39DEC2A65F6E650E5F28CD = $R863900F2BD39DEC2A65F6E650E5F28CD - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelcolor"]; $R49287C90F8298E0E3871253DF00B5F41->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"]; $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); $R3403E062E1F918C896AA175B7E6F032B["x"] = $RBE945D95B234D40717BF94843111B77A; $R3403E062E1F918C896AA175B7E6F032B["y"] = $R863900F2BD39DEC2A65F6E650E5F28CD; $R3403E062E1F918C896AA175B7E6F032B["size"] = $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1]; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; } } } } function draw_free_images() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $R1BB7A4870F58BA79D88E63C2559CD57B; global $RD1A0958AE2FB98B3A9ED0797AA2B0455; global $R60FF7733AE88234F8336581EA8FA82A4; global $RC6BFEE679024332CF305D170F2C17469; global $RF828C89FB29C2525C385E12B74FBB61C; global $R6C81831962243CEBF80CF350FCC82F6C; global $R891928759E038E200C81E93EC9F15EE2; if ($R60FF7733AE88234F8336581EA8FA82A4<1) {return;} for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$R60FF7733AE88234F8336581EA8FA82A4;$RA16D2280393CE6A2A5428A4A8D09E354++) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][0], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][1], 0, 0, imagesx($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]), imagesy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354])); imagedestroy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]); } } function auto_config() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; $RF4308D8C11499F88F2C59CEC974EC433 = 0; $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]-$RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; auto_scale(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = 0; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legenddisplay) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->setProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos < 0) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth/2; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos <($RBF902F888A7A27C3E6036FE7C8FB44BE["height"]/2)) {$R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendheight + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos<($RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2)) {$RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textHeight; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textWidth/2;; } $RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = 0; $RF4308D8C11499F88F2C59CEC974EC433 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textWidth/2;; } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] - $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX = $R1D47C61D5BA7A6FDA3BE1A1F997E1325; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = $R0A20F9DE5D5D3F476F4CF894D63F9583 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"]) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] = $R0A20F9DE5D5D3F476F4CF894D63F9583 - max_xlabels_height() - 10; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] - 6; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth;} } $RF4308D8C11499F88F2C59CEC974EC433 = $RF4308D8C11499F88F2C59CEC974EC433 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $REDC007496C1445189AF037508BBA4E23 + 3; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textWidth;} } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - 3 - $REDC007496C1445189AF037508BBA4E23 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0] = $RF4308D8C11499F88F2C59CEC974EC433;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] = $R0A20F9DE5D5D3F476F4CF894D63F9583;} $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $R20FD65E9C7406034FADC682F06732868; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $R20FD65E9C7406034FADC682F06732868; $R246159316604D58DB8DE9F848709E772 = $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RE484ED591E12CF9125AE1D47AE08748B = $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; if ($R246159316604D58DB8DE9F848709E772<1) {$R246159316604D58DB8DE9F848709E772 = 1;} if ($RE484ED591E12CF9125AE1D47AE08748B<1) {$RE484ED591E12CF9125AE1D47AE08748B = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = ($R0A20F9DE5D5D3F476F4CF894D63F9583 - $R5FAB68FB24C1A8046E4EFBB033D4B4C8)/$RE484ED591E12CF9125AE1D47AE08748B;} $RA717BE065F43D389A8580E09D094401C = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433) / $R246159316604D58DB8DE9F848709E772; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"] = 0;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] = $RA717BE065F43D389A8580E09D094401C - $RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = 2;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"] = 0;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]>127) {$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]=127;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]=0;} $RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["displaybarvalues"]; } function add_series_info($RA94EF3EDEBBECC120DD9EC4D9CB90BD1, $R7F6045D9D5F4D9047AD84E4499F620E0) { global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $R2970DA8A167A997C81123104DBEA96C9; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; $RF31550B84DE1AEA05419B284E7210B46 = get_snum($RA94EF3EDEBBECC120DD9EC4D9CB90BD1); if ($RF31550B84DE1AEA05419B284E7210B46>0 and $RF31550B84DE1AEA05419B284E7210B46<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]) { $RCEEFEBF769973BC15B47970F0B687093 = explode("|", $R7F6045D9D5F4D9047AD84E4499F620E0); $R2970DA8A167A997C81123104DBEA96C9[$RF31550B84DE1AEA05419B284E7210B46] = verifyseriestype($RCEEFEBF769973BC15B47970F0B687093[0]); if ($R2970DA8A167A997C81123104DBEA96C9[$RF31550B84DE1AEA05419B284E7210B46]==0) { if (strlen(trim($RCEEFEBF769973BC15B47970F0B687093[1]))>2) {$R16F83AEFCECAB2A8AD503C9285E47ABF[$RF31550B84DE1AEA05419B284E7210B46] = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080");} } else { if (strlen(trim($RCEEFEBF769973BC15B47970F0B687093[1]))>2) {$R16F83AEFCECAB2A8AD503C9285E47ABF[$RF31550B84DE1AEA05419B284E7210B46] = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080");} $R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46] = verifyint($RCEEFEBF769973BC15B47970F0B687093[3], "1");; $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46] = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[4],"circle"); $RCD38984B483C38FD84ADE326F49801C0[$RF31550B84DE1AEA05419B284E7210B46] = verifybool($RCEEFEBF769973BC15B47970F0B687093[5], "true"); $R3186037EF1F216D6DB170D63B21755F5[$RF31550B84DE1AEA05419B284E7210B46] = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[6],"solid"); if ($RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46]==0) {$R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46]=1;} $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"] = true; } } } function max_xlabels_height() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; $R429EF5BC814A71C72EB347447FD90E75 = imagefontheight($RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $RFD98E5621F1811783DCA236EA264442C = 0; switch ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"]) { case 1: $RFD98E5621F1811783DCA236EA264442C = $R429EF5BC814A71C72EB347447FD90E75; break; case 2: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75;} } break; case 3: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3;} } break; case 4: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4;} } break; } $RFD98E5621F1811783DCA236EA264442C = $RFD98E5621F1811783DCA236EA264442C + $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelyoffset"]; return $RFD98E5621F1811783DCA236EA264442C; } function auto_scale() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $R2970DA8A167A997C81123104DBEA96C9; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); $R3D668352253147BDF54512EA619BFEA7 = true; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $R5D611C534A082ABF87AED599454DA5AB = 0; $R7269B4E8BDE9991B28E92D448CAB79FC = 0; $R39517AF0B10FC140102A38984F181EEA = false; for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069]<1 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]>=0) {$R5D611C534A082ABF87AED599454DA5AB = $R5D611C534A082ABF87AED599454DA5AB + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354];} if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]<0) { $R7269B4E8BDE9991B28E92D448CAB79FC = $R7269B4E8BDE9991B28E92D448CAB79FC + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]; $R39517AF0B10FC140102A38984F181EEA = true; } } } $R6F7F170701859062DAD123413E09EC5A[] = $R5D611C534A082ABF87AED599454DA5AB; if ($R39517AF0B10FC140102A38984F181EEA) { $R6F7F170701859062DAD123413E09EC5A[] = $R7269B4E8BDE9991B28E92D448CAB79FC; $R3D668352253147BDF54512EA619BFEA7 = false; } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"], $R3D668352253147BDF54512EA619BFEA7); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"]) { $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); $R3D668352253147BDF54512EA619BFEA7 = true; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $R5D611C534A082ABF87AED599454DA5AB = 0; $R7269B4E8BDE9991B28E92D448CAB79FC = 0; $R39517AF0B10FC140102A38984F181EEA = false; for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069]>0 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]>=0) {$R5D611C534A082ABF87AED599454DA5AB = $R5D611C534A082ABF87AED599454DA5AB + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354];} if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]<0) { $R7269B4E8BDE9991B28E92D448CAB79FC = $R7269B4E8BDE9991B28E92D448CAB79FC + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]; $R39517AF0B10FC140102A38984F181EEA = true; } } } $R6F7F170701859062DAD123413E09EC5A[] = $R5D611C534A082ABF87AED599454DA5AB; if ($R39517AF0B10FC140102A38984F181EEA) { $R6F7F170701859062DAD123413E09EC5A[] = $R7269B4E8BDE9991B28E92D448CAB79FC; $R3D668352253147BDF54512EA619BFEA7 = false; } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"], $R3D668352253147BDF54512EA619BFEA7); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } } } if (isset($_REQUEST["getImage"])) { ob_end_clean(); $RF500F4A848E2EB2F8AAC3A6734D7EC38 = fopen($_REQUEST["getImage"], 'rb'); header("Content-Type: image/png"); header("Content-Length: " . filesize($_REQUEST["getImage"])); fpassthru($RF500F4A848E2EB2F8AAC3A6734D7EC38); fclose($RF500F4A848E2EB2F8AAC3A6734D7EC38); unlink($_REQUEST["getImage"]); exit; } $R0EB1982D9BAA9716AC37A8F047D5800D[0] = ""; $R5E45BBDAAB766CB0885E580EABDE0B07 = 0; $RD8A2F08EEBB302CF96A61B4FAE35D9F2 = false; $R3DA1CF9DE121F39B5EA19B5D904981C3 = false; $R04E206CC959DC4284E86A8CDC8E42BB8 = false; $R937C2BF4A1BF7EC4F0DAD072419821FB = "dbinfo.txt"; $R5BA1F88D3C6A012D3325B2C213C7A2E4 = "graph-data.php"; $RE7074FB81569EC419A89091BEAEB6F5A = getBaseURL(); if (array_key_exists("data", $_REQUEST)) {$R5BA1F88D3C6A012D3325B2C213C7A2E4 = $_REQUEST["data"];} if (array_key_exists("saveimage",$_REQUEST)) {$R017C24F2701E8BF8DA2CA976B495A299 = $_REQUEST["saveimage"];$R3DA1CF9DE121F39B5EA19B5D904981C3=true;} $RBF902F888A7A27C3E6036FE7C8FB44BE = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["datalines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartStyle"] = "area-stacked-vertical-bar-graph"; $jpDatabase = array(); if (array_key_exists("dbinfo", $_REQUEST)) { $R937C2BF4A1BF7EC4F0DAD072419821FB = $_REQUEST["dbinfo"]; $R04E206CC959DC4284E86A8CDC8E42BB8 = true; if (file_exists($R937C2BF4A1BF7EC4F0DAD072419821FB)) { include ("$R937C2BF4A1BF7EC4F0DAD072419821FB"); } } $R60B5058B4F8CC72DC333B4517D2B105F = gdVersion(); load_Data($RBF902F888A7A27C3E6036FE7C8FB44BE); set_WH($RBF902F888A7A27C3E6036FE7C8FB44BE); if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreatetruecolor ($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} else {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreate($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} initalizeConfig(); get_data(); set_series_defaults(); set_Config($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetSeries($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetData($RBF902F888A7A27C3E6036FE7C8FB44BE); auto_config(); $R7726AB351CBB04A10E329629C4D29E76 = new JPdraw($RBF902F888A7A27C3E6036FE7C8FB44BE); $R7726AB351CBB04A10E329629C4D29E76->draw_background($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_grid($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_titles($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_areas(); draw_points($R7726AB351CBB04A10E329629C4D29E76); draw_bars($R7726AB351CBB04A10E329629C4D29E76); $R56ABCC62A788FCB4CA34E543EE25CB1A = true; $R7726AB351CBB04A10E329629C4D29E76->draw_xlabels($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A); $R7726AB351CBB04A10E329629C4D29E76->draw_legend($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R16F83AEFCECAB2A8AD503C9285E47ABF); $R7726AB351CBB04A10E329629C4D29E76->draw_freeformtext($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_free_images(); $R7726AB351CBB04A10E329629C4D29E76->draw_target_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A); $R7726AB351CBB04A10E329629C4D29E76->draw_trend_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A); if (!testKey()) {$R7726AB351CBB04A10E329629C4D29E76->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} if (!isset($_REQUEST["debug"])) { ob_end_clean(); } if (isset($_REQUEST["JPajax"]) && $_REQUEST["JPajax"]>0) { if (!file_exists('./tmp')) { mkdir('./tmp'); } $R8EEB1221AED257518AC7928EB7CF9AA3 = tempnam("./tmp", "pgr"); if (!imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R8EEB1221AED257518AC7928EB7CF9AA3)) { add_error_message("Unable to save Graph Image"); } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R92B87745142AEBCDA7295499518B9393["imageFileName"] = $R8EEB1221AED257518AC7928EB7CF9AA3; $R92B87745142AEBCDA7295499518B9393["imageWidth"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]; $R92B87745142AEBCDA7295499518B9393["imageHeight"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; $R92B87745142AEBCDA7295499518B9393["graphData"] = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354dataArray);$RA7B9A383688A89B5498FC84118153069++) { $R92B87745142AEBCDA7295499518B9393["graphData"][] = $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA16D2280393CE6A2A5428A4A8D09E354+1]->dataArray[$RA7B9A383688A89B5498FC84118153069+1]; } } if (function_exists("json_encode")) { print json_encode($R92B87745142AEBCDA7295499518B9393); } else { print JP_json_encode($R92B87745142AEBCDA7295499518B9393); } exit(0); } display_errors(); if (!$RD8A2F08EEBB302CF96A61B4FAE35D9F2) { header('Expires: Sat, 01 January 2000 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); header("Content-type: image/png"); imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD); if ($R3DA1CF9DE121F39B5EA19B5D904981C3) {imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R017C24F2701E8BF8DA2CA976B495A299);} } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); exit(0); ?> \ No newline at end of file diff --git a/OLD/jpowered/graph/area-vertical-bar-graph.php b/OLD/jpowered/graph/area-vertical-bar-graph.php new file mode 100644 index 0000000..6a4bb36 --- /dev/null +++ b/OLD/jpowered/graph/area-vertical-bar-graph.php @@ -0,0 +1 @@ +0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} $R968911E34E4AAD7BC6607294EACD4D0A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"]+$R49B52C358B574BB6210DAD3871A4F0BF)*($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"])+$RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]-$RAF1ABEE07980A9C1C897DC7F688A4956; } else { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R968911E34E4AAD7BC6607294EACD4D0A; $R718AC8B9DE9E39D46F178BF720F93912 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956; $R4C010D549D8CE12809958375A5227F8E = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RCF842228F8F602229EFF70A3EC087CE2 = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "rect"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $R39B8A34E5D33E13371402A8E1AFBD8E9.",".$R718AC8B9DE9E39D46F178BF720F93912.",".$R4C010D549D8CE12809958375A5227F8E.",".$RCF842228F8F602229EFF70A3EC087CE2; if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { $R09048244ED94301DD2640815ED21CFA1 = lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.001); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gradientfill"]) { $R598AFE203FFA0065D8F537AD59779730 = lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.001); $R1439E89C1258EE407B7D745D4AE54C1F = 1.0 + 1/$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; for ($RD139FDEAF358FBB04DE0743B9904C79B=($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2-1);$RD139FDEAF358FBB04DE0743B9904C79B>=0;$RD139FDEAF358FBB04DE0743B9904C79B--) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); $R598AFE203FFA0065D8F537AD59779730 = lighter_alpha($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F); } $R598AFE203FFA0065D8F537AD59779730 = lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.001); for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B<$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"];$RD139FDEAF358FBB04DE0743B9904C79B++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); $R598AFE203FFA0065D8F537AD59779730 = darker_alpha($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F); } } else { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R09048244ED94301DD2640815ED21CFA1); } } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gradientfill"]) { $R1985B12C4D58DA3515C27F13577691CA = 200 / $RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]; $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R1439E89C1258EE407B7D745D4AE54C1F = 1.0 + 1/$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R3EEBC33595C88B5E41DD27DB2209156E = 1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B>=0;$RD139FDEAF358FBB04DE0743B9904C79B--) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); if ($R3EEBC33595C88B5E41DD27DB2209156E>=($R1985B12C4D58DA3515C27F13577691CA/2)) {$R598AFE203FFA0065D8F537AD59779730 = $R598AFE203FFA0065D8F537AD59779730;} else {$R598AFE203FFA0065D8F537AD59779730 = lighter($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F);} $R3EEBC33595C88B5E41DD27DB2209156E++; } $R598AFE203FFA0065D8F537AD59779730 = $R09048244ED94301DD2640815ED21CFA1; $R3EEBC33595C88B5E41DD27DB2209156E = 1; for ($RD139FDEAF358FBB04DE0743B9904C79B=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2;$RD139FDEAF358FBB04DE0743B9904C79B<=$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"];$RD139FDEAF358FBB04DE0743B9904C79B++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RD139FDEAF358FBB04DE0743B9904C79B, $RCF842228F8F602229EFF70A3EC087CE2, $R598AFE203FFA0065D8F537AD59779730); if ($R3EEBC33595C88B5E41DD27DB2209156E>=($R1985B12C4D58DA3515C27F13577691CA/2)) {$R598AFE203FFA0065D8F537AD59779730 = $R598AFE203FFA0065D8F537AD59779730;} else {$R598AFE203FFA0065D8F537AD59779730 = darker($R598AFE203FFA0065D8F537AD59779730,$R1439E89C1258EE407B7D745D4AE54C1F);} $R3EEBC33595C88B5E41DD27DB2209156E++; } } else { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R09048244ED94301DD2640815ED21CFA1); } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { if ($RAF1ABEE07980A9C1C897DC7F688A4956<0) { $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R968911E34E4AAD7BC6607294EACD4D0A+$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956; $R5A078FF7990E6D22288D8CA2F6AFF855[0] = $R968911E34E4AAD7BC6607294EACD4D0A; $R5A078FF7990E6D22288D8CA2F6AFF855[1] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $R5A078FF7990E6D22288D8CA2F6AFF855[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[3] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[5] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R5A078FF7990E6D22288D8CA2F6AFF855[7] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; } else { $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[0] = $R968911E34E4AAD7BC6607294EACD4D0A; $R5A078FF7990E6D22288D8CA2F6AFF855[1] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956; $R5A078FF7990E6D22288D8CA2F6AFF855[2] = $R968911E34E4AAD7BC6607294EACD4D0A + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[3] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[4] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] + $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[5] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956 - $R20FD65E9C7406034FADC682F06732868; $R5A078FF7990E6D22288D8CA2F6AFF855[6] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]; $R5A078FF7990E6D22288D8CA2F6AFF855[7] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956; } if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,darker_alpha($R09048244ED94301DD2640815ED21CFA1,1.5)); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,lighter_alpha($R09048244ED94301DD2640815ED21CFA1,1.5)); } else { imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,darker($R09048244ED94301DD2640815ED21CFA1,1.5)); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,lighter($R09048244ED94301DD2640815ED21CFA1,1.5)); } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["outline"]) { $R8952982CFE925C7E76550EAD4538077B = darker($R09048244ED94301DD2640815ED21CFA1,1.5); imagerectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $R8952982CFE925C7E76550EAD4538077B); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R8952982CFE925C7E76550EAD4538077B); imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R5A078FF7990E6D22288D8CA2F6AFF855,4,$R8952982CFE925C7E76550EAD4538077B); } } } $R49B52C358B574BB6210DAD3871A4F0BF++; } } } $R49287C90F8298E0E3871253DF00B5F41 = new JPtext(); $R49287C90F8298E0E3871253DF00B5F41->textstring = ""; $R49287C90F8298E0E3871253DF00B5F41->textfontsize = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontsize; $R49287C90F8298E0E3871253DF00B5F41->textfontfamily = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontfamily; $R49287C90F8298E0E3871253DF00B5F41->textbold = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textbold; $R49287C90F8298E0E3871253DF00B5F41->textitalic = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textitalic; $R49287C90F8298E0E3871253DF00B5F41->textangle = 0.0; $R49287C90F8298E0E3871253DF00B5F41->textX = -1; $R49287C90F8298E0E3871253DF00B5F41->textY = -1; $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textcolor; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R49B52C358B574BB6210DAD3871A4F0BF = 0; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]<1) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]) { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]; if ($RC6CB727A00C2CB09673B207BE7AC1315<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] + $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$RC6CB727A00C2CB09673B207BE7AC1315/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1];} if ($RC6CB727A00C2CB09673B207BE7AC1315>0) {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315)/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RAF1ABEE07980A9C1C897DC7F688A4956 = $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} $R968911E34E4AAD7BC6607294EACD4D0A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"]+$R49B52C358B574BB6210DAD3871A4F0BF)*($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"])+$RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelcolor"]; $R49287C90F8298E0E3871253DF00B5F41->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); $R3403E062E1F918C896AA175B7E6F032B["x"] = $R968911E34E4AAD7BC6607294EACD4D0A + $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]/2; $R3403E062E1F918C896AA175B7E6F032B["y"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $RAF1ABEE07980A9C1C897DC7F688A4956/2 + ($R49287C90F8298E0E3871253DF00B5F41->textHeight * 1.6); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaybarvalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; } $R49B52C358B574BB6210DAD3871A4F0BF++; } } } } function draw_areas() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $R9D38A0604C29E5D26793AAB9721A06FC; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; global $R2970DA8A167A997C81123104DBEA96C9; $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]-$R20FD65E9C7406034FADC682F06732868; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 1; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R9F9EF81169E97E08BD070CC0D670979C = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $R60A2BC3576E33951BC1F33E2B051A90F = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]; $R344D0428583EB88838BA8859EA2ED83E = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+(($RA16D2280393CE6A2A5428A4A8D09E354-1)*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2+$R20FD65E9C7406034FADC682F06732868; $RCA1D8B67582BF484EA539C8AAD5EE01F = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2+$R20FD65E9C7406034FADC682F06732868; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]>0) { $R9D38A0604C29E5D26793AAB9721A06FC = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; $R8952982CFE925C7E76550EAD4538077B = darker($R9D38A0604C29E5D26793AAB9721A06FC,1.3); $R215B2DE5AE7C5C885A1A68D00E2C2321 = lighter($R9D38A0604C29E5D26793AAB9721A06FC,1.3); $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $R344D0428583EB88838BA8859EA2ED83E; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R9F9EF81169E97E08BD070CC0D670979C; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $RCA1D8B67582BF484EA539C8AAD5EE01F; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R60A2BC3576E33951BC1F33E2B051A90F; $R9F9EF81169E97E08BD070CC0D670979C = $R9F9EF81169E97E08BD070CC0D670979C - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $R60A2BC3576E33951BC1F33E2B051A90F = $R60A2BC3576E33951BC1F33E2B051A90F - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $RCA1D8B67582BF484EA539C8AAD5EE01F; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R60A2BC3576E33951BC1F33E2B051A90F; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $R344D0428583EB88838BA8859EA2ED83E; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R9F9EF81169E97E08BD070CC0D670979C; imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R9D38A0604C29E5D26793AAB9721A06FC); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RD269034B9D672B5CEF6D7F8BD764D2F6[0], $RD269034B9D672B5CEF6D7F8BD764D2F6[1], $RD269034B9D672B5CEF6D7F8BD764D2F6[2], $RD269034B9D672B5CEF6D7F8BD764D2F6[3], $R8952982CFE925C7E76550EAD4538077B); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RD269034B9D672B5CEF6D7F8BD764D2F6[4], $RD269034B9D672B5CEF6D7F8BD764D2F6[5]+1, $RD269034B9D672B5CEF6D7F8BD764D2F6[6], $RD269034B9D672B5CEF6D7F8BD764D2F6[7]+1, $R215B2DE5AE7C5C885A1A68D00E2C2321); } } } } function draw_points(&$R7726AB351CBB04A10E329629C4D29E76) { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $R9D38A0604C29E5D26793AAB9721A06FC; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; global $R2970DA8A167A997C81123104DBEA96C9; $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R863900F2BD39DEC2A65F6E650E5F28CD = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] - $R20FD65E9C7406034FADC682F06732868; $RBE945D95B234D40717BF94843111B77A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$R20FD65E9C7406034FADC682F06732868+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]>0) { $R9D38A0604C29E5D26793AAB9721A06FC = darker($R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1],1.3); $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]) { $R863900F2BD39DEC2A65F6E650E5F28CD = $R863900F2BD39DEC2A65F6E650E5F28CD - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R3403E062E1F918C896AA175B7E6F032B[$RA16D2280393CE6A2A5428A4A8D09E354][$RA7B9A383688A89B5498FC84118153069]["size"]/2); $R39B8A34E5D33E13371402A8E1AFBD8E9 = $RBE945D95B234D40717BF94843111B77A - $REAF86FD4CCAAFAA985C8B092DACD1B53; $R718AC8B9DE9E39D46F178BF720F93912 = $R863900F2BD39DEC2A65F6E650E5F28CD - $REAF86FD4CCAAFAA985C8B092DACD1B53; $R4C010D549D8CE12809958375A5227F8E = $RBE945D95B234D40717BF94843111B77A + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RCF842228F8F602229EFF70A3EC087CE2 = $R863900F2BD39DEC2A65F6E650E5F28CD + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "rect"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $R39B8A34E5D33E13371402A8E1AFBD8E9.",".$R718AC8B9DE9E39D46F178BF720F93912.",".$R4C010D549D8CE12809958375A5227F8E.",".$RCF842228F8F602229EFF70A3EC087CE2; $R7726AB351CBB04A10E329629C4D29E76->DrawPoint($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R9D38A0604C29E5D26793AAB9721A06FC, $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RA7B9A383688A89B5498FC84118153069+1], $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1], $RCD38984B483C38FD84ADE326F49801C0[$RA7B9A383688A89B5498FC84118153069+1] ); } } } } $R49287C90F8298E0E3871253DF00B5F41 = new JPtext(); $R49287C90F8298E0E3871253DF00B5F41->textstring = ""; $R49287C90F8298E0E3871253DF00B5F41->textfontsize = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textfontsize; $R49287C90F8298E0E3871253DF00B5F41->textfontfamily = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textfontfamily; $R49287C90F8298E0E3871253DF00B5F41->textbold = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textbold; $R49287C90F8298E0E3871253DF00B5F41->textitalic = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textitalic; $R49287C90F8298E0E3871253DF00B5F41->textangle = 0.0; $R49287C90F8298E0E3871253DF00B5F41->textX = -1; $R49287C90F8298E0E3871253DF00B5F41->textY = -1; $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textcolor; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R863900F2BD39DEC2A65F6E650E5F28CD = $RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"]-$R20FD65E9C7406034FADC682F06732868; $RBE945D95B234D40717BF94843111B77A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]+($RA16D2280393CE6A2A5428A4A8D09E354*$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"])+$R20FD65E9C7406034FADC682F06732868+$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]/2; for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1] && $R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069+1]>0) { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; if ($RC6CB727A00C2CB09673B207BE7AC1315<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] + $RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*$RC6CB727A00C2CB09673B207BE7AC1315/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$RBF902F888A7A27C3E6036FE7C8FB44BE["axis_ypos"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1];} $R863900F2BD39DEC2A65F6E650E5F28CD = $R863900F2BD39DEC2A65F6E650E5F28CD - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelcolor"]; $R49287C90F8298E0E3871253DF00B5F41->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"]; $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); $R3403E062E1F918C896AA175B7E6F032B["x"] = $RBE945D95B234D40717BF94843111B77A; $R3403E062E1F918C896AA175B7E6F032B["y"] = $R863900F2BD39DEC2A65F6E650E5F28CD; $R3403E062E1F918C896AA175B7E6F032B["size"] = $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1]; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; } } } } function draw_free_images() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $R1BB7A4870F58BA79D88E63C2559CD57B; global $RD1A0958AE2FB98B3A9ED0797AA2B0455; global $R60FF7733AE88234F8336581EA8FA82A4; global $RC6BFEE679024332CF305D170F2C17469; global $RF828C89FB29C2525C385E12B74FBB61C; global $R6C81831962243CEBF80CF350FCC82F6C; global $R891928759E038E200C81E93EC9F15EE2; if ($R60FF7733AE88234F8336581EA8FA82A4<1) {return;} for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$R60FF7733AE88234F8336581EA8FA82A4;$RA16D2280393CE6A2A5428A4A8D09E354++) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][0], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][1], 0, 0, imagesx($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]), imagesy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354])); imagedestroy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]); } } function auto_config() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $R2970DA8A167A997C81123104DBEA96C9; $RF4308D8C11499F88F2C59CEC974EC433 = 0; $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]-$RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; auto_scale(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = 0; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legenddisplay) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->setProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos < 0) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth/2; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos <($RBF902F888A7A27C3E6036FE7C8FB44BE["height"]/2)) {$R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendheight + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos<($RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2)) {$RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textHeight; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textWidth/2;; } $RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = 0; $RF4308D8C11499F88F2C59CEC974EC433 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textWidth/2;; } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] - $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX = $R1D47C61D5BA7A6FDA3BE1A1F997E1325; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = $R0A20F9DE5D5D3F476F4CF894D63F9583 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"]) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] = $R0A20F9DE5D5D3F476F4CF894D63F9583 - max_xlabels_height() - 10; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] - 6; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth;} } $RF4308D8C11499F88F2C59CEC974EC433 = $RF4308D8C11499F88F2C59CEC974EC433 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $REDC007496C1445189AF037508BBA4E23 + 3; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textWidth;} } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - 3 - $REDC007496C1445189AF037508BBA4E23 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0] = $RF4308D8C11499F88F2C59CEC974EC433;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] = $R0A20F9DE5D5D3F476F4CF894D63F9583;} $R20FD65E9C7406034FADC682F06732868 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) {$R20FD65E9C7406034FADC682F06732868 = (7*$RBF902F888A7A27C3E6036FE7C8FB44BE["depth3d"])/10;} $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $R20FD65E9C7406034FADC682F06732868; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $R20FD65E9C7406034FADC682F06732868; $R246159316604D58DB8DE9F848709E772 = $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RE484ED591E12CF9125AE1D47AE08748B = $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; if ($R246159316604D58DB8DE9F848709E772<1) {$R246159316604D58DB8DE9F848709E772 = 1;} if ($RE484ED591E12CF9125AE1D47AE08748B<1) {$RE484ED591E12CF9125AE1D47AE08748B = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = ($R0A20F9DE5D5D3F476F4CF894D63F9583 - $R5FAB68FB24C1A8046E4EFBB033D4B4C8)/$RE484ED591E12CF9125AE1D47AE08748B;} $RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"] = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA16D2280393CE6A2A5428A4A8D09E354+1]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"]++;} } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"] = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"] = 0;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]<0) { $RA717BE065F43D389A8580E09D094401C = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433) / $R246159316604D58DB8DE9F848709E772; $RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] = (($RA717BE065F43D389A8580E09D094401C - $RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"])/$RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"]) - $RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = 2;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"] = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"] = 0;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]>127) {$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]=127;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]=0;} $RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = ($RBF902F888A7A27C3E6036FE7C8FB44BE["barwidth"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"])*$RBF902F888A7A27C3E6036FE7C8FB44BE["nbartype"]+$RBF902F888A7A27C3E6036FE7C8FB44BE["barspacing"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["displaybarvalues"]; } function add_series_info($RA94EF3EDEBBECC120DD9EC4D9CB90BD1, $R7F6045D9D5F4D9047AD84E4499F620E0) { global $R2970DA8A167A997C81123104DBEA96C9; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; $RF31550B84DE1AEA05419B284E7210B46 = get_snum($RA94EF3EDEBBECC120DD9EC4D9CB90BD1); if ($RF31550B84DE1AEA05419B284E7210B46>0 and $RF31550B84DE1AEA05419B284E7210B46<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]) { $RCEEFEBF769973BC15B47970F0B687093 = explode("|", $R7F6045D9D5F4D9047AD84E4499F620E0); $R2970DA8A167A997C81123104DBEA96C9[$RF31550B84DE1AEA05419B284E7210B46] = verifyseriestype($RCEEFEBF769973BC15B47970F0B687093[0]); if ($R2970DA8A167A997C81123104DBEA96C9[$RF31550B84DE1AEA05419B284E7210B46]==0) { if (strlen(trim($RCEEFEBF769973BC15B47970F0B687093[1]))>2) {$R16F83AEFCECAB2A8AD503C9285E47ABF[$RF31550B84DE1AEA05419B284E7210B46] = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080");} } else { if (strlen(trim($RCEEFEBF769973BC15B47970F0B687093[1]))>2) {$R16F83AEFCECAB2A8AD503C9285E47ABF[$RF31550B84DE1AEA05419B284E7210B46] = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080");} $R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46] = verifyint($RCEEFEBF769973BC15B47970F0B687093[3], "1");; $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46] = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[4],"circle"); $RCD38984B483C38FD84ADE326F49801C0[$RF31550B84DE1AEA05419B284E7210B46] = verifybool($RCEEFEBF769973BC15B47970F0B687093[5], "true"); $R3186037EF1F216D6DB170D63B21755F5[$RF31550B84DE1AEA05419B284E7210B46] = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[6],"solid"); if ($RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46]==0) {$R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46]=1;} $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"] = true; } } } function max_xlabels_height() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; $R429EF5BC814A71C72EB347447FD90E75 = imagefontheight($RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $RFD98E5621F1811783DCA236EA264442C = 0; switch ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"]) { case 1: $RFD98E5621F1811783DCA236EA264442C = $R429EF5BC814A71C72EB347447FD90E75; break; case 2: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75;} } break; case 3: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3;} } break; case 4: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4;} } break; } $RFD98E5621F1811783DCA236EA264442C = $RFD98E5621F1811783DCA236EA264442C + $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelyoffset"]; return $RFD98E5621F1811783DCA236EA264442C; } function auto_scale() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $R2970DA8A167A997C81123104DBEA96C9; $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069]<1 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { $R6F7F170701859062DAD123413E09EC5A[] = $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]; } } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"]) { $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); $R3D668352253147BDF54512EA619BFEA7 = true; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nbars"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $R5D611C534A082ABF87AED599454DA5AB = 0; $R7269B4E8BDE9991B28E92D448CAB79FC = 0; $R39517AF0B10FC140102A38984F181EEA = false; for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($R2970DA8A167A997C81123104DBEA96C9[$RA7B9A383688A89B5498FC84118153069]>0 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]>=0) {$R5D611C534A082ABF87AED599454DA5AB = $R5D611C534A082ABF87AED599454DA5AB + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354];} if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]<0) { $R7269B4E8BDE9991B28E92D448CAB79FC = $R7269B4E8BDE9991B28E92D448CAB79FC + $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]; $R39517AF0B10FC140102A38984F181EEA = true; } } } $R6F7F170701859062DAD123413E09EC5A[] = $R5D611C534A082ABF87AED599454DA5AB; if ($R39517AF0B10FC140102A38984F181EEA) { $R6F7F170701859062DAD123413E09EC5A[] = $R7269B4E8BDE9991B28E92D448CAB79FC; $R3D668352253147BDF54512EA619BFEA7 = false; } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"], $R3D668352253147BDF54512EA619BFEA7); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } } } if (isset($_REQUEST["getImage"])) { ob_end_clean(); $RF500F4A848E2EB2F8AAC3A6734D7EC38 = fopen($_REQUEST["getImage"], 'rb'); header("Content-Type: image/png"); header("Content-Length: " . filesize($_REQUEST["getImage"])); fpassthru($RF500F4A848E2EB2F8AAC3A6734D7EC38); fclose($RF500F4A848E2EB2F8AAC3A6734D7EC38); unlink($_REQUEST["getImage"]); exit; } $R0EB1982D9BAA9716AC37A8F047D5800D[0] = ""; $R5E45BBDAAB766CB0885E580EABDE0B07 = 0; $RD8A2F08EEBB302CF96A61B4FAE35D9F2 = false; $R3DA1CF9DE121F39B5EA19B5D904981C3 = false; $R04E206CC959DC4284E86A8CDC8E42BB8 = false; $R937C2BF4A1BF7EC4F0DAD072419821FB = "dbinfo.txt"; $R5BA1F88D3C6A012D3325B2C213C7A2E4 = "graph-data.php"; $RE7074FB81569EC419A89091BEAEB6F5A = getBaseURL(); if (array_key_exists("data", $_REQUEST)) {$R5BA1F88D3C6A012D3325B2C213C7A2E4 = $_REQUEST["data"];} if (array_key_exists("saveimage",$_REQUEST)) {$R017C24F2701E8BF8DA2CA976B495A299 = $_REQUEST["saveimage"];$R3DA1CF9DE121F39B5EA19B5D904981C3=true;} $RBF902F888A7A27C3E6036FE7C8FB44BE = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["datalines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartStyle"] = "area-vertical-bar-graph"; $jpDatabase = array(); if (array_key_exists("dbinfo", $_REQUEST)) { $R937C2BF4A1BF7EC4F0DAD072419821FB = $_REQUEST["dbinfo"]; $R04E206CC959DC4284E86A8CDC8E42BB8 = true; if (file_exists($R937C2BF4A1BF7EC4F0DAD072419821FB)) { include ("$R937C2BF4A1BF7EC4F0DAD072419821FB"); } } $R60B5058B4F8CC72DC333B4517D2B105F = gdVersion(); load_Data($RBF902F888A7A27C3E6036FE7C8FB44BE); set_WH($RBF902F888A7A27C3E6036FE7C8FB44BE); if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreatetruecolor ($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} else {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreate($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} initalizeConfig(); get_data(); set_series_defaults(); set_Config($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetSeries($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetData($RBF902F888A7A27C3E6036FE7C8FB44BE); auto_config(); $R7726AB351CBB04A10E329629C4D29E76 = new JPdraw($RBF902F888A7A27C3E6036FE7C8FB44BE); $R7726AB351CBB04A10E329629C4D29E76->draw_background($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_grid($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_titles($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_areas(); draw_points($R7726AB351CBB04A10E329629C4D29E76); draw_bars($R7726AB351CBB04A10E329629C4D29E76); $R56ABCC62A788FCB4CA34E543EE25CB1A = true; $R7726AB351CBB04A10E329629C4D29E76->draw_xlabels($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A); $R7726AB351CBB04A10E329629C4D29E76->draw_legend($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R16F83AEFCECAB2A8AD503C9285E47ABF); $R7726AB351CBB04A10E329629C4D29E76->draw_freeformtext($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_free_images(); $R7726AB351CBB04A10E329629C4D29E76->draw_target_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A); $R7726AB351CBB04A10E329629C4D29E76->draw_trend_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A); if (!testKey()) {$R7726AB351CBB04A10E329629C4D29E76->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} if (!isset($_REQUEST["debug"])) { ob_end_clean(); } if (isset($_REQUEST["JPajax"]) && $_REQUEST["JPajax"]>0) { if (!file_exists('./tmp')) { mkdir('./tmp'); } $R8EEB1221AED257518AC7928EB7CF9AA3 = tempnam("./tmp", "pgr"); if (!imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R8EEB1221AED257518AC7928EB7CF9AA3)) { add_error_message("Unable to save Graph Image"); } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R92B87745142AEBCDA7295499518B9393["imageFileName"] = $R8EEB1221AED257518AC7928EB7CF9AA3; $R92B87745142AEBCDA7295499518B9393["imageWidth"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]; $R92B87745142AEBCDA7295499518B9393["imageHeight"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; $R92B87745142AEBCDA7295499518B9393["graphData"] = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354dataArray);$RA7B9A383688A89B5498FC84118153069++) { $R92B87745142AEBCDA7295499518B9393["graphData"][] = $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA16D2280393CE6A2A5428A4A8D09E354+1]->dataArray[$RA7B9A383688A89B5498FC84118153069+1]; } } if (function_exists("json_encode")) { print json_encode($R92B87745142AEBCDA7295499518B9393); } else { print JP_json_encode($R92B87745142AEBCDA7295499518B9393); } exit(0); } display_errors(); if (!$RD8A2F08EEBB302CF96A61B4FAE35D9F2) { header('Expires: Sat, 01 January 2000 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); header("Content-type: image/png"); imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD); if ($R3DA1CF9DE121F39B5EA19B5D904981C3) {imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R017C24F2701E8BF8DA2CA976B495A299);} } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); exit(0); ?> \ No newline at end of file diff --git a/OLD/jpowered/graph/bubble-chart.php b/OLD/jpowered/graph/bubble-chart.php new file mode 100644 index 0000000..ff359b1 --- /dev/null +++ b/OLD/jpowered/graph/bubble-chart.php @@ -0,0 +1 @@ +DrawPoint($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R9D38A0604C29E5D26793AAB9721A06FC, $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RA7B9A383688A89B5498FC84118153069+1], $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1], $RCD38984B483C38FD84ADE326F49801C0[$RA7B9A383688A89B5498FC84118153069+1] ); } } } $R49287C90F8298E0E3871253DF00B5F41 = new JPtext(); $R49287C90F8298E0E3871253DF00B5F41->textstring = ""; $R49287C90F8298E0E3871253DF00B5F41->textfontsize = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontsize; $R49287C90F8298E0E3871253DF00B5F41->textfontfamily = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textfontfamily; $R49287C90F8298E0E3871253DF00B5F41->textbold = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textbold; $R49287C90F8298E0E3871253DF00B5F41->textitalic = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textitalic; $R49287C90F8298E0E3871253DF00B5F41->textangle = 0.0; $R49287C90F8298E0E3871253DF00B5F41->textX = -1; $R49287C90F8298E0E3871253DF00B5F41->textY = -1; $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textcolor; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069+1]==0) { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]; $R2F5E4269FA92977B74C052CF19B17D70 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"]; $R4AF407A309B0045037DEAF38C4B3C010 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex"]; } else { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; $R2F5E4269FA92977B74C052CF19B17D70 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"]; $R4AF407A309B0045037DEAF38C4B3C010 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex2"]; } $R863900F2BD39DEC2A65F6E650E5F28CD = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $RBE945D95B234D40717BF94843111B77A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0] + ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][0]-$R2F5E4269FA92977B74C052CF19B17D70))/$R4AF407A309B0045037DEAF38C4B3C010 ); $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][1], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][0], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R28A2F2B509E97CE069A54D44BFF56F23 = number_format($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][2], $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069+1]==0) { $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textcolor; $R0D2462C54AA2F1640ACD1B0546BCED06 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $R7ECF1E873D0AA9FE3B104FFE967B624E = $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpost"]; } else { $R49287C90F8298E0E3871253DF00B5F41->textcolor = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textcolor; $R0D2462C54AA2F1640ACD1B0546BCED06 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"]; $R7ECF1E873D0AA9FE3B104FFE967B624E = $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpost"]; } $R49287C90F8298E0E3871253DF00B5F41->textstring = "(".$R7ECF1E873D0AA9FE3B104FFE967B624E.",".$R0D2462C54AA2F1640ACD1B0546BCED06.",".$R28A2F2B509E97CE069A54D44BFF56F23.")"; $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); $R3403E062E1F918C896AA175B7E6F032B["x"] = $RBE945D95B234D40717BF94843111B77A; $R3403E062E1F918C896AA175B7E6F032B["y"] = $R863900F2BD39DEC2A65F6E650E5F28CD; $R3403E062E1F918C896AA175B7E6F032B["size"] = $R04D0BF35776B824C981FE6343E23571F[$RA7B9A383688A89B5498FC84118153069+1]; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"]) { $R7726AB351CBB04A10E329629C4D29E76->DrawPointValue($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R49287C90F8298E0E3871253DF00B5F41, $R3403E062E1F918C896AA175B7E6F032B); } $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->valueDisplayText = $R49287C90F8298E0E3871253DF00B5F41->textstring; } } } } function draw_bubbles() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $R9D38A0604C29E5D26793AAB9721A06FC; global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $RBBD4AB0BB48A7169327112DA6766E903; global $R382A53F6F32BFD32AF4107188A71419C; global $R68CEC0E5616F51590CED2116DF87AF90; $R20FD65E9C7406034FADC682F06732868 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=0;$RA7B9A383688A89B5498FC84118153069<$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { $R9D38A0604C29E5D26793AAB9721A06FC = $R16F83AEFCECAB2A8AD503C9285E47ABF[$RA7B9A383688A89B5498FC84118153069+1]; if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069+1]==0) { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]; $R2F5E4269FA92977B74C052CF19B17D70 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"]; $R4AF407A309B0045037DEAF38C4B3C010 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex"]; $RDB08C241EFC375A5AAF7472381F96D0A = $R382A53F6F32BFD32AF4107188A71419C; } else { $RC6CB727A00C2CB09673B207BE7AC1315 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]; $R2F5E4269FA92977B74C052CF19B17D70 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"]; $R4AF407A309B0045037DEAF38C4B3C010 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex2"]; $RDB08C241EFC375A5AAF7472381F96D0A = $R68CEC0E5616F51590CED2116DF87AF90; } if (!$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1]) { $R863900F2BD39DEC2A65F6E650E5F28CD = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] - ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][1]-$RC6CB727A00C2CB09673B207BE7AC1315))/$R9BD6123CFA8B537BC33D9548D9A7D8F1 ); $RBE945D95B234D40717BF94843111B77A = $RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0] + ( ($RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]*($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][0]-$R2F5E4269FA92977B74C052CF19B17D70))/$R4AF407A309B0045037DEAF38C4B3C010 ); $R6978E28E3D0FDA926895B695E17768D8 = $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069+1][$RA16D2280393CE6A2A5428A4A8D09E354+1][2] * $RDB08C241EFC375A5AAF7472381F96D0A; $RD33D3F60BB918A222CF961E1A5FC30A7 = round($R6978E28E3D0FDA926895B695E17768D8/2); $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shape = "circle"; $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA7B9A383688A89B5498FC84118153069+1]->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354+1]->shapecoords = $RBE945D95B234D40717BF94843111B77A.",".$R863900F2BD39DEC2A65F6E650E5F28CD.",".$RD33D3F60BB918A222CF961E1A5FC30A7; DrawBubble($RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R6978E28E3D0FDA926895B695E17768D8, $R9D38A0604C29E5D26793AAB9721A06FC ); } } } } function DrawBubble($RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R6978E28E3D0FDA926895B695E17768D8, $R1849DF6AF84C6815023B2D6532697EDA ) { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $R60B5058B4F8CC72DC333B4517D2B105F; global $RBF902F888A7A27C3E6036FE7C8FB44BE; if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) {$R1849DF6AF84C6815023B2D6532697EDA = lighter_alpha($R1849DF6AF84C6815023B2D6532697EDA,1.001);} if ($R60B5058B4F8CC72DC333B4517D2B105F>=2 && $RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]<2) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { $RB2AE72FA14D976C47CA02AEBE52E1298 = imagecolorsforindex($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R1849DF6AF84C6815023B2D6532697EDA); $R99A5E2221979B7FDFF41000DB597026B['red'] = (255 - $RB2AE72FA14D976C47CA02AEBE52E1298['red'])/$R6978E28E3D0FDA926895B695E17768D8; $R99A5E2221979B7FDFF41000DB597026B['green'] = (255 - $RB2AE72FA14D976C47CA02AEBE52E1298['green'])/$R6978E28E3D0FDA926895B695E17768D8; $R99A5E2221979B7FDFF41000DB597026B['blue'] = (255 - $RB2AE72FA14D976C47CA02AEBE52E1298['blue'])/$R6978E28E3D0FDA926895B695E17768D8; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<$R6978E28E3D0FDA926895B695E17768D8;$RA16D2280393CE6A2A5428A4A8D09E354++) { $R598AFE203FFA0065D8F537AD59779730 = imagecolorallocatealpha($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RB2AE72FA14D976C47CA02AEBE52E1298['red']+$R99A5E2221979B7FDFF41000DB597026B['red']*$RA16D2280393CE6A2A5428A4A8D09E354, $RB2AE72FA14D976C47CA02AEBE52E1298['green']+$R99A5E2221979B7FDFF41000DB597026B['green']*$RA16D2280393CE6A2A5428A4A8D09E354, $RB2AE72FA14D976C47CA02AEBE52E1298['blue']+$R99A5E2221979B7FDFF41000DB597026B['blue']*$RA16D2280393CE6A2A5428A4A8D09E354, $RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]); imagefilledellipse ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, ($R6978E28E3D0FDA926895B695E17768D8-$RA16D2280393CE6A2A5428A4A8D09E354)*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], ($R6978E28E3D0FDA926895B695E17768D8-$RA16D2280393CE6A2A5428A4A8D09E354)*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R598AFE203FFA0065D8F537AD59779730); } } else { imagefilledellipse ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R6978E28E3D0FDA926895B695E17768D8, $R6978E28E3D0FDA926895B695E17768D8, $R1849DF6AF84C6815023B2D6532697EDA); } } else if ($R60B5058B4F8CC72DC333B4517D2B105F>=2 && $RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]>1) { if ($R6978E28E3D0FDA926895B695E17768D8<1) {$R6978E28E3D0FDA926895B695E17768D8=1;} $R5B8AE48E4567BDFA805F70E4B26E1889 = imagecreatetruecolor($R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]); imagecopyresized ( $R5B8AE48E4567BDFA805F70E4B26E1889, $R90B42A0A84ED04CF1E133E7D0B4C87FD, 0,0, $RBE945D95B234D40717BF94843111B77A-$R6978E28E3D0FDA926895B695E17768D8/2,$R863900F2BD39DEC2A65F6E650E5F28CD-$R6978E28E3D0FDA926895B695E17768D8/2, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R6978E28E3D0FDA926895B695E17768D8, $R6978E28E3D0FDA926895B695E17768D8); $RB2AE72FA14D976C47CA02AEBE52E1298 = imagecolorsforindex($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R1849DF6AF84C6815023B2D6532697EDA); $R60EABF2D827691A5496D803FD9B9C170 = imagecolorallocatealpha($R5B8AE48E4567BDFA805F70E4B26E1889, $RB2AE72FA14D976C47CA02AEBE52E1298['red'], $RB2AE72FA14D976C47CA02AEBE52E1298['green'], $RB2AE72FA14D976C47CA02AEBE52E1298['blue'],$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]); $R99A5E2221979B7FDFF41000DB597026B['red'] = (255 - $RB2AE72FA14D976C47CA02AEBE52E1298['red'])/$R6978E28E3D0FDA926895B695E17768D8; $R99A5E2221979B7FDFF41000DB597026B['green'] = (255 - $RB2AE72FA14D976C47CA02AEBE52E1298['green'])/$R6978E28E3D0FDA926895B695E17768D8; $R99A5E2221979B7FDFF41000DB597026B['blue'] = (255 - $RB2AE72FA14D976C47CA02AEBE52E1298['blue'])/$R6978E28E3D0FDA926895B695E17768D8; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["threed"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<$R6978E28E3D0FDA926895B695E17768D8;$RA16D2280393CE6A2A5428A4A8D09E354++) { $R1849DF6AF84C6815023B2D6532697EDA = imagecolorallocatealpha($R5B8AE48E4567BDFA805F70E4B26E1889, $RB2AE72FA14D976C47CA02AEBE52E1298['red']+$R99A5E2221979B7FDFF41000DB597026B['red']*$RA16D2280393CE6A2A5428A4A8D09E354, $RB2AE72FA14D976C47CA02AEBE52E1298['green']+$R99A5E2221979B7FDFF41000DB597026B['green']*$RA16D2280393CE6A2A5428A4A8D09E354, $RB2AE72FA14D976C47CA02AEBE52E1298['blue']+$R99A5E2221979B7FDFF41000DB597026B['blue']*$RA16D2280393CE6A2A5428A4A8D09E354, $RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]); imagefilledellipse ( $R5B8AE48E4567BDFA805F70E4B26E1889, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]/2-$RA16D2280393CE6A2A5428A4A8D09E354/3, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]/2-$RA16D2280393CE6A2A5428A4A8D09E354/3, ($R6978E28E3D0FDA926895B695E17768D8-$RA16D2280393CE6A2A5428A4A8D09E354)*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], ($R6978E28E3D0FDA926895B695E17768D8-$RA16D2280393CE6A2A5428A4A8D09E354)*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R1849DF6AF84C6815023B2D6532697EDA); } } else { imagefilledellipse ( $R5B8AE48E4567BDFA805F70E4B26E1889, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]/2, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]/2, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R1849DF6AF84C6815023B2D6532697EDA); } imagecopyresampled ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $R5B8AE48E4567BDFA805F70E4B26E1889, $RBE945D95B234D40717BF94843111B77A-$R6978E28E3D0FDA926895B695E17768D8/2,$R863900F2BD39DEC2A65F6E650E5F28CD-$R6978E28E3D0FDA926895B695E17768D8/2, 0, 0, $R6978E28E3D0FDA926895B695E17768D8, $R6978E28E3D0FDA926895B695E17768D8, $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"], $R6978E28E3D0FDA926895B695E17768D8*$RBF902F888A7A27C3E6036FE7C8FB44BE["intquality"]); imagedestroy($R5B8AE48E4567BDFA805F70E4B26E1889); } else { imagearc ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R6978E28E3D0FDA926895B695E17768D8, $R6978E28E3D0FDA926895B695E17768D8, 0, 360, $R1849DF6AF84C6815023B2D6532697EDA); imagefill ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R1849DF6AF84C6815023B2D6532697EDA); } } function draw_free_images() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $R1BB7A4870F58BA79D88E63C2559CD57B; global $RD1A0958AE2FB98B3A9ED0797AA2B0455; global $R60FF7733AE88234F8336581EA8FA82A4; global $RC6BFEE679024332CF305D170F2C17469; global $RF828C89FB29C2525C385E12B74FBB61C; global $R6C81831962243CEBF80CF350FCC82F6C; global $R891928759E038E200C81E93EC9F15EE2; if ($R60FF7733AE88234F8336581EA8FA82A4<1) {return;} for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$R60FF7733AE88234F8336581EA8FA82A4;$RA16D2280393CE6A2A5428A4A8D09E354++) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][0], $RD1A0958AE2FB98B3A9ED0797AA2B0455[$RA16D2280393CE6A2A5428A4A8D09E354][1], 0, 0, imagesx($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]), imagesy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354])); imagedestroy($R1BB7A4870F58BA79D88E63C2559CD57B[$RA16D2280393CE6A2A5428A4A8D09E354]); } } function auto_config() { global $R90B42A0A84ED04CF1E133E7D0B4C87FD; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $RBBD4AB0BB48A7169327112DA6766E903; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["maxbubblesize"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["maxbubblesize"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/10;} $RF4308D8C11499F88F2C59CEC974EC433 = 0; $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]-$RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; auto_scale(); $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labels"] = false; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"] = false; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA16D2280393CE6A2A5428A4A8D09E354+1] > 0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labels"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"] = true; } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["titletext"]->textY = 0; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legenddisplay) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->setProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos < 0) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth/2; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendstyle == 1) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos <($RBF902F888A7A27C3E6036FE7C8FB44BE["height"]/2)) {$R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendheight + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendypos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } else { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos<($RBF902F888A7A27C3E6036FE7C8FB44BE["width"]/2)) {$RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos + $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendwidth + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} else {$R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendxpos - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"];} } } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textHeight; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textWidth/2;; } $RF4308D8C11499F88F2C59CEC974EC433 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["ytitletext"]->textY = 0; $RF4308D8C11499F88F2C59CEC974EC433 = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY = ($R0A20F9DE5D5D3F476F4CF894D63F9583-$R5FAB68FB24C1A8046E4EFBB033D4B4C8)/2 + $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textWidth/2;; } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] - $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textX = $R1D47C61D5BA7A6FDA3BE1A1F997E1325; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = $R0A20F9DE5D5D3F476F4CF894D63F9583 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } $R0A20F9DE5D5D3F476F4CF894D63F9583 = $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY - $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textHeight; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textstring!="") { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433)/2 - $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textWidth/2; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY<0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textHeight; } $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } else { $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textX = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"]->textY = 0; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"]->textWidth;} } $RF4308D8C11499F88F2C59CEC974EC433 = $RF4308D8C11499F88F2C59CEC974EC433 + $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"] + $REDC007496C1445189AF037508BBA4E23 + 3; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"]) { $REDC007496C1445189AF037508BBA4E23 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textstring = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->setTextProps(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textWidth > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"]->textWidth;} } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - 3 - $REDC007496C1445189AF037508BBA4E23 - $RBF902F888A7A27C3E6036FE7C8FB44BE["margin"]; } $R537DC8E81C85EB10EB12448F9915022D = 0; $R80B1035AF3775848D0517F805ADC9B1B = 0; $R09DF2E356014B5A44195CFB454DC3AA6 = 0; $R23EC79462BFFDE5C07967BC8766C41C5 = 0; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"]) { $RF25D6CC093A1AF6F27CFF9666A340001 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex"]*$RBF902F888A7A27C3E6036FE7C8FB44BE["ncols"]; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpost"]; $R537DC8E81C85EB10EB12448F9915022D = max_xlabel_width($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $R09DF2E356014B5A44195CFB454DC3AA6 = max_xlabel_height($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $RF25D6CC093A1AF6F27CFF9666A340001 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"]; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpost"]; $RCDBE1C96F6657779A3972F16A30B4FC2 = max_xlabel_width($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $R7D641C55BB1F776ECA093942CBD9E516 = max_xlabel_height($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); if ($RCDBE1C96F6657779A3972F16A30B4FC2>$R537DC8E81C85EB10EB12448F9915022D) {$R537DC8E81C85EB10EB12448F9915022D = $RCDBE1C96F6657779A3972F16A30B4FC2;} if ($R7D641C55BB1F776ECA093942CBD9E516>$R09DF2E356014B5A44195CFB454DC3AA6) {$R09DF2E356014B5A44195CFB454DC3AA6 = $R7D641C55BB1F776ECA093942CBD9E516;} $R09DF2E356014B5A44195CFB454DC3AA6 = $R09DF2E356014B5A44195CFB454DC3AA6 + 15; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2labels"]) { $RF25D6CC093A1AF6F27CFF9666A340001 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"] + $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex2"]*$RBF902F888A7A27C3E6036FE7C8FB44BE["ncols"]; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpost"]; $RCDBE1C96F6657779A3972F16A30B4FC2 = max_xlabel_width($RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["x2font"]); if ($RCDBE1C96F6657779A3972F16A30B4FC2>$R537DC8E81C85EB10EB12448F9915022D) {$R537DC8E81C85EB10EB12448F9915022D = $RCDBE1C96F6657779A3972F16A30B4FC2;} $R23EC79462BFFDE5C07967BC8766C41C5 = max_xlabel_height($RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["x2font"]); $RF25D6CC093A1AF6F27CFF9666A340001 = $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"]; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"], ".", $RBF902F888A7A27C3E6036FE7C8FB44BE["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpost"]; $RCDBE1C96F6657779A3972F16A30B4FC2 = max_xlabel_width($RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["x2font"]); $R7D641C55BB1F776ECA093942CBD9E516 = max_xlabel_height($RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelorientation"],$R7ECF1E873D0AA9FE3B104FFE967B624E,$RBF902F888A7A27C3E6036FE7C8FB44BE["x2font"]); if ($RCDBE1C96F6657779A3972F16A30B4FC2>$R537DC8E81C85EB10EB12448F9915022D) {$R537DC8E81C85EB10EB12448F9915022D = $RCDBE1C96F6657779A3972F16A30B4FC2;} if ($R7D641C55BB1F776ECA093942CBD9E516>$R23EC79462BFFDE5C07967BC8766C41C5) {$R23EC79462BFFDE5C07967BC8766C41C5 = $R7D641C55BB1F776ECA093942CBD9E516;} $R23EC79462BFFDE5C07967BC8766C41C5 = $R23EC79462BFFDE5C07967BC8766C41C5 + 15; } $R1D47C61D5BA7A6FDA3BE1A1F997E1325 = $R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $R537DC8E81C85EB10EB12448F9915022D; $R0A20F9DE5D5D3F476F4CF894D63F9583 = $R0A20F9DE5D5D3F476F4CF894D63F9583 - $R09DF2E356014B5A44195CFB454DC3AA6; $R5FAB68FB24C1A8046E4EFBB033D4B4C8 = $R5FAB68FB24C1A8046E4EFBB033D4B4C8 + $R23EC79462BFFDE5C07967BC8766C41C5; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][0] = $RF4308D8C11499F88F2C59CEC974EC433;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["gridposition"][1] = $R0A20F9DE5D5D3F476F4CF894D63F9583;} $R246159316604D58DB8DE9F848709E772 = $RBF902F888A7A27C3E6036FE7C8FB44BE["ncols"]; $RE484ED591E12CF9125AE1D47AE08748B = $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"]; if ($R246159316604D58DB8DE9F848709E772<1) {$R246159316604D58DB8DE9F848709E772 = 1;} if ($RE484ED591E12CF9125AE1D47AE08748B<1) {$RE484ED591E12CF9125AE1D47AE08748B = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = ($R0A20F9DE5D5D3F476F4CF894D63F9583 - $R5FAB68FB24C1A8046E4EFBB033D4B4C8) / $RE484ED591E12CF9125AE1D47AE08748B;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = ($R1D47C61D5BA7A6FDA3BE1A1F997E1325 - $RF4308D8C11499F88F2C59CEC974EC433) / $R246159316604D58DB8DE9F848709E772;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["vspace"] = 2;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"]<1) {$RBF902F888A7A27C3E6036FE7C8FB44BE["hspace"] = 1;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]>127) {$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]=127;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]<0) {$RBF902F888A7A27C3E6036FE7C8FB44BE["alpha"]=0;} } function add_series_info($RA94EF3EDEBBECC120DD9EC4D9CB90BD1, $R7F6045D9D5F4D9047AD84E4499F620E0) { global $R16F83AEFCECAB2A8AD503C9285E47ABF; global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $RBBD4AB0BB48A7169327112DA6766E903; global $R04D0BF35776B824C981FE6343E23571F; global $RA925E8CCC1CB40EC1F47F5FD0E05D23E; global $RCD38984B483C38FD84ADE326F49801C0; global $R3186037EF1F216D6DB170D63B21755F5; $RCEEFEBF769973BC15B47970F0B687093[0] = "#808080"; $RCEEFEBF769973BC15B47970F0B687093[1] = " "; $RCEEFEBF769973BC15B47970F0B687093[2] = "left"; $RCEEFEBF769973BC15B47970F0B687093[3] = "1"; $RCEEFEBF769973BC15B47970F0B687093[4] = "circle"; $RCEEFEBF769973BC15B47970F0B687093[5] = "true"; $RCEEFEBF769973BC15B47970F0B687093[6] = "solid"; $RF31550B84DE1AEA05419B284E7210B46 = get_snum($RA94EF3EDEBBECC120DD9EC4D9CB90BD1); if ($RF31550B84DE1AEA05419B284E7210B46>0 and $RF31550B84DE1AEA05419B284E7210B46<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"]) { $RCEEFEBF769973BC15B47970F0B687093 = explode("|", $R7F6045D9D5F4D9047AD84E4499F620E0); if (strlen(trim($RCEEFEBF769973BC15B47970F0B687093[0]))>2) {$R16F83AEFCECAB2A8AD503C9285E47ABF[$RF31550B84DE1AEA05419B284E7210B46] = verifycolor($RCEEFEBF769973BC15B47970F0B687093[0],"#808080");} $RBBD4AB0BB48A7169327112DA6766E903[$RF31550B84DE1AEA05419B284E7210B46] = verifyaxis($RCEEFEBF769973BC15B47970F0B687093[2], "left"); $R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46] = verifyint($RCEEFEBF769973BC15B47970F0B687093[3], "1");; $RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46] = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[4],"circle"); $RCD38984B483C38FD84ADE326F49801C0[$RF31550B84DE1AEA05419B284E7210B46] = verifybool($RCEEFEBF769973BC15B47970F0B687093[5], "true"); $R3186037EF1F216D6DB170D63B21755F5[$RF31550B84DE1AEA05419B284E7210B46] = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[6],"solid"); if ($RA925E8CCC1CB40EC1F47F5FD0E05D23E[$RF31550B84DE1AEA05419B284E7210B46]==0) {$R04D0BF35776B824C981FE6343E23571F[$RF31550B84DE1AEA05419B284E7210B46]=1;} } } function max_xlabels_height() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; $R429EF5BC814A71C72EB347447FD90E75 = imagefontheight($RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"]); $RFD98E5621F1811783DCA236EA264442C = 0; switch ($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"]) { case 1: $RFD98E5621F1811783DCA236EA264442C = $R429EF5BC814A71C72EB347447FD90E75; break; case 2: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $RBF902F888A7A27C3E6036FE7C8FB44BE["ncols"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])*$R429EF5BC814A71C72EB347447FD90E75;} } break; case 3: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $R246159316604D58DB8DE9F848709E772; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/3;} } break; case 4: for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $R246159316604D58DB8DE9F848709E772; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ( ((strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4)>$RFD98E5621F1811783DCA236EA264442C) {$RFD98E5621F1811783DCA236EA264442C = (strlen($RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354])+1)*$R429EF5BC814A71C72EB347447FD90E75/4;} } break; } $RFD98E5621F1811783DCA236EA264442C = $RFD98E5621F1811783DCA236EA264442C + $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelyoffset"]; return $RFD98E5621F1811783DCA236EA264442C; } function auto_scale() { global $RBF902F888A7A27C3E6036FE7C8FB44BE; global $R382A53F6F32BFD32AF4107188A71419C; global $R68CEC0E5616F51590CED2116DF87AF90; global $REDB07399D4776344EBBF800216AFA321; global $R6F5C0BC577AB0509896149B2F5742415; global $RBBD4AB0BB48A7169327112DA6766E903; $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069]==0 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { $R6F7F170701859062DAD123413E09EC5A[] = $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][1]; } } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"]) { $R10A5D34CB0DA267CCCACC12A01A811E6 = false; $R60724FF4E6BAFE1752D354A254C33733 = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"]==-1.123) {$R10A5D34CB0DA267CCCACC12A01A811E6 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]==-1.123) {$R60724FF4E6BAFE1752D354A254C33733 = true;} if ($R10A5D34CB0DA267CCCACC12A01A811E6 || $R60724FF4E6BAFE1752D354A254C33733) { $R6F7F170701859062DAD123413E09EC5A = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069]==1 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { $R6F7F170701859062DAD123413E09EC5A[] = $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][1]; } } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["nrows"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstarty2"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscale2"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } } $RA4F14D69A48B71F462A6688AE547C064 = false; $R16E2F6F0917B10F80B606A8E19D78F1B = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex"]==-1.123) {$RA4F14D69A48B71F462A6688AE547C064 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"]==-1.123) {$R16E2F6F0917B10F80B606A8E19D78F1B = true;} if ($RA4F14D69A48B71F462A6688AE547C064 || $R16E2F6F0917B10F80B606A8E19D78F1B) { $R6F7F170701859062DAD123413E09EC5A = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069]==0 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { $R6F7F170701859062DAD123413E09EC5A[] = $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][0]; } } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["ncols"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["x2labels"]) { $RA4F14D69A48B71F462A6688AE547C064 = false; $R16E2F6F0917B10F80B606A8E19D78F1B = false; if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex2"]==-1.123) {$RA4F14D69A48B71F462A6688AE547C064 = true;} if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"]==-1.123) {$R16E2F6F0917B10F80B606A8E19D78F1B = true;} if ($RA4F14D69A48B71F462A6688AE547C064 || $R16E2F6F0917B10F80B606A8E19D78F1B) { $R6F7F170701859062DAD123413E09EC5A = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069]==1 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { $R6F7F170701859062DAD123413E09EC5A[] = $REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][0]; } } } $R5D922958868764B9863B91ACBA05FE93 = calcScale($R6F7F170701859062DAD123413E09EC5A, $RBF902F888A7A27C3E6036FE7C8FB44BE["ncols"], $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"]); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartstartx2"] = $R5D922958868764B9863B91ACBA05FE93["start"]; $RBF902F888A7A27C3E6036FE7C8FB44BE["chartscalex2"] = $R5D922958868764B9863B91ACBA05FE93["step"]; } } $R3DABA901478CA8330D0A856104BEBB50 = 0.00; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069]==0 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][2]>$R3DABA901478CA8330D0A856104BEBB50) {$R3DABA901478CA8330D0A856104BEBB50=$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][2];} } } } if ($R3DABA901478CA8330D0A856104BEBB50 < 0.0) {$R3DABA901478CA8330D0A856104BEBB50 = 0.0;} $RFEFA0F912B0AC4837739DB0172EDA4BC = $R3DABA901478CA8330D0A856104BEBB50; $R3DABA901478CA8330D0A856104BEBB50 = round($R3DABA901478CA8330D0A856104BEBB50, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"]); while ($RFEFA0F912B0AC4837739DB0172EDA4BC > $R3DABA901478CA8330D0A856104BEBB50) {$R3DABA901478CA8330D0A856104BEBB50 = $R3DABA901478CA8330D0A856104BEBB50 + pow(10,-$RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"]);} if ($R3DABA901478CA8330D0A856104BEBB50>0) {$R382A53F6F32BFD32AF4107188A71419C = $RBF902F888A7A27C3E6036FE7C8FB44BE["maxbubblesize"]/$R3DABA901478CA8330D0A856104BEBB50;} else {$R382A53F6F32BFD32AF4107188A71419C = 1;} $R3DABA901478CA8330D0A856104BEBB50 = 0.00; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$RBF902F888A7A27C3E6036FE7C8FB44BE["npoints"];$RA16D2280393CE6A2A5428A4A8D09E354++) { for ($RA7B9A383688A89B5498FC84118153069=1;$RA7B9A383688A89B5498FC84118153069<=$RBF902F888A7A27C3E6036FE7C8FB44BE["nseries"];$RA7B9A383688A89B5498FC84118153069++) { if ($RBBD4AB0BB48A7169327112DA6766E903[$RA7B9A383688A89B5498FC84118153069]==1 && !$R6F5C0BC577AB0509896149B2F5742415[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354]) { if ($REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][2]>$R3DABA901478CA8330D0A856104BEBB50) {$R3DABA901478CA8330D0A856104BEBB50=$REDB07399D4776344EBBF800216AFA321[$RA7B9A383688A89B5498FC84118153069][$RA16D2280393CE6A2A5428A4A8D09E354][2];} } } } if ($R3DABA901478CA8330D0A856104BEBB50 < 0.0) {$R3DABA901478CA8330D0A856104BEBB50 = 0.0;} $RFEFA0F912B0AC4837739DB0172EDA4BC = $R3DABA901478CA8330D0A856104BEBB50; $R3DABA901478CA8330D0A856104BEBB50 = round($R3DABA901478CA8330D0A856104BEBB50, $RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"]); while ($RFEFA0F912B0AC4837739DB0172EDA4BC > $R3DABA901478CA8330D0A856104BEBB50) {$R3DABA901478CA8330D0A856104BEBB50 = $R3DABA901478CA8330D0A856104BEBB50 + pow(10,-$RBF902F888A7A27C3E6036FE7C8FB44BE["ndecplaces"]);} if ($R3DABA901478CA8330D0A856104BEBB50>0) {$R68CEC0E5616F51590CED2116DF87AF90 = $RBF902F888A7A27C3E6036FE7C8FB44BE["maxbubblesize"]/$R3DABA901478CA8330D0A856104BEBB50;} else {$R68CEC0E5616F51590CED2116DF87AF90 = 1;} } if (isset($_REQUEST["getImage"])) { ob_end_clean(); $RF500F4A848E2EB2F8AAC3A6734D7EC38 = fopen($_REQUEST["getImage"], 'rb'); header("Content-Type: image/png"); header("Content-Length: " . filesize($_REQUEST["getImage"])); fpassthru($RF500F4A848E2EB2F8AAC3A6734D7EC38); fclose($RF500F4A848E2EB2F8AAC3A6734D7EC38); unlink($_REQUEST["getImage"]); exit; } $R0EB1982D9BAA9716AC37A8F047D5800D[0] = ""; $R5E45BBDAAB766CB0885E580EABDE0B07 = 0; $RD8A2F08EEBB302CF96A61B4FAE35D9F2 = false; $R3DA1CF9DE121F39B5EA19B5D904981C3 = false; $R04E206CC959DC4284E86A8CDC8E42BB8 = false; $R937C2BF4A1BF7EC4F0DAD072419821FB = "dbinfo.txt"; $R5BA1F88D3C6A012D3325B2C213C7A2E4 = "graph-data.php"; $RE7074FB81569EC419A89091BEAEB6F5A = getBaseURL(); if (array_key_exists("data", $_REQUEST)) {$R5BA1F88D3C6A012D3325B2C213C7A2E4 = $_REQUEST["data"];} if (array_key_exists("saveimage",$_REQUEST)) {$R017C24F2701E8BF8DA2CA976B495A299 = $_REQUEST["saveimage"];$R3DA1CF9DE121F39B5EA19B5D904981C3=true;} $RBF902F888A7A27C3E6036FE7C8FB44BE = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["datalines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["chartStyle"] = "bubble-chart"; $jpDatabase = array(); if (array_key_exists("dbinfo", $_REQUEST)) { $R937C2BF4A1BF7EC4F0DAD072419821FB = $_REQUEST["dbinfo"]; $R04E206CC959DC4284E86A8CDC8E42BB8 = true; if (file_exists($R937C2BF4A1BF7EC4F0DAD072419821FB)) { include ("$R937C2BF4A1BF7EC4F0DAD072419821FB"); } } $R60B5058B4F8CC72DC333B4517D2B105F = gdVersion(); load_Data($RBF902F888A7A27C3E6036FE7C8FB44BE); set_WH($RBF902F888A7A27C3E6036FE7C8FB44BE); if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreatetruecolor ($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} else {$R90B42A0A84ED04CF1E133E7D0B4C87FD = @imagecreate($RBF902F888A7A27C3E6036FE7C8FB44BE["width"], $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]) or die("Cannot Initialize a new GD image stream");} initalizeConfig(); get_data(); set_series_defaults(); set_Config($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetSeries($RBF902F888A7A27C3E6036FE7C8FB44BE); JPgetData($RBF902F888A7A27C3E6036FE7C8FB44BE); auto_config(); $R7726AB351CBB04A10E329629C4D29E76 = new JPdraw($RBF902F888A7A27C3E6036FE7C8FB44BE); $R7726AB351CBB04A10E329629C4D29E76->draw_background($R90B42A0A84ED04CF1E133E7D0B4C87FD); $RBC19A0FC0AE91A15EFE38692D6D533DD = true; $R7726AB351CBB04A10E329629C4D29E76->draw_grid($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RBC19A0FC0AE91A15EFE38692D6D533DD); $R7726AB351CBB04A10E329629C4D29E76->draw_titles($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_xlabels($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_bubbles(); draw_points($R7726AB351CBB04A10E329629C4D29E76); $R7726AB351CBB04A10E329629C4D29E76->draw_legend($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R16F83AEFCECAB2A8AD503C9285E47ABF); $R7726AB351CBB04A10E329629C4D29E76->draw_freeformtext($R90B42A0A84ED04CF1E133E7D0B4C87FD); draw_free_images(); $R7726AB351CBB04A10E329629C4D29E76->draw_target_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R7726AB351CBB04A10E329629C4D29E76->draw_trend_lines($R90B42A0A84ED04CF1E133E7D0B4C87FD); if (!testKey()) {$R7726AB351CBB04A10E329629C4D29E76->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} if (!isset($_REQUEST["debug"])) { ob_end_clean(); } if (isset($_REQUEST["JPajax"]) && $_REQUEST["JPajax"]>0) { if (!file_exists('./tmp')) { mkdir('./tmp'); } $R8EEB1221AED257518AC7928EB7CF9AA3 = tempnam("./tmp", "pgr"); if (!imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R8EEB1221AED257518AC7928EB7CF9AA3)) { add_error_message("Unable to save Graph Image"); } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R92B87745142AEBCDA7295499518B9393["imageFileName"] = $R8EEB1221AED257518AC7928EB7CF9AA3; $R92B87745142AEBCDA7295499518B9393["imageWidth"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["width"]; $R92B87745142AEBCDA7295499518B9393["imageHeight"] = $RBF902F888A7A27C3E6036FE7C8FB44BE["height"]; $R92B87745142AEBCDA7295499518B9393["graphData"] = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354dataArray);$RA7B9A383688A89B5498FC84118153069++) { $R92B87745142AEBCDA7295499518B9393["graphData"][] = $RBF902F888A7A27C3E6036FE7C8FB44BE["series"][$RA16D2280393CE6A2A5428A4A8D09E354+1]->dataArray[$RA7B9A383688A89B5498FC84118153069+1]; } } if (function_exists("json_encode")) { print json_encode($R92B87745142AEBCDA7295499518B9393); } else { print JP_json_encode($R92B87745142AEBCDA7295499518B9393); } exit(0); } display_errors(); if (!$RD8A2F08EEBB302CF96A61B4FAE35D9F2) { header('Expires: Sat, 01 January 2000 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . 'GMT'); header('Cache-Control: no-cache, must-revalidate'); header('Pragma: no-cache'); header("Content-type: image/png"); imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD); if ($R3DA1CF9DE121F39B5EA19B5D904981C3) {imagepng($R90B42A0A84ED04CF1E133E7D0B4C87FD,$R017C24F2701E8BF8DA2CA976B495A299);} } imagedestroy($R90B42A0A84ED04CF1E133E7D0B4C87FD); exit(0); ?> \ No newline at end of file diff --git a/OLD/jpowered/graph/common/DBMySQL.class.php b/OLD/jpowered/graph/common/DBMySQL.class.php new file mode 100644 index 0000000..0507f59 --- /dev/null +++ b/OLD/jpowered/graph/common/DBMySQL.class.php @@ -0,0 +1,199 @@ +dbServer = $dbServer; + $this->dbUser = $dbUser; + $this->dbPassword = $dbPassword; + $this->dbDatabase = $dbDatabase; + $errorState = false; + } + + /** + * Opens a connection to the database + */ + function connect() { + + if (function_exists("mysqli_connect")) + { + $this->dbLink = mysqli_connect($this->dbServer,$this->dbUser,$this->dbPassword,$this->dbDatabase); + + + if (!$this->dbLink) { + $this->errorState = true; + $this->errorMessage = 'Could not connect: '.mysqli_error($this->dbLink); + return false; + } + + } + else + { + + $this->dbLink = mysql_connect($this->dbServer, + $this->dbUser, + $this->dbPassword); + if (!$this->dbLink) { + $this->errorState = true; + $this->errorMessage = 'Could not connect: '.mysql_error(); + return false; + } + + if (!mysql_select_db($this->dbDatabase, $this->dbLink)) { + $this->errorState = true; + $this->errorMessage = 'Could not select database: '.mysql_error(); + return false; + } + } + + return true; + } + + /** + * Queries the database for a specific SQL query + */ + function query($sql) + { + if (function_exists("mysqli_query")) + { + if (!$this->result = mysqli_query($this->dbLink, $sql)) + { + $this->errorState = true; + $this->errorMessage = 'Query Error: '.mysqli_error($this->dbLink); + } + } + else + { + if (!$this->result = mysql_query($sql, $this->dbLink)) { + $this->errorState = true; + $this->errorMessage = 'Query Error: '.mysql_error(); + } + } + + return $this->result; + } + + /** + * Fetches a row from a result set + */ + function fetch(&$result) { + + if (function_exists("mysqli_fetch_array")) + { + $resultarray = mysqli_fetch_array($result, MYSQLI_ASSOC); + } + else + { + $resultarray = mysql_fetch_array($result,MYSQL_ASSOC); + } + + return $resultarray; + } + + /** + * Returns an associative array of all rows + */ + function fetchAll(&$result) { + $resultArr = array(); + if ($result) { + $resultArr = array(); + while ($row = $this->fetch($result)) { + $resultArr[] = $row; + } + } + + return $resultArr; + } + + function freeResult(&$result) { + + if (function_exists("mysqli_free_result")) + { + mysqli_free_result($result); + } + else + { + if ($result != true && $result != false) { + mysql_free_result($result); + } + } + unset($result); + } + + function getLastError() { + + if (function_exists("mysqli_error")) + { + return mysqli_error($this->dbLink); + } + else + { + return mysql_error(); + } + } + + function getNumRows(&$result) { + + if (function_exists("mysqli_num_rows")) + { + $numRows = mysqli_num_rows($result); + } + else + { + $numRows = mysql_num_rows($result); + } + return $numRows; + } + + + // return the error state + function getErrorState() { + return $this->errorState; + } + + // set the error state + function setErrorState($errorState) { + $this->errorState = $errorState; + } + + /** + * disconnect + */ + function close() + { + + if (function_exists("mysqli_close")) + { + mysqli_close($this->dbLink); + } + else + { + mysql_close($this->dbLink); + } + } + + + + +} + diff --git a/OLD/jpowered/graph/common/checkSetUp.php b/OLD/jpowered/graph/common/checkSetUp.php new file mode 100644 index 0000000..20ebf48 --- /dev/null +++ b/OLD/jpowered/graph/common/checkSetUp.php @@ -0,0 +1,80 @@ + + + +Advanced Graphs and Charts for PHP + + + +Environment Problems'; + +if ($envInfo['phpver'] < 4) +{ + print '
ERROR
PHP Version too low
Help Here »
'; +} + +if ($envInfo['gdv'] < 1) +{ + print '
ERROR
PHP Graphics (GD) is Disabled
Help Here »
'; +} + +if (!$envInfo['allowURLfopen']) +{ + print '
WARNING
PHP allow_url_fopen is Disabled. This may cause problems when trying to load data via a URL.
Help Here »
'; +} + +if (!$envInfo['log']) +{ + print '
WARNING
Unable to create log file, Runtime errors will not be logged.
Help Here »
'; +} + +exit(0); +?> + + \ No newline at end of file diff --git a/OLD/jpowered/graph/common/fonts/COPYING b/OLD/jpowered/graph/common/fonts/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/OLD/jpowered/graph/common/fonts/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/OLD/jpowered/graph/common/fonts/LiberationMonoBold.ttf b/OLD/jpowered/graph/common/fonts/LiberationMonoBold.ttf new file mode 100644 index 0000000..e5d201b Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationMonoBold.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationMonoBoldItalic.ttf b/OLD/jpowered/graph/common/fonts/LiberationMonoBoldItalic.ttf new file mode 100644 index 0000000..b612e3e Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationMonoBoldItalic.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationMonoItalic.ttf b/OLD/jpowered/graph/common/fonts/LiberationMonoItalic.ttf new file mode 100644 index 0000000..83fd043 Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationMonoItalic.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationMonoRegular.ttf b/OLD/jpowered/graph/common/fonts/LiberationMonoRegular.ttf new file mode 100644 index 0000000..92fb850 Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationMonoRegular.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSansBold.ttf b/OLD/jpowered/graph/common/fonts/LiberationSansBold.ttf new file mode 100644 index 0000000..624f68a Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSansBold.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSansBoldItalic.ttf b/OLD/jpowered/graph/common/fonts/LiberationSansBoldItalic.ttf new file mode 100644 index 0000000..7a5565c Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSansBoldItalic.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSansItalic.ttf b/OLD/jpowered/graph/common/fonts/LiberationSansItalic.ttf new file mode 100644 index 0000000..8bb3eee Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSansItalic.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSansRegular.ttf b/OLD/jpowered/graph/common/fonts/LiberationSansRegular.ttf new file mode 100644 index 0000000..a788fbd Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSansRegular.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSerifBold.ttf b/OLD/jpowered/graph/common/fonts/LiberationSerifBold.ttf new file mode 100644 index 0000000..ee0208d Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSerifBold.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSerifBoldItalic.ttf b/OLD/jpowered/graph/common/fonts/LiberationSerifBoldItalic.ttf new file mode 100644 index 0000000..f5534f9 Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSerifBoldItalic.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSerifItalic.ttf b/OLD/jpowered/graph/common/fonts/LiberationSerifItalic.ttf new file mode 100644 index 0000000..6ef39ac Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSerifItalic.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/LiberationSerifRegular.ttf b/OLD/jpowered/graph/common/fonts/LiberationSerifRegular.ttf new file mode 100644 index 0000000..38054a8 Binary files /dev/null and b/OLD/jpowered/graph/common/fonts/LiberationSerifRegular.ttf differ diff --git a/OLD/jpowered/graph/common/fonts/License.txt b/OLD/jpowered/graph/common/fonts/License.txt new file mode 100644 index 0000000..e972b52 --- /dev/null +++ b/OLD/jpowered/graph/common/fonts/License.txt @@ -0,0 +1,13 @@ +LICENSE AGREEMENT AND LIMITED PRODUCT WARRANTY +LIBERATION FONT SOFTWARE + +This agreement governs the use of the Software and any updates to the Software, regardless of the delivery mechanism. Subject to the following terms, Red Hat, Inc. ("Red Hat") grants to the user ("Client") a license to this work pursuant to the GNU General Public License v.2 with the exceptions set forth below and such other terms as our set forth in this End User License Agreement. + + 1.The Software and License Exception. LIBERATION font software (the "Software") consists of TrueType-OpenType formatted font software for rendering LIBERATION typefaces in sans serif, serif, and monospaced character styles. You are licensed to use, modify, copy, and distribute the Software pursuant to the GNU General Public License v.2 with the following exceptions: +(a)As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. +(b)As a further exception, any distribution of the object code of the Software in a physical product must provide you the right to access and modify the source code for the Software and to reinstall that modified version of the Software in object code form on the same physical product on which you received it. + 2.Intellectual Property Rights. The Software and each of its components, including the source code, documentation, appearance, structure and organization are owned by Red Hat and others and are protected under copyright and other laws. Title to the Software and any component, or to any copy, modification, or merged portion shall remain with the aforementioned, subject to the applicable license. The "LIBERATION" trademark is a trademark of Red Hat, Inc. in the U.S. and other countries. This agreement does not permit Client to distribute modified versions of the Software using Red Hat's trademarks. If Client makes a redistribution of a modified version of the Software, then Client must modify the files names to remove any reference to the Red Hat trademarks and must not use the Red Hat trademarks in any way to reference or promote the modified Software. + 3.Limited Warranty. To the maximum extent permitted under applicable law, the Software is provided and licensed "as is" without warranty of any kind, expressed or implied, including the implied warranties of merchantability, non-infringement or fitness for a particular purpose. Red Hat does not warrant that the functions contained in the Software will meet Client's requirements or that the operation of the Software will be entirely error free or appear precisely as described in the accompanying documentation. + 4.Limitation of Remedies and Liability. To the maximum extent permitted by applicable law, Red Hat or any Red Hat authorized dealer will not be liable to Client for any incidental or consequential damages, including lost profits or lost savings arising out of the use or inability to use the Software, even if Red Hat or such dealer has been advised of the possibility of such damages. + 5.General. If any provision of this agreement is held to be unenforceable, that shall not affect the enforceability of the remaining provisions. This agreement shall be governed by the laws of the State of North Carolina and of the United States, without regard to any conflict of laws provisions, except that the United Nations Convention on the International Sale of Goods shall not apply. +Copyright © 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc. diff --git a/OLD/jpowered/graph/common/jpDefaults.php b/OLD/jpowered/graph/common/jpDefaults.php new file mode 100644 index 0000000..35b035b --- /dev/null +++ b/OLD/jpowered/graph/common/jpDefaults.php @@ -0,0 +1 @@ +255) {$RCF10FCAEC9167012F8D52248D0847BB7 = $RCF10FCAEC9167012F8D52248D0847BB7 - 250;} while ($RF949D3458391364DFF7A0A4147F1D042>255) {$RF949D3458391364DFF7A0A4147F1D042 = $RF949D3458391364DFF7A0A4147F1D042 - 250;} while ($R9A772BE7063CA39452ADEEDCBA39ABB9<0) {$R9A772BE7063CA39452ADEEDCBA39ABB9 = $R9A772BE7063CA39452ADEEDCBA39ABB9 + 250;} $R1849DF6AF84C6815023B2D6532697EDA = $RCF10FCAEC9167012F8D52248D0847BB7.",".$RF949D3458391364DFF7A0A4147F1D042.",".$R9A772BE7063CA39452ADEEDCBA39ABB9; } $RA94EF3EDEBBECC120DD9EC4D9CB90BD1 = "series".$RA16D2280393CE6A2A5428A4A8D09E354; switch ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartStyle"]) { case 'vertical-bar-graph': case 'vertical-cylinder-graph': case 'stacked-vertical-bar-graph': case 'stacked-vertical-cylinder-graph': $R7D0596C36891967F3BB9D994B4A97C19 = $R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|left"; break; case 'horizontal-bar-graph': case 'horizontal-cylinder-graph': case 'stacked-horizontal-bar-graph': case 'stacked-horizontal-cylinder-graph': $R7D0596C36891967F3BB9D994B4A97C19 = $R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|bottom"; break; case 'area-graph': $R7D0596C36891967F3BB9D994B4A97C19 = $R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|circle|5|true|solid"; break; case 'bubble-chart': case 'line-graph': $R7D0596C36891967F3BB9D994B4A97C19 = $R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|left|circle|5|true|solid"; break; case 'area-stacked-vertical-bar-graph': case 'area-vertical-bar-graph': $R7D0596C36891967F3BB9D994B4A97C19 = "bar|".$R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|left"; break; case 'line-stacked-vertical-bar-graph': case 'line-vertical-bar-graph': $R7D0596C36891967F3BB9D994B4A97C19 = "bar|".$R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|left"; break; case 'xy-scatter-graph': $R7D0596C36891967F3BB9D994B4A97C19 = $R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|left|8|triangle|true|solid"; break; default: $RA94EF3EDEBBECC120DD9EC4D9CB90BD1 = "series".$RA16D2280393CE6A2A5428A4A8D09E354; $R7D0596C36891967F3BB9D994B4A97C19 = $R1849DF6AF84C6815023B2D6532697EDA."|Series ".$RA16D2280393CE6A2A5428A4A8D09E354."|left"; } add_series_info($RA94EF3EDEBBECC120DD9EC4D9CB90BD1, $R7D0596C36891967F3BB9D994B4A97C19); } } function define_colors() { global $R27171DF943E3BF826E6F7D7C9639C6E9; $R27171DF943E3BF826E6F7D7C9639C6E9[1] = "255,80,30"; $R27171DF943E3BF826E6F7D7C9639C6E9[2] = "10,122,164"; $R27171DF943E3BF826E6F7D7C9639C6E9[3] = "150,90,200"; $R27171DF943E3BF826E6F7D7C9639C6E9[4] = "150,90,200"; $R27171DF943E3BF826E6F7D7C9639C6E9[5] = "100,200,200"; $R27171DF943E3BF826E6F7D7C9639C6E9[6] = "200,75,75"; $R27171DF943E3BF826E6F7D7C9639C6E9[7] = "170,100,60"; $R27171DF943E3BF826E6F7D7C9639C6E9[8] = "128,128,128"; $R27171DF943E3BF826E6F7D7C9639C6E9[9] = "10,255,164"; $R27171DF943E3BF826E6F7D7C9639C6E9[10] = "199,199,199"; $R27171DF943E3BF826E6F7D7C9639C6E9[11] = "100,100,200"; $R27171DF943E3BF826E6F7D7C9639C6E9[12] = "180,180,90"; return; } ?> \ No newline at end of file diff --git a/OLD/jpowered/graph/common/jpclasses.php b/OLD/jpowered/graph/common/jpclasses.php new file mode 100644 index 0000000..0a68fc2 --- /dev/null +++ b/OLD/jpowered/graph/common/jpclasses.php @@ -0,0 +1 @@ +jpconfig = $RBF902F888A7A27C3E6036FE7C8FB44BE; } function draw_background(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { if (!zkfrg7h()) {$this->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} imagefilledrectangle ($R90B42A0A84ED04CF1E133E7D0B4C87FD, 0, 0, $this->jpconfig["width"], $this->jpconfig["height"], $this->jpconfig["backgroundcolor"]); if ($this->jpconfig["bgimage"]!=-1) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $this->jpconfig["bgimage"], 0, 0, 0, 0, imagesx($this->jpconfig["bgimage"]), imagesy($this->jpconfig["bgimage"])); } if (!zkfrg7h()) {$this->draw_m2($R90B42A0A84ED04CF1E133E7D0B4C87FD);} return; } function draw_grid(&$R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBC19A0FC0AE91A15EFE38692D6D533DD = false) { if (!zkfrg7h()) {$this->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} $R39B8A34E5D33E13371402A8E1AFBD8E9 = $this->jpconfig["gridposition"][0]; $R718AC8B9DE9E39D46F178BF720F93912 = $this->jpconfig["gridposition"][1] - $this->jpconfig["nrows"]*$this->jpconfig["vspace"]; if ($this->jpconfig["threed"] && !$RBC19A0FC0AE91A15EFE38692D6D533DD) { $R20FD65E9C7406034FADC682F06732868 = (7*$this->jpconfig["depth3d"])/10; $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $R20FD65E9C7406034FADC682F06732868; $R718AC8B9DE9E39D46F178BF720F93912 = $R718AC8B9DE9E39D46F178BF720F93912 - $R20FD65E9C7406034FADC682F06732868; } $R4C010D549D8CE12809958375A5227F8E = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $this->jpconfig["hspace"]*$this->jpconfig["nGridCols"]; $RCF842228F8F602229EFF70A3EC087CE2 = $this->jpconfig["gridposition"][1]; if ($this->jpconfig["threed"] && !$RBC19A0FC0AE91A15EFE38692D6D533DD) { $RCF842228F8F602229EFF70A3EC087CE2 = $RCF842228F8F602229EFF70A3EC087CE2 - $R20FD65E9C7406034FADC682F06732868; } if (!zkfrg7h()) {$this->draw_m2($R90B42A0A84ED04CF1E133E7D0B4C87FD);} imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $this->jpconfig["gridbgcolor"]); if ($this->jpconfig["gridbgcolor2"] > -1) { $RF0FD7E1ECCF8AAF09D2A44CC67B1D55E = false; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ($RF0FD7E1ECCF8AAF09D2A44CC67B1D55E) { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["vspace"], $R4C010D549D8CE12809958375A5227F8E, $R718AC8B9DE9E39D46F178BF720F93912+($RA16D2280393CE6A2A5428A4A8D09E354+1)*$this->jpconfig["vspace"], $this->jpconfig["gridbgcolor2"]); $RF0FD7E1ECCF8AAF09D2A44CC67B1D55E = false; } else {$RF0FD7E1ECCF8AAF09D2A44CC67B1D55E = true;} } } if ($this->jpconfig["gridbgimage"]!=-1) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $this->jpconfig["gridbgimage"], $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, 0, 0, imagesx($this->jpconfig["gridbgimage"]), imagesy($this->jpconfig["gridbgimage"])); } if ($this->jpconfig["grid"]) { $R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"]); switch ($this->jpconfig["gridstyle"]) { case 1:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"]);break; case 2:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"]);break; case 3:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 4:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 5:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["griddbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["griddbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; } imagesetstyle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R65A9EBDC909DAA427BA0B83FA6AB2BCA); if ($this->jpconfig["gridlinev"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 1; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nGridCols"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354, $RCF842228F8F602229EFF70A3EC087CE2, IMG_COLOR_STYLED); } } if ($this->jpconfig["gridlineh"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["vspace"], $R4C010D549D8CE12809958375A5227F8E, $R718AC8B9DE9E39D46F178BF720F93912+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["vspace"], IMG_COLOR_STYLED); if ($this->jpconfig["threed"]) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["vspace"], $R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868, $R718AC8B9DE9E39D46F178BF720F93912+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["vspace"]+$R20FD65E9C7406034FADC682F06732868, IMG_COLOR_STYLED); } } } } if ($this->jpconfig["axis"]) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9, $RCF842228F8F602229EFF70A3EC087CE2, $this->jpconfig["axiscolor"]); if ($this->jpconfig["threed"] && !$RBC19A0FC0AE91A15EFE38692D6D533DD) { $RAC9624EF40F90F58A44A1951FA270C64 = array($R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868,$RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868, $R39B8A34E5D33E13371402A8E1AFBD8E9 ,$RCF842228F8F602229EFF70A3EC087CE2, $R39B8A34E5D33E13371402A8E1AFBD8E9,$R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868,$R718AC8B9DE9E39D46F178BF720F93912+$R20FD65E9C7406034FADC682F06732868 ); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["floorcolor"]); imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["axiscolor"]); } } if ($this->jpconfig["ylabels"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $this->jpconfig["chartstarty"] + $this->jpconfig["chartscale"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $this->jpconfig["ndecplaces"], ".", $this->jpconfig["thousandseparator"]); $this->jpconfig["ylabelstextobj"]->textstring = $this->jpconfig["ylabelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$this->jpconfig["ylabelpost"]; $this->jpconfig["ylabelstextobj"]->setTextProps(); $RA7B9A383688A89B5498FC84118153069 = $this->jpconfig["nrows"] - $RA16D2280393CE6A2A5428A4A8D09E354; $this->jpconfig["ylabelstextobj"]->textX = $R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868-$this->jpconfig["margin"]-3-$this->jpconfig["ylabelstextobj"]->textWidth; $this->jpconfig["ylabelstextobj"]->textY = $R718AC8B9DE9E39D46F178BF720F93912+$RA7B9A383688A89B5498FC84118153069*$this->jpconfig["vspace"]+$R20FD65E9C7406034FADC682F06732868 + $this->jpconfig["ylabelstextobj"]->textHeight/2; imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868, $R718AC8B9DE9E39D46F178BF720F93912+$RA7B9A383688A89B5498FC84118153069*$this->jpconfig["vspace"]+$R20FD65E9C7406034FADC682F06732868, $R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868-5, $R718AC8B9DE9E39D46F178BF720F93912+$RA7B9A383688A89B5498FC84118153069*$this->jpconfig["vspace"]+$R20FD65E9C7406034FADC682F06732868, IMG_COLOR_STYLED); $this->jpconfig["ylabelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } if ($this->jpconfig["y2labels"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8E42110B9D7C2DDB15B41C7BE96EFE65 = $this->jpconfig["chartstarty2"] + $this->jpconfig["chartscale2"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R0D2462C54AA2F1640ACD1B0546BCED06 = number_format ( $R8E42110B9D7C2DDB15B41C7BE96EFE65, $this->jpconfig["ndecplaces"], ".", $this->jpconfig["thousandseparator"]); $this->jpconfig["y2labelstextobj"]->textstring = $this->jpconfig["y2labelpre"].$R0D2462C54AA2F1640ACD1B0546BCED06.$this->jpconfig["y2labelpost"]; $this->jpconfig["y2labelstextobj"]->setTextProps(); $RA7B9A383688A89B5498FC84118153069 = $this->jpconfig["nrows"] - $RA16D2280393CE6A2A5428A4A8D09E354; $this->jpconfig["y2labelstextobj"]->textX = $R4C010D549D8CE12809958375A5227F8E+$this->jpconfig["margin"]+3; $this->jpconfig["y2labelstextobj"]->textY = $R718AC8B9DE9E39D46F178BF720F93912+$RA7B9A383688A89B5498FC84118153069*$this->jpconfig["vspace"] + $this->jpconfig["y2labelstextobj"]->textHeight/2; imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R4C010D549D8CE12809958375A5227F8E, $R718AC8B9DE9E39D46F178BF720F93912+$RA7B9A383688A89B5498FC84118153069*$this->jpconfig["vspace"], $R4C010D549D8CE12809958375A5227F8E+5, $R718AC8B9DE9E39D46F178BF720F93912+$RA7B9A383688A89B5498FC84118153069*$this->jpconfig["vspace"], IMG_COLOR_STYLED); $this->jpconfig["y2labelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } if ($this->jpconfig["axis"]) { if ($this->jpconfig["chartstarty"]<0) {$R6B2EE1627BDB8AB6715E9208D2F817AB = $this->jpconfig["vspace"]*$this->jpconfig["chartstarty"]/$this->jpconfig["chartscale"];} else {$R6B2EE1627BDB8AB6715E9208D2F817AB = 0;} imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $RCF842228F8F602229EFF70A3EC087CE2+$R6B2EE1627BDB8AB6715E9208D2F817AB, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2+$R6B2EE1627BDB8AB6715E9208D2F817AB, $this->jpconfig["axiscolor"]); if ($this->jpconfig["threed"]) { $RAC9624EF40F90F58A44A1951FA270C64 = array($R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868,$RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868+$R6B2EE1627BDB8AB6715E9208D2F817AB, $R4C010D549D8CE12809958375A5227F8E-$R20FD65E9C7406034FADC682F06732868,$RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868+$R6B2EE1627BDB8AB6715E9208D2F817AB, $R4C010D549D8CE12809958375A5227F8E,$RCF842228F8F602229EFF70A3EC087CE2+$R6B2EE1627BDB8AB6715E9208D2F817AB, $R39B8A34E5D33E13371402A8E1AFBD8E9,$RCF842228F8F602229EFF70A3EC087CE2+$R6B2EE1627BDB8AB6715E9208D2F817AB ); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["floorcolor"]); for ($RA16D2280393CE6A2A5428A4A8D09E354 = 1; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nGridCols"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354, $RCF842228F8F602229EFF70A3EC087CE2+$R6B2EE1627BDB8AB6715E9208D2F817AB, $R39B8A34E5D33E13371402A8E1AFBD8E9+$this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354-$R20FD65E9C7406034FADC682F06732868, $RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868+$R6B2EE1627BDB8AB6715E9208D2F817AB, IMG_COLOR_STYLED); } imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["axiscolor"]); } } if ($RBC19A0FC0AE91A15EFE38692D6D533DD) { if ($this->jpconfig["xlabels"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nGridCols"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $RF25D6CC093A1AF6F27CFF9666A340001 = $this->jpconfig["chartstartx"] + $this->jpconfig["chartscalex"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $this->jpconfig["ndecplaces"], ".", $this->jpconfig["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = $this->jpconfig["xlabelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$this->jpconfig["xlabelpost"]; $this->jpconfig["xlabelstextobj"]->textcolor = $this->jpconfig["xlabelcolor"]; switch ($this->jpconfig["xlabelorientation"]) { case 1: $this->jpconfig["xlabelstextobj"]->textangle = 0.0; break; case 2: $this->jpconfig["xlabelstextobj"]->textangle = 90.0; break; case 3: $this->jpconfig["xlabelstextobj"]->textangle = 45.0; break; case 4: $this->jpconfig["xlabelstextobj"]->textangle = -45.0; break; default: $this->jpconfig["xlabelstextobj"]->textangle = 0.0; } $R9DC94485D979553A44AB5A0AC02ABE71 = deg2rad($this->jpconfig["xlabelstextobj"]->textangle); $R6436B9B3F34981E5345CCF961D503736 = sin($R9DC94485D979553A44AB5A0AC02ABE71); $RB626D36980F75A7370410EA75F863A2B = cos($R9DC94485D979553A44AB5A0AC02ABE71); $RB4D25393242C6568EE893CBF57A8ABA5 = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"]; $R21D2FF6532680118302411CA69147BF1 = false; $this->jpconfig["xlabelstextobj"]->textstring = $R7ECF1E873D0AA9FE3B104FFE967B624E; $this->jpconfig["xlabelstextobj"]->textX = 0; $this->jpconfig["xlabelstextobj"]->textY = 0; $this->jpconfig["xlabelstextobj"]->setTextProps(); $R98486D658E86A65154C62FFA95EB6A92 = $this->jpconfig["gridposition"][0] + $this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354; if ($R532E8E02AB77F29CF11E8F003E8882B5) { $R98486D658E86A65154C62FFA95EB6A92 += $this->jpconfig["hspace"]/2; } switch ($this->jpconfig["xlabelorientation"]) { case 1: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $this->jpconfig["xlabelstextobj"]->textWidth/2; if ($R21D2FF6532680118302411CA69147BF1) { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight + $this->jpconfig["xlabelyoffset"]; $R21D2FF6532680118302411CA69147BF1 = false; } else { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight; $R21D2FF6532680118302411CA69147BF1 = true; } break; case 2: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 + $this->jpconfig["xlabelstextobj"]->textHeight/2; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 + $this->jpconfig["xlabelstextobj"]->textWidth; break; case 3: $R8F9DDBF4EB478DFE415D21BD6EC6083E = $RB626D36980F75A7370410EA75F863A2B*($this->jpconfig["xlabelstextobj"]->textWidth - $this->jpconfig["xlabelstextobj"]->textHeight); $R837FE87169B8EC967DBF022A3FF777EA = $R6436B9B3F34981E5345CCF961D503736*($this->jpconfig["xlabelstextobj"]->textWidth + $this->jpconfig["xlabelstextobj"]->textHeight); $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $R8F9DDBF4EB478DFE415D21BD6EC6083E; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 + $R837FE87169B8EC967DBF022A3FF777EA; break; case 4: $R8F9DDBF4EB478DFE415D21BD6EC6083E = $RB626D36980F75A7370410EA75F863A2B*($this->jpconfig["xlabelstextobj"]->textHeight); $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $R8F9DDBF4EB478DFE415D21BD6EC6083E; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 + $this->jpconfig["xlabelstextobj"]->textHeight; break; default: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $this->jpconfig["xlabelstextobj"]->textWidth/2; if ($R21D2FF6532680118302411CA69147BF1) { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight + $this->jpconfig["xlabelyoffset"]; $R21D2FF6532680118302411CA69147BF1 = false; } else { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight; $R21D2FF6532680118302411CA69147BF1 = true; } } $this->jpconfig["xlabelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } if ($this->jpconfig["x2labels"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nGridCols"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $RF25D6CC093A1AF6F27CFF9666A340001 = $this->jpconfig["chartstartx2"] + $this->jpconfig["chartscalex2"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $this->jpconfig["ndecplaces"], ".", $this->jpconfig["thousandseparator"]); $R7ECF1E873D0AA9FE3B104FFE967B624E = $this->jpconfig["x2labelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$this->jpconfig["x2labelpost"]; $this->jpconfig["x2labelstextobj"]->textcolor = $this->jpconfig["x2labelcolor"]; switch ($this->jpconfig["xlabelorientation"]) { case 1: $this->jpconfig["x2labelstextobj"]->textangle = 0.0; break; case 2: $this->jpconfig["x2labelstextobj"]->textangle = 90.0; break; case 3: $this->jpconfig["x2labelstextobj"]->textangle = 45.0; break; case 4: $this->jpconfig["x2labelstextobj"]->textangle = -45.0; break; default: $this->jpconfig["x2labelstextobj"]->textangle = 0.0; } $R9DC94485D979553A44AB5A0AC02ABE71 = deg2rad($this->jpconfig["x2labelstextobj"]->textangle); $R6436B9B3F34981E5345CCF961D503736 = sin($R9DC94485D979553A44AB5A0AC02ABE71); $RB626D36980F75A7370410EA75F863A2B = cos($R9DC94485D979553A44AB5A0AC02ABE71); $RB4D25393242C6568EE893CBF57A8ABA5 = $R718AC8B9DE9E39D46F178BF720F93912 - $this->jpconfig["margin"]; $R21D2FF6532680118302411CA69147BF1 = false; $this->jpconfig["x2labelstextobj"]->textstring = $R7ECF1E873D0AA9FE3B104FFE967B624E; $this->jpconfig["x2labelstextobj"]->textX = 0; $this->jpconfig["x2labelstextobj"]->textY = 0; $this->jpconfig["x2labelstextobj"]->setTextProps(); $R98486D658E86A65154C62FFA95EB6A92 = $this->jpconfig["gridposition"][0] + $this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354; if ($R532E8E02AB77F29CF11E8F003E8882B5) { $R98486D658E86A65154C62FFA95EB6A92 += $this->jpconfig["hspace"]/2; } switch ($this->jpconfig["xlabelorientation"]) { case 1: $this->jpconfig["x2labelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $this->jpconfig["x2labelstextobj"]->textWidth/2; if ($R21D2FF6532680118302411CA69147BF1) { $this->jpconfig["x2labelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $this->jpconfig["x2labelstextobj"]->textHeight - $this->jpconfig["xlabelyoffset"]; $R21D2FF6532680118302411CA69147BF1 = false; } else { $this->jpconfig["x2labelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $this->jpconfig["x2labelstextobj"]->textHeight; $R21D2FF6532680118302411CA69147BF1 = true; } break; case 2: $this->jpconfig["x2labelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 + $this->jpconfig["x2labelstextobj"]->textHeight/2; $this->jpconfig["x2labelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $this->jpconfig["x2labelstextobj"]->textWidth; break; case 3: $R8F9DDBF4EB478DFE415D21BD6EC6083E = $RB626D36980F75A7370410EA75F863A2B*($this->jpconfig["xlabelstextobj"]->textWidth - $this->jpconfig["xlabelstextobj"]->textHeight); $R837FE87169B8EC967DBF022A3FF777EA = $R6436B9B3F34981E5345CCF961D503736*($this->jpconfig["xlabelstextobj"]->textWidth + $this->jpconfig["xlabelstextobj"]->textHeight); $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $R8F9DDBF4EB478DFE415D21BD6EC6083E; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $R837FE87169B8EC967DBF022A3FF777EA; break; case 4: $R8F9DDBF4EB478DFE415D21BD6EC6083E = $RB626D36980F75A7370410EA75F863A2B*($this->jpconfig["xlabelstextobj"]->textHeight); $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $R8F9DDBF4EB478DFE415D21BD6EC6083E; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $this->jpconfig["xlabelstextobj"]->textHeight; break; default: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $this->jpconfig["xlabelstextobj"]->textWidth/2; if ($R21D2FF6532680118302411CA69147BF1) { $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $this->jpconfig["xlabelstextobj"]->textHeight - $this->jpconfig["xlabelyoffset"]; $R21D2FF6532680118302411CA69147BF1 = false; } else { $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 - $this->jpconfig["xlabelstextobj"]->textHeight; $R21D2FF6532680118302411CA69147BF1 = true; } } $this->jpconfig["x2labelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } } return; } function draw_grid_h(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $this->jpconfig["gridposition"][0]; $R718AC8B9DE9E39D46F178BF720F93912 = $this->jpconfig["gridposition"][1] - $this->jpconfig["vspace"]*$this->jpconfig["nbars"]; if ($this->jpconfig["threed"]) { $R20FD65E9C7406034FADC682F06732868 = (7*$this->jpconfig["depth3d"])/10; $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $R20FD65E9C7406034FADC682F06732868; $R718AC8B9DE9E39D46F178BF720F93912 = $R718AC8B9DE9E39D46F178BF720F93912 - $R20FD65E9C7406034FADC682F06732868; } $R4C010D549D8CE12809958375A5227F8E = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $this->jpconfig["nrows"] * $this->jpconfig["hspace"]; $RCF842228F8F602229EFF70A3EC087CE2 = $this->jpconfig["gridposition"][1]; if ($this->jpconfig["threed"]) { $RCF842228F8F602229EFF70A3EC087CE2 = $RCF842228F8F602229EFF70A3EC087CE2 - $R20FD65E9C7406034FADC682F06732868; } imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $this->jpconfig["gridbgcolor"]); if ($this->jpconfig["gridbgcolor2"] > -1) { $RF0FD7E1ECCF8AAF09D2A44CC67B1D55E = false; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { if ($RF0FD7E1ECCF8AAF09D2A44CC67B1D55E) { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"], $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+($RA16D2280393CE6A2A5428A4A8D09E354+1)*$this->jpconfig["hspace"], $RCF842228F8F602229EFF70A3EC087CE2, $this->jpconfig["gridbgcolor2"]); $RF0FD7E1ECCF8AAF09D2A44CC67B1D55E = false; } else {$RF0FD7E1ECCF8AAF09D2A44CC67B1D55E = true;} } } if ($this->jpconfig["gridbgimage"]!=-1) { imagecopy ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $this->jpconfig["gridbgimage"], $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912, 0, 0, imagesx($this->jpconfig["gridbgimage"]), imagesy($this->jpconfig["gridbgimage"])); } if ($this->jpconfig["grid"]) { $R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"]); switch ($this->jpconfig["gridstyle"]) { case 1:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"]);break; case 2:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"]);break; case 3:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 4:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 5:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; } imagesetstyle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R65A9EBDC909DAA427BA0B83FA6AB2BCA); if ($this->jpconfig["gridlineh"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912+$this->jpconfig["vspace"]*$RA16D2280393CE6A2A5428A4A8D09E354, $R4C010D549D8CE12809958375A5227F8E, $R718AC8B9DE9E39D46F178BF720F93912+$this->jpconfig["vspace"]*$RA16D2280393CE6A2A5428A4A8D09E354, IMG_COLOR_STYLED); } } if ($this->jpconfig["gridlinev"]) { for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"], $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"], $RCF842228F8F602229EFF70A3EC087CE2, IMG_COLOR_STYLED); } } } $this->jpconfig["xlabelstextobj"]->textcolor = $this->jpconfig["xlabelcolor"]; $this->jpconfig["xlabelstextobj"]->textangle = 0.0; $this->jpconfig["x2labelstextobj"]->textcolor = $this->jpconfig["x2labelcolor"]; $this->jpconfig["x2labelstextobj"]->textangle = 0.0; if ($this->jpconfig["xlabels"]) { $RB7F306DC76AEAD18160AEFAA3696CC91 = -1; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $RF25D6CC093A1AF6F27CFF9666A340001 = $this->jpconfig["chartstartx"] + $this->jpconfig["chartscale"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $this->jpconfig["ndecplaces"], ".", $this->jpconfig["thousandseparator"]); $this->jpconfig["xlabelstextobj"]->textstring = $this->jpconfig["xlabelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$this->jpconfig["xlabelpost"]; $this->jpconfig["xlabelstextobj"]->setTextProps(); $RF6BF7F8F6F485112F54CA66EB5DAD3D6 = $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"] - $this->jpconfig["xlabelstextobj"]->textWidth/2; if (($RF6BF7F8F6F485112F54CA66EB5DAD3D6 + $this->jpconfig["xlabelstextobj"]->textWidth)>$this->jpconfig["width"]) { $RF6BF7F8F6F485112F54CA66EB5DAD3D6 = $this->jpconfig["width"] - $this->jpconfig["xlabelstextobj"]->textWidth; } imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"]-$R20FD65E9C7406034FADC682F06732868, $RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"]-$R20FD65E9C7406034FADC682F06732868, $RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868+5, IMG_COLOR_STYLED); $this->jpconfig["xlabelstextobj"]->textX = $RF6BF7F8F6F485112F54CA66EB5DAD3D6-$R20FD65E9C7406034FADC682F06732868; if ($RB7F306DC76AEAD18160AEFAA3696CC91 == -1) { $RB7F306DC76AEAD18160AEFAA3696CC91 = $this->jpconfig["xlabelstextobj"]->textHeight; } $this->jpconfig["xlabelstextobj"]->textY = $RCF842228F8F602229EFF70A3EC087CE2 + $R20FD65E9C7406034FADC682F06732868 + 2*$RB7F306DC76AEAD18160AEFAA3696CC91; $this->jpconfig["xlabelstextobj"]->setTextProps(); $this->jpconfig["xlabelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } if ($this->jpconfig["x2labels"]) { $R7D641C55BB1F776ECA093942CBD9E516 = imagefontheight($this->jpconfig["xfont"]); for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $RF25D6CC093A1AF6F27CFF9666A340001 = $this->jpconfig["chartstartx2"] + $this->jpconfig["chartscale2"]*$RA16D2280393CE6A2A5428A4A8D09E354; $R7ECF1E873D0AA9FE3B104FFE967B624E = number_format ( $RF25D6CC093A1AF6F27CFF9666A340001, $this->jpconfig["ndecplaces"], ".", $this->jpconfig["thousandseparator"]); $this->jpconfig["x2labelstextobj"]->textstring = $this->jpconfig["x2labelpre"].$R7ECF1E873D0AA9FE3B104FFE967B624E.$this->jpconfig["x2labelpost"]; $RCDBE1C96F6657779A3972F16A30B4FC2 = imagefontwidth($this->jpconfig["xfont"]) * strlen($R7ECF1E873D0AA9FE3B104FFE967B624E); $RF6BF7F8F6F485112F54CA66EB5DAD3D6 = $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"] - $this->jpconfig["x2labelstextobj"]->textWidth/2; if (($RF6BF7F8F6F485112F54CA66EB5DAD3D6 + $this->jpconfig["x2labelstextobj"]->textWidth)>$this->jpconfig["width"]) { $RF6BF7F8F6F485112F54CA66EB5DAD3D6 = $this->jpconfig["width"] - $this->jpconfig["x2labelstextobj"]->textWidth; } imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"], $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"], $R718AC8B9DE9E39D46F178BF720F93912-5, IMG_COLOR_STYLED); $this->jpconfig["x2labelstextobj"]->textX = $RF6BF7F8F6F485112F54CA66EB5DAD3D6; $this->jpconfig["x2labelstextobj"]->textY = $R718AC8B9DE9E39D46F178BF720F93912 - 6 - $this->jpconfig["x2labelstextobj"]->textHeight; $this->jpconfig["x2labelstextobj"]->setTextProps(); $this->jpconfig["x2labelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } if ($this->jpconfig["axis"]) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $RCF842228F8F602229EFF70A3EC087CE2, $R4C010D549D8CE12809958375A5227F8E, $RCF842228F8F602229EFF70A3EC087CE2, $this->jpconfig["axiscolor"]); if ($this->jpconfig["threed"]) { $RAC9624EF40F90F58A44A1951FA270C64 = array($R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868,$RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868, $R4C010D549D8CE12809958375A5227F8E-$R20FD65E9C7406034FADC682F06732868,$RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868, $R4C010D549D8CE12809958375A5227F8E,$RCF842228F8F602229EFF70A3EC087CE2, $R39B8A34E5D33E13371402A8E1AFBD8E9,$RCF842228F8F602229EFF70A3EC087CE2 ); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["floorcolor"]); imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["axiscolor"]); for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nrows"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"]-$R20FD65E9C7406034FADC682F06732868, $RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868, $R39B8A34E5D33E13371402A8E1AFBD8E9+$RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["hspace"], $RCF842228F8F602229EFF70A3EC087CE2, IMG_COLOR_STYLED); } } } if ($this->jpconfig["axis"]) { if ($this->jpconfig["chartstartx"]<0) {$R890386FF9B6A20C3C0EB3628A531D211 = -$this->jpconfig["hspace"]*$this->jpconfig["chartstartx"]/$this->jpconfig["chartscale"];} else {$R890386FF9B6A20C3C0EB3628A531D211 = 0;} imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9+$R890386FF9B6A20C3C0EB3628A531D211, $R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$R890386FF9B6A20C3C0EB3628A531D211, $RCF842228F8F602229EFF70A3EC087CE2, $this->jpconfig["axiscolor"]); if (threed) { $RAC9624EF40F90F58A44A1951FA270C64 = array($R39B8A34E5D33E13371402A8E1AFBD8E9+$R890386FF9B6A20C3C0EB3628A531D211-$R20FD65E9C7406034FADC682F06732868,$RCF842228F8F602229EFF70A3EC087CE2+$R20FD65E9C7406034FADC682F06732868, $R39B8A34E5D33E13371402A8E1AFBD8E9+$R890386FF9B6A20C3C0EB3628A531D211 ,$RCF842228F8F602229EFF70A3EC087CE2, $R39B8A34E5D33E13371402A8E1AFBD8E9+$R890386FF9B6A20C3C0EB3628A531D211,$R718AC8B9DE9E39D46F178BF720F93912, $R39B8A34E5D33E13371402A8E1AFBD8E9+$R890386FF9B6A20C3C0EB3628A531D211-$R20FD65E9C7406034FADC682F06732868,$R718AC8B9DE9E39D46F178BF720F93912+$R20FD65E9C7406034FADC682F06732868 ); imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["floorcolor"]); imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RAC9624EF40F90F58A44A1951FA270C64,4,$this->jpconfig["axiscolor"]); for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 <= $this->jpconfig["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R718AC8B9DE9E39D46F178BF720F93912+$this->jpconfig["vspace"]*$RA16D2280393CE6A2A5428A4A8D09E354, $R39B8A34E5D33E13371402A8E1AFBD8E9-$R20FD65E9C7406034FADC682F06732868, $R718AC8B9DE9E39D46F178BF720F93912+$this->jpconfig["vspace"]*$RA16D2280393CE6A2A5428A4A8D09E354+$R20FD65E9C7406034FADC682F06732868, IMG_COLOR_STYLED); } } } } function draw_m2(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { global $R60B5058B4F8CC72DC333B4517D2B105F; global $RBF902F888A7A27C3E6036FE7C8FB44BE; $RB2AE72FA14D976C47CA02AEBE52E1298 = imagecolorsforindex($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBF902F888A7A27C3E6036FE7C8FB44BE["backgroundcolor"]); if ($R60B5058B4F8CC72DC333B4517D2B105F>=2) { if ($RB2AE72FA14D976C47CA02AEBE52E1298["red"] > 128) { $R1849DF6AF84C6815023B2D6532697EDA = darker_alpha($RBF902F888A7A27C3E6036FE7C8FB44BE["backgroundcolor"],1.05); } else { $R1849DF6AF84C6815023B2D6532697EDA = lighter_alpha($RBF902F888A7A27C3E6036FE7C8FB44BE["backgroundcolor"],1.05); } } else { if ($RB2AE72FA14D976C47CA02AEBE52E1298["red"] > 128) { $R1849DF6AF84C6815023B2D6532697EDA = darker($RBF902F888A7A27C3E6036FE7C8FB44BE["backgroundcolor"],1.05); } else { $R1849DF6AF84C6815023B2D6532697EDA = lighter($RBF902F888A7A27C3E6036FE7C8FB44BE["backgroundcolor"],1.05); } } $R2A3691F09B78A7ABE38F6592CC22B084 = new JPtext(24); $R8E3748B5C9C3365EFCE294CC9C098E1D = array('U','n','l','i','c','e','n','s','e','d'); $R2A3691F09B78A7ABE38F6592CC22B084->textstring = implode('',$R8E3748B5C9C3365EFCE294CC9C098E1D); $R2A3691F09B78A7ABE38F6592CC22B084->textfontsize = 24; $R2A3691F09B78A7ABE38F6592CC22B084->textfontfamily = "arial"; $R2A3691F09B78A7ABE38F6592CC22B084->textbold = TRUE; $R2A3691F09B78A7ABE38F6592CC22B084->textitalic = FALSE; $R2A3691F09B78A7ABE38F6592CC22B084->textangle = 30.0; $R2A3691F09B78A7ABE38F6592CC22B084->textX = 0; $R2A3691F09B78A7ABE38F6592CC22B084->textY = 100; $R2A3691F09B78A7ABE38F6592CC22B084->textcolor = $R1849DF6AF84C6815023B2D6532697EDA; for ($R8725029EA89712EED8670BAE64D30E47 = 0;$R8725029EA89712EED8670BAE64D30E47 < $RBF902F888A7A27C3E6036FE7C8FB44BE['width']; $R8725029EA89712EED8670BAE64D30E47 = $R8725029EA89712EED8670BAE64D30E47 + 150) { for ($R36A4DC9CCF2BDC09D800556724231FC6 = 0;$R36A4DC9CCF2BDC09D800556724231FC6 < $RBF902F888A7A27C3E6036FE7C8FB44BE['width']; $R36A4DC9CCF2BDC09D800556724231FC6 = $R36A4DC9CCF2BDC09D800556724231FC6 + 100) { $R2A3691F09B78A7ABE38F6592CC22B084->textX = $R8725029EA89712EED8670BAE64D30E47; $R2A3691F09B78A7ABE38F6592CC22B084->textY = $R36A4DC9CCF2BDC09D800556724231FC6; $R2A3691F09B78A7ABE38F6592CC22B084->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } return TRUE; } function draw_xlabels(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,$R532E8E02AB77F29CF11E8F003E8882B5 = false) { if (!testKey()) {$this->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} $RA717BE065F43D389A8580E09D094401C = $this->jpconfig["hspace"]; $this->jpconfig["xlabelstextobj"]->textcolor = $this->jpconfig["xlabelcolor"]; switch ($this->jpconfig["xlabelorientation"]) { case 1: $this->jpconfig["xlabelstextobj"]->textangle = 0.0; break; case 2: $this->jpconfig["xlabelstextobj"]->textangle = 90.0; break; case 3: $this->jpconfig["xlabelstextobj"]->textangle = 45.0; break; case 4: $this->jpconfig["xlabelstextobj"]->textangle = -45.0; break; default: $this->jpconfig["xlabelstextobj"]->textangle = 0.0; } $R9DC94485D979553A44AB5A0AC02ABE71 = deg2rad($this->jpconfig["xlabelstextobj"]->textangle); $R6436B9B3F34981E5345CCF961D503736 = sin($R9DC94485D979553A44AB5A0AC02ABE71); $RB626D36980F75A7370410EA75F863A2B = cos($R9DC94485D979553A44AB5A0AC02ABE71); $RB4D25393242C6568EE893CBF57A8ABA5 = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"]; $R21D2FF6532680118302411CA69147BF1 = false; if ($R532E8E02AB77F29CF11E8F003E8882B5) { $R0DD3D348A6C8A02A078948D460BCEDD0 = $this->jpconfig["nGridCols"]; } else { $R0DD3D348A6C8A02A078948D460BCEDD0 = $this->jpconfig["nGridCols"]+1; } for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $R0DD3D348A6C8A02A078948D460BCEDD0; $RA16D2280393CE6A2A5428A4A8D09E354++) { $this->jpconfig["xlabelstextobj"]->textstring = $this->jpconfig["xlabels"][$RA16D2280393CE6A2A5428A4A8D09E354]; $this->jpconfig["xlabelstextobj"]->textX = 0; $this->jpconfig["xlabelstextobj"]->textY = 0; $this->jpconfig["xlabelstextobj"]->setTextProps(); $R98486D658E86A65154C62FFA95EB6A92 = $this->jpconfig["gridposition"][0] + $this->jpconfig["hspace"]*$RA16D2280393CE6A2A5428A4A8D09E354; if ($R532E8E02AB77F29CF11E8F003E8882B5) { $R98486D658E86A65154C62FFA95EB6A92 += $this->jpconfig["hspace"]/2; } switch ($this->jpconfig["xlabelorientation"]) { case 1: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $this->jpconfig["xlabelstextobj"]->textWidth/2; if ($R21D2FF6532680118302411CA69147BF1) { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight + $this->jpconfig["xlabelyoffset"]; $R21D2FF6532680118302411CA69147BF1 = false; } else { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight; $R21D2FF6532680118302411CA69147BF1 = true; } break; case 2: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 + $this->jpconfig["xlabelstextobj"]->textHeight/2; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 + $this->jpconfig["xlabelstextobj"]->textWidth; break; case 3: $R8F9DDBF4EB478DFE415D21BD6EC6083E = $RB626D36980F75A7370410EA75F863A2B*($this->jpconfig["xlabelstextobj"]->textWidth - $this->jpconfig["xlabelstextobj"]->textHeight); $R837FE87169B8EC967DBF022A3FF777EA = $R6436B9B3F34981E5345CCF961D503736*($this->jpconfig["xlabelstextobj"]->textWidth + $this->jpconfig["xlabelstextobj"]->textHeight); $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $R8F9DDBF4EB478DFE415D21BD6EC6083E; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 + $R837FE87169B8EC967DBF022A3FF777EA; break; case 4: $R8F9DDBF4EB478DFE415D21BD6EC6083E = $RB626D36980F75A7370410EA75F863A2B*($this->jpconfig["xlabelstextobj"]->textHeight); $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $R8F9DDBF4EB478DFE415D21BD6EC6083E; $this->jpconfig["xlabelstextobj"]->textY = $RB4D25393242C6568EE893CBF57A8ABA5 + $this->jpconfig["xlabelstextobj"]->textHeight; break; default: $this->jpconfig["xlabelstextobj"]->textX = $R98486D658E86A65154C62FFA95EB6A92 - $this->jpconfig["xlabelstextobj"]->textWidth/2; if ($R21D2FF6532680118302411CA69147BF1) { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight + $this->jpconfig["xlabelyoffset"]; $R21D2FF6532680118302411CA69147BF1 = false; } else { $this->jpconfig["xlabelstextobj"]->textY = $this->jpconfig["gridposition"][1] + $this->jpconfig["margin"] + $this->jpconfig["xlabelstextobj"]->textHeight; $R21D2FF6532680118302411CA69147BF1 = true; } } $this->jpconfig["xlabelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } function draw_ylabels(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { if (!zkfrg7h()) {$this->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} $this->jpconfig["ylabelstextobj"]->textcolor = $this->jpconfig["xlabelcolor"]; $this->jpconfig["ylabelstextobj"]->textangle = 0.0; for ($RA16D2280393CE6A2A5428A4A8D09E354 = 0; $RA16D2280393CE6A2A5428A4A8D09E354 < $this->jpconfig["nbars"]; $RA16D2280393CE6A2A5428A4A8D09E354++) { $this->jpconfig["ylabelstextobj"]->textstring = $this->jpconfig["ylabels"][$RA16D2280393CE6A2A5428A4A8D09E354]; $this->jpconfig["ylabelstextobj"]->setTextProps(); $this->jpconfig["ylabelstextobj"]->textX = $this->jpconfig["gridposition"][0] - $this->jpconfig["ylabelstextobj"]->textWidth - 3; $this->jpconfig["ylabelstextobj"]->textY = $this->jpconfig["gridposition"][1] - $RA16D2280393CE6A2A5428A4A8D09E354*$this->jpconfig["vspace"] - $this->jpconfig["vspace"]/2 + $this->jpconfig["ylabelstextobj"]->textHeight/2; $this->jpconfig["ylabelstextobj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } return; } function draw_legend(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,&$R16F83AEFCECAB2A8AD503C9285E47ABF) { if (!testKey()) {$this->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} $this->jpconfig["legend"]->drawLegend($R90B42A0A84ED04CF1E133E7D0B4C87FD); return; } function draw_message(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, 0, 0, $this->jpconfig["width"], 32, verifycolor("#FFFFFF","#FFFFFF")); imagerectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, 0, 0, $this->jpconfig["width"]-1, 32, verifycolor("#000000","#000000")); $R157A6826A8BF1F36EBBE3DEC02351744 = new JPtext(); $R157A6826A8BF1F36EBBE3DEC02351744->textstring = $this->jpconfig["message1"]; $R157A6826A8BF1F36EBBE3DEC02351744->textfontfamily = "arial"; $R157A6826A8BF1F36EBBE3DEC02351744->textcolor = verifycolor("#000000","#000000"); $R157A6826A8BF1F36EBBE3DEC02351744->textX = 4; $R157A6826A8BF1F36EBBE3DEC02351744->textY = 13; $R157A6826A8BF1F36EBBE3DEC02351744->setTextProps(); $R157A6826A8BF1F36EBBE3DEC02351744->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R157A6826A8BF1F36EBBE3DEC02351744->textstring = $this->jpconfig["message2"]; $R157A6826A8BF1F36EBBE3DEC02351744->textY = 27; $R157A6826A8BF1F36EBBE3DEC02351744->textfontfamily = "courier"; $R157A6826A8BF1F36EBBE3DEC02351744->textcolor = verifycolor("#0000AA","#000000"); $R157A6826A8BF1F36EBBE3DEC02351744->setTextProps(); $R157A6826A8BF1F36EBBE3DEC02351744->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } function draw_titles(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { if (!zkfrg7h()) {$this->draw_message($R90B42A0A84ED04CF1E133E7D0B4C87FD);} $this->jpconfig["titletext"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $this->jpconfig["xtitletext"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $this->jpconfig["x2titletext"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $this->jpconfig["ytitletext"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $this->jpconfig["y2titletext"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); return; } function draw_freeformtext(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354jpconfig["freetext"]);$RA16D2280393CE6A2A5428A4A8D09E354++) { $this->jpconfig["freetext"][$RA16D2280393CE6A2A5428A4A8D09E354]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } return; } function DrawPoint(&$R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R1849DF6AF84C6815023B2D6532697EDA, $R65A9EBDC909DAA427BA0B83FA6AB2BCA, $R12298ACFAF2E57E920C1549CDD7F10C3, $RE6E75A77EFB01AE8AEDABB961575057C ) { if ($R12298ACFAF2E57E920C1549CDD7F10C3<1) {return;} if (function_exists(imageantialias)) { imageantialias($R90B42A0A84ED04CF1E133E7D0B4C87FD, TRUE); } switch ($R65A9EBDC909DAA427BA0B83FA6AB2BCA) { case 0: imagearc ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, 2, 2, 0, 360, $R1849DF6AF84C6815023B2D6532697EDA); break; case 1: imagearc ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R12298ACFAF2E57E920C1549CDD7F10C3, $R12298ACFAF2E57E920C1549CDD7F10C3, 0, 360, $R1849DF6AF84C6815023B2D6532697EDA); if ($RE6E75A77EFB01AE8AEDABB961575057C & $R12298ACFAF2E57E920C1549CDD7F10C3 > 1) { $R151D735B8478F26EE7E34D58D4FF8167 = abs($R12298ACFAF2E57E920C1549CDD7F10C3/2 - 1); imagefill ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD, $R1849DF6AF84C6815023B2D6532697EDA); imagefill ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A+$R151D735B8478F26EE7E34D58D4FF8167, $R863900F2BD39DEC2A65F6E650E5F28CD, $R1849DF6AF84C6815023B2D6532697EDA); imagefill ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD+$R151D735B8478F26EE7E34D58D4FF8167, $R1849DF6AF84C6815023B2D6532697EDA); imagefill ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A-$R151D735B8478F26EE7E34D58D4FF8167, $R863900F2BD39DEC2A65F6E650E5F28CD, $R1849DF6AF84C6815023B2D6532697EDA); imagefill ( $R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD-$R151D735B8478F26EE7E34D58D4FF8167, $R1849DF6AF84C6815023B2D6532697EDA); } break; case 2: $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R12298ACFAF2E57E920C1549CDD7F10C3/2); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD, $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD, $R1849DF6AF84C6815023B2D6532697EDA); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53, $RBE945D95B234D40717BF94843111B77A, $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R1849DF6AF84C6815023B2D6532697EDA); break; case 3: $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R12298ACFAF2E57E920C1549CDD7F10C3/2); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53, $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R1849DF6AF84C6815023B2D6532697EDA); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53, $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53, $R1849DF6AF84C6815023B2D6532697EDA); break; case 4: $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R12298ACFAF2E57E920C1549CDD7F10C3/2); if ($RE6E75A77EFB01AE8AEDABB961575057C) {imagefilledrectangle ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53, $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R1849DF6AF84C6815023B2D6532697EDA);} imagerectangle ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53, $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53, $R1849DF6AF84C6815023B2D6532697EDA); break; case 5: $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R12298ACFAF2E57E920C1549CDD7F10C3/2); $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $RBE945D95B234D40717BF94843111B77A; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53; if ($RE6E75A77EFB01AE8AEDABB961575057C) {imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,3,$R1849DF6AF84C6815023B2D6532697EDA);} imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,3,$R1849DF6AF84C6815023B2D6532697EDA); break; case 6: $REAF86FD4CCAAFAA985C8B092DACD1B53 = round($R12298ACFAF2E57E920C1549CDD7F10C3/2); $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $RBE945D95B234D40717BF94843111B77A; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R863900F2BD39DEC2A65F6E650E5F28CD-$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $RBE945D95B234D40717BF94843111B77A+$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R863900F2BD39DEC2A65F6E650E5F28CD; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $RBE945D95B234D40717BF94843111B77A; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R863900F2BD39DEC2A65F6E650E5F28CD+$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $RBE945D95B234D40717BF94843111B77A-$REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R863900F2BD39DEC2A65F6E650E5F28CD; if ($RE6E75A77EFB01AE8AEDABB961575057C) {imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R1849DF6AF84C6815023B2D6532697EDA);} imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,4,$R1849DF6AF84C6815023B2D6532697EDA); break; case 7: $R72EF657AC1AC6CD167D41835FF06D214 = round($R12298ACFAF2E57E920C1549CDD7F10C3/4); $REAF86FD4CCAAFAA985C8B092DACD1B53 = 2 * $R72EF657AC1AC6CD167D41835FF06D214; $RD269034B9D672B5CEF6D7F8BD764D2F6[0] = $RBE945D95B234D40717BF94843111B77A - $R72EF657AC1AC6CD167D41835FF06D214; $RD269034B9D672B5CEF6D7F8BD764D2F6[1] = $R863900F2BD39DEC2A65F6E650E5F28CD - $REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[2] = $RBE945D95B234D40717BF94843111B77A - $REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[3] = $R863900F2BD39DEC2A65F6E650E5F28CD; $RD269034B9D672B5CEF6D7F8BD764D2F6[4] = $RBE945D95B234D40717BF94843111B77A - $R72EF657AC1AC6CD167D41835FF06D214; $RD269034B9D672B5CEF6D7F8BD764D2F6[5] = $R863900F2BD39DEC2A65F6E650E5F28CD + $REAF86FD4CCAAFAA985C8B092DACD1B53-1; $RD269034B9D672B5CEF6D7F8BD764D2F6[6] = $RBE945D95B234D40717BF94843111B77A + $R72EF657AC1AC6CD167D41835FF06D214; $RD269034B9D672B5CEF6D7F8BD764D2F6[7] = $R863900F2BD39DEC2A65F6E650E5F28CD + $REAF86FD4CCAAFAA985C8B092DACD1B53-1; $RD269034B9D672B5CEF6D7F8BD764D2F6[8] = $RBE945D95B234D40717BF94843111B77A + $REAF86FD4CCAAFAA985C8B092DACD1B53; $RD269034B9D672B5CEF6D7F8BD764D2F6[9] = $R863900F2BD39DEC2A65F6E650E5F28CD; $RD269034B9D672B5CEF6D7F8BD764D2F6[10] = $RBE945D95B234D40717BF94843111B77A + $R72EF657AC1AC6CD167D41835FF06D214; $RD269034B9D672B5CEF6D7F8BD764D2F6[11] = $R863900F2BD39DEC2A65F6E650E5F28CD - $REAF86FD4CCAAFAA985C8B092DACD1B53; if ($RE6E75A77EFB01AE8AEDABB961575057C) {imagefilledpolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,6,$R1849DF6AF84C6815023B2D6532697EDA);} imagepolygon($R90B42A0A84ED04CF1E133E7D0B4C87FD,$RD269034B9D672B5CEF6D7F8BD764D2F6,6,$R1849DF6AF84C6815023B2D6532697EDA); break; } return; } function DrawPointValue(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,&$R49287C90F8298E0E3871253DF00B5F41,$R3403E062E1F918C896AA175B7E6F032B) { if (strlen($R49287C90F8298E0E3871253DF00B5F41->textstring)>0 && isset($R3403E062E1F918C896AA175B7E6F032B["x"]) && isset($R3403E062E1F918C896AA175B7E6F032B["y"]) ) { if (!isset($R3403E062E1F918C896AA175B7E6F032B["size"]) || $R3403E062E1F918C896AA175B7E6F032B["size"]<1) { $R3403E062E1F918C896AA175B7E6F032B["size"] = 1; } $R49287C90F8298E0E3871253DF00B5F41->setTextProps(); if ( ($R3403E062E1F918C896AA175B7E6F032B["x"] + $R49287C90F8298E0E3871253DF00B5F41->textWidth/2) > $this->jpconfig["width"]) { $R49287C90F8298E0E3871253DF00B5F41->textX = $this->jpconfig["width"] - $R49287C90F8298E0E3871253DF00B5F41->textWidth; } else if (($R3403E062E1F918C896AA175B7E6F032B["x"] - $R49287C90F8298E0E3871253DF00B5F41->textWidth/2) < 0) { $R49287C90F8298E0E3871253DF00B5F41->textX = 0; } else { $R49287C90F8298E0E3871253DF00B5F41->textX = $R3403E062E1F918C896AA175B7E6F032B["x"] - $R49287C90F8298E0E3871253DF00B5F41->textWidth/2; } $R49287C90F8298E0E3871253DF00B5F41->textY = $R3403E062E1F918C896AA175B7E6F032B["y"] - ($R49287C90F8298E0E3871253DF00B5F41->textHeight * 1.1); if (!$R49287C90F8298E0E3871253DF00B5F41->usettf && ($this->jpconfig["chartStyle"] == "area-graph" || $this->jpconfig["chartStyle"] == "line-graph" || $this->jpconfig["chartStyle"] == "bubble-chart" || $this->jpconfig["chartStyle"] == "xy-scatter-graph") ) { $R49287C90F8298E0E3871253DF00B5F41->textY = $R49287C90F8298E0E3871253DF00B5F41->textY + $R49287C90F8298E0E3871253DF00B5F41->textHeight; } $R49287C90F8298E0E3871253DF00B5F41->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } return; } function draw_target_lines(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A = false) { if ($this->jpconfig["ntarget"]<1) {return;} $R39B8A34E5D33E13371402A8E1AFBD8E9 = $this->jpconfig["gridposition"][0]; $R718AC8B9DE9E39D46F178BF720F93912 = $this->jpconfig["gridposition"][1]; $R20FD65E9C7406034FADC682F06732868 = 0; if ($this->jpconfig["threed"]) { $R20FD65E9C7406034FADC682F06732868 = (7*$this->jpconfig["depth3d"])/10; $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $R20FD65E9C7406034FADC682F06732868; $R718AC8B9DE9E39D46F178BF720F93912 = $R718AC8B9DE9E39D46F178BF720F93912 - $R20FD65E9C7406034FADC682F06732868; } $R4C010D549D8CE12809958375A5227F8E = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $this->jpconfig["hspace"]*$this->jpconfig["nGridCols"]; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$this->jpconfig["ntarget"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $RC6CB727A00C2CB09673B207BE7AC1315 = $this->jpconfig["chartstarty"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $this->jpconfig["chartscale"]; if ($RC6CB727A00C2CB09673B207BE7AC1315<0) {$this->jpconfig["axis_ypos"] = $R718AC8B9DE9E39D46F178BF720F93912 + $this->jpconfig["vspace"]*$RC6CB727A00C2CB09673B207BE7AC1315/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$this->jpconfig["axis_ypos"] = $R718AC8B9DE9E39D46F178BF720F93912;} $R71582F1A1585CF1F393AEA8CDFE21C92 = $this->jpconfig["axis_ypos"] - $this->jpconfig["vspace"]*$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["value"]/$R9BD6123CFA8B537BC33D9548D9A7D8F1; $R3186037EF1F216D6DB170D63B21755F5 = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]); switch ($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["style"]) { case 1:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]);break; case 2:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"]);break; case 3:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 4:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 5:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["griddbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["griddbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; } imagesetstyle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R3186037EF1F216D6DB170D63B21755F5); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $R71582F1A1585CF1F393AEA8CDFE21C92, $R4C010D549D8CE12809958375A5227F8E, $R71582F1A1585CF1F393AEA8CDFE21C92, IMG_COLOR_STYLED); $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textstring = $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["text"]; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textX = $R39B8A34E5D33E13371402A8E1AFBD8E9; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textY = $R71582F1A1585CF1F393AEA8CDFE21C92 - 2; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textcolor = $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->setTextProps(); $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } function draw_trend_lines(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A = false) { if ($this->jpconfig["ntrend"]<1) {return;} $R718AC8B9DE9E39D46F178BF720F93912 = $this->jpconfig["gridposition"][1]; $R20FD65E9C7406034FADC682F06732868 = 0; if ($this->jpconfig["threed"]) { $R20FD65E9C7406034FADC682F06732868 = (7*$this->jpconfig["depth3d"])/10; $R718AC8B9DE9E39D46F178BF720F93912 = $R718AC8B9DE9E39D46F178BF720F93912 - $R20FD65E9C7406034FADC682F06732868; } for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$this->jpconfig["ntrend"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $this->jpconfig["gridposition"][0] + ($this->jpconfig["hspace"]*($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["startcol"]-1)) + $R20FD65E9C7406034FADC682F06732868; $R4C010D549D8CE12809958375A5227F8E = $this->jpconfig["gridposition"][0] + ($this->jpconfig["hspace"]*($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["endcol"]-1)) + $R20FD65E9C7406034FADC682F06732868; if ($R56ABCC62A788FCB4CA34E543EE25CB1A) { $R39B8A34E5D33E13371402A8E1AFBD8E9 = $R39B8A34E5D33E13371402A8E1AFBD8E9 + $this->jpconfig["hspace"]/2; $R4C010D549D8CE12809958375A5227F8E = $R4C010D549D8CE12809958375A5227F8E + $this->jpconfig["hspace"]/2; } $RC6CB727A00C2CB09673B207BE7AC1315 = $this->jpconfig["chartstarty"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $this->jpconfig["chartscale"]; if ($RC6CB727A00C2CB09673B207BE7AC1315<0) {$this->jpconfig["axis_ypos"] = $R718AC8B9DE9E39D46F178BF720F93912 + $this->jpconfig["vspace"]*$RC6CB727A00C2CB09673B207BE7AC1315/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$this->jpconfig["axis_ypos"] = $R718AC8B9DE9E39D46F178BF720F93912;} $RFCCE15C7CA39C5118F1628512E712E8C = $this->jpconfig["axis_ypos"] - $this->jpconfig["vspace"]*$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["startvalue"]/$R9BD6123CFA8B537BC33D9548D9A7D8F1; $R42A34F554125FC55DD7505E7A50DFDF0 = $this->jpconfig["axis_ypos"] - $this->jpconfig["vspace"]*$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["endvalue"]/$R9BD6123CFA8B537BC33D9548D9A7D8F1; $R2B55A5FCB5638BFA3AF0E195214677A3 = $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]; $R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($R2B55A5FCB5638BFA3AF0E195214677A3); switch ($RC9B17F62855605F20CC2819BE339307C[$RA16D2280393CE6A2A5428A4A8D09E354]) { case 1:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($R2B55A5FCB5638BFA3AF0E195214677A3);break; case 2:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($R2B55A5FCB5638BFA3AF0E195214677A3,$this->jpconfig["gridbgcolor"]);break; case 3:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 4:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 5:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$R2B55A5FCB5638BFA3AF0E195214677A3,$this->jpconfig["griddbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$R2B55A5FCB5638BFA3AF0E195214677A3,$this->jpconfig["griddbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; } imagesetstyle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R65A9EBDC909DAA427BA0B83FA6AB2BCA); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R39B8A34E5D33E13371402A8E1AFBD8E9, $RFCCE15C7CA39C5118F1628512E712E8C, $R4C010D549D8CE12809958375A5227F8E, $R42A34F554125FC55DD7505E7A50DFDF0, IMG_COLOR_STYLED); $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textstring = $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["text"]; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textcolor = $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textX = $R39B8A34E5D33E13371402A8E1AFBD8E9; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textY = $RFCCE15C7CA39C5118F1628512E712E8C - 2; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->setTextProps(); $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = 0.0; $R930A5C01FF0890D773D426187CAD75C9 = $R4C010D549D8CE12809958375A5227F8E-$R39B8A34E5D33E13371402A8E1AFBD8E9; $RE1F612839E73265CFB7E853AC7AB71B9 = $RFCCE15C7CA39C5118F1628512E712E8C-$R42A34F554125FC55DD7505E7A50DFDF0; if (abs($R930A5C01FF0890D773D426187CAD75C9)>0) { $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = rad2deg(atan($RE1F612839E73265CFB7E853AC7AB71B9/$R930A5C01FF0890D773D426187CAD75C9)); } $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } function draw_target_lines_h(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A = false) { if ($this->jpconfig["ntarget"]<1) {return;} $R39B8A34E5D33E13371402A8E1AFBD8E9 = $this->jpconfig["gridposition"][0]; $R718AC8B9DE9E39D46F178BF720F93912 = $this->jpconfig["gridposition"][1]; $R20FD65E9C7406034FADC682F06732868 = 0; $RCF842228F8F602229EFF70A3EC087CE2 = $R718AC8B9DE9E39D46F178BF720F93912 - $this->jpconfig["vspace"]*$this->jpconfig["nbars"]; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$this->jpconfig["ntarget"];$RA16D2280393CE6A2A5428A4A8D09E354++) { if ($RBF902F888A7A27C3E6036FE7C8FB44BE["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["scale"]==0) { $R2F5E4269FA92977B74C052CF19B17D70 = $this->jpconfig["chartstartx"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $this->jpconfig["chartscale"]; } else { $R2F5E4269FA92977B74C052CF19B17D70 = $this->jpconfig["chartstartx2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $this->jpconfig["chartscale2"]; } if ($R2F5E4269FA92977B74C052CF19B17D70<0) {$this->jpconfig["axis_xpos"] = $R39B8A34E5D33E13371402A8E1AFBD8E9 - $this->jpconfig["hspace"]*$R2F5E4269FA92977B74C052CF19B17D70/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$this->jpconfig["axis_xpos"] = $R39B8A34E5D33E13371402A8E1AFBD8E9;} $R6673B904D73B1F6F2ACE8F2234E22320 = $this->jpconfig["axis_xpos"] + $this->jpconfig["hspace"]*$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["value"]/$R9BD6123CFA8B537BC33D9548D9A7D8F1; $R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]); switch ($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["style"]) { case 1:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]);break; case 2:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"]);break; case 3:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 4:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 5:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; } imagesetstyle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R65A9EBDC909DAA427BA0B83FA6AB2BCA); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R6673B904D73B1F6F2ACE8F2234E22320, $R718AC8B9DE9E39D46F178BF720F93912, $R6673B904D73B1F6F2ACE8F2234E22320, $RCF842228F8F602229EFF70A3EC087CE2, IMG_COLOR_STYLED); $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textstring = $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["text"]; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textX = $R6673B904D73B1F6F2ACE8F2234E22320; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textY = $RCF842228F8F602229EFF70A3EC087CE2; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textcolor = $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = 270.0; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->setTextProps(); $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textX = $R6673B904D73B1F6F2ACE8F2234E22320 + $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textHeight / 2; $this->jpconfig["targetLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } function draw_trend_lines_h(&$R90B42A0A84ED04CF1E133E7D0B4C87FD,$R56ABCC62A788FCB4CA34E543EE25CB1A = false) { if ($this->jpconfig["ntrend"]<1) {return;} $R39B8A34E5D33E13371402A8E1AFBD8E9 = $this->jpconfig["gridposition"][0]; $R20FD65E9C7406034FADC682F06732868 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354=1;$RA16D2280393CE6A2A5428A4A8D09E354<=$this->jpconfig["ntrend"];$RA16D2280393CE6A2A5428A4A8D09E354++) { $R718AC8B9DE9E39D46F178BF720F93912 = $this->jpconfig["gridposition"][1] - (($this->jpconfig["barwidth"]+$this->jpconfig["barspacing"])*$this->jpconfig["nseries"]+$this->jpconfig["barspacing"])*($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["startcol"]-1); $RCF842228F8F602229EFF70A3EC087CE2 = $R718AC8B9DE9E39D46F178BF720F93912 - $this->jpconfig["vspace"]*$this->jpconfig["nbars"]; if ($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["scale"]==0) { $R2F5E4269FA92977B74C052CF19B17D70 = $this->jpconfig["chartstartx"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $this->jpconfig["chartscale"]; } else { $R2F5E4269FA92977B74C052CF19B17D70 = $this->jpconfig["chartstartx2"]; $R9BD6123CFA8B537BC33D9548D9A7D8F1 = $this->jpconfig["chartscale2"]; } if ($R2F5E4269FA92977B74C052CF19B17D70<0) {$this->jpconfig["axis_xpos"] = $R39B8A34E5D33E13371402A8E1AFBD8E9 - $this->jpconfig["hspace"]*$R2F5E4269FA92977B74C052CF19B17D70/$R9BD6123CFA8B537BC33D9548D9A7D8F1;} else {$this->jpconfig["axis_xpos"] = $R39B8A34E5D33E13371402A8E1AFBD8E9;} $R0CE457FE5A82277E2A1854FA808F36E8 = $this->jpconfig["axis_xpos"] + $this->jpconfig["hspace"]*$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["startvalue"]/$R9BD6123CFA8B537BC33D9548D9A7D8F1; $R89D4CCD5924188ACF6F4F4E0D6220324 = $this->jpconfig["axis_xpos"] + $this->jpconfig["hspace"]*$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["endvalue"]/$R9BD6123CFA8B537BC33D9548D9A7D8F1; $R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]); switch ($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["style"]) { case 1:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]);break; case 2:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"]);break; case 3:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 4:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; case 5:$R65A9EBDC909DAA427BA0B83FA6AB2BCA = array($this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"],$this->jpconfig["gridbgcolor"]);break; } imagesetstyle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R65A9EBDC909DAA427BA0B83FA6AB2BCA); imageline ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R0CE457FE5A82277E2A1854FA808F36E8, $R718AC8B9DE9E39D46F178BF720F93912, $R89D4CCD5924188ACF6F4F4E0D6220324, $RCF842228F8F602229EFF70A3EC087CE2, IMG_COLOR_STYLED); $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textstring = $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["text"]; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textcolor = $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["color"]; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textX = $R89D4CCD5924188ACF6F4F4E0D6220324 + 4; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textY = $RCF842228F8F602229EFF70A3EC087CE2; $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->setTextProps(); $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = 0.0; $R930A5C01FF0890D773D426187CAD75C9 = $R89D4CCD5924188ACF6F4F4E0D6220324-$R0CE457FE5A82277E2A1854FA808F36E8; $RE1F612839E73265CFB7E853AC7AB71B9 = $R718AC8B9DE9E39D46F178BF720F93912-$RCF842228F8F602229EFF70A3EC087CE2; if (abs($R930A5C01FF0890D773D426187CAD75C9)>0) { if ($R0CE457FE5A82277E2A1854FA808F36E8<$R89D4CCD5924188ACF6F4F4E0D6220324) { $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = 180+rad2deg(atan($RE1F612839E73265CFB7E853AC7AB71B9/$R930A5C01FF0890D773D426187CAD75C9)); } else { $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = rad2deg(atan($RE1F612839E73265CFB7E853AC7AB71B9/$R930A5C01FF0890D773D426187CAD75C9)); } } if ($R0CE457FE5A82277E2A1854FA808F36E8 == $R89D4CCD5924188ACF6F4F4E0D6220324) { $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->textangle = 270.0; } $this->jpconfig["trendLines"][$RA16D2280393CE6A2A5428A4A8D09E354]["textObj"]->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); } } } class JPtext { var $R187D26E02BC779CC738D13909E071215; var $RCD6BB29DB626D86FF765D5E7D772C311; var $R626C48AD05CCA8081FF70C7E5A6763F1; var $R2F2B429599DBB61A570DD0FF16A65B92; var $RC5CB7A336392800CF826D173647C6E6E; var $R4564FE37B88103C8EE7163EF77390419; var $R2A387A0AF92B5239C83F89205982B534; var $R3F82A91E1A5E0BE7A0F3F94D98DD959F; var $R9B7A40B34888A7E76A600E9F3511CAEA; var $RB684A770457D96344CCE74A7B024F4A2; var $R9DDB77BD43A984C0DA26825167919005; var $RB7F306DC76AEAD18160AEFAA3696CC91; var $R18F9AFF6FA5AFEC82DB20245B6C6B85E; function JPtext($RCD6BB29DB626D86FF765D5E7D772C311 = 10) { $this->textstring = " "; $this->textfontsize = $RCD6BB29DB626D86FF765D5E7D772C311; $this->textfontfamily = "arial"; $this->textbold = false; $this->textitalic = false; $this->textangle = 0.0; $this->textX = -1; $this->textY = -1; $this->textcolor = 0; $this->textboundBox = array(); $this->textWidth = 0; $this->textHeight = 0; $RF7A4A3D80AAB1F02B2345463F2CA4A9F = $this->getFontFileName($this->textfontfamily,$this->textbold,$this->textitalic); $this->usettf = TRUE; if (!file_exists($RF7A4A3D80AAB1F02B2345463F2CA4A9F) || !function_exists('imagettftext') || !function_exists('imagettfbbox')) { $this->usettf = FALSE; } } function drawText(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { if (strlen($this->textstring)<1) {return;} $RF7A4A3D80AAB1F02B2345463F2CA4A9F = $this->getFontFileName($this->textfontfamily,$this->textbold,$this->textitalic); $this->usettf = TRUE; if (!file_exists($RF7A4A3D80AAB1F02B2345463F2CA4A9F) || !function_exists('imagettftext') || !function_exists('imagettfbbox')) { $this->usettf = FALSE; } if ($this->usettf) { imagettftext ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $this->textfontsize, $this->textangle, $this->textX, $this->textY, $this->textcolor, $RF7A4A3D80AAB1F02B2345463F2CA4A9F, $this->textstring ); } else { imagestring ($R90B42A0A84ED04CF1E133E7D0B4C87FD, 3, $this->textX, $this->textY - imagefontheight(3), $this->textstring, $this->textcolor); } } function setTextProps() { $RF7A4A3D80AAB1F02B2345463F2CA4A9F = $this->getFontFileName($this->textfontfamily,$this->textbold,$this->textitalic); $this->usettf = TRUE; if (!file_exists($RF7A4A3D80AAB1F02B2345463F2CA4A9F) || !function_exists('imagettftext') || !function_exists('imagettfbbox')) { $this->usettf = FALSE; } if ($this->usettf) { $this->textboundBox = imagettfbbox ($this->textfontsize, 0.0, $RF7A4A3D80AAB1F02B2345463F2CA4A9F, $this->textstring ); $this->textWidth = $this->textboundBox[2] - $this->textboundBox[0]; $this->textHeight = $this->textboundBox[0] - $this->textboundBox[5]; } else { $this->textWidth = imagefontwidth(3) * strlen($this->textstring); $this->textHeight = imagefontheight(3); } } function getFontFileName($R7F8F2CBD1D69EA1D594D245B887882FB,$RB1A9EA915EC8C0EC1670C6292172E75A,$R7709D352486097A8CB42B0FC8EAC3BDC) { $RF8DC4E5CE892A1148E846EC26A59AA1A = array("ari", "alb", "hel", "Nim", "san"); $R7C22A9D984578BFE6EF21518029E37F7 = array("tim", "tho", "rom", "ser"); $R795CB3E79A324A9A1607C13C45880ED7 = array("cou", "cum", "mon"); $R9764A70C2733FA07B5D55BBB09E72411 = "sans"; $R7F8F2CBD1D69EA1D594D245B887882FB = trim(strtolower($R7F8F2CBD1D69EA1D594D245B887882FB)); if (strlen($R7F8F2CBD1D69EA1D594D245B887882FB)>3) { $R7F8F2CBD1D69EA1D594D245B887882FB = substr($R7F8F2CBD1D69EA1D594D245B887882FB,0,3); } if (in_array($R7F8F2CBD1D69EA1D594D245B887882FB,$RF8DC4E5CE892A1148E846EC26A59AA1A)) {$R9764A70C2733FA07B5D55BBB09E72411 = "sans";} if (in_array($R7F8F2CBD1D69EA1D594D245B887882FB,$R7C22A9D984578BFE6EF21518029E37F7)) {$R9764A70C2733FA07B5D55BBB09E72411 = "serif";} if (in_array($R7F8F2CBD1D69EA1D594D245B887882FB,$R795CB3E79A324A9A1607C13C45880ED7)) {$R9764A70C2733FA07B5D55BBB09E72411 = "mono";} $RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/fonts/LiberationSans-Regular.ttf"; switch ($R9764A70C2733FA07B5D55BBB09E72411) { case "sans": $RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansRegular.ttf"; if ($RB1A9EA915EC8C0EC1670C6292172E75A) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansBold.ttf";} if ($R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansItalic.ttf";} if ($RB1A9EA915EC8C0EC1670C6292172E75A && $R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansBoldItalic.ttf";} break; case "serif": $RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSerifRegular.ttf"; if ($RB1A9EA915EC8C0EC1670C6292172E75A) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSerifBold.ttf";} if ($R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSerifItalic.ttf";} if ($RB1A9EA915EC8C0EC1670C6292172E75A && $R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSerifBoldItalic.ttf";} break; case "mono": $RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationMonoRegular.ttf"; if ($RB1A9EA915EC8C0EC1670C6292172E75A) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationMonoBold.ttf";} if ($R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationMonoItalic.ttf";} if ($RB1A9EA915EC8C0EC1670C6292172E75A && $R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationMonoBoldItalic.ttf";} break; default: $RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansRegular.ttf"; if ($RB1A9EA915EC8C0EC1670C6292172E75A) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansBold.ttf";} if ($R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansItalic.ttf";} if ($RB1A9EA915EC8C0EC1670C6292172E75A && $R7709D352486097A8CB42B0FC8EAC3BDC) {$RF7A4A3D80AAB1F02B2345463F2CA4A9F = getcwd()."/common/fonts/LiberationSansBoldItalic.ttf";} break; } return $RF7A4A3D80AAB1F02B2345463F2CA4A9F; } } class JPlegend { var $R8BC81E6F34816827D757D50A79EDC01A; var $RAA5A6D900F5AB6333EFB1404DB60CA6E; var $R2557EE78159A639F26F86824302BE6EF; var $R2219355B3E3692F87966F8EC440EE48D; var $R6DD08B822124847CD418CBF96EC41DFD; var $RA3875C4AB3BC48B73A575B6F129D04AD; var $RCCCC677FB225A4D67A9B410A2276929D; var $RB9C1F22E5311915474C49B29D5C42E62; var $R987498DA07E7E77002A86474CC716142; var $R21D17335F0604CE7612BDDC0B425825E; var $RB2215B638672AD61210F28BE8A8F5E1A; var $RFE4DA6D035760CF57DDC0298FB6A8438; var $R82BDEFF18D28C84ACE90DC157F3E6CB0; var $R71CE34A35EAD48A6A008DE4062DB22B9; var $R10A963FA0EF262B7E4382331CCE3B737; var $R5A1D22E8CC3AEBF409C96A61F33ED09B; var $R8975BD1D4447FAAB93AD5097B53DC4EA; function JPlegend() { $this->legenddisplay = true; $this->legendstyle = 0; $this->legendbgcolor = 0; $this->legendbordercolor = 0; $this->legendtitle = ""; $this->legendtextcolor = 0; $this->legendxpos = -1; $this->legendypos = -1; $this->legendwidth = 0; $this->legendheight = 0; $this->legendlabels = array(); $this->legendseriescolors = array(); $this->legendfontsize = 12; $this->legendfontfamily = "arial"; $this->legendbold = false; $this->legenditalic = false; $this->basegap = 4; } function drawLegend(&$R90B42A0A84ED04CF1E133E7D0B4C87FD) { if (count($this->legendlabels) < 1) { return; } if ($this->legenddisplay) { $R8725029EA89712EED8670BAE64D30E47 = $this->legendxpos; $R36A4DC9CCF2BDC09D800556724231FC6 = $this->legendypos; $R3F243E13444F693A59F15AA5D424B3BE = new JPtext($this->legendfontsize); $R3F243E13444F693A59F15AA5D424B3BE->textstring = " "; $R3F243E13444F693A59F15AA5D424B3BE->textfontfamily = $this->legendfontfamily; $R3F243E13444F693A59F15AA5D424B3BE->textbold = $this->legendbold; $R3F243E13444F693A59F15AA5D424B3BE->textitalic = $this->legenditalic; $R3F243E13444F693A59F15AA5D424B3BE->textangle = 0.0; $R3F243E13444F693A59F15AA5D424B3BE->textX = 0; $R3F243E13444F693A59F15AA5D424B3BE->textY = 0; $R3F243E13444F693A59F15AA5D424B3BE->textcolor = $this->legendtextcolor; imagefilledrectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $this->legendxpos, $this->legendypos, $this->legendxpos+$this->legendwidth, $this->legendypos+$this->legendheight, $this->legendbgcolor); imagerectangle($R90B42A0A84ED04CF1E133E7D0B4C87FD, $this->legendxpos, $this->legendypos, $this->legendxpos+$this->legendwidth, $this->legendypos+$this->legendheight, $this->legendbordercolor); $R8725029EA89712EED8670BAE64D30E47++; $R36A4DC9CCF2BDC09D800556724231FC6++; if ($this->legendtitle!="") { $R3F243E13444F693A59F15AA5D424B3BE->textstring = $this->legendtitle; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $R3F243E13444F693A59F15AA5D424B3BE->textX = $this->legendxpos + ($this->legendwidth - $R3F243E13444F693A59F15AA5D424B3BE->textWidth)/2; $R3F243E13444F693A59F15AA5D424B3BE->textY = $this->basegap + $this->legendypos + $R3F243E13444F693A59F15AA5D424B3BE->textHeight; $R3F243E13444F693A59F15AA5D424B3BE->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R36A4DC9CCF2BDC09D800556724231FC6 = $R3F243E13444F693A59F15AA5D424B3BE->textY + $this->basegap; } $R3F243E13444F693A59F15AA5D424B3BE->textstring = "A"; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $R845F0070C558A3EB267FE1D394C8B71C = $R3F243E13444F693A59F15AA5D424B3BE->textHeight; $REF786387123000B039DE5364C745DA60 = 3*$R845F0070C558A3EB267FE1D394C8B71C/4; if ($this->legendstyle == 1) { $R36A4DC9CCF2BDC09D800556724231FC6 = $R36A4DC9CCF2BDC09D800556724231FC6 + + $this->basegap + $R845F0070C558A3EB267FE1D394C8B71C; $R62699F68E6D19C5B442A3C94F7D2AF37 = $R36A4DC9CCF2BDC09D800556724231FC6-$R845F0070C558A3EB267FE1D394C8B71C/8; for ($RA16D2280393CE6A2A5428A4A8D09E354=0; $RA16D2280393CE6A2A5428A4A8D09E354legendlabels); $RA16D2280393CE6A2A5428A4A8D09E354++) { $R8725029EA89712EED8670BAE64D30E47 = $R8725029EA89712EED8670BAE64D30E47 + $this->basegap; imagefilledrectangle ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R8725029EA89712EED8670BAE64D30E47, $R62699F68E6D19C5B442A3C94F7D2AF37-$REF786387123000B039DE5364C745DA60, $R8725029EA89712EED8670BAE64D30E47+$REF786387123000B039DE5364C745DA60, $R62699F68E6D19C5B442A3C94F7D2AF37, $this->legendseriescolors[$RA16D2280393CE6A2A5428A4A8D09E354]); $R8725029EA89712EED8670BAE64D30E47 = $R8725029EA89712EED8670BAE64D30E47 + $REF786387123000B039DE5364C745DA60 + $this->basegap; $R3F243E13444F693A59F15AA5D424B3BE->textstring = $this->legendlabels[$RA16D2280393CE6A2A5428A4A8D09E354]; $R3F243E13444F693A59F15AA5D424B3BE->textX = $R8725029EA89712EED8670BAE64D30E47; $R3F243E13444F693A59F15AA5D424B3BE->textY = $R36A4DC9CCF2BDC09D800556724231FC6; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $R3F243E13444F693A59F15AA5D424B3BE->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R8725029EA89712EED8670BAE64D30E47 = $R8725029EA89712EED8670BAE64D30E47 + $R3F243E13444F693A59F15AA5D424B3BE->textWidth + 2*$this->basegap; } } else { $R8725029EA89712EED8670BAE64D30E47 = $R8725029EA89712EED8670BAE64D30E47 + $this->basegap; $R36A4DC9CCF2BDC09D800556724231FC6 = $R36A4DC9CCF2BDC09D800556724231FC6 + $this->basegap; for ($RA16D2280393CE6A2A5428A4A8D09E354=0; $RA16D2280393CE6A2A5428A4A8D09E354legendlabels); $RA16D2280393CE6A2A5428A4A8D09E354++) { $R36A4DC9CCF2BDC09D800556724231FC6 = $R36A4DC9CCF2BDC09D800556724231FC6 + $R845F0070C558A3EB267FE1D394C8B71C; $R62699F68E6D19C5B442A3C94F7D2AF37 = $R36A4DC9CCF2BDC09D800556724231FC6-$R845F0070C558A3EB267FE1D394C8B71C/8; imagefilledrectangle ($R90B42A0A84ED04CF1E133E7D0B4C87FD, $R8725029EA89712EED8670BAE64D30E47, $R62699F68E6D19C5B442A3C94F7D2AF37-$REF786387123000B039DE5364C745DA60, $R8725029EA89712EED8670BAE64D30E47+$REF786387123000B039DE5364C745DA60, $R62699F68E6D19C5B442A3C94F7D2AF37, $this->legendseriescolors[$RA16D2280393CE6A2A5428A4A8D09E354]); $R3F243E13444F693A59F15AA5D424B3BE->textstring = $this->legendlabels[$RA16D2280393CE6A2A5428A4A8D09E354]; $R3F243E13444F693A59F15AA5D424B3BE->textX = $R8725029EA89712EED8670BAE64D30E47 + $this->basegap + $REF786387123000B039DE5364C745DA60 + $this->basegap; $R3F243E13444F693A59F15AA5D424B3BE->textY = $R36A4DC9CCF2BDC09D800556724231FC6; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $R3F243E13444F693A59F15AA5D424B3BE->drawText($R90B42A0A84ED04CF1E133E7D0B4C87FD); $R36A4DC9CCF2BDC09D800556724231FC6 = $R36A4DC9CCF2BDC09D800556724231FC6 + $this->basegap; } } } return; } function setProps() { $R3F243E13444F693A59F15AA5D424B3BE = new JPtext($this->legendfontsize); $R3F243E13444F693A59F15AA5D424B3BE->textstring = "A"; $R3F243E13444F693A59F15AA5D424B3BE->textfontfamily = $this->legendfontfamily; $R3F243E13444F693A59F15AA5D424B3BE->textbold = $this->legendbold; $R3F243E13444F693A59F15AA5D424B3BE->textitalic = $this->legenditalic; $R3F243E13444F693A59F15AA5D424B3BE->textangle = 0.0; $R3F243E13444F693A59F15AA5D424B3BE->textX = 0; $R3F243E13444F693A59F15AA5D424B3BE->textY = 0; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $R845F0070C558A3EB267FE1D394C8B71C = $R3F243E13444F693A59F15AA5D424B3BE->textHeight; $REF786387123000B039DE5364C745DA60 = 3*$R845F0070C558A3EB267FE1D394C8B71C/4; $RF20FC14612B05A63D346EFECF4051167 = 0; $R6F4E726BB0306FE1D496A77A0BD997C9 = 0; if ($this->legendtitle!="") { $R3F243E13444F693A59F15AA5D424B3BE->textstring = $this->legendtitle; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $RF20FC14612B05A63D346EFECF4051167 = $this->basegap + $R3F243E13444F693A59F15AA5D424B3BE->textWidth + $this->basegap; $R6F4E726BB0306FE1D496A77A0BD997C9 = $this->basegap + $R3F243E13444F693A59F15AA5D424B3BE->textHeight; } if ($this->legendstyle == 1) { $R69BC07A6CB1CAEA2F6A333619B7DAA60 = 0; for ($RA16D2280393CE6A2A5428A4A8D09E354=0; $RA16D2280393CE6A2A5428A4A8D09E354legendlabels); $RA16D2280393CE6A2A5428A4A8D09E354++) { $R69BC07A6CB1CAEA2F6A333619B7DAA60 = $R69BC07A6CB1CAEA2F6A333619B7DAA60 + $this->basegap; $R69BC07A6CB1CAEA2F6A333619B7DAA60 = $R69BC07A6CB1CAEA2F6A333619B7DAA60 + $REF786387123000B039DE5364C745DA60 + $this->basegap; $R3F243E13444F693A59F15AA5D424B3BE->textstring = $this->legendlabels[$RA16D2280393CE6A2A5428A4A8D09E354]; $R3F243E13444F693A59F15AA5D424B3BE->textX = $R8725029EA89712EED8670BAE64D30E47; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $R69BC07A6CB1CAEA2F6A333619B7DAA60 = $R69BC07A6CB1CAEA2F6A333619B7DAA60 + $R3F243E13444F693A59F15AA5D424B3BE->textWidth + 2*$this->basegap; } $this->legendwidth = $RF20FC14612B05A63D346EFECF4051167; if ($R69BC07A6CB1CAEA2F6A333619B7DAA60 > $this->legendwidth) { $this->legendwidth = $R69BC07A6CB1CAEA2F6A333619B7DAA60; } $this->legendheight = $R6F4E726BB0306FE1D496A77A0BD997C9 + 2*$this->basegap + $R845F0070C558A3EB267FE1D394C8B71C + $this->basegap; } else { $REDC007496C1445189AF037508BBA4E23 = $RF20FC14612B05A63D346EFECF4051167; $this->legendheight = $this->basegap + $R6F4E726BB0306FE1D496A77A0BD997C9 + count($this->legendlabels) * ($R845F0070C558A3EB267FE1D394C8B71C + $this->basegap) + $this->basegap; for ($RA16D2280393CE6A2A5428A4A8D09E354=0; $RA16D2280393CE6A2A5428A4A8D09E354legendlabels); $RA16D2280393CE6A2A5428A4A8D09E354++) { $RE65E8A721F5BF42C4DC5AEFBD9E60789 = $this->basegap + $REF786387123000B039DE5364C745DA60 + $this->basegap; $R3F243E13444F693A59F15AA5D424B3BE->textstring = $this->legendlabels[$RA16D2280393CE6A2A5428A4A8D09E354]; $R3F243E13444F693A59F15AA5D424B3BE->textX = 1; $R3F243E13444F693A59F15AA5D424B3BE->textY = 1; $R3F243E13444F693A59F15AA5D424B3BE->setTextProps(); $RE65E8A721F5BF42C4DC5AEFBD9E60789 = $this->basegap + $REF786387123000B039DE5364C745DA60 + $this->basegap + $R3F243E13444F693A59F15AA5D424B3BE->textWidth + 2*$this->basegap; if ($RE65E8A721F5BF42C4DC5AEFBD9E60789 > $REDC007496C1445189AF037508BBA4E23) {$REDC007496C1445189AF037508BBA4E23 = $RE65E8A721F5BF42C4DC5AEFBD9E60789;} } $this->legendwidth = $REDC007496C1445189AF037508BBA4E23; } } function setLegendStyle($R7F6045D9D5F4D9047AD84E4499F620E0 = "h") { $R7F6045D9D5F4D9047AD84E4499F620E0 = trim(strtolower($R7F6045D9D5F4D9047AD84E4499F620E0)); if (strlen($R7F6045D9D5F4D9047AD84E4499F620E0)<1) {$R7F6045D9D5F4D9047AD84E4499F620E0 = "h";} $this->legendstyle = 1; $R7F6045D9D5F4D9047AD84E4499F620E0 = substr($R7F6045D9D5F4D9047AD84E4499F620E0, 0, 1); if ($R7F6045D9D5F4D9047AD84E4499F620E0 == "h") {$this->legendstyle = 1;} if ($R7F6045D9D5F4D9047AD84E4499F620E0 == "v") {$this->legendstyle = 2;} } function addLabel($R378C1FA7F97D2F4D9991C944CA4014C0, $R1849DF6AF84C6815023B2D6532697EDA) { $this->legendlabels[] = $R378C1FA7F97D2F4D9991C944CA4014C0; $this->legendseriescolors[] = $R1849DF6AF84C6815023B2D6532697EDA; } } class JPdataItemObj { var $RC9DBDF4721AC0E496701B4A1B2C1B850; var $R1E340E3A3063D21BAE0F4D29175A1396; var $R3BA41F121F38C6EC12088E1AC566D282; var $R5C4A8967E55E88E31B7E666525ED4904; var $R41FC668B39FBDBEB76951FA320D6EB65; var $R738990C3F93B860AFCE0CC5DF9C3441C; var $R8B5C5C7420908EE57735A724D10163E8; var $R84BE767309081F7C818D02E9379C05BC; var $R4DE867C390D8F497EAA524621B508A96; var $RC6F12DCF226B3905641D8BF6012DB038; var $R34B502237184266B75745FD1FA00B7D9; var $RBCB8C07EFFA6E9E44005743775FF874C; var $R7F22D55EB052491353DECBBF1154A073; function dataItemObj() { $this->valueX = 0.0; $this->valueY = 0.0; $this->valueZ = 0.0; $this->datalink = ""; $this->targetWindow = ""; $this->datatext = ""; $this->isNullValue = true; $this->shape = "rect"; $this->shapecoords = array(0,0,0,0); $this->dataColor = false; } function setDataValues($R1E340E3A3063D21BAE0F4D29175A1396,$RB1108A833E95DCCE8C06E4E007B1044F) { $this->dataSeqNumber = $R1E340E3A3063D21BAE0F4D29175A1396; if (isset($RB1108A833E95DCCE8C06E4E007B1044F[0])) { $R611DDA887605F3CDD280093F704CE27A = explode(",",$RB1108A833E95DCCE8C06E4E007B1044F[0]); if (isset($R611DDA887605F3CDD280093F704CE27A[0])) { $this->valueX = verifyreal(trim($R611DDA887605F3CDD280093F704CE27A[0]),"0.0"); $this->isNullValue = false; } if (isset($R611DDA887605F3CDD280093F704CE27A[1])) { $this->valueY = verifyreal(trim($R611DDA887605F3CDD280093F704CE27A[1]),"0.0"); } if (isset($R611DDA887605F3CDD280093F704CE27A[2])) { $this->valueZ = verifyreal(trim($R611DDA887605F3CDD280093F704CE27A[2]),"0.0"); } } if (isset($RB1108A833E95DCCE8C06E4E007B1044F[1])) { $this->datatext = $RB1108A833E95DCCE8C06E4E007B1044F[1]; } if (isset($RB1108A833E95DCCE8C06E4E007B1044F[2])) { $this->datalink = $RB1108A833E95DCCE8C06E4E007B1044F[2]; } if (isset($RB1108A833E95DCCE8C06E4E007B1044F[3])) { $this->targetWindow = $RB1108A833E95DCCE8C06E4E007B1044F[3]; } return; } function setDataValue($R1E340E3A3063D21BAE0F4D29175A1396, $RFDD8ED154C8DFC087070361D1F94A583, $R5C4A8967E55E88E31B7E666525ED4904 = 0.0, $R41FC668B39FBDBEB76951FA320D6EB65 = 0.0, $R738990C3F93B860AFCE0CC5DF9C3441C = 0.0) { $this->dataSeqNumber = $R1E340E3A3063D21BAE0F4D29175A1396; $this->valueX = $R5C4A8967E55E88E31B7E666525ED4904; $this->valueY = $R41FC668B39FBDBEB76951FA320D6EB65; $this->valueZ = $R738990C3F93B860AFCE0CC5DF9C3441C; $this->isNullValue = $RFDD8ED154C8DFC087070361D1F94A583; return; } function setLinkTarget($R84BE767309081F7C818D02E9379C05BC = "", $R4DE867C390D8F497EAA524621B508A96 = "_self") { $this->datalink = $R84BE767309081F7C818D02E9379C05BC; $this->targetWindow = $R4DE867C390D8F497EAA524621B508A96; return; } function setDatatext($RC6F12DCF226B3905641D8BF6012DB038 = "") { $this->datatext = $RC6F12DCF226B3905641D8BF6012DB038; return; } function setDataColor($R34B502237184266B75745FD1FA00B7D9) { $this->dataColor = $R34B502237184266B75745FD1FA00B7D9; return; } function setShape($RBCB8C07EFFA6E9E44005743775FF874C) { $RBCB8C07EFFA6E9E44005743775FF874C = strtolower(trim($RBCB8C07EFFA6E9E44005743775FF874C)); switch($RBCB8C07EFFA6E9E44005743775FF874C) { case "rect": $this->shape = "rect"; break; case "circle": $this->shape = "circle"; break; case "poly": $this->shape = "poly"; break; default: $this->shape = "rect"; } return; } function setShapecoords($R7F22D55EB052491353DECBBF1154A073) { $this->shapecoords = $R7F22D55EB052491353DECBBF1154A073; return; } function getIsNullValue() { return $this->isNullValue; } function getValueX() { return $this->valueX; } function getValueY() { return $this->valueY; } function getValueZ() { return $this->valueZ; } function getDatalink() { return $this->datalink; } function getTargetWindow() { return $this->targetWindow; } function getDatatext() { return $this->datatext; } function getDataSeqNumber() { return $this->dataSeqNumber; } function getShape() { return $this->shape; } function getShapecoords() { return $this->shapecoords; } function getShapecoordsAsString() { $RAFB84495050ECF3BBB6ABF1A9D5A2390 = ""; $R3FD5A5A0DC94CDA9DF95881A4D6366CD = true; for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354shapecoords);$RA16D2280393CE6A2A5428A4A8D09E354++) { if ($R3FD5A5A0DC94CDA9DF95881A4D6366CD) { $R3FD5A5A0DC94CDA9DF95881A4D6366CD = false; } else { $RAFB84495050ECF3BBB6ABF1A9D5A2390 .= ","; } $RAFB84495050ECF3BBB6ABF1A9D5A2390 .= (int)$this->shapecoords[$RA16D2280393CE6A2A5428A4A8D09E354]; } return $RAFB84495050ECF3BBB6ABF1A9D5A2390; } function detDataColor() { return $this->dataColor; } } class JPseriesObj { var $R6F7F170701859062DAD123413E09EC5A; var $RA0D2C1D6CF7448EA63355AFF8FD24D07; var $R1FF6DEB901C76D0BD98A40DC886659D5; var $R881C058EDB96E2950C005431B9A1A7C7; var $RD92A73FA5A70C0524CAAC851DA0519C5; var $R1684E87DF8B8A0A2C68BB2C46D6E1FAC; var $R299EF7FBEF252821F3492C49C6ECC412; var $R3186037EF1F216D6DB170D63B21755F5; var $R0BE37C4D38D2398CA0E66D4383B7D0C4; var $R2970DA8A167A997C81123104DBEA96C9; function seriesObj() { $this->dataArray = array(); $this->nDataItems = 0; $this->seriesColor = 0; $this->seriesTitle = ""; $this->pointSymbol = 0; $this->whichScale = 0; $this->pointSize = 1; $this->pointFill = true; $this->linestyle = "solid"; $this->seriestype = "bar"; } function addDataObj(&$RE770CF0AE8B70E85240509B4577D7B53) { $this->dataArray[$RE770CF0AE8B70E85240509B4577D7B53->getDataSeqNumber()] = $RE770CF0AE8B70E85240509B4577D7B53; if ( ($RE770CF0AE8B70E85240509B4577D7B53->getDataSeqNumber()) > $this->nDataItems) { $this->nDataItems = $RE770CF0AE8B70E85240509B4577D7B53->getDataSeqNumber(); } return; } function addSeriesInfo($R3882A427AF6B1C2DCCD99E012F639DDD) { global $RBF902F888A7A27C3E6036FE7C8FB44BE; $RBF902F888A7A27C3E6036FE7C8FB44BE['chart-style'] = $RBF902F888A7A27C3E6036FE7C8FB44BE['chartStyle']; $R6C6EC134CDC80615F892171BD7325383 = explode("|", $R3882A427AF6B1C2DCCD99E012F639DDD); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "area-graph") { $this->seriestype = "area"; $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"area", 1=>"#808080", 2=>" ", 3=>"1", 4=>"circle", 5=>"true", 6=>"solid"); if (isset($R6C6EC134CDC80615F892171BD7325383[0])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[0];} if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[2];} if (isset($R6C6EC134CDC80615F892171BD7325383[3])) {$RCEEFEBF769973BC15B47970F0B687093[4] = $R6C6EC134CDC80615F892171BD7325383[3];} if (isset($R6C6EC134CDC80615F892171BD7325383[4])) {$RCEEFEBF769973BC15B47970F0B687093[5] = $R6C6EC134CDC80615F892171BD7325383[4];} if (isset($R6C6EC134CDC80615F892171BD7325383[5])) {$RCEEFEBF769973BC15B47970F0B687093[6] = $R6C6EC134CDC80615F892171BD7325383[5];} } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "line-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "xy-scatter-graph") { $this->seriestype = "line"; $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"line", 1=>"#808080", 2=>" ", 3=>"1", 4=>"circle", 5=>"true", 6=>"solid"); if (isset($R6C6EC134CDC80615F892171BD7325383[0])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[0];} if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[2];} if (isset($R6C6EC134CDC80615F892171BD7325383[3])) {$RCEEFEBF769973BC15B47970F0B687093[4] = $R6C6EC134CDC80615F892171BD7325383[3];} if (isset($R6C6EC134CDC80615F892171BD7325383[4])) {$RCEEFEBF769973BC15B47970F0B687093[5] = $R6C6EC134CDC80615F892171BD7325383[4];} if (isset($R6C6EC134CDC80615F892171BD7325383[5])) {$RCEEFEBF769973BC15B47970F0B687093[6] = $R6C6EC134CDC80615F892171BD7325383[5];} } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "bubble-chart") { $this->seriestype = "bubble"; $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"bubble", 1=>"#808080", 2=>" ", 3=>"left", 4=>"1", 5=>"circle", 6=>"true", 7=>"solid"); if (isset($R6C6EC134CDC80615F892171BD7325383[0])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[0];} if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[2];} if (isset($R6C6EC134CDC80615F892171BD7325383[3])) {$RCEEFEBF769973BC15B47970F0B687093[4] = $R6C6EC134CDC80615F892171BD7325383[3];} if (isset($R6C6EC134CDC80615F892171BD7325383[4])) {$RCEEFEBF769973BC15B47970F0B687093[5] = $R6C6EC134CDC80615F892171BD7325383[4];} if (isset($R6C6EC134CDC80615F892171BD7325383[5])) {$RCEEFEBF769973BC15B47970F0B687093[6] = $R6C6EC134CDC80615F892171BD7325383[5];} if (isset($R6C6EC134CDC80615F892171BD7325383[6])) {$RCEEFEBF769973BC15B47970F0B687093[7] = $R6C6EC134CDC80615F892171BD7325383[6];} } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "horizontal-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "horizontal-cylinder-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "stacked-horizontal-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "stacked-horizontal-cylinder-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "stacked-vertical-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "stacked-vertical-cylinder-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "vertical-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "vertical-cylinder-graph") { $this->seriestype = "bar"; $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"bar", 1=>"#808080", 2=>" "); if (isset($R6C6EC134CDC80615F892171BD7325383[0])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[0];} if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[2];} } if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "area-stacked-vertical-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "area-vertical-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "line-stacked-vertical-bar-graph" || $RBF902F888A7A27C3E6036FE7C8FB44BE["chart-style"] == "line-vertical-bar-graph" ) { $this->seriestype = $this->verifyseriestype($R6C6EC134CDC80615F892171BD7325383[0]); if ($this->seriestype == 'area') { $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"area", 1=>"#808080", 2=>" ", 3=>"1", 4=>"circle", 5=>"true", 6=>"solid"); if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[2];} if (isset($R6C6EC134CDC80615F892171BD7325383[3])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[3];} if (isset($R6C6EC134CDC80615F892171BD7325383[4])) {$RCEEFEBF769973BC15B47970F0B687093[4] = $R6C6EC134CDC80615F892171BD7325383[4];} if (isset($R6C6EC134CDC80615F892171BD7325383[5])) {$RCEEFEBF769973BC15B47970F0B687093[5] = $R6C6EC134CDC80615F892171BD7325383[5];} if (isset($R6C6EC134CDC80615F892171BD7325383[6])) {$RCEEFEBF769973BC15B47970F0B687093[6] = $R6C6EC134CDC80615F892171BD7325383[6];} } if ($this->seriestype == 'bar') { $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"bar", 1=>"#808080", 2=>" "); if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[2];} if (isset($R6C6EC134CDC80615F892171BD7325383[3])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[3];} } if ($this->seriestype == 'line') { $RCEEFEBF769973BC15B47970F0B687093 = array(0=>"line", 1=>"#808080", 2=>" ", 3=>"1", 4=>"circle", 5=>"true", 6=>"solid"); if (isset($R6C6EC134CDC80615F892171BD7325383[1])) {$RCEEFEBF769973BC15B47970F0B687093[1] = $R6C6EC134CDC80615F892171BD7325383[1];} if (isset($R6C6EC134CDC80615F892171BD7325383[2])) {$RCEEFEBF769973BC15B47970F0B687093[2] = $R6C6EC134CDC80615F892171BD7325383[2];} if (isset($R6C6EC134CDC80615F892171BD7325383[3])) {$RCEEFEBF769973BC15B47970F0B687093[3] = $R6C6EC134CDC80615F892171BD7325383[3];} if (isset($R6C6EC134CDC80615F892171BD7325383[4])) {$RCEEFEBF769973BC15B47970F0B687093[4] = $R6C6EC134CDC80615F892171BD7325383[4];} if (isset($R6C6EC134CDC80615F892171BD7325383[5])) {$RCEEFEBF769973BC15B47970F0B687093[5] = $R6C6EC134CDC80615F892171BD7325383[5];} if (isset($R6C6EC134CDC80615F892171BD7325383[6])) {$RCEEFEBF769973BC15B47970F0B687093[6] = $R6C6EC134CDC80615F892171BD7325383[6];} } } switch($this->seriestype) { case "bar": $this->seriesColor = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080"); $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->addLabel(verifystring($RCEEFEBF769973BC15B47970F0B687093[2], " "), $this->seriesColor); if (isset($RCEEFEBF769973BC15B47970F0B687093[3])) { $this->whichScale = verifyaxis($RCEEFEBF769973BC15B47970F0B687093[3], "left"); } break; case "line": $this->seriesColor = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080"); $this->whichScale = verifyaxis($RCEEFEBF769973BC15B47970F0B687093[3], "left"); $this->pointSize = verifyint($RCEEFEBF769973BC15B47970F0B687093[4], "1");; $this->pointSymbol = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[5],"circle"); $this->pointFill = verifybool($RCEEFEBF769973BC15B47970F0B687093[6], "true"); $this->linestyle = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[7],"solid"); $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->addLabel(verifystring($RCEEFEBF769973BC15B47970F0B687093[2], " "), $this->seriesColor); break; case "area": $this->seriesColor = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080"); $this->pointSize = verifyint($RCEEFEBF769973BC15B47970F0B687093[3], "1");; $this->pointSymbol = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[4],"circle"); $this->pointFill = verifybool($RCEEFEBF769973BC15B47970F0B687093[5], "true"); $this->linestyle = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[6],"solid"); $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->addLabel(verifystring($RCEEFEBF769973BC15B47970F0B687093[2], " "), $this->seriesColor); break; case "bubble": $this->seriesColor = verifycolor($RCEEFEBF769973BC15B47970F0B687093[1],"#808080"); $this->whichScale = verifyaxis($RCEEFEBF769973BC15B47970F0B687093[3], "left"); $this->pointSize = verifyint($RCEEFEBF769973BC15B47970F0B687093[4], "1");; $this->pointSymbol = verifypointstyle($RCEEFEBF769973BC15B47970F0B687093[5],"circle"); $this->pointFill = verifybool($RCEEFEBF769973BC15B47970F0B687093[6], "true"); $this->linestyle = verifygridstyle($RCEEFEBF769973BC15B47970F0B687093[7],"solid"); $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->addLabel(verifystring($RCEEFEBF769973BC15B47970F0B687093[2], " "), $this->seriesColor); break; case "pie": break; } if ($this->pointSymbol == 0) { $this->pointSize = 1; } return; } function setSeriesColor($R1FF6DEB901C76D0BD98A40DC886659D5) { $this->seriesColor = $R1FF6DEB901C76D0BD98A40DC886659D5; } function setSeriesTitle($R881C058EDB96E2950C005431B9A1A7C7) { $this->seriesTitle = $R881C058EDB96E2950C005431B9A1A7C7; } function setPointSymbol($RD92A73FA5A70C0524CAAC851DA0519C5) { $this->pointSymbol = $RD92A73FA5A70C0524CAAC851DA0519C5; return; } function setWhichScale($R0BE37C4D38D2398CA0E66D4383B7D0C4) { $this->whichScale = $R0BE37C4D38D2398CA0E66D4383B7D0C4; return; } function setPointSize($R1684E87DF8B8A0A2C68BB2C46D6E1FAC) { $R1684E87DF8B8A0A2C68BB2C46D6E1FAC = (int)$R1684E87DF8B8A0A2C68BB2C46D6E1FAC; if ($R1684E87DF8B8A0A2C68BB2C46D6E1FAC < 0) { $R1684E87DF8B8A0A2C68BB2C46D6E1FAC = 0; } $this->pointSize = $R1684E87DF8B8A0A2C68BB2C46D6E1FAC; return; } function setPointFill($R299EF7FBEF252821F3492C49C6ECC412) { $this->pointFill = $R299EF7FBEF252821F3492C49C6ECC412; return; } function setLinestyle($R3186037EF1F216D6DB170D63B21755F5) { $this->linestyle = strtolower(trim($R3186037EF1F216D6DB170D63B21755F5)); return; } function setSeriestype($R2970DA8A167A997C81123104DBEA96C9) { $this->seriestype = strtolower(trim($R2970DA8A167A997C81123104DBEA96C9)); return; } function getDataArray() { $this->checkDataArray(); return $this->dataArray; } function getSeriesColor() { return $this->seriesColor; } function getSeriesTitle() { return $this->seriesTitle; } function getPointSymbol() { return $this->pointSymbol; } function getWhichScale() { return $this->whichScale; } function getDataValueArray() { $R6F7F170701859062DAD123413E09EC5A = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354dataArray);$RA16D2280393CE6A2A5428A4A8D09E354++) { $R6F7F170701859062DAD123413E09EC5A[$RA16D2280393CE6A2A5428A4A8D09E354][0] = $this->dataArray->getValueX(); $R6F7F170701859062DAD123413E09EC5A[$RA16D2280393CE6A2A5428A4A8D09E354][1] = $this->dataArray->getValueY(); $R6F7F170701859062DAD123413E09EC5A[$RA16D2280393CE6A2A5428A4A8D09E354][2] = $this->dataArray->getValueZ(); } return $R6F7F170701859062DAD123413E09EC5A; } function getDataValueNullArray() { $R2A6AA34754923C7CBC3E845B4044D8BC = array(); for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354dataArray);$RA16D2280393CE6A2A5428A4A8D09E354++) { $R2A6AA34754923C7CBC3E845B4044D8BC[$RA16D2280393CE6A2A5428A4A8D09E354] = $this->dataArray->getIsNullValue(); } return $R2A6AA34754923C7CBC3E845B4044D8BC; } function getPointSize() { return $this->pointSize; } function getPointFill() { return $this->pointFill; } function getLinestyle() { return$this->linestyle; } function getSeriestype() { return $this->seriestype; } function checkDataArray() { for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354<$RA0D2C1D6CF7448EA63355AFF8FD24D07;$RA16D2280393CE6A2A5428A4A8D09E354++) { if (!isset($this->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354])) { $this->dataArray[$RA16D2280393CE6A2A5428A4A8D09E354] = new dataObj(); } } return; } function verifyseriestype($R7F6045D9D5F4D9047AD84E4499F620E0) { $R7F6045D9D5F4D9047AD84E4499F620E0 = strtolower(trim($R7F6045D9D5F4D9047AD84E4499F620E0)); switch ($R7F6045D9D5F4D9047AD84E4499F620E0) { case "bar": $R65DFACB39960C22313740A131148FB81 = "bar"; break; case "area": $R65DFACB39960C22313740A131148FB81 = "area"; break; case "line": $R65DFACB39960C22313740A131148FB81 = "line"; break; case "area": $R65DFACB39960C22313740A131148FB81 = "area"; break; case "bubble": $R65DFACB39960C22313740A131148FB81 = "bubble"; break; case "pie": $R65DFACB39960C22313740A131148FB81 = "pie"; break; default: $R65DFACB39960C22313740A131148FB81 = "bar"; } return $R65DFACB39960C22313740A131148FB81; } } ?> \ No newline at end of file diff --git a/OLD/jpowered/graph/common/jputils.php b/OLD/jpowered/graph/common/jputils.php new file mode 100644 index 0000000..05e3d3c --- /dev/null +++ b/OLD/jpowered/graph/common/jputils.php @@ -0,0 +1 @@ +textangle = 90.0; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2titletext"]->textangle = 90.0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xtitletext"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["x2titletext"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["displaylinevalues"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["connectinglines"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabels"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["yfont"] = verifyFont("medium","medium"); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelcolor"] = verifycolor("#333333","#333333"); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelstextobj"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpre"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["ylabelpost"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labels"] = false; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2font"] = verifyFont("medium","medium"); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelcolor"] = verifycolor("#333333","#333333"); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelstextobj"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpre"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["y2labelpost"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelorientation"] = verifyOrientation("h","h"); $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabely"] = -1; $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelyoffset"] = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabeloffset"] = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["xfont"] = verifyFont("medium","medium"); $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelcolor"] = verifycolor("#333333","#333333"); $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabels"] = verifyXlabels(" "," "); $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelstextobj"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelorientation"] = verifyOrientation("h","h"); $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelyoffset"] = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2font"] = verifyFont("medium","medium"); $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelcolor"] = verifycolor("#333333","#333333"); $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labels"] = false; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelstextobj"] = new JPtext(); $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpre"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["xlabelpost"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpre"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["x2labelpost"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"] = new JPlegend(); $RBF902F888A7A27C3E6036FE7C8FB44BE["maxsegments"] = -1; $RBF902F888A7A27C3E6036FE7C8FB44BE["zangle"] = 45; $RBF902F888A7A27C3E6036FE7C8FB44BE["pecentndecplaces"] = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["segmentlabels"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["segmentlabelfont"] = verifyFont("medium","medium"); $RBF902F888A7A27C3E6036FE7C8FB44BE["segmentlabelcolor"] = verifycolor("#333333","#333333"); $RBF902F888A7A27C3E6036FE7C8FB44BE["segmentlabeltextobj"] = new JPtext(8); $RBF902F888A7A27C3E6036FE7C8FB44BE["displaypercentages"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["labellines"] = true; $RBF902F888A7A27C3E6036FE7C8FB44BE["valuepresym"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["valuepostsym"] = ""; $RBF902F888A7A27C3E6036FE7C8FB44BE["freetext"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["freeimages"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["ntarget"] = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["targetLines"] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["ntrend"] = 0; $RBF902F888A7A27C3E6036FE7C8FB44BE["trendLines"] = array(); setServerDetails(); if ($RBF902F888A7A27C3E6036FE7C8FB44BE["chartStyle"] == "line-graph") { $RBF902F888A7A27C3E6036FE7C8FB44BE["threed"] = FALSE; } return; } function jp_check_environment() { } function jp_debug_environment() { } function load_Data(&$RBF902F888A7A27C3E6036FE7C8FB44BE) { if (array_key_exists("config", $_REQUEST)) { $R3870A31671674F38BD563DC916D3A5A0 = JPloadfile($_REQUEST["config"]); $R01C5911E86DA9FAC4C97F002069019EE = 0; foreach ($R3870A31671674F38BD563DC916D3A5A0 as $R9061C9FEF16E7C8C556365E17D37952C) { if (strpos($R9061C9FEF16E7C8C556365E17D37952C, ':')>0) { $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"][$R01C5911E86DA9FAC4C97F002069019EE] = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"][$R01C5911E86DA9FAC4C97F002069019EE]["parm"] = strtolower(substr($R9061C9FEF16E7C8C556365E17D37952C, 0, strpos($R9061C9FEF16E7C8C556365E17D37952C, ':'))); $RBF902F888A7A27C3E6036FE7C8FB44BE["configlines"][$R01C5911E86DA9FAC4C97F002069019EE]["value"] = substr($R9061C9FEF16E7C8C556365E17D37952C, (strpos($R9061C9FEF16E7C8C556365E17D37952C, ':')+1)); $R01C5911E86DA9FAC4C97F002069019EE++; } } } return; } function set_WH(&$RBF902F888A7A27C3E6036FE7C8FB44BE) { $RBF902F888A7A27C3E6036FE7C8FB44BE["width"] = 400; $RBF902F888A7A27C3E6036FE7C8FB44BE["height"] = 400; for ($RA16D2280393CE6A2A5428A4A8D09E354=0;$RA16D2280393CE6A2A5428A4A8D09E354legendlabels = array(); $RBF902F888A7A27C3E6036FE7C8FB44BE["legend"]->legendseriescolors = array(); foreach ($RBF902F888A7A27C3E6036FE7C8FB44BE["datalines"] as $RD7A38396D31A5B94129D3C221DF42F05) { if (substr($RD7A38396D31A5B94129D3C221DF42F05, 0, 4)!=" +
+
+ JPowered.com +
+
+

Advanced Graphs and Charts for PHP

+
+
+ + + + + +
+ + + + + + + + +
+ + +
+

Basic Chart Styles

+ +
+ + + + +
+

Sample Application

+ Sample Application + +

Trouble Shooting

+ Troubleshooting Guide +
+ + +
+ + + + + +
+

Help and Support

+ JPowered Support » +

We hope the documentation and tutorials enable you to quickly add dynamic graphs to your pages, however if at any stage you require assistance, help or advice then please feel free contact us.

+
+ +
+ + + + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/dataQueries/dataInterfaceScript.php b/OLD/jpowered/sampleApplication/dataQueries/dataInterfaceScript.php new file mode 100644 index 0000000..26607a1 --- /dev/null +++ b/OLD/jpowered/sampleApplication/dataQueries/dataInterfaceScript.php @@ -0,0 +1,107 @@ + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/dataQueries/dbConfig.php b/OLD/jpowered/sampleApplication/dataQueries/dbConfig.php new file mode 100644 index 0000000..bef575c --- /dev/null +++ b/OLD/jpowered/sampleApplication/dataQueries/dbConfig.php @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/dataQueries/homePagedbConfig.php b/OLD/jpowered/sampleApplication/dataQueries/homePagedbConfig.php new file mode 100644 index 0000000..14f6938 --- /dev/null +++ b/OLD/jpowered/sampleApplication/dataQueries/homePagedbConfig.php @@ -0,0 +1,31 @@ + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/dataQueries/salesByMonthDB.php b/OLD/jpowered/sampleApplication/dataQueries/salesByMonthDB.php new file mode 100644 index 0000000..3822ada --- /dev/null +++ b/OLD/jpowered/sampleApplication/dataQueries/salesByMonthDB.php @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/dataQueries/salesByRegionDB.php b/OLD/jpowered/sampleApplication/dataQueries/salesByRegionDB.php new file mode 100644 index 0000000..8538bbd --- /dev/null +++ b/OLD/jpowered/sampleApplication/dataQueries/salesByRegionDB.php @@ -0,0 +1,51 @@ + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/graphConfig/homePagePieChart.txt b/OLD/jpowered/sampleApplication/graphConfig/homePagePieChart.txt new file mode 100644 index 0000000..2d9e1bd --- /dev/null +++ b/OLD/jpowered/sampleApplication/graphConfig/homePagePieChart.txt @@ -0,0 +1,69 @@ + +width: 550 +height: 400 +ndecplaces: 0 +pecentndecplaces: 0 +depth3d: 30 +3dangle: 40 + + +3d: true +displayPercentages: true +labellines: false + +quality: very high + + +segmentlabels: true +segmentlabelfont: arial +segmentlabelfontsize: 10 +segmentlabelfontbold: false +segmentlabelfontitalic: false +segmentlabelcolor: #000088 + + + +valuepresym: $ + + +thousandseparator: , + + +backgroundcolor: #FFFFFF + + +titletext: 2008 Total Sales +titlefont: arial +titlefontsize: 14 +titlecolor: #000000 +titleposition: -1,60 + + +legend: true +legendfont: arial +legendfontsize: 11 +legendfontbold: false +legendfontitalic: false +legendposition: -1,80 +legendtitle: +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: horizontal + + + +pie1: 250,240|220|10 + + + +segment1: #0000FF|Blue Robots| +segment2: #88FF00|Green Robots| +segment3: #FF2E00|Red Robots| +segment4: #FFB200|Yellow Robots| + + + + + + diff --git a/OLD/jpowered/sampleApplication/graphConfig/salesByMonthConfig.txt b/OLD/jpowered/sampleApplication/graphConfig/salesByMonthConfig.txt new file mode 100644 index 0000000..d31243a --- /dev/null +++ b/OLD/jpowered/sampleApplication/graphConfig/salesByMonthConfig.txt @@ -0,0 +1,48 @@ +width: 700 +height: 400 + +3d: true +depth3d: 10 + +ndecplaces: 0 + +thousandseparator: , +backgroundcolor: #ffffff +barspacing: 1 +barwidth: 10 +displaybarvalues: false +gradientfill: true + +vspace: 40 + +ylabelpre: $ + +series1: #0000FF|Blue Robots|left +series2: #88FF00|Green Robots|left +series3: #FF2E00|Red Robots|left +series4: #FFB200|Yellow Robots|left + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December +xlabelorientation: up angle +xlabelcolor: #000000 +xlabelfont: arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + + + +legend: true +legendfont: arial +legendfontsize: 11 +legendfontbold: false +legendfontitalic: false +legendposition: -1,80 +legendtitle: +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: horizontal + + +target: 75000 | #000000 | Sales Target | arial,10,bold | solid | left | \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/graphConfig/salesByMonthStackedConfig.txt b/OLD/jpowered/sampleApplication/graphConfig/salesByMonthStackedConfig.txt new file mode 100644 index 0000000..53289cd --- /dev/null +++ b/OLD/jpowered/sampleApplication/graphConfig/salesByMonthStackedConfig.txt @@ -0,0 +1,48 @@ +width: 700 +height: 400 + +3d: true +depth3d: 25 + +ndecplaces: 0 + +thousandseparator: , +backgroundcolor: #ffffff +barspacing: 5 +barwidth: 45 +displaybarvalues: false +gradientfill: true + +vspace: 50 + +ylabelpre: $ + +series1: #0000AA|Blue Robots|left +series2: #44AA00|Green Robots|left +series3: #AA2800|Red Robots|left +series4: #AA9200|Yellow Robots|left + +xlabels: January|February|March|April|May|June|July|August|September|October|November|December +xlabelorientation: up angle +xlabelcolor: #000000 +xlabelfont: arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + + + +legend: true +legendfont: arial +legendfontsize: 11 +legendfontbold: false +legendfontitalic: false +legendposition: -1,40 +legendtitle: +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: horizontal + + +target: 200000 | #000000 | Sales Target | arial,10,bold | solid | left | \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/graphConfig/salesByRegionConfig.php b/OLD/jpowered/sampleApplication/graphConfig/salesByRegionConfig.php new file mode 100644 index 0000000..13624ec --- /dev/null +++ b/OLD/jpowered/sampleApplication/graphConfig/salesByRegionConfig.php @@ -0,0 +1,78 @@ +width: 700 +height: 400 + +3d: true +depth3d: 10 + +ndecplaces: 0 + + + +thousandseparator: , +backgroundcolor: #ffffff +barspacing: 5 +barwidth: 19 +displaybarvalues: false +gradientfill: true + +vspace: 50 + +ylabelpre: $ + +series1: #0000CC|Blue Robots|left +series2: #44CC00|Green Robots|left +series3: #CC2800|Red Robots|left +series4: #CCA200|Yellow Robots|left + + +legend: true +legendfont: arial +legendfontsize: 11 +legendfontbold: false +legendfontitalic: false +legendposition: -1,40 +legendtitle: +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: horizontal + +xlabelorientation: up angle +xlabelcolor: #000000 +xlabelfont: arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/graphConfig/salesByRegionStackedConfig.php b/OLD/jpowered/sampleApplication/graphConfig/salesByRegionStackedConfig.php new file mode 100644 index 0000000..4e91058 --- /dev/null +++ b/OLD/jpowered/sampleApplication/graphConfig/salesByRegionStackedConfig.php @@ -0,0 +1,79 @@ +width: 700 +height: 400 + +3d: true +depth3d: 30 +quality: very high + +ndecplaces: 0 + + + +thousandseparator: , +backgroundcolor: #ffffff +barspacing: 5 +barwidth: 80 +displaybarvalues: false +gradientfill: true + +vspace: 50 + +ylabelpre: $ + +series1: #0000AA|Blue Robots|left +series2: #44AA00|Green Robots|left +series3: #AA2800|Red Robots|left +series4: #AA9200|Yellow Robots|left + + +legend: true +legendfont: arial +legendfontsize: 11 +legendfontbold: false +legendfontitalic: false +legendposition: -1,40 +legendtitle: +legendbgcolor: #FFFFFF +legendbordercolor: #DDDDDD +legendtextcolor: #202020 +legendstyle: horizontal + +xlabelorientation: up angle +xlabelcolor: #000000 +xlabelfont: arial +xlabelfontsize: 10 +xlabelfontbold: false +xlabelfontitalic: false + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/includes/DBMySQL.class.php b/OLD/jpowered/sampleApplication/includes/DBMySQL.class.php new file mode 100644 index 0000000..73aed2e --- /dev/null +++ b/OLD/jpowered/sampleApplication/includes/DBMySQL.class.php @@ -0,0 +1,148 @@ +dbServer = $dbServer; + $this->dbUser = $dbUser; + $this->dbPassword = $dbPassword; + $this->dbDatabase = $dbDatabase; + $this->errorState = false; + + + $this->dbLink = mysql_connect($this->dbServer, + $this->dbUser, + $this->dbPassword); + if (!$this->dbLink) { + $this->errorState = true; + $this->errorMessage = 'Could not connect: '.mysql_error(); + return false; + } + + if (!mysql_select_db($this->dbDatabase, $this->dbLink)) { + $this->errorState = true; + $this->errorMessage = 'Could not select database: '.mysql_error(); + return false; + } + + return true; + + + } + + /** + * Opens a connection to the database + */ + function connect() { + + $this->dbLink = mysql_connect($this->dbServer, + $this->dbUser, + $this->dbPassword); + if (!$this->dbLink) { + $this->errorState = true; + $this->errorMessage = 'Could not connect: '.mysql_error(); + return false; + } + + if (!mysql_select_db($this->dbDatabase, $this->dbLink)) { + $this->errorState = true; + $this->errorMessage = 'Could not select database: '.mysql_error(); + return false; + } + + return true; + } + + /** + * Queries the database for a specific SQL query + */ + function query($sql) { + if (!$this->result = mysql_query($sql, $this->dbLink)) { + $this->errorState = true; + $this->errorMessage = 'Query Error: '.mysql_error(); + } + return $this->result; + } + + /** + * Fetches a row from a result set + */ + function fetch(&$result) { + return mysql_fetch_array($result,MYSQL_ASSOC); + } + + /** + * Returns an associative array of all rows + */ + function fetchAll(&$result) { + $resultArr = array(); + if ($result) { + $resultArr = array(); + while ($row = $this->fetch($result)) { + $resultArr[] = $row; + } + } + + return $resultArr; + } + + function freeResult(&$result) { + if ($result != true && $result != false) { + mysql_free_result($result); + } + unset($result); + } + + function getLastError() { + return mysql_error(); + } + + function getNumRows(&$result) { + $numRows = mysql_num_rows($result); + return $numRows; + } + + + // return the error state + function getErrorState() { + return $this->errorState; + } + + // set the error state + function setErrorState($errorState) { + $this->errorState = $errorState; + } + + /** + * disconnect + */ + function close() { + mysql_close($this->dbLink); + } + + + + +} + +?> \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/includes/dbTableCreateStatements.php b/OLD/jpowered/sampleApplication/includes/dbTableCreateStatements.php new file mode 100644 index 0000000..f64c311 --- /dev/null +++ b/OLD/jpowered/sampleApplication/includes/dbTableCreateStatements.php @@ -0,0 +1,119 @@ +"Blue Robots" ,"productCode"=>"robo1"), + array("description"=>"Green Robots" ,"productCode"=>"robo2"), + array("description"=>"Red Robots" ,"productCode"=>"robo3"), + array("description"=>"Yellow Robots" ,"productCode"=>"robo4") + ); + + +// Generate some sales data +$dbSalesDetailData = array(); +$dbSalesByMonthData = array(); + +for ($productID=1;$productID<5;$productID++) { + for ($year=2007;$year<2009;$year++) { + for ($month=1;$month<13;$month++) { + for ($regionID=1;$regionID<7;$regionID++) { + $dbSalesByMonthData[$regionID][$productID][$month][$year] = 0.0; + } + } + } +} + +for ($productID=1;$productID<5;$productID++) { + + $productPrice = 10; + switch ($productID) { + case 1: $productPrice = 7; break; + case 2: $productPrice = 5; break; + case 3: $productPrice = 5; break; + case 4: $productPrice = 10; break; + case 5: $productPrice = 2; break; + default: $productPrice = 10; break; + } + + + + for ($year=2007;$year<2009;$year++) { + for ($month=1;$month<13;$month++) { + for ($regionID=1;$regionID<7;$regionID++) { + + $nsales = rand(1,4); + + for ($i=0;$i<$nsales;$i++) { + $day = rand(1,28); + $datetime = mktime(10,30,15,$month,$day,$year); + $saleDate = date("Y-m-d H:i:s",$datetime); + $amount = $productPrice * rand(10000,90000) / 100; + + $dbSalesDetailData[] = array("productID"=>$productID, + "regionID"=>$regionID, + "saleDate"=>$saleDate, + "amount"=>$amount + ); + + $dbSalesByMonthData[$regionID][$productID][$month][$year] += $amount; + } + + + + } + } + } +} + + + +?> \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/includes/setUpUtils.php b/OLD/jpowered/sampleApplication/includes/setUpUtils.php new file mode 100644 index 0000000..b8613fb --- /dev/null +++ b/OLD/jpowered/sampleApplication/includes/setUpUtils.php @@ -0,0 +1,310 @@ +\n"; + $error["messages"] .= "Double check the connection details and try again.
\n"; + $error["messages"] .= mysql_error()."
\n"; + } + else { + $error["allOk"] = true; + mysql_close($dbLink); + } + + return $error; +} + + + + + +function performSetUp(&$jpDatabase) { + + + global $dbSalesDetailData; + global $dbSalesByMonthData; + global $dbProductData; + global $dbRegionData; + global $dbTable; + + + $error["allOk"] = false; + $error["messages"] = ""; + + // connect and create the database + $dbLink = @mysql_connect($jpDatabase["dbServer"], + $jpDatabase["dbUser"], + $jpDatabase["dbPassword"]); + if (!$dbLink) { + $error["messages"] .= "Error: Unable to connect to the database server !
\n"; + $error["messages"] .= "Double check the connection details and try again.
\n"; + $error["messages"] .= mysql_error()."
\n"; + return getPage("setUpError.html",$error); + } + + $sql = "DROP DATABASE ".$jpDatabase["dbDatabase"]." "; + mysql_query($sql, $dbLink); + $sql = "CREATE DATABASE ".$jpDatabase["dbDatabase"]." "; + if (!$result = mysql_query($sql, $dbLink)) { + $error["messages"] .= "Error: Unable to create database ".$jpDatabase["dbDatabase"]." !
\n"; + $error["messages"] .= mysql_error()."
\n"; + mysql_close($dbLink); + return getPage("setUpError.html",$error); + } + + + // create and set up the JPSAMPLEsalesDB ready for use by the + // sample application + $dbObj = new Database($jpDatabase["dbServer"], + $jpDatabase["dbUser"], + $jpDatabase["dbPassword"], + $jpDatabase["dbDatabase"]); + + if (!$dbObj) { + $error["messages"] .= "Error: Unable to connect to the database server !
\n"; + $error["messages"] .= "Double check the connection details and try again.
\n"; + $error["messages"] .= mysql_error()."
\n"; + mysql_close($dbLink); + return getPage("setUpError.html",$error); + } + + // create the database tables + foreach ($dbTable as $sql) { + $result = $dbObj->query($sql); + if (!$result) { + $error["messages"] .= "Error: Unable to create database table !
\n"; + $error["messages"] .= $sql."
\n"; + $error["messages"] .= $dbObj->getLastError()."
\n"; + $dbObj->close(); + return getPage("setUpError.html",$error); + } + + } + + + + // Populate Region Data + foreach ($dbRegionData as $region) { + $sql = "INSERT INTO region (region_ID,description) + VALUES (0,'".$region."') "; + $result = $dbObj->query($sql); + if (!$result) { + $error["messages"] .= "Error: Unable to Insert Region Data !
\n"; + $error["messages"] .= $sql."
\n"; + $error["messages"] .= $dbObj->getLastError()."
\n"; + $dbObj->close(); + return getPage("setUpError.html",$error); + } + + } + + + // Populate Product Data + foreach ($dbProductData as $product) { + $sql = "INSERT INTO product (product_ID,description,productCode) + VALUES (0,'".$product["description"]."','".$product["productCode"]."') "; + $result = $dbObj->query($sql); + if (!$result) { + $error["messages"] .= "Error: Unable to Insert Product Data !
\n"; + $error["messages"] .= $sql."
\n"; + $error["messages"] .= $dbObj->getLastError()."
\n"; + $dbObj->close(); + return getPage("setUpError.html",$error); + } + + } + + + // populate the sales detail table + foreach ($dbSalesDetailData as $salesDetail) { + + $sql = "INSERT INTO salesDetail (salesDetail_ID,region_ID,product_ID,saledate,amount) + VALUES (0,".$salesDetail["regionID"].",'".$salesDetail["productID"]."','".$salesDetail["saleDate"]."',".$salesDetail["amount"].") "; + + $result = $dbObj->query($sql); + if (!$result) { + $error["messages"] .= "Error: Unable to Insert Sales Detail Data !
\n"; + $error["messages"] .= $sql."
\n"; + $error["messages"] .= $dbObj->getLastError()."
\n"; + $dbObj->close(); + return getPage("setUpError.html",$error); + } + + + } + + // Populate Sales By Month Table + for ($productID=1;$productID<5;$productID++) { + for ($year=2007;$year<2009;$year++) { + for ($month=1;$month<13;$month++) { + for ($regionID=1;$regionID<7;$regionID++) { + + $sql = "INSERT INTO salesByMonth (salesByMonth_ID,region_ID,product_ID,saleMonth,saleYear,amount) + VALUES (0,".$regionID.",'".$productID."',".$month.",".$year.",".$dbSalesByMonthData[$regionID][$productID][$month][$year].") "; + + $result = $dbObj->query($sql); + if (!$result) { + $error["messages"] .= "Error: Unable to Insert Sales Detail Data !
\n"; + $error["messages"] .= $sql."
\n"; + $error["messages"] .= $dbObj->getLastError()."
\n"; + $dbObj->close(); + return getPage("setUpError.html",$error); + } + + } + } + } + } + + + + $error["allOk"] = true; + $error["messages"] = ""; + + $dbObj->close(); + + + $error = updateDBinfo($jpDatabase); + if (!$error["allOk"]) { + return getPage("setUpError.html",$error); + } + else { + + // update the flag in index.php + $output = get_File_As_String("index.php"); + $search = array("setupDone = false;", "setupDone = FALSE;"); + $replace = array("setupDone = TRUE;", "setupDone = TRUE;"); + $output = str_replace($search,$replace,$output); + put_File_Content("index.php",$output); + return getPage("setUpComplete.html",$error); + } +} + + + +function getPage($pageFile,$error) { + $output = get_File_As_String("./pageTemplates/".$pageFile); + $search = array("[ERRORS]"); + $replace = array($error["messages"]); + $output = str_replace($search,$replace,$output); + return $output; +} + + +function updateDBinfo(&$jpDatabase) { + + global $dbFiles; + + $error["allOk"] = true; + $error["messages"] = ""; + + foreach ($dbFiles as $dbFile) { + $output = get_File_As_String($dbFile); + $search = array("[DBSERVER]","[DBUSER]","[DBPASSWORD]","[DBDATABASE]"); + $replace = array($jpDatabase["dbServer"],$jpDatabase["dbUser"],$jpDatabase["dbPassword"],$jpDatabase["dbDatabase"]); + $output = str_replace($search,$replace,$output); + if (!put_File_Content($dbFile,$output)) { + $error["messages"] .= "Error: Unable to update database access information in the data files !
\n"; + $error["messages"] .= "Double check file permission on the ./dataQueries/ directory and all files in this directory.
\n"; + $error["allOk"] = false; + } + + } + + return $error; + +} + + +function doSetUp() { + + + $jpDatabase["dbServer"] = "localhost:3306"; + $jpDatabase["dbUser"] = ""; + $jpDatabase["dbPassword"] = ""; + $jpDatabase["dbDatabase"] = "JPSAMPLEsalesDB"; + $valuesEntered = false; + + if (isset($_REQUEST["dbServer"])) {$jpDatabase["dbServer"] = $_REQUEST["dbServer"];$valuesEntered = true;} + if (isset($_REQUEST["dbUser"])) {$jpDatabase["dbUser"] = $_REQUEST["dbUser"];$valuesEntered = true;} + if (isset($_REQUEST["dbPassword"])) {$jpDatabase["dbPassword"] = $_REQUEST["dbPassword"];$valuesEntered = true;} + + // test the db connection + $valuesOK = false; + $error["allOk"] = false; + $error["messages"] = ""; + if ($valuesEntered) { + $error = testConnection($jpDatabase); + if ($error["allOk"]) { + $valuesOK = true; + } + } + + + if ($valuesOK) { + $output = performSetUp($jpDatabase); + print $output; + exit(0); + } + else { + // return the set up page + $output = get_File_As_String("./pageTemplates/setup.html"); + $search = array("[DBSERVER]","[DBUSER]","[DBPASSWORD]","[ERRORS]"); + $replace = array($jpDatabase["dbServer"],$jpDatabase["dbUser"],$jpDatabase["dbPassword"],$error["messages"]); + $output = str_replace($search,$replace,$output); + print $output; + exit(0); + } + + + return true; +} + + +function get_File_As_String($filename) { + + $contents = ""; + + $lines = file($filename); + + $contents = implode("\n",$lines); + + return $contents; +} + +function put_File_Content($filename,$contents) { + + if (is_array($contents)) { + $contents = implode("\n",$contents); + } + + if (!$handle = fopen($filename, "w+")) { + return false; + } + + fwrite($handle, $contents); + fclose($handle); + + return true; +} + + +?> \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/index.php b/OLD/jpowered/sampleApplication/index.php new file mode 100644 index 0000000..d322acc --- /dev/null +++ b/OLD/jpowered/sampleApplication/index.php @@ -0,0 +1,60 @@ + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/pageTemplates/index.html b/OLD/jpowered/sampleApplication/pageTemplates/index.html new file mode 100644 index 0000000..4477a3c --- /dev/null +++ b/OLD/jpowered/sampleApplication/pageTemplates/index.html @@ -0,0 +1,89 @@ + + + +Set Up Page + + + + +

Robot Corporation

+

Sample Sales Reporting Application

+ +

+ + + + + + + +
+

The chart above shows the total sales during 2008 for each product type.

+Sales by Month »
+Sales by Month - Stacked Bars »
+Sales by Region »
+Sales by Region - Stacked Cylinders »
+
+ +
+ +

Page Notes

+ +

The graph above is produced using the "Database Info" method with the following IMG tag:-
+ +

+ +

The graph data is read directly from the database using the information contained in the file:-
+ +

+ +

The settings and styles are set from the information contained in the file:-
+ +

+ +
+ + +
+

Next Steps

+ +

Documentation Contents

+Documentation »
+Adding Graphs to Web Pages »
+Configuration Options and Parameters »
+Supplying the Graph with Data »
+ +

Database Connections

+Database Information method »
+Custom Data Function »
+ +

Also see:-

+ +Online Tutorials »
+Online Documentation »
+ +If you encounter any problems then please feel free to contact JPowered Support ». +
+ + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/pageTemplates/sampleApplication.css b/OLD/jpowered/sampleApplication/pageTemplates/sampleApplication.css new file mode 100644 index 0000000..ed0c830 --- /dev/null +++ b/OLD/jpowered/sampleApplication/pageTemplates/sampleApplication.css @@ -0,0 +1,37 @@ +body {background-color: #FFF;font-family: Arial, Helvetica, sans-serif;color: #000000;font-size: 11px; padding: 20px;} +H1 { color: #320099; font-size: 18px; font-family: Arial,Helvetica, sans-serif;font-weight:bold; margin:5px;} +H2 { color: #000000; font-size: 16px; font-family: Arial,Helvetica, sans-serif;font-style:italic; margin:5px;} +H4 { color: #000000; font-size: 12px; font-family: Arial,Helvetica, sans-serif;font-style: none; margin: 10px 4px 2px 4px;} +p {margin:5px;} +a, a:active, a:link, a:visited {font-weight: bold;color:#0000FF;text-decoration: none;font-size:11px;} +a:hover {font-weight: bold;color:#FF0000;text-decoration: none;} + + +.codeInfoBlock { + background-color: #FFE57F; + border: #654C99; + font-size: 12px; + border-style: solid; + border-width: 1px; + color: #000; + width: 700px; + padding: 10px; +} + +.codeInfoBlock textarea { + width: 680px; + height: 100px; + background-color: #654C99; + color: #fff; + border-color: #17131E; + border-width: 1px; + border-style: solid; + padding: 4px; +} + +.linkArea { + margin: 10px; + padding: 10px; + font-size: 12px; + +} diff --git a/OLD/jpowered/sampleApplication/pageTemplates/setUpComplete.html b/OLD/jpowered/sampleApplication/pageTemplates/setUpComplete.html new file mode 100644 index 0000000..901be38 --- /dev/null +++ b/OLD/jpowered/sampleApplication/pageTemplates/setUpComplete.html @@ -0,0 +1,18 @@ + + + +Set Up Page + + + + +

Sample Sales Reporting Application - Set Up Procedure

+ +

[ERRORS]

+ +

Sample Application Set Up Complete.

+

view Sample Application

+ + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/pageTemplates/setUpError.html b/OLD/jpowered/sampleApplication/pageTemplates/setUpError.html new file mode 100644 index 0000000..2a4bddb --- /dev/null +++ b/OLD/jpowered/sampleApplication/pageTemplates/setUpError.html @@ -0,0 +1,18 @@ + + + +Set Up Page + + + + +

Sample Sales Reporting Application - Set Up Procedure

+ +

[ERRORS]

+ +

Unfortunately an error occurred the set up process.

+

return and try again.

+ + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/pageTemplates/setup.html b/OLD/jpowered/sampleApplication/pageTemplates/setup.html new file mode 100644 index 0000000..efd79b3 --- /dev/null +++ b/OLD/jpowered/sampleApplication/pageTemplates/setup.html @@ -0,0 +1,40 @@ + + + +Set Up Page + + + + +

Sample Sales Reporting Application - Set Up Procedure

+ +

[ERRORS]

+ +Enter the Database Login information here:- +
+ + + + + + + + + + + + + + + + + + +
Server
User
Password
+ +
+ + + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/salesByMonth.html b/OLD/jpowered/sampleApplication/salesByMonth.html new file mode 100644 index 0000000..b3330fd --- /dev/null +++ b/OLD/jpowered/sampleApplication/salesByMonth.html @@ -0,0 +1,80 @@ + + + +Set Up Page + + + + +

Robot Corporation

+

Sample Sales Reporting Application

+ + + + + +
+

The chart above shows the total sales during 2008 for each product type.

+« back to Index

+Sales by Month »
+Sales by Month - Stacked Bars »
+Sales by Region »
+Sales by Region - Stacked Cylinders »
+
+ +
+ +

Page Notes

+ +

The graph above is produced using the "Database Info" method with the following IMG tag:-
+ +

+ +

The graph data is read directly from the database using the information contained in the file:-
+ +

+ +

The settings and styles are set from the information contained in the file:-
+ +

+ +
+ +
+

Next Steps

+ +

Documentation Contents

+Documentation »
+Adding Graphs to Web Pages »
+Configuration Options and Parameters »
+Supplying the Graph with Data »
+ +

Database Connections

+Database Information method »
+Custom Data Function »
+ +

Also see:-

+ +Online Tutorials »
+Online Documentation »
+ +If you encounter any problems then please feel free to contact JPowered Support ». +
+ + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/salesByMonthStacked.html b/OLD/jpowered/sampleApplication/salesByMonthStacked.html new file mode 100644 index 0000000..e4d52c8 --- /dev/null +++ b/OLD/jpowered/sampleApplication/salesByMonthStacked.html @@ -0,0 +1,87 @@ + + + +Set Up Page + + + + +

Robot Corporation

+

Sample Sales Reporting Application

+ + + + + +
+

The chart above shows the total sales during 2008 for each product type.

+« back to Index

+Sales by Month »
+Sales by Month - Stacked Bars »
+Sales by Region »
+Sales by Region - Stacked Cylinders »
+
+ +
+ +

Page Notes

+ +

The graph above is produced using the "Database Info" method with the following IMG tag:-
+ +

+ +

The graph data is read directly from the database using the information contained in the file:-
+ +

+ +

The settings and styles are set from the information contained in the file:-
+ +

+ +
+ + + +
+

Next Steps

+ +

Documentation Contents

+Documentation »
+Adding Graphs to Web Pages »
+Configuration Options and Parameters »
+Supplying the Graph with Data »
+ +

Database Connections

+Database Information method »
+Custom Data Function »
+ +

Also see:-

+ +Online Tutorials »
+Online Documentation »
+ +If you encounter any problems then please feel free to contact JPowered Support ». +
+ + + + + + + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/salesByRegion.html b/OLD/jpowered/sampleApplication/salesByRegion.html new file mode 100644 index 0000000..f5c9768 --- /dev/null +++ b/OLD/jpowered/sampleApplication/salesByRegion.html @@ -0,0 +1,81 @@ + + + +Set Up Page + + + + +

Robot Corporation

+

Sample Sales Reporting Application

+ + + + + +
+

The chart above shows the total sales during 2008 for each product type.

+« back to Index

+Sales by Month »
+Sales by Month - Stacked Bars »
+Sales by Region »
+Sales by Region - Stacked Cylinders »
+
+ +
+ +

Page Notes

+ +

The graph above is produced using the "Database Info" method with the following IMG tag:-
+ +

+ +

The graph data is read directly from the database using the information contained in the file:-
+ +

+ +

The settings and styles are set from the information output by the script:-
+ +
NOTE: This script dynamically calculates the X-axis labels by reading information from the database. +

+ +
+ +
+

Next Steps

+ +

Documentation Contents

+Documentation »
+Adding Graphs to Web Pages »
+Configuration Options and Parameters »
+Supplying the Graph with Data »
+ +

Database Connections

+Database Information method »
+Custom Data Function »
+ +

Also see:-

+ +Online Tutorials »
+Online Documentation »
+ +If you encounter any problems then please feel free to contact JPowered Support ». +
+ + + + \ No newline at end of file diff --git a/OLD/jpowered/sampleApplication/salesByRegionStacked.html b/OLD/jpowered/sampleApplication/salesByRegionStacked.html new file mode 100644 index 0000000..159ae90 --- /dev/null +++ b/OLD/jpowered/sampleApplication/salesByRegionStacked.html @@ -0,0 +1,81 @@ + + + +Set Up Page + + + + +

Robot Corporation

+

Sample Sales Reporting Application

+ + + + + +
+

The chart above shows the total sales during 2008 for each product type.

+« back to Index

+Sales by Month »
+Sales by Month - Stacked Bars »
+Sales by Region »
+Sales by Region - Stacked Cylinders »
+
+ +
+ +

Page Notes

+ +

The graph above is produced using the "Database Info" method with the following IMG tag:-
+ +

+ +

The graph data is read directly from the database using the information contained in the file:-
+ +

+ +

The settings and styles are set from the information output by the script:-
+ +
NOTE: This script dynamically calculates the X-axis labels by reading information from the database. +

+ +
+ +
+

Next Steps

+ +

Documentation Contents

+Documentation »
+Adding Graphs to Web Pages »
+Configuration Options and Parameters »
+Supplying the Graph with Data »
+ +

Database Connections

+Database Information method »
+Custom Data Function »
+ +

Also see:-

+ +Online Tutorials »
+Online Documentation »
+ +If you encounter any problems then please feel free to contact JPowered Support ». +
+ + + + \ No newline at end of file diff --git a/OLD/js/builder.js b/OLD/js/builder.js new file mode 100644 index 0000000..f1f42b9 --- /dev/null +++ b/OLD/js/builder.js @@ -0,0 +1,136 @@ +// script.aculo.us builder.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009 + +// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +var Builder = { + NODEMAP: { + AREA: 'map', + CAPTION: 'table', + COL: 'table', + COLGROUP: 'table', + LEGEND: 'fieldset', + OPTGROUP: 'select', + OPTION: 'select', + PARAM: 'object', + TBODY: 'table', + TD: 'table', + TFOOT: 'table', + TH: 'table', + THEAD: 'table', + TR: 'table' + }, + // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken, + // due to a Firefox bug + node: function(elementName) { + elementName = elementName.toUpperCase(); + + // try innerHTML approach + var parentTag = this.NODEMAP[elementName] || 'div'; + var parentElement = document.createElement(parentTag); + try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 + parentElement.innerHTML = "<" + elementName + ">"; + } catch(e) {} + var element = parentElement.firstChild || null; + + // see if browser added wrapping tags + if(element && (element.tagName.toUpperCase() != elementName)) + element = element.getElementsByTagName(elementName)[0]; + + // fallback to createElement approach + if(!element) element = document.createElement(elementName); + + // abort if nothing could be created + if(!element) return; + + // attributes (or text) + if(arguments[1]) + if(this._isStringOrNumber(arguments[1]) || + (arguments[1] instanceof Array) || + arguments[1].tagName) { + this._children(element, arguments[1]); + } else { + var attrs = this._attributes(arguments[1]); + if(attrs.length) { + try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 + parentElement.innerHTML = "<" +elementName + " " + + attrs + ">"; + } catch(e) {} + element = parentElement.firstChild || null; + // workaround firefox 1.0.X bug + if(!element) { + element = document.createElement(elementName); + for(attr in arguments[1]) + element[attr == 'class' ? 'className' : attr] = arguments[1][attr]; + } + if(element.tagName.toUpperCase() != elementName) + element = parentElement.getElementsByTagName(elementName)[0]; + } + } + + // text, or array of children + if(arguments[2]) + this._children(element, arguments[2]); + + return $(element); + }, + _text: function(text) { + return document.createTextNode(text); + }, + + ATTR_MAP: { + 'className': 'class', + 'htmlFor': 'for' + }, + + _attributes: function(attributes) { + var attrs = []; + for(attribute in attributes) + attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) + + '="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'"') + '"'); + return attrs.join(" "); + }, + _children: function(element, children) { + if(children.tagName) { + element.appendChild(children); + return; + } + if(typeof children=='object') { // array can hold nodes and text + children.flatten().each( function(e) { + if(typeof e=='object') + element.appendChild(e); + else + if(Builder._isStringOrNumber(e)) + element.appendChild(Builder._text(e)); + }); + } else + if(Builder._isStringOrNumber(children)) + element.appendChild(Builder._text(children)); + }, + _isStringOrNumber: function(param) { + return(typeof param=='string' || typeof param=='number'); + }, + build: function(html) { + var element = this.node('div'); + $(element).update(html.strip()); + return element.down(); + }, + dump: function(scope) { + if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope + + var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " + + "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " + + "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+ + "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+ + "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+ + "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/); + + tags.each( function(tag){ + scope[tag] = function() { + return Builder.node.apply(Builder, [tag].concat($A(arguments))); + }; + }); + } +}; \ No newline at end of file diff --git a/OLD/js/controls.js b/OLD/js/controls.js new file mode 100644 index 0000000..7392fb6 --- /dev/null +++ b/OLD/js/controls.js @@ -0,0 +1,965 @@ +// script.aculo.us controls.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009 + +// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// (c) 2005-2009 Ivan Krstic (http://blogs.law.harvard.edu/ivan) +// (c) 2005-2009 Jon Tirsen (http://www.tirsen.com) +// Contributors: +// Richard Livsey +// Rahul Bhargava +// Rob Wills +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +// Autocompleter.Base handles all the autocompletion functionality +// that's independent of the data source for autocompletion. This +// includes drawing the autocompletion menu, observing keyboard +// and mouse events, and similar. +// +// Specific autocompleters need to provide, at the very least, +// a getUpdatedChoices function that will be invoked every time +// the text inside the monitored textbox changes. This method +// should get the text for which to provide autocompletion by +// invoking this.getToken(), NOT by directly accessing +// this.element.value. This is to allow incremental tokenized +// autocompletion. Specific auto-completion logic (AJAX, etc) +// belongs in getUpdatedChoices. +// +// Tokenized incremental autocompletion is enabled automatically +// when an autocompleter is instantiated with the 'tokens' option +// in the options parameter, e.g.: +// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); +// will incrementally autocomplete with a comma as the token. +// Additionally, ',' in the above example can be replaced with +// a token array, e.g. { tokens: [',', '\n'] } which +// enables autocompletion on multiple tokens. This is most +// useful when one of the tokens is \n (a newline), as it +// allows smart autocompletion after linebreaks. + +if(typeof Effect == 'undefined') + throw("controls.js requires including script.aculo.us' effects.js library"); + +var Autocompleter = { }; +Autocompleter.Base = Class.create({ + baseInitialize: function(element, update, options) { + element = $(element); + this.element = element; + this.update = $(update); + this.hasFocus = false; + this.changed = false; + this.active = false; + this.index = 0; + this.entryCount = 0; + this.oldElementValue = this.element.value; + + if(this.setOptions) + this.setOptions(options); + else + this.options = options || { }; + + this.options.paramName = this.options.paramName || this.element.name; + this.options.tokens = this.options.tokens || []; + this.options.frequency = this.options.frequency || 0.4; + this.options.minChars = this.options.minChars || 1; + this.options.onShow = this.options.onShow || + function(element, update){ + if(!update.style.position || update.style.position=='absolute') { + update.style.position = 'absolute'; + Position.clone(element, update, { + setHeight: false, + offsetTop: element.offsetHeight + }); + } + Effect.Appear(update,{duration:0.15}); + }; + this.options.onHide = this.options.onHide || + function(element, update){ new Effect.Fade(update,{duration:0.15}) }; + + if(typeof(this.options.tokens) == 'string') + this.options.tokens = new Array(this.options.tokens); + // Force carriage returns as token delimiters anyway + if (!this.options.tokens.include('\n')) + this.options.tokens.push('\n'); + + this.observer = null; + + this.element.setAttribute('autocomplete','off'); + + Element.hide(this.update); + + Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this)); + Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this)); + }, + + show: function() { + if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update); + if(!this.iefix && + (Prototype.Browser.IE) && + (Element.getStyle(this.update, 'position')=='absolute')) { + new Insertion.After(this.update, + ''); + this.iefix = $(this.update.id+'_iefix'); + } + if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); + }, + + fixIEOverlapping: function() { + Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); + this.iefix.style.zIndex = 1; + this.update.style.zIndex = 2; + Element.show(this.iefix); + }, + + hide: function() { + this.stopIndicator(); + if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update); + if(this.iefix) Element.hide(this.iefix); + }, + + startIndicator: function() { + if(this.options.indicator) Element.show(this.options.indicator); + }, + + stopIndicator: function() { + if(this.options.indicator) Element.hide(this.options.indicator); + }, + + onKeyPress: function(event) { + if(this.active) + switch(event.keyCode) { + case Event.KEY_TAB: + case Event.KEY_RETURN: + this.selectEntry(); + Event.stop(event); + case Event.KEY_ESC: + this.hide(); + this.active = false; + Event.stop(event); + return; + case Event.KEY_LEFT: + case Event.KEY_RIGHT: + return; + case Event.KEY_UP: + this.markPrevious(); + this.render(); + Event.stop(event); + return; + case Event.KEY_DOWN: + this.markNext(); + this.render(); + Event.stop(event); + return; + } + else + if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || + (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return; + + this.changed = true; + this.hasFocus = true; + + if(this.observer) clearTimeout(this.observer); + this.observer = + setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); + }, + + activate: function() { + this.changed = false; + this.hasFocus = true; + this.getUpdatedChoices(); + }, + + onHover: function(event) { + var element = Event.findElement(event, 'LI'); + if(this.index != element.autocompleteIndex) + { + this.index = element.autocompleteIndex; + this.render(); + } + Event.stop(event); + }, + + onClick: function(event) { + var element = Event.findElement(event, 'LI'); + this.index = element.autocompleteIndex; + this.selectEntry(); + this.hide(); + }, + + onBlur: function(event) { + // needed to make click events working + setTimeout(this.hide.bind(this), 250); + this.hasFocus = false; + this.active = false; + }, + + render: function() { + if(this.entryCount > 0) { + for (var i = 0; i < this.entryCount; i++) + this.index==i ? + Element.addClassName(this.getEntry(i),"selected") : + Element.removeClassName(this.getEntry(i),"selected"); + if(this.hasFocus) { + this.show(); + this.active = true; + } + } else { + this.active = false; + this.hide(); + } + }, + + markPrevious: function() { + if(this.index > 0) this.index--; + else this.index = this.entryCount-1; + this.getEntry(this.index).scrollIntoView(true); + }, + + markNext: function() { + if(this.index < this.entryCount-1) this.index++; + else this.index = 0; + this.getEntry(this.index).scrollIntoView(false); + }, + + getEntry: function(index) { + return this.update.firstChild.childNodes[index]; + }, + + getCurrentEntry: function() { + return this.getEntry(this.index); + }, + + selectEntry: function() { + this.active = false; + this.updateElement(this.getCurrentEntry()); + }, + + updateElement: function(selectedElement) { + if (this.options.updateElement) { + this.options.updateElement(selectedElement); + return; + } + var value = ''; + if (this.options.select) { + var nodes = $(selectedElement).select('.' + this.options.select) || []; + if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); + } else + value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); + + var bounds = this.getTokenBounds(); + if (bounds[0] != -1) { + var newValue = this.element.value.substr(0, bounds[0]); + var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/); + if (whitespace) + newValue += whitespace[0]; + this.element.value = newValue + value + this.element.value.substr(bounds[1]); + } else { + this.element.value = value; + } + this.oldElementValue = this.element.value; + this.element.focus(); + + if (this.options.afterUpdateElement) + this.options.afterUpdateElement(this.element, selectedElement); + }, + + updateChoices: function(choices) { + if(!this.changed && this.hasFocus) { + this.update.innerHTML = choices; + Element.cleanWhitespace(this.update); + Element.cleanWhitespace(this.update.down()); + + if(this.update.firstChild && this.update.down().childNodes) { + this.entryCount = + this.update.down().childNodes.length; + for (var i = 0; i < this.entryCount; i++) { + var entry = this.getEntry(i); + entry.autocompleteIndex = i; + this.addObservers(entry); + } + } else { + this.entryCount = 0; + } + + this.stopIndicator(); + this.index = 0; + + if(this.entryCount==1 && this.options.autoSelect) { + this.selectEntry(); + this.hide(); + } else { + this.render(); + } + } + }, + + addObservers: function(element) { + Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); + Event.observe(element, "click", this.onClick.bindAsEventListener(this)); + }, + + onObserverEvent: function() { + this.changed = false; + this.tokenBounds = null; + if(this.getToken().length>=this.options.minChars) { + this.getUpdatedChoices(); + } else { + this.active = false; + this.hide(); + } + this.oldElementValue = this.element.value; + }, + + getToken: function() { + var bounds = this.getTokenBounds(); + return this.element.value.substring(bounds[0], bounds[1]).strip(); + }, + + getTokenBounds: function() { + if (null != this.tokenBounds) return this.tokenBounds; + var value = this.element.value; + if (value.strip().empty()) return [-1, 0]; + var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue); + var offset = (diff == this.oldElementValue.length ? 1 : 0); + var prevTokenPos = -1, nextTokenPos = value.length; + var tp; + for (var index = 0, l = this.options.tokens.length; index < l; ++index) { + tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1); + if (tp > prevTokenPos) prevTokenPos = tp; + tp = value.indexOf(this.options.tokens[index], diff + offset); + if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp; + } + return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]); + } +}); + +Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) { + var boundary = Math.min(newS.length, oldS.length); + for (var index = 0; index < boundary; ++index) + if (newS[index] != oldS[index]) + return index; + return boundary; +}; + +Ajax.Autocompleter = Class.create(Autocompleter.Base, { + initialize: function(element, update, url, options) { + this.baseInitialize(element, update, options); + this.options.asynchronous = true; + this.options.onComplete = this.onComplete.bind(this); + this.options.defaultParams = this.options.parameters || null; + this.url = url; + }, + + getUpdatedChoices: function() { + this.startIndicator(); + + var entry = encodeURIComponent(this.options.paramName) + '=' + + encodeURIComponent(this.getToken()); + + this.options.parameters = this.options.callback ? + this.options.callback(this.element, entry) : entry; + + if(this.options.defaultParams) + this.options.parameters += '&' + this.options.defaultParams; + + new Ajax.Request(this.url, this.options); + }, + + onComplete: function(request) { + this.updateChoices(request.responseText); + } +}); + +// The local array autocompleter. Used when you'd prefer to +// inject an array of autocompletion options into the page, rather +// than sending out Ajax queries, which can be quite slow sometimes. +// +// The constructor takes four parameters. The first two are, as usual, +// the id of the monitored textbox, and id of the autocompletion menu. +// The third is the array you want to autocomplete from, and the fourth +// is the options block. +// +// Extra local autocompletion options: +// - choices - How many autocompletion choices to offer +// +// - partialSearch - If false, the autocompleter will match entered +// text only at the beginning of strings in the +// autocomplete array. Defaults to true, which will +// match text at the beginning of any *word* in the +// strings in the autocomplete array. If you want to +// search anywhere in the string, additionally set +// the option fullSearch to true (default: off). +// +// - fullSsearch - Search anywhere in autocomplete array strings. +// +// - partialChars - How many characters to enter before triggering +// a partial match (unlike minChars, which defines +// how many characters are required to do any match +// at all). Defaults to 2. +// +// - ignoreCase - Whether to ignore case when autocompleting. +// Defaults to true. +// +// It's possible to pass in a custom function as the 'selector' +// option, if you prefer to write your own autocompletion logic. +// In that case, the other options above will not apply unless +// you support them. + +Autocompleter.Local = Class.create(Autocompleter.Base, { + initialize: function(element, update, array, options) { + this.baseInitialize(element, update, options); + this.options.array = array; + }, + + getUpdatedChoices: function() { + this.updateChoices(this.options.selector(this)); + }, + + setOptions: function(options) { + this.options = Object.extend({ + choices: 10, + partialSearch: true, + partialChars: 2, + ignoreCase: true, + fullSearch: false, + selector: function(instance) { + var ret = []; // Beginning matches + var partial = []; // Inside matches + var entry = instance.getToken(); + var count = 0; + + for (var i = 0; i < instance.options.array.length && + ret.length < instance.options.choices ; i++) { + + var elem = instance.options.array[i]; + var foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase()) : + elem.indexOf(entry); + + while (foundPos != -1) { + if (foundPos == 0 && elem.length != entry.length) { + ret.push("
  • " + elem.substr(0, entry.length) + "" + + elem.substr(entry.length) + "
  • "); + break; + } else if (entry.length >= instance.options.partialChars && + instance.options.partialSearch && foundPos != -1) { + if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { + partial.push("
  • " + elem.substr(0, foundPos) + "" + + elem.substr(foundPos, entry.length) + "" + elem.substr( + foundPos + entry.length) + "
  • "); + break; + } + } + + foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : + elem.indexOf(entry, foundPos + 1); + + } + } + if (partial.length) + ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)); + return "
      " + ret.join('') + "
    "; + } + }, options || { }); + } +}); + +// AJAX in-place editor and collection editor +// Full rewrite by Christophe Porteneuve (April 2007). + +// Use this if you notice weird scrolling problems on some browsers, +// the DOM might be a bit confused when this gets called so do this +// waits 1 ms (with setTimeout) until it does the activation +Field.scrollFreeActivate = function(field) { + setTimeout(function() { + Field.activate(field); + }, 1); +}; + +Ajax.InPlaceEditor = Class.create({ + initialize: function(element, url, options) { + this.url = url; + this.element = element = $(element); + this.prepareOptions(); + this._controls = { }; + arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!! + Object.extend(this.options, options || { }); + if (!this.options.formId && this.element.id) { + this.options.formId = this.element.id + '-inplaceeditor'; + if ($(this.options.formId)) + this.options.formId = ''; + } + if (this.options.externalControl) + this.options.externalControl = $(this.options.externalControl); + if (!this.options.externalControl) + this.options.externalControlOnly = false; + this._originalBackground = this.element.getStyle('background-color') || 'transparent'; + this.element.title = this.options.clickToEditText; + this._boundCancelHandler = this.handleFormCancellation.bind(this); + this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this); + this._boundFailureHandler = this.handleAJAXFailure.bind(this); + this._boundSubmitHandler = this.handleFormSubmission.bind(this); + this._boundWrapperHandler = this.wrapUp.bind(this); + this.registerListeners(); + }, + checkForEscapeOrReturn: function(e) { + if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return; + if (Event.KEY_ESC == e.keyCode) + this.handleFormCancellation(e); + else if (Event.KEY_RETURN == e.keyCode) + this.handleFormSubmission(e); + }, + createControl: function(mode, handler, extraClasses) { + var control = this.options[mode + 'Control']; + var text = this.options[mode + 'Text']; + if ('button' == control) { + var btn = document.createElement('input'); + btn.type = 'submit'; + btn.value = text; + btn.className = 'editor_' + mode + '_button'; + if ('cancel' == mode) + btn.onclick = this._boundCancelHandler; + this._form.appendChild(btn); + this._controls[mode] = btn; + } else if ('link' == control) { + var link = document.createElement('a'); + link.href = '#'; + link.appendChild(document.createTextNode(text)); + link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler; + link.className = 'editor_' + mode + '_link'; + if (extraClasses) + link.className += ' ' + extraClasses; + this._form.appendChild(link); + this._controls[mode] = link; + } + }, + createEditField: function() { + var text = (this.options.loadTextURL ? this.options.loadingText : this.getText()); + var fld; + if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) { + fld = document.createElement('input'); + fld.type = 'text'; + var size = this.options.size || this.options.cols || 0; + if (0 < size) fld.size = size; + } else { + fld = document.createElement('textarea'); + fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows); + fld.cols = this.options.cols || 40; + } + fld.name = this.options.paramName; + fld.value = text; // No HTML breaks conversion anymore + fld.className = 'editor_field'; + if (this.options.submitOnBlur) + fld.onblur = this._boundSubmitHandler; + this._controls.editor = fld; + if (this.options.loadTextURL) + this.loadExternalText(); + this._form.appendChild(this._controls.editor); + }, + createForm: function() { + var ipe = this; + function addText(mode, condition) { + var text = ipe.options['text' + mode + 'Controls']; + if (!text || condition === false) return; + ipe._form.appendChild(document.createTextNode(text)); + }; + this._form = $(document.createElement('form')); + this._form.id = this.options.formId; + this._form.addClassName(this.options.formClassName); + this._form.onsubmit = this._boundSubmitHandler; + this.createEditField(); + if ('textarea' == this._controls.editor.tagName.toLowerCase()) + this._form.appendChild(document.createElement('br')); + if (this.options.onFormCustomization) + this.options.onFormCustomization(this, this._form); + addText('Before', this.options.okControl || this.options.cancelControl); + this.createControl('ok', this._boundSubmitHandler); + addText('Between', this.options.okControl && this.options.cancelControl); + this.createControl('cancel', this._boundCancelHandler, 'editor_cancel'); + addText('After', this.options.okControl || this.options.cancelControl); + }, + destroy: function() { + if (this._oldInnerHTML) + this.element.innerHTML = this._oldInnerHTML; + this.leaveEditMode(); + this.unregisterListeners(); + }, + enterEditMode: function(e) { + if (this._saving || this._editing) return; + this._editing = true; + this.triggerCallback('onEnterEditMode'); + if (this.options.externalControl) + this.options.externalControl.hide(); + this.element.hide(); + this.createForm(); + this.element.parentNode.insertBefore(this._form, this.element); + if (!this.options.loadTextURL) + this.postProcessEditField(); + if (e) Event.stop(e); + }, + enterHover: function(e) { + if (this.options.hoverClassName) + this.element.addClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onEnterHover'); + }, + getText: function() { + return this.element.innerHTML.unescapeHTML(); + }, + handleAJAXFailure: function(transport) { + this.triggerCallback('onFailure', transport); + if (this._oldInnerHTML) { + this.element.innerHTML = this._oldInnerHTML; + this._oldInnerHTML = null; + } + }, + handleFormCancellation: function(e) { + this.wrapUp(); + if (e) Event.stop(e); + }, + handleFormSubmission: function(e) { + var form = this._form; + var value = $F(this._controls.editor); + this.prepareSubmission(); + var params = this.options.callback(form, value) || ''; + if (Object.isString(params)) + params = params.toQueryParams(); + params.editorId = this.element.id; + if (this.options.htmlResponse) { + var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Updater({ success: this.element }, this.url, options); + } else { + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.url, options); + } + if (e) Event.stop(e); + }, + leaveEditMode: function() { + this.element.removeClassName(this.options.savingClassName); + this.removeForm(); + this.leaveHover(); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + if (this.options.externalControl) + this.options.externalControl.show(); + this._saving = false; + this._editing = false; + this._oldInnerHTML = null; + this.triggerCallback('onLeaveEditMode'); + }, + leaveHover: function(e) { + if (this.options.hoverClassName) + this.element.removeClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onLeaveHover'); + }, + loadExternalText: function() { + this._form.addClassName(this.options.loadingClassName); + this._controls.editor.disabled = true; + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._form.removeClassName(this.options.loadingClassName); + var text = transport.responseText; + if (this.options.stripLoadedTextTags) + text = text.stripTags(); + this._controls.editor.value = text; + this._controls.editor.disabled = false; + this.postProcessEditField(); + }.bind(this), + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + postProcessEditField: function() { + var fpc = this.options.fieldPostCreation; + if (fpc) + $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate'](); + }, + prepareOptions: function() { + this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions); + Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks); + [this._extraDefaultOptions].flatten().compact().each(function(defs) { + Object.extend(this.options, defs); + }.bind(this)); + }, + prepareSubmission: function() { + this._saving = true; + this.removeForm(); + this.leaveHover(); + this.showSaving(); + }, + registerListeners: function() { + this._listeners = { }; + var listener; + $H(Ajax.InPlaceEditor.Listeners).each(function(pair) { + listener = this[pair.value].bind(this); + this._listeners[pair.key] = listener; + if (!this.options.externalControlOnly) + this.element.observe(pair.key, listener); + if (this.options.externalControl) + this.options.externalControl.observe(pair.key, listener); + }.bind(this)); + }, + removeForm: function() { + if (!this._form) return; + this._form.remove(); + this._form = null; + this._controls = { }; + }, + showSaving: function() { + this._oldInnerHTML = this.element.innerHTML; + this.element.innerHTML = this.options.savingText; + this.element.addClassName(this.options.savingClassName); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + }, + triggerCallback: function(cbName, arg) { + if ('function' == typeof this.options[cbName]) { + this.options[cbName](this, arg); + } + }, + unregisterListeners: function() { + $H(this._listeners).each(function(pair) { + if (!this.options.externalControlOnly) + this.element.stopObserving(pair.key, pair.value); + if (this.options.externalControl) + this.options.externalControl.stopObserving(pair.key, pair.value); + }.bind(this)); + }, + wrapUp: function(transport) { + this.leaveEditMode(); + // Can't use triggerCallback due to backward compatibility: requires + // binding + direct element + this._boundComplete(transport, this.element); + } +}); + +Object.extend(Ajax.InPlaceEditor.prototype, { + dispose: Ajax.InPlaceEditor.prototype.destroy +}); + +Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, { + initialize: function($super, element, url, options) { + this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions; + $super(element, url, options); + }, + + createEditField: function() { + var list = document.createElement('select'); + list.name = this.options.paramName; + list.size = 1; + this._controls.editor = list; + this._collection = this.options.collection || []; + if (this.options.loadCollectionURL) + this.loadCollection(); + else + this.checkForExternalText(); + this._form.appendChild(this._controls.editor); + }, + + loadCollection: function() { + this._form.addClassName(this.options.loadingClassName); + this.showLoadingText(this.options.loadingCollectionText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + var js = transport.responseText.strip(); + if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check + throw('Server returned an invalid collection representation.'); + this._collection = eval(js); + this.checkForExternalText(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadCollectionURL, options); + }, + + showLoadingText: function(text) { + this._controls.editor.disabled = true; + var tempOption = this._controls.editor.firstChild; + if (!tempOption) { + tempOption = document.createElement('option'); + tempOption.value = ''; + this._controls.editor.appendChild(tempOption); + tempOption.selected = true; + } + tempOption.update((text || '').stripScripts().stripTags()); + }, + + checkForExternalText: function() { + this._text = this.getText(); + if (this.options.loadTextURL) + this.loadExternalText(); + else + this.buildOptionList(); + }, + + loadExternalText: function() { + this.showLoadingText(this.options.loadingText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._text = transport.responseText.strip(); + this.buildOptionList(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + + buildOptionList: function() { + this._form.removeClassName(this.options.loadingClassName); + this._collection = this._collection.map(function(entry) { + return 2 === entry.length ? entry : [entry, entry].flatten(); + }); + var marker = ('value' in this.options) ? this.options.value : this._text; + var textFound = this._collection.any(function(entry) { + return entry[0] == marker; + }.bind(this)); + this._controls.editor.update(''); + var option; + this._collection.each(function(entry, index) { + option = document.createElement('option'); + option.value = entry[0]; + option.selected = textFound ? entry[0] == marker : 0 == index; + option.appendChild(document.createTextNode(entry[1])); + this._controls.editor.appendChild(option); + }.bind(this)); + this._controls.editor.disabled = false; + Field.scrollFreeActivate(this._controls.editor); + } +}); + +//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! **** +//**** This only exists for a while, in order to let **** +//**** users adapt to the new API. Read up on the new **** +//**** API and convert your code to it ASAP! **** + +Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) { + if (!options) return; + function fallback(name, expr) { + if (name in options || expr === undefined) return; + options[name] = expr; + }; + fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' : + options.cancelLink == options.cancelButton == false ? false : undefined))); + fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' : + options.okLink == options.okButton == false ? false : undefined))); + fallback('highlightColor', options.highlightcolor); + fallback('highlightEndColor', options.highlightendcolor); +}; + +Object.extend(Ajax.InPlaceEditor, { + DefaultOptions: { + ajaxOptions: { }, + autoRows: 3, // Use when multi-line w/ rows == 1 + cancelControl: 'link', // 'link'|'button'|false + cancelText: 'cancel', + clickToEditText: 'Click to edit', + externalControl: null, // id|elt + externalControlOnly: false, + fieldPostCreation: 'activate', // 'activate'|'focus'|false + formClassName: 'inplaceeditor-form', + formId: null, // id|elt + highlightColor: '#ffff99', + highlightEndColor: '#ffffff', + hoverClassName: '', + htmlResponse: true, + loadingClassName: 'inplaceeditor-loading', + loadingText: 'Loading...', + okControl: 'button', // 'link'|'button'|false + okText: 'ok', + paramName: 'value', + rows: 1, // If 1 and multi-line, uses autoRows + savingClassName: 'inplaceeditor-saving', + savingText: 'Saving...', + size: 0, + stripLoadedTextTags: false, + submitOnBlur: false, + textAfterControls: '', + textBeforeControls: '', + textBetweenControls: '' + }, + DefaultCallbacks: { + callback: function(form) { + return Form.serialize(form); + }, + onComplete: function(transport, element) { + // For backward compatibility, this one is bound to the IPE, and passes + // the element directly. It was too often customized, so we don't break it. + new Effect.Highlight(element, { + startcolor: this.options.highlightColor, keepBackgroundImage: true }); + }, + onEnterEditMode: null, + onEnterHover: function(ipe) { + ipe.element.style.backgroundColor = ipe.options.highlightColor; + if (ipe._effect) + ipe._effect.cancel(); + }, + onFailure: function(transport, ipe) { + alert('Error communication with the server: ' + transport.responseText.stripTags()); + }, + onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls. + onLeaveEditMode: null, + onLeaveHover: function(ipe) { + ipe._effect = new Effect.Highlight(ipe.element, { + startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor, + restorecolor: ipe._originalBackground, keepBackgroundImage: true + }); + } + }, + Listeners: { + click: 'enterEditMode', + keydown: 'checkForEscapeOrReturn', + mouseover: 'enterHover', + mouseout: 'leaveHover' + } +}); + +Ajax.InPlaceCollectionEditor.DefaultOptions = { + loadingCollectionText: 'Loading options...' +}; + +// Delayed observer, like Form.Element.Observer, +// but waits for delay after last key input +// Ideal for live-search fields + +Form.Element.DelayedObserver = Class.create({ + initialize: function(element, delay, callback) { + this.delay = delay || 0.5; + this.element = $(element); + this.callback = callback; + this.timer = null; + this.lastValue = $F(this.element); + Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); + }, + delayedListener: function(event) { + if(this.lastValue == $F(this.element)) return; + if(this.timer) clearTimeout(this.timer); + this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); + this.lastValue = $F(this.element); + }, + onTimerEvent: function() { + this.timer = null; + this.callback(this.element, $F(this.element)); + } +}); \ No newline at end of file diff --git a/OLD/js/dragdrop.js b/OLD/js/dragdrop.js new file mode 100644 index 0000000..15c6dbc --- /dev/null +++ b/OLD/js/dragdrop.js @@ -0,0 +1,974 @@ +// script.aculo.us dragdrop.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009 + +// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +if(Object.isUndefined(Effect)) + throw("dragdrop.js requires including script.aculo.us' effects.js library"); + +var Droppables = { + drops: [], + + remove: function(element) { + this.drops = this.drops.reject(function(d) { return d.element==$(element) }); + }, + + add: function(element) { + element = $(element); + var options = Object.extend({ + greedy: true, + hoverclass: null, + tree: false + }, arguments[1] || { }); + + // cache containers + if(options.containment) { + options._containers = []; + var containment = options.containment; + if(Object.isArray(containment)) { + containment.each( function(c) { options._containers.push($(c)) }); + } else { + options._containers.push($(containment)); + } + } + + if(options.accept) options.accept = [options.accept].flatten(); + + Element.makePositioned(element); // fix IE + options.element = element; + + this.drops.push(options); + }, + + findDeepestChild: function(drops) { + deepest = drops[0]; + + for (i = 1; i < drops.length; ++i) + if (Element.isParent(drops[i].element, deepest.element)) + deepest = drops[i]; + + return deepest; + }, + + isContained: function(element, drop) { + var containmentNode; + if(drop.tree) { + containmentNode = element.treeNode; + } else { + containmentNode = element.parentNode; + } + return drop._containers.detect(function(c) { return containmentNode == c }); + }, + + isAffected: function(point, element, drop) { + return ( + (drop.element!=element) && + ((!drop._containers) || + this.isContained(element, drop)) && + ((!drop.accept) || + (Element.classNames(element).detect( + function(v) { return drop.accept.include(v) } ) )) && + Position.within(drop.element, point[0], point[1]) ); + }, + + deactivate: function(drop) { + if(drop.hoverclass) + Element.removeClassName(drop.element, drop.hoverclass); + this.last_active = null; + }, + + activate: function(drop) { + if(drop.hoverclass) + Element.addClassName(drop.element, drop.hoverclass); + this.last_active = drop; + }, + + show: function(point, element) { + if(!this.drops.length) return; + var drop, affected = []; + + this.drops.each( function(drop) { + if(Droppables.isAffected(point, element, drop)) + affected.push(drop); + }); + + if(affected.length>0) + drop = Droppables.findDeepestChild(affected); + + if(this.last_active && this.last_active != drop) this.deactivate(this.last_active); + if (drop) { + Position.within(drop.element, point[0], point[1]); + if(drop.onHover) + drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); + + if (drop != this.last_active) Droppables.activate(drop); + } + }, + + fire: function(event, element) { + if(!this.last_active) return; + Position.prepare(); + + if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) + if (this.last_active.onDrop) { + this.last_active.onDrop(element, this.last_active.element, event); + return true; + } + }, + + reset: function() { + if(this.last_active) + this.deactivate(this.last_active); + } +}; + +var Draggables = { + drags: [], + observers: [], + + register: function(draggable) { + if(this.drags.length == 0) { + this.eventMouseUp = this.endDrag.bindAsEventListener(this); + this.eventMouseMove = this.updateDrag.bindAsEventListener(this); + this.eventKeypress = this.keyPress.bindAsEventListener(this); + + Event.observe(document, "mouseup", this.eventMouseUp); + Event.observe(document, "mousemove", this.eventMouseMove); + Event.observe(document, "keypress", this.eventKeypress); + } + this.drags.push(draggable); + }, + + unregister: function(draggable) { + this.drags = this.drags.reject(function(d) { return d==draggable }); + if(this.drags.length == 0) { + Event.stopObserving(document, "mouseup", this.eventMouseUp); + Event.stopObserving(document, "mousemove", this.eventMouseMove); + Event.stopObserving(document, "keypress", this.eventKeypress); + } + }, + + activate: function(draggable) { + if(draggable.options.delay) { + this._timeout = setTimeout(function() { + Draggables._timeout = null; + window.focus(); + Draggables.activeDraggable = draggable; + }.bind(this), draggable.options.delay); + } else { + window.focus(); // allows keypress events if window isn't currently focused, fails for Safari + this.activeDraggable = draggable; + } + }, + + deactivate: function() { + this.activeDraggable = null; + }, + + updateDrag: function(event) { + if(!this.activeDraggable) return; + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + // Mozilla-based browsers fire successive mousemove events with + // the same coordinates, prevent needless redrawing (moz bug?) + if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; + this._lastPointer = pointer; + + this.activeDraggable.updateDrag(event, pointer); + }, + + endDrag: function(event) { + if(this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + if(!this.activeDraggable) return; + this._lastPointer = null; + this.activeDraggable.endDrag(event); + this.activeDraggable = null; + }, + + keyPress: function(event) { + if(this.activeDraggable) + this.activeDraggable.keyPress(event); + }, + + addObserver: function(observer) { + this.observers.push(observer); + this._cacheObserverCallbacks(); + }, + + removeObserver: function(element) { // element instead of observer fixes mem leaks + this.observers = this.observers.reject( function(o) { return o.element==element }); + this._cacheObserverCallbacks(); + }, + + notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' + if(this[eventName+'Count'] > 0) + this.observers.each( function(o) { + if(o[eventName]) o[eventName](eventName, draggable, event); + }); + if(draggable.options[eventName]) draggable.options[eventName](draggable, event); + }, + + _cacheObserverCallbacks: function() { + ['onStart','onEnd','onDrag'].each( function(eventName) { + Draggables[eventName+'Count'] = Draggables.observers.select( + function(o) { return o[eventName]; } + ).length; + }); + } +}; + +/*--------------------------------------------------------------------------*/ + +var Draggable = Class.create({ + initialize: function(element) { + var defaults = { + handle: false, + reverteffect: function(element, top_offset, left_offset) { + var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02; + new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur, + queue: {scope:'_draggable', position:'end'} + }); + }, + endeffect: function(element) { + var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0; + new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, + queue: {scope:'_draggable', position:'end'}, + afterFinish: function(){ + Draggable._dragging[element] = false + } + }); + }, + zindex: 1000, + revert: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } + delay: 0 + }; + + if(!arguments[1] || Object.isUndefined(arguments[1].endeffect)) + Object.extend(defaults, { + starteffect: function(element) { + element._opacity = Element.getOpacity(element); + Draggable._dragging[element] = true; + new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); + } + }); + + var options = Object.extend(defaults, arguments[1] || { }); + + this.element = $(element); + + if(options.handle && Object.isString(options.handle)) + this.handle = this.element.down('.'+options.handle, 0); + + if(!this.handle) this.handle = $(options.handle); + if(!this.handle) this.handle = this.element; + + if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { + options.scroll = $(options.scroll); + this._isScrollChild = Element.childOf(this.element, options.scroll); + } + + Element.makePositioned(this.element); // fix IE + + this.options = options; + this.dragging = false; + + this.eventMouseDown = this.initDrag.bindAsEventListener(this); + Event.observe(this.handle, "mousedown", this.eventMouseDown); + + Draggables.register(this); + }, + + destroy: function() { + Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); + Draggables.unregister(this); + }, + + currentDelta: function() { + return([ + parseInt(Element.getStyle(this.element,'left') || '0'), + parseInt(Element.getStyle(this.element,'top') || '0')]); + }, + + initDrag: function(event) { + if(!Object.isUndefined(Draggable._dragging[this.element]) && + Draggable._dragging[this.element]) return; + if(Event.isLeftClick(event)) { + // abort on form elements, fixes a Firefox issue + var src = Event.element(event); + if((tag_name = src.tagName.toUpperCase()) && ( + tag_name=='INPUT' || + tag_name=='SELECT' || + tag_name=='OPTION' || + tag_name=='BUTTON' || + tag_name=='TEXTAREA')) return; + + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + var pos = this.element.cumulativeOffset(); + this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); + + Draggables.activate(this); + Event.stop(event); + } + }, + + startDrag: function(event) { + this.dragging = true; + if(!this.delta) + this.delta = this.currentDelta(); + + if(this.options.zindex) { + this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); + this.element.style.zIndex = this.options.zindex; + } + + if(this.options.ghosting) { + this._clone = this.element.cloneNode(true); + this._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); + if (!this._originallyAbsolute) + Position.absolutize(this.element); + this.element.parentNode.insertBefore(this._clone, this.element); + } + + if(this.options.scroll) { + if (this.options.scroll == window) { + var where = this._getWindowScroll(this.options.scroll); + this.originalScrollLeft = where.left; + this.originalScrollTop = where.top; + } else { + this.originalScrollLeft = this.options.scroll.scrollLeft; + this.originalScrollTop = this.options.scroll.scrollTop; + } + } + + Draggables.notify('onStart', this, event); + + if(this.options.starteffect) this.options.starteffect(this.element); + }, + + updateDrag: function(event, pointer) { + if(!this.dragging) this.startDrag(event); + + if(!this.options.quiet){ + Position.prepare(); + Droppables.show(pointer, this.element); + } + + Draggables.notify('onDrag', this, event); + + this.draw(pointer); + if(this.options.change) this.options.change(this); + + if(this.options.scroll) { + this.stopScrolling(); + + var p; + if (this.options.scroll == window) { + with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } + } else { + p = Position.page(this.options.scroll); + p[0] += this.options.scroll.scrollLeft + Position.deltaX; + p[1] += this.options.scroll.scrollTop + Position.deltaY; + p.push(p[0]+this.options.scroll.offsetWidth); + p.push(p[1]+this.options.scroll.offsetHeight); + } + var speed = [0,0]; + if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity); + if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity); + if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity); + if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); + this.startScrolling(speed); + } + + // fix AppleWebKit rendering + if(Prototype.Browser.WebKit) window.scrollBy(0,0); + + Event.stop(event); + }, + + finishDrag: function(event, success) { + this.dragging = false; + + if(this.options.quiet){ + Position.prepare(); + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + Droppables.show(pointer, this.element); + } + + if(this.options.ghosting) { + if (!this._originallyAbsolute) + Position.relativize(this.element); + delete this._originallyAbsolute; + Element.remove(this._clone); + this._clone = null; + } + + var dropped = false; + if(success) { + dropped = Droppables.fire(event, this.element); + if (!dropped) dropped = false; + } + if(dropped && this.options.onDropped) this.options.onDropped(this.element); + Draggables.notify('onEnd', this, event); + + var revert = this.options.revert; + if(revert && Object.isFunction(revert)) revert = revert(this.element); + + var d = this.currentDelta(); + if(revert && this.options.reverteffect) { + if (dropped == 0 || revert != 'failure') + this.options.reverteffect(this.element, + d[1]-this.delta[1], d[0]-this.delta[0]); + } else { + this.delta = d; + } + + if(this.options.zindex) + this.element.style.zIndex = this.originalZ; + + if(this.options.endeffect) + this.options.endeffect(this.element); + + Draggables.deactivate(this); + Droppables.reset(); + }, + + keyPress: function(event) { + if(event.keyCode!=Event.KEY_ESC) return; + this.finishDrag(event, false); + Event.stop(event); + }, + + endDrag: function(event) { + if(!this.dragging) return; + this.stopScrolling(); + this.finishDrag(event, true); + Event.stop(event); + }, + + draw: function(point) { + var pos = this.element.cumulativeOffset(); + if(this.options.ghosting) { + var r = Position.realOffset(this.element); + pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY; + } + + var d = this.currentDelta(); + pos[0] -= d[0]; pos[1] -= d[1]; + + if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) { + pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; + pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; + } + + var p = [0,1].map(function(i){ + return (point[i]-pos[i]-this.offset[i]) + }.bind(this)); + + if(this.options.snap) { + if(Object.isFunction(this.options.snap)) { + p = this.options.snap(p[0],p[1],this); + } else { + if(Object.isArray(this.options.snap)) { + p = p.map( function(v, i) { + return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)); + } else { + p = p.map( function(v) { + return (v/this.options.snap).round()*this.options.snap }.bind(this)); + } + }} + + var style = this.element.style; + if((!this.options.constraint) || (this.options.constraint=='horizontal')) + style.left = p[0] + "px"; + if((!this.options.constraint) || (this.options.constraint=='vertical')) + style.top = p[1] + "px"; + + if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering + }, + + stopScrolling: function() { + if(this.scrollInterval) { + clearInterval(this.scrollInterval); + this.scrollInterval = null; + Draggables._lastScrollPointer = null; + } + }, + + startScrolling: function(speed) { + if(!(speed[0] || speed[1])) return; + this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; + this.lastScrolled = new Date(); + this.scrollInterval = setInterval(this.scroll.bind(this), 10); + }, + + scroll: function() { + var current = new Date(); + var delta = current - this.lastScrolled; + this.lastScrolled = current; + if(this.options.scroll == window) { + with (this._getWindowScroll(this.options.scroll)) { + if (this.scrollSpeed[0] || this.scrollSpeed[1]) { + var d = delta / 1000; + this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); + } + } + } else { + this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; + this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; + } + + Position.prepare(); + Droppables.show(Draggables._lastPointer, this.element); + Draggables.notify('onDrag', this); + if (this._isScrollChild) { + Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); + Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; + Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; + if (Draggables._lastScrollPointer[0] < 0) + Draggables._lastScrollPointer[0] = 0; + if (Draggables._lastScrollPointer[1] < 0) + Draggables._lastScrollPointer[1] = 0; + this.draw(Draggables._lastScrollPointer); + } + + if(this.options.change) this.options.change(this); + }, + + _getWindowScroll: function(w) { + var T, L, W, H; + with (w.document) { + if (w.document.documentElement && documentElement.scrollTop) { + T = documentElement.scrollTop; + L = documentElement.scrollLeft; + } else if (w.document.body) { + T = body.scrollTop; + L = body.scrollLeft; + } + if (w.innerWidth) { + W = w.innerWidth; + H = w.innerHeight; + } else if (w.document.documentElement && documentElement.clientWidth) { + W = documentElement.clientWidth; + H = documentElement.clientHeight; + } else { + W = body.offsetWidth; + H = body.offsetHeight; + } + } + return { top: T, left: L, width: W, height: H }; + } +}); + +Draggable._dragging = { }; + +/*--------------------------------------------------------------------------*/ + +var SortableObserver = Class.create({ + initialize: function(element, observer) { + this.element = $(element); + this.observer = observer; + this.lastValue = Sortable.serialize(this.element); + }, + + onStart: function() { + this.lastValue = Sortable.serialize(this.element); + }, + + onEnd: function() { + Sortable.unmark(); + if(this.lastValue != Sortable.serialize(this.element)) + this.observer(this.element) + } +}); + +var Sortable = { + SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, + + sortables: { }, + + _findRootElement: function(element) { + while (element.tagName.toUpperCase() != "BODY") { + if(element.id && Sortable.sortables[element.id]) return element; + element = element.parentNode; + } + }, + + options: function(element) { + element = Sortable._findRootElement($(element)); + if(!element) return; + return Sortable.sortables[element.id]; + }, + + destroy: function(element){ + element = $(element); + var s = Sortable.sortables[element.id]; + + if(s) { + Draggables.removeObserver(s.element); + s.droppables.each(function(d){ Droppables.remove(d) }); + s.draggables.invoke('destroy'); + + delete Sortable.sortables[s.element.id]; + } + }, + + create: function(element) { + element = $(element); + var options = Object.extend({ + element: element, + tag: 'li', // assumes li children, override with tag: 'tagname' + dropOnEmpty: false, + tree: false, + treeTag: 'ul', + overlap: 'vertical', // one of 'vertical', 'horizontal' + constraint: 'vertical', // one of 'vertical', 'horizontal', false + containment: element, // also takes array of elements (or id's); or false + handle: false, // or a CSS class + only: false, + delay: 0, + hoverclass: null, + ghosting: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + format: this.SERIALIZE_RULE, + + // these take arrays of elements or ids and can be + // used for better initialization performance + elements: false, + handles: false, + + onChange: Prototype.emptyFunction, + onUpdate: Prototype.emptyFunction + }, arguments[1] || { }); + + // clear any old sortable with same element + this.destroy(element); + + // build options for the draggables + var options_for_draggable = { + revert: true, + quiet: options.quiet, + scroll: options.scroll, + scrollSpeed: options.scrollSpeed, + scrollSensitivity: options.scrollSensitivity, + delay: options.delay, + ghosting: options.ghosting, + constraint: options.constraint, + handle: options.handle }; + + if(options.starteffect) + options_for_draggable.starteffect = options.starteffect; + + if(options.reverteffect) + options_for_draggable.reverteffect = options.reverteffect; + else + if(options.ghosting) options_for_draggable.reverteffect = function(element) { + element.style.top = 0; + element.style.left = 0; + }; + + if(options.endeffect) + options_for_draggable.endeffect = options.endeffect; + + if(options.zindex) + options_for_draggable.zindex = options.zindex; + + // build options for the droppables + var options_for_droppable = { + overlap: options.overlap, + containment: options.containment, + tree: options.tree, + hoverclass: options.hoverclass, + onHover: Sortable.onHover + }; + + var options_for_tree = { + onHover: Sortable.onEmptyHover, + overlap: options.overlap, + containment: options.containment, + hoverclass: options.hoverclass + }; + + // fix for gecko engine + Element.cleanWhitespace(element); + + options.draggables = []; + options.droppables = []; + + // drop on empty handling + if(options.dropOnEmpty || options.tree) { + Droppables.add(element, options_for_tree); + options.droppables.push(element); + } + + (options.elements || this.findElements(element, options) || []).each( function(e,i) { + var handle = options.handles ? $(options.handles[i]) : + (options.handle ? $(e).select('.' + options.handle)[0] : e); + options.draggables.push( + new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); + Droppables.add(e, options_for_droppable); + if(options.tree) e.treeNode = element; + options.droppables.push(e); + }); + + if(options.tree) { + (Sortable.findTreeElements(element, options) || []).each( function(e) { + Droppables.add(e, options_for_tree); + e.treeNode = element; + options.droppables.push(e); + }); + } + + // keep reference + this.sortables[element.identify()] = options; + + // for onupdate + Draggables.addObserver(new SortableObserver(element, options.onUpdate)); + + }, + + // return all suitable-for-sortable elements in a guaranteed order + findElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.tag); + }, + + findTreeElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.treeTag); + }, + + onHover: function(element, dropon, overlap) { + if(Element.isParent(dropon, element)) return; + + if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { + return; + } else if(overlap>0.5) { + Sortable.mark(dropon, 'before'); + if(dropon.previousSibling != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, dropon); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } else { + Sortable.mark(dropon, 'after'); + var nextElement = dropon.nextSibling || null; + if(nextElement != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, nextElement); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } + }, + + onEmptyHover: function(element, dropon, overlap) { + var oldParentNode = element.parentNode; + var droponOptions = Sortable.options(dropon); + + if(!Element.isParent(dropon, element)) { + var index; + + var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); + var child = null; + + if(children) { + var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); + + for (index = 0; index < children.length; index += 1) { + if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { + offset -= Element.offsetSize (children[index], droponOptions.overlap); + } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { + child = index + 1 < children.length ? children[index + 1] : null; + break; + } else { + child = children[index]; + break; + } + } + } + + dropon.insertBefore(element, child); + + Sortable.options(oldParentNode).onChange(element); + droponOptions.onChange(element); + } + }, + + unmark: function() { + if(Sortable._marker) Sortable._marker.hide(); + }, + + mark: function(dropon, position) { + // mark on ghosting only + var sortable = Sortable.options(dropon.parentNode); + if(sortable && !sortable.ghosting) return; + + if(!Sortable._marker) { + Sortable._marker = + ($('dropmarker') || Element.extend(document.createElement('DIV'))). + hide().addClassName('dropmarker').setStyle({position:'absolute'}); + document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); + } + var offsets = dropon.cumulativeOffset(); + Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); + + if(position=='after') + if(sortable.overlap == 'horizontal') + Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); + else + Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); + + Sortable._marker.show(); + }, + + _tree: function(element, options, parent) { + var children = Sortable.findElements(element, options) || []; + + for (var i = 0; i < children.length; ++i) { + var match = children[i].id.match(options.format); + + if (!match) continue; + + var child = { + id: encodeURIComponent(match ? match[1] : null), + element: element, + parent: parent, + children: [], + position: parent.children.length, + container: $(children[i]).down(options.treeTag) + }; + + /* Get the element containing the children and recurse over it */ + if (child.container) + this._tree(child.container, options, child); + + parent.children.push (child); + } + + return parent; + }, + + tree: function(element) { + element = $(element); + var sortableOptions = this.options(element); + var options = Object.extend({ + tag: sortableOptions.tag, + treeTag: sortableOptions.treeTag, + only: sortableOptions.only, + name: element.id, + format: sortableOptions.format + }, arguments[1] || { }); + + var root = { + id: null, + parent: null, + children: [], + container: element, + position: 0 + }; + + return Sortable._tree(element, options, root); + }, + + /* Construct a [i] index for a particular node */ + _constructIndex: function(node) { + var index = ''; + do { + if (node.id) index = '[' + node.position + ']' + index; + } while ((node = node.parent) != null); + return index; + }, + + sequence: function(element) { + element = $(element); + var options = Object.extend(this.options(element), arguments[1] || { }); + + return $(this.findElements(element, options) || []).map( function(item) { + return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; + }); + }, + + setSequence: function(element, new_sequence) { + element = $(element); + var options = Object.extend(this.options(element), arguments[2] || { }); + + var nodeMap = { }; + this.findElements(element, options).each( function(n) { + if (n.id.match(options.format)) + nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; + n.parentNode.removeChild(n); + }); + + new_sequence.each(function(ident) { + var n = nodeMap[ident]; + if (n) { + n[1].appendChild(n[0]); + delete nodeMap[ident]; + } + }); + }, + + serialize: function(element) { + element = $(element); + var options = Object.extend(Sortable.options(element), arguments[1] || { }); + var name = encodeURIComponent( + (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); + + if (options.tree) { + return Sortable.tree(element, arguments[1]).children.map( function (item) { + return [name + Sortable._constructIndex(item) + "[id]=" + + encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); + }).flatten().join('&'); + } else { + return Sortable.sequence(element, arguments[1]).map( function(item) { + return name + "[]=" + encodeURIComponent(item); + }).join('&'); + } + } +}; + +// Returns true if child is contained within element +Element.isParent = function(child, element) { + if (!child.parentNode || child == element) return false; + if (child.parentNode == element) return true; + return Element.isParent(child.parentNode, element); +}; + +Element.findChildren = function(element, only, recursive, tagName) { + if(!element.hasChildNodes()) return null; + tagName = tagName.toUpperCase(); + if(only) only = [only].flatten(); + var elements = []; + $A(element.childNodes).each( function(e) { + if(e.tagName && e.tagName.toUpperCase()==tagName && + (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) + elements.push(e); + if(recursive) { + var grandchildren = Element.findChildren(e, only, recursive, tagName); + if(grandchildren) elements.push(grandchildren); + } + }); + + return (elements.length>0 ? elements.flatten() : []); +}; + +Element.offsetSize = function (element, type) { + return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')]; +}; \ No newline at end of file diff --git a/OLD/js/effects.js b/OLD/js/effects.js new file mode 100644 index 0000000..066ee59 --- /dev/null +++ b/OLD/js/effects.js @@ -0,0 +1,1123 @@ +// script.aculo.us effects.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009 + +// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// Contributors: +// Justin Palmer (http://encytemedia.com/) +// Mark Pilgrim (http://diveintomark.org/) +// Martin Bialasinki +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +// converts rgb() and #xxx to #xxxxxx format, +// returns self (or first argument) if not convertable +String.prototype.parseColor = function() { + var color = '#'; + if (this.slice(0,4) == 'rgb(') { + var cols = this.slice(4,this.length-1).split(','); + var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); + } else { + if (this.slice(0,1) == '#') { + if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); + if (this.length==7) color = this.toLowerCase(); + } + } + return (color.length==7 ? color : (arguments[0] || this)); +}; + +/*--------------------------------------------------------------------------*/ + +Element.collectTextNodes = function(element) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); + }).flatten().join(''); +}; + +Element.collectTextNodesIgnoreClass = function(element, className) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? + Element.collectTextNodesIgnoreClass(node, className) : '')); + }).flatten().join(''); +}; + +Element.setContentZoom = function(element, percent) { + element = $(element); + element.setStyle({fontSize: (percent/100) + 'em'}); + if (Prototype.Browser.WebKit) window.scrollBy(0,0); + return element; +}; + +Element.getInlineOpacity = function(element){ + return $(element).style.opacity || ''; +}; + +Element.forceRerendering = function(element) { + try { + element = $(element); + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch(e) { } +}; + +/*--------------------------------------------------------------------------*/ + +var Effect = { + _elementDoesNotExistError: { + name: 'ElementDoesNotExistError', + message: 'The specified DOM element does not exist, but is required for this effect to operate' + }, + Transitions: { + linear: Prototype.K, + sinoidal: function(pos) { + return (-Math.cos(pos*Math.PI)/2) + .5; + }, + reverse: function(pos) { + return 1-pos; + }, + flicker: function(pos) { + var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4; + return pos > 1 ? 1 : pos; + }, + wobble: function(pos) { + return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5; + }, + pulse: function(pos, pulses) { + return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5; + }, + spring: function(pos) { + return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); + }, + none: function(pos) { + return 0; + }, + full: function(pos) { + return 1; + } + }, + DefaultOptions: { + duration: 1.0, // seconds + fps: 100, // 100= assume 66fps max. + sync: false, // true for combining + from: 0.0, + to: 1.0, + delay: 0.0, + queue: 'parallel' + }, + tagifyText: function(element) { + var tagifyStyle = 'position:relative'; + if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; + + element = $(element); + $A(element.childNodes).each( function(child) { + if (child.nodeType==3) { + child.nodeValue.toArray().each( function(character) { + element.insertBefore( + new Element('span', {style: tagifyStyle}).update( + character == ' ' ? String.fromCharCode(160) : character), + child); + }); + Element.remove(child); + } + }); + }, + multiple: function(element, effect) { + var elements; + if (((typeof element == 'object') || + Object.isFunction(element)) && + (element.length)) + elements = element; + else + elements = $(element).childNodes; + + var options = Object.extend({ + speed: 0.1, + delay: 0.0 + }, arguments[2] || { }); + var masterDelay = options.delay; + + $A(elements).each( function(element, index) { + new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); + }); + }, + PAIRS: { + 'slide': ['SlideDown','SlideUp'], + 'blind': ['BlindDown','BlindUp'], + 'appear': ['Appear','Fade'] + }, + toggle: function(element, effect, options) { + element = $(element); + effect = (effect || 'appear').toLowerCase(); + + return Effect[ Effect.PAIRS[ effect ][ element.visible() ? 1 : 0 ] ](element, Object.extend({ + queue: { position:'end', scope:(element.id || 'global'), limit: 1 } + }, options || {})); + } +}; + +Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; + +/* ------------- core effects ------------- */ + +Effect.ScopedQueue = Class.create(Enumerable, { + initialize: function() { + this.effects = []; + this.interval = null; + }, + _each: function(iterator) { + this.effects._each(iterator); + }, + add: function(effect) { + var timestamp = new Date().getTime(); + + var position = Object.isString(effect.options.queue) ? + effect.options.queue : effect.options.queue.position; + + switch(position) { + case 'front': + // move unstarted effects after this effect + this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { + e.startOn += effect.finishOn; + e.finishOn += effect.finishOn; + }); + break; + case 'with-last': + timestamp = this.effects.pluck('startOn').max() || timestamp; + break; + case 'end': + // start effect after last queued effect has finished + timestamp = this.effects.pluck('finishOn').max() || timestamp; + break; + } + + effect.startOn += timestamp; + effect.finishOn += timestamp; + + if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) + this.effects.push(effect); + + if (!this.interval) + this.interval = setInterval(this.loop.bind(this), 15); + }, + remove: function(effect) { + this.effects = this.effects.reject(function(e) { return e==effect }); + if (this.effects.length == 0) { + clearInterval(this.interval); + this.interval = null; + } + }, + loop: function() { + var timePos = new Date().getTime(); + for(var i=0, len=this.effects.length;i= this.startOn) { + if (timePos >= this.finishOn) { + this.render(1.0); + this.cancel(); + this.event('beforeFinish'); + if (this.finish) this.finish(); + this.event('afterFinish'); + return; + } + var pos = (timePos - this.startOn) / this.totalTime, + frame = (pos * this.totalFrames).round(); + if (frame > this.currentFrame) { + this.render(pos); + this.currentFrame = frame; + } + } + }, + cancel: function() { + if (!this.options.sync) + Effect.Queues.get(Object.isString(this.options.queue) ? + 'global' : this.options.queue.scope).remove(this); + this.state = 'finished'; + }, + event: function(eventName) { + if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); + if (this.options[eventName]) this.options[eventName](this); + }, + inspect: function() { + var data = $H(); + for(property in this) + if (!Object.isFunction(this[property])) data.set(property, this[property]); + return '#'; + } +}); + +Effect.Parallel = Class.create(Effect.Base, { + initialize: function(effects) { + this.effects = effects || []; + this.start(arguments[1]); + }, + update: function(position) { + this.effects.invoke('render', position); + }, + finish: function(position) { + this.effects.each( function(effect) { + effect.render(1.0); + effect.cancel(); + effect.event('beforeFinish'); + if (effect.finish) effect.finish(position); + effect.event('afterFinish'); + }); + } +}); + +Effect.Tween = Class.create(Effect.Base, { + initialize: function(object, from, to) { + object = Object.isString(object) ? $(object) : object; + var args = $A(arguments), method = args.last(), + options = args.length == 5 ? args[3] : null; + this.method = Object.isFunction(method) ? method.bind(object) : + Object.isFunction(object[method]) ? object[method].bind(object) : + function(value) { object[method] = value }; + this.start(Object.extend({ from: from, to: to }, options || { })); + }, + update: function(position) { + this.method(position); + } +}); + +Effect.Event = Class.create(Effect.Base, { + initialize: function() { + this.start(Object.extend({ duration: 0 }, arguments[0] || { })); + }, + update: Prototype.emptyFunction +}); + +Effect.Opacity = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + // make this work on IE on elements without 'layout' + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + var options = Object.extend({ + from: this.element.getOpacity() || 0.0, + to: 1.0 + }, arguments[1] || { }); + this.start(options); + }, + update: function(position) { + this.element.setOpacity(position); + } +}); + +Effect.Move = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + x: 0, + y: 0, + mode: 'relative' + }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + this.element.makePositioned(); + this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); + this.originalTop = parseFloat(this.element.getStyle('top') || '0'); + if (this.options.mode == 'absolute') { + this.options.x = this.options.x - this.originalLeft; + this.options.y = this.options.y - this.originalTop; + } + }, + update: function(position) { + this.element.setStyle({ + left: (this.options.x * position + this.originalLeft).round() + 'px', + top: (this.options.y * position + this.originalTop).round() + 'px' + }); + } +}); + +// for backwards compatibility +Effect.MoveBy = function(element, toTop, toLeft) { + return new Effect.Move(element, + Object.extend({ x: toLeft, y: toTop }, arguments[3] || { })); +}; + +Effect.Scale = Class.create(Effect.Base, { + initialize: function(element, percent) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + scaleX: true, + scaleY: true, + scaleContent: true, + scaleFromCenter: false, + scaleMode: 'box', // 'box' or 'contents' or { } with provided values + scaleFrom: 100.0, + scaleTo: percent + }, arguments[2] || { }); + this.start(options); + }, + setup: function() { + this.restoreAfterFinish = this.options.restoreAfterFinish || false; + this.elementPositioning = this.element.getStyle('position'); + + this.originalStyle = { }; + ['top','left','width','height','fontSize'].each( function(k) { + this.originalStyle[k] = this.element.style[k]; + }.bind(this)); + + this.originalTop = this.element.offsetTop; + this.originalLeft = this.element.offsetLeft; + + var fontSize = this.element.getStyle('font-size') || '100%'; + ['em','px','%','pt'].each( function(fontSizeType) { + if (fontSize.indexOf(fontSizeType)>0) { + this.fontSize = parseFloat(fontSize); + this.fontSizeType = fontSizeType; + } + }.bind(this)); + + this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; + + this.dims = null; + if (this.options.scaleMode=='box') + this.dims = [this.element.offsetHeight, this.element.offsetWidth]; + if (/^content/.test(this.options.scaleMode)) + this.dims = [this.element.scrollHeight, this.element.scrollWidth]; + if (!this.dims) + this.dims = [this.options.scaleMode.originalHeight, + this.options.scaleMode.originalWidth]; + }, + update: function(position) { + var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); + if (this.options.scaleContent && this.fontSize) + this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); + this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); + }, + finish: function(position) { + if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); + }, + setDimensions: function(height, width) { + var d = { }; + if (this.options.scaleX) d.width = width.round() + 'px'; + if (this.options.scaleY) d.height = height.round() + 'px'; + if (this.options.scaleFromCenter) { + var topd = (height - this.dims[0])/2; + var leftd = (width - this.dims[1])/2; + if (this.elementPositioning == 'absolute') { + if (this.options.scaleY) d.top = this.originalTop-topd + 'px'; + if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; + } else { + if (this.options.scaleY) d.top = -topd + 'px'; + if (this.options.scaleX) d.left = -leftd + 'px'; + } + } + this.element.setStyle(d); + } +}); + +Effect.Highlight = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + // Prevent executing on elements not in the layout flow + if (this.element.getStyle('display')=='none') { this.cancel(); return; } + // Disable background image during the effect + this.oldStyle = { }; + if (!this.options.keepBackgroundImage) { + this.oldStyle.backgroundImage = this.element.getStyle('background-image'); + this.element.setStyle({backgroundImage: 'none'}); + } + if (!this.options.endcolor) + this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); + if (!this.options.restorecolor) + this.options.restorecolor = this.element.getStyle('background-color'); + // init color calculations + this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); + this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); + }, + update: function(position) { + this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ + return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) }); + }, + finish: function() { + this.element.setStyle(Object.extend(this.oldStyle, { + backgroundColor: this.options.restorecolor + })); + } +}); + +Effect.ScrollTo = function(element) { + var options = arguments[1] || { }, + scrollOffsets = document.viewport.getScrollOffsets(), + elementOffsets = $(element).cumulativeOffset(); + + if (options.offset) elementOffsets[1] += options.offset; + + return new Effect.Tween(null, + scrollOffsets.top, + elementOffsets[1], + options, + function(p){ scrollTo(scrollOffsets.left, p.round()); } + ); +}; + +/* ------------- combination effects ------------- */ + +Effect.Fade = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + var options = Object.extend({ + from: element.getOpacity() || 1.0, + to: 0.0, + afterFinishInternal: function(effect) { + if (effect.options.to!=0) return; + effect.element.hide().setStyle({opacity: oldOpacity}); + } + }, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Appear = function(element) { + element = $(element); + var options = Object.extend({ + from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), + to: 1.0, + // force Safari to render floated elements properly + afterFinishInternal: function(effect) { + effect.element.forceRerendering(); + }, + beforeSetup: function(effect) { + effect.element.setOpacity(effect.options.from).show(); + }}, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Puff = function(element) { + element = $(element); + var oldStyle = { + opacity: element.getInlineOpacity(), + position: element.getStyle('position'), + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height + }; + return new Effect.Parallel( + [ new Effect.Scale(element, 200, + { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], + Object.extend({ duration: 1.0, + beforeSetupInternal: function(effect) { + Position.absolutize(effect.effects[0].element); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().setStyle(oldStyle); } + }, arguments[1] || { }) + ); +}; + +Effect.BlindUp = function(element) { + element = $(element); + element.makeClipping(); + return new Effect.Scale(element, 0, + Object.extend({ scaleContent: false, + scaleX: false, + restoreAfterFinish: true, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }, arguments[1] || { }) + ); +}; + +Effect.BlindDown = function(element) { + element = $(element); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: 0, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping(); + } + }, arguments[1] || { })); +}; + +Effect.SwitchOff = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + return new Effect.Appear(element, Object.extend({ + duration: 0.4, + from: 0, + transition: Effect.Transitions.flicker, + afterFinishInternal: function(effect) { + new Effect.Scale(effect.element, 1, { + duration: 0.3, scaleFromCenter: true, + scaleX: false, scaleContent: false, restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); + } + }); + } + }, arguments[1] || { })); +}; + +Effect.DropOut = function(element) { + element = $(element); + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left'), + opacity: element.getInlineOpacity() }; + return new Effect.Parallel( + [ new Effect.Move(element, {x: 0, y: 100, sync: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 }) ], + Object.extend( + { duration: 0.5, + beforeSetup: function(effect) { + effect.effects[0].element.makePositioned(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); + } + }, arguments[1] || { })); +}; + +Effect.Shake = function(element) { + element = $(element); + var options = Object.extend({ + distance: 20, + duration: 0.5 + }, arguments[1] || {}); + var distance = parseFloat(options.distance); + var split = parseFloat(options.duration) / 10.0; + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left') }; + return new Effect.Move(element, + { x: distance, y: 0, duration: split, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { + effect.element.undoPositioned().setStyle(oldStyle); + }}); }}); }}); }}); }}); }}); +}; + +Effect.SlideDown = function(element) { + element = $(element).cleanWhitespace(); + // SlideDown need to have the content of the element wrapped in a container element with fixed height! + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: window.opera ? 0 : 1, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } + }, arguments[1] || { }) + ); +}; + +Effect.SlideUp = function(element) { + element = $(element).cleanWhitespace(); + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, window.opera ? 0 : 1, + Object.extend({ scaleContent: false, + scaleX: false, + scaleMode: 'box', + scaleFrom: 100, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); + } + }, arguments[1] || { }) + ); +}; + +// Bug in opera makes the TD containing this element expand for a instance after finish +Effect.Squish = function(element) { + return new Effect.Scale(element, window.opera ? 1 : 0, { + restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }); +}; + +Effect.Grow = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.full + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var initialMoveX, initialMoveY; + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + initialMoveX = initialMoveY = moveX = moveY = 0; + break; + case 'top-right': + initialMoveX = dims.width; + initialMoveY = moveY = 0; + moveX = -dims.width; + break; + case 'bottom-left': + initialMoveX = moveX = 0; + initialMoveY = dims.height; + moveY = -dims.height; + break; + case 'bottom-right': + initialMoveX = dims.width; + initialMoveY = dims.height; + moveX = -dims.width; + moveY = -dims.height; + break; + case 'center': + initialMoveX = dims.width / 2; + initialMoveY = dims.height / 2; + moveX = -dims.width / 2; + moveY = -dims.height / 2; + break; + } + + return new Effect.Move(element, { + x: initialMoveX, + y: initialMoveY, + duration: 0.01, + beforeSetup: function(effect) { + effect.element.hide().makeClipping().makePositioned(); + }, + afterFinishInternal: function(effect) { + new Effect.Parallel( + [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), + new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), + new Effect.Scale(effect.element, 100, { + scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, + sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) + ], Object.extend({ + beforeSetup: function(effect) { + effect.effects[0].element.setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); + } + }, options) + ); + } + }); +}; + +Effect.Shrink = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.none + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + moveX = moveY = 0; + break; + case 'top-right': + moveX = dims.width; + moveY = 0; + break; + case 'bottom-left': + moveX = 0; + moveY = dims.height; + break; + case 'bottom-right': + moveX = dims.width; + moveY = dims.height; + break; + case 'center': + moveX = dims.width / 2; + moveY = dims.height / 2; + break; + } + + return new Effect.Parallel( + [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), + new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), + new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) + ], Object.extend({ + beforeStartInternal: function(effect) { + effect.effects[0].element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } + }, options) + ); +}; + +Effect.Pulsate = function(element) { + element = $(element); + var options = arguments[1] || { }, + oldOpacity = element.getInlineOpacity(), + transition = options.transition || Effect.Transitions.linear, + reverser = function(pos){ + return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5); + }; + + return new Effect.Opacity(element, + Object.extend(Object.extend({ duration: 2.0, from: 0, + afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } + }, options), {transition: reverser})); +}; + +Effect.Fold = function(element) { + element = $(element); + var oldStyle = { + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height }; + element.makeClipping(); + return new Effect.Scale(element, 5, Object.extend({ + scaleContent: false, + scaleX: false, + afterFinishInternal: function(effect) { + new Effect.Scale(element, 1, { + scaleContent: false, + scaleY: false, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().setStyle(oldStyle); + } }); + }}, arguments[1] || { })); +}; + +Effect.Morph = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + style: { } + }, arguments[1] || { }); + + if (!Object.isString(options.style)) this.style = $H(options.style); + else { + if (options.style.include(':')) + this.style = options.style.parseStyle(); + else { + this.element.addClassName(options.style); + this.style = $H(this.element.getStyles()); + this.element.removeClassName(options.style); + var css = this.element.getStyles(); + this.style = this.style.reject(function(style) { + return style.value == css[style.key]; + }); + options.afterFinishInternal = function(effect) { + effect.element.addClassName(effect.options.style); + effect.transforms.each(function(transform) { + effect.element.style[transform.style] = ''; + }); + }; + } + } + this.start(options); + }, + + setup: function(){ + function parseColor(color){ + if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; + color = color.parseColor(); + return $R(0,2).map(function(i){ + return parseInt( color.slice(i*2+1,i*2+3), 16 ); + }); + } + this.transforms = this.style.map(function(pair){ + var property = pair[0], value = pair[1], unit = null; + + if (value.parseColor('#zzzzzz') != '#zzzzzz') { + value = value.parseColor(); + unit = 'color'; + } else if (property == 'opacity') { + value = parseFloat(value); + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + } else if (Element.CSS_LENGTH.test(value)) { + var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); + value = parseFloat(components[1]); + unit = (components.length == 3) ? components[2] : null; + } + + var originalValue = this.element.getStyle(property); + return { + style: property.camelize(), + originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), + targetValue: unit=='color' ? parseColor(value) : value, + unit: unit + }; + }.bind(this)).reject(function(transform){ + return ( + (transform.originalValue == transform.targetValue) || + ( + transform.unit != 'color' && + (isNaN(transform.originalValue) || isNaN(transform.targetValue)) + ) + ); + }); + }, + update: function(position) { + var style = { }, transform, i = this.transforms.length; + while(i--) + style[(transform = this.transforms[i]).style] = + transform.unit=='color' ? '#'+ + (Math.round(transform.originalValue[0]+ + (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + + (Math.round(transform.originalValue[1]+ + (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + + (Math.round(transform.originalValue[2]+ + (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : + (transform.originalValue + + (transform.targetValue - transform.originalValue) * position).toFixed(3) + + (transform.unit === null ? '' : transform.unit); + this.element.setStyle(style, true); + } +}); + +Effect.Transform = Class.create({ + initialize: function(tracks){ + this.tracks = []; + this.options = arguments[1] || { }; + this.addTracks(tracks); + }, + addTracks: function(tracks){ + tracks.each(function(track){ + track = $H(track); + var data = track.values().first(); + this.tracks.push($H({ + ids: track.keys().first(), + effect: Effect.Morph, + options: { style: data } + })); + }.bind(this)); + return this; + }, + play: function(){ + return new Effect.Parallel( + this.tracks.map(function(track){ + var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options'); + var elements = [$(ids) || $$(ids)].flatten(); + return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) }); + }).flatten(), + this.options + ); + } +}); + +Element.CSS_PROPERTIES = $w( + 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + + 'fontSize fontWeight height left letterSpacing lineHeight ' + + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ + 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + + 'right textIndent top width wordSpacing zIndex'); + +Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; + +String.__parseStyleElement = document.createElement('div'); +String.prototype.parseStyle = function(){ + var style, styleRules = $H(); + if (Prototype.Browser.WebKit) + style = new Element('div',{style:this}).style; + else { + String.__parseStyleElement.innerHTML = '
    '; + style = String.__parseStyleElement.childNodes[0].style; + } + + Element.CSS_PROPERTIES.each(function(property){ + if (style[property]) styleRules.set(property, style[property]); + }); + + if (Prototype.Browser.IE && this.include('opacity')) + styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); + + return styleRules; +}; + +if (document.defaultView && document.defaultView.getComputedStyle) { + Element.getStyles = function(element) { + var css = document.defaultView.getComputedStyle($(element), null); + return Element.CSS_PROPERTIES.inject({ }, function(styles, property) { + styles[property] = css[property]; + return styles; + }); + }; +} else { + Element.getStyles = function(element) { + element = $(element); + var css = element.currentStyle, styles; + styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) { + results[property] = css[property]; + return results; + }); + if (!styles.opacity) styles.opacity = element.getOpacity(); + return styles; + }; +} + +Effect.Methods = { + morph: function(element, style) { + element = $(element); + new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { })); + return element; + }, + visualEffect: function(element, effect, options) { + element = $(element); + var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); + new Effect[klass](element, options); + return element; + }, + highlight: function(element, options) { + element = $(element); + new Effect.Highlight(element, options); + return element; + } +}; + +$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ + 'pulsate shake puff squish switchOff dropOut').each( + function(effect) { + Effect.Methods[effect] = function(element, options){ + element = $(element); + Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); + return element; + }; + } +); + +$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( + function(f) { Effect.Methods[f] = Element[f]; } +); + +Element.addMethods(Effect.Methods); \ No newline at end of file diff --git a/OLD/js/prototype.js b/OLD/js/prototype.js new file mode 100644 index 0000000..845ab7f --- /dev/null +++ b/OLD/js/prototype.js @@ -0,0 +1,4874 @@ +/* Prototype JavaScript framework, version 1.6.1 + * (c) 2005-2009 Sam Stephenson + * + * Prototype is freely distributable under the terms of an MIT-style license. + * For details, see the Prototype web site: http://www.prototypejs.org/ + * + *--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.6.1', + + Browser: (function(){ + var ua = navigator.userAgent; + var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]'; + return { + IE: !!window.attachEvent && !isOpera, + Opera: isOpera, + WebKit: ua.indexOf('AppleWebKit/') > -1, + Gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1, + MobileSafari: /Apple.*Mobile.*Safari/.test(ua) + } + })(), + + BrowserFeatures: { + XPath: !!document.evaluate, + SelectorsAPI: !!document.querySelector, + ElementExtensions: (function() { + var constructor = window.Element || window.HTMLElement; + return !!(constructor && constructor.prototype); + })(), + SpecificElementExtensions: (function() { + if (typeof window.HTMLDivElement !== 'undefined') + return true; + + var div = document.createElement('div'); + var form = document.createElement('form'); + var isSupported = false; + + if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) { + isSupported = true; + } + + div = form = null; + + return isSupported; + })() + }, + + ScriptFragment: ']*>([\\S\\s]*?)<\/script>', + JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, + + emptyFunction: function() { }, + K: function(x) { return x } +}; + +if (Prototype.Browser.MobileSafari) + Prototype.BrowserFeatures.SpecificElementExtensions = false; + + +var Abstract = { }; + + +var Try = { + these: function() { + var returnValue; + + for (var i = 0, length = arguments.length; i < length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) { } + } + + return returnValue; + } +}; + +/* Based on Alex Arnell's inheritance implementation. */ + +var Class = (function() { + function subclass() {}; + function create() { + var parent = null, properties = $A(arguments); + if (Object.isFunction(properties[0])) + parent = properties.shift(); + + function klass() { + this.initialize.apply(this, arguments); + } + + Object.extend(klass, Class.Methods); + klass.superclass = parent; + klass.subclasses = []; + + if (parent) { + subclass.prototype = parent.prototype; + klass.prototype = new subclass; + parent.subclasses.push(klass); + } + + for (var i = 0; i < properties.length; i++) + klass.addMethods(properties[i]); + + if (!klass.prototype.initialize) + klass.prototype.initialize = Prototype.emptyFunction; + + klass.prototype.constructor = klass; + return klass; + } + + function addMethods(source) { + var ancestor = this.superclass && this.superclass.prototype; + var properties = Object.keys(source); + + if (!Object.keys({ toString: true }).length) { + if (source.toString != Object.prototype.toString) + properties.push("toString"); + if (source.valueOf != Object.prototype.valueOf) + properties.push("valueOf"); + } + + for (var i = 0, length = properties.length; i < length; i++) { + var property = properties[i], value = source[property]; + if (ancestor && Object.isFunction(value) && + value.argumentNames().first() == "$super") { + var method = value; + value = (function(m) { + return function() { return ancestor[m].apply(this, arguments); }; + })(property).wrap(method); + + value.valueOf = method.valueOf.bind(method); + value.toString = method.toString.bind(method); + } + this.prototype[property] = value; + } + + return this; + } + + return { + create: create, + Methods: { + addMethods: addMethods + } + }; +})(); +(function() { + + var _toString = Object.prototype.toString; + + function extend(destination, source) { + for (var property in source) + destination[property] = source[property]; + return destination; + } + + function inspect(object) { + try { + if (isUndefined(object)) return 'undefined'; + if (object === null) return 'null'; + return object.inspect ? object.inspect() : String(object); + } catch (e) { + if (e instanceof RangeError) return '...'; + throw e; + } + } + + function toJSON(object) { + var type = typeof object; + switch (type) { + case 'undefined': + case 'function': + case 'unknown': return; + case 'boolean': return object.toString(); + } + + if (object === null) return 'null'; + if (object.toJSON) return object.toJSON(); + if (isElement(object)) return; + + var results = []; + for (var property in object) { + var value = toJSON(object[property]); + if (!isUndefined(value)) + results.push(property.toJSON() + ': ' + value); + } + + return '{' + results.join(', ') + '}'; + } + + function toQueryString(object) { + return $H(object).toQueryString(); + } + + function toHTML(object) { + return object && object.toHTML ? object.toHTML() : String.interpret(object); + } + + function keys(object) { + var results = []; + for (var property in object) + results.push(property); + return results; + } + + function values(object) { + var results = []; + for (var property in object) + results.push(object[property]); + return results; + } + + function clone(object) { + return extend({ }, object); + } + + function isElement(object) { + return !!(object && object.nodeType == 1); + } + + function isArray(object) { + return _toString.call(object) == "[object Array]"; + } + + + function isHash(object) { + return object instanceof Hash; + } + + function isFunction(object) { + return typeof object === "function"; + } + + function isString(object) { + return _toString.call(object) == "[object String]"; + } + + function isNumber(object) { + return _toString.call(object) == "[object Number]"; + } + + function isUndefined(object) { + return typeof object === "undefined"; + } + + extend(Object, { + extend: extend, + inspect: inspect, + toJSON: toJSON, + toQueryString: toQueryString, + toHTML: toHTML, + keys: keys, + values: values, + clone: clone, + isElement: isElement, + isArray: isArray, + isHash: isHash, + isFunction: isFunction, + isString: isString, + isNumber: isNumber, + isUndefined: isUndefined + }); +})(); +Object.extend(Function.prototype, (function() { + var slice = Array.prototype.slice; + + function update(array, args) { + var arrayLength = array.length, length = args.length; + while (length--) array[arrayLength + length] = args[length]; + return array; + } + + function merge(array, args) { + array = slice.call(array, 0); + return update(array, args); + } + + function argumentNames() { + var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1] + .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '') + .replace(/\s+/g, '').split(','); + return names.length == 1 && !names[0] ? [] : names; + } + + function bind(context) { + if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; + var __method = this, args = slice.call(arguments, 1); + return function() { + var a = merge(args, arguments); + return __method.apply(context, a); + } + } + + function bindAsEventListener(context) { + var __method = this, args = slice.call(arguments, 1); + return function(event) { + var a = update([event || window.event], args); + return __method.apply(context, a); + } + } + + function curry() { + if (!arguments.length) return this; + var __method = this, args = slice.call(arguments, 0); + return function() { + var a = merge(args, arguments); + return __method.apply(this, a); + } + } + + function delay(timeout) { + var __method = this, args = slice.call(arguments, 1); + timeout = timeout * 1000 + return window.setTimeout(function() { + return __method.apply(__method, args); + }, timeout); + } + + function defer() { + var args = update([0.01], arguments); + return this.delay.apply(this, args); + } + + function wrap(wrapper) { + var __method = this; + return function() { + var a = update([__method.bind(this)], arguments); + return wrapper.apply(this, a); + } + } + + function methodize() { + if (this._methodized) return this._methodized; + var __method = this; + return this._methodized = function() { + var a = update([this], arguments); + return __method.apply(null, a); + }; + } + + return { + argumentNames: argumentNames, + bind: bind, + bindAsEventListener: bindAsEventListener, + curry: curry, + delay: delay, + defer: defer, + wrap: wrap, + methodize: methodize + } +})()); + + +Date.prototype.toJSON = function() { + return '"' + this.getUTCFullYear() + '-' + + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + + this.getUTCDate().toPaddedString(2) + 'T' + + this.getUTCHours().toPaddedString(2) + ':' + + this.getUTCMinutes().toPaddedString(2) + ':' + + this.getUTCSeconds().toPaddedString(2) + 'Z"'; +}; + + +RegExp.prototype.match = RegExp.prototype.test; + +RegExp.escape = function(str) { + return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); +}; +var PeriodicalExecuter = Class.create({ + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + execute: function() { + this.callback(this); + }, + + stop: function() { + if (!this.timer) return; + clearInterval(this.timer); + this.timer = null; + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.execute(); + this.currentlyExecuting = false; + } catch(e) { + this.currentlyExecuting = false; + throw e; + } + } + } +}); +Object.extend(String, { + interpret: function(value) { + return value == null ? '' : String(value); + }, + specialChar: { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '\\': '\\\\' + } +}); + +Object.extend(String.prototype, (function() { + + function prepareReplacement(replacement) { + if (Object.isFunction(replacement)) return replacement; + var template = new Template(replacement); + return function(match) { return template.evaluate(match) }; + } + + function gsub(pattern, replacement) { + var result = '', source = this, match; + replacement = prepareReplacement(replacement); + + if (Object.isString(pattern)) + pattern = RegExp.escape(pattern); + + if (!(pattern.length || pattern.source)) { + replacement = replacement(''); + return replacement + source.split('').join(replacement) + replacement; + } + + while (source.length > 0) { + if (match = source.match(pattern)) { + result += source.slice(0, match.index); + result += String.interpret(replacement(match)); + source = source.slice(match.index + match[0].length); + } else { + result += source, source = ''; + } + } + return result; + } + + function sub(pattern, replacement, count) { + replacement = prepareReplacement(replacement); + count = Object.isUndefined(count) ? 1 : count; + + return this.gsub(pattern, function(match) { + if (--count < 0) return match[0]; + return replacement(match); + }); + } + + function scan(pattern, iterator) { + this.gsub(pattern, iterator); + return String(this); + } + + function truncate(length, truncation) { + length = length || 30; + truncation = Object.isUndefined(truncation) ? '...' : truncation; + return this.length > length ? + this.slice(0, length - truncation.length) + truncation : String(this); + } + + function strip() { + return this.replace(/^\s+/, '').replace(/\s+$/, ''); + } + + function stripTags() { + return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, ''); + } + + function stripScripts() { + return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); + } + + function extractScripts() { + var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); + var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); + return (this.match(matchAll) || []).map(function(scriptTag) { + return (scriptTag.match(matchOne) || ['', ''])[1]; + }); + } + + function evalScripts() { + return this.extractScripts().map(function(script) { return eval(script) }); + } + + function escapeHTML() { + return this.replace(/&/g,'&').replace(//g,'>'); + } + + function unescapeHTML() { + return this.stripTags().replace(/</g,'<').replace(/>/g,'>').replace(/&/g,'&'); + } + + + function toQueryParams(separator) { + var match = this.strip().match(/([^?#]*)(#.*)?$/); + if (!match) return { }; + + return match[1].split(separator || '&').inject({ }, function(hash, pair) { + if ((pair = pair.split('='))[0]) { + var key = decodeURIComponent(pair.shift()); + var value = pair.length > 1 ? pair.join('=') : pair[0]; + if (value != undefined) value = decodeURIComponent(value); + + if (key in hash) { + if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; + hash[key].push(value); + } + else hash[key] = value; + } + return hash; + }); + } + + function toArray() { + return this.split(''); + } + + function succ() { + return this.slice(0, this.length - 1) + + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); + } + + function times(count) { + return count < 1 ? '' : new Array(count + 1).join(this); + } + + function camelize() { + var parts = this.split('-'), len = parts.length; + if (len == 1) return parts[0]; + + var camelized = this.charAt(0) == '-' + ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) + : parts[0]; + + for (var i = 1; i < len; i++) + camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); + + return camelized; + } + + function capitalize() { + return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); + } + + function underscore() { + return this.replace(/::/g, '/') + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') + .replace(/([a-z\d])([A-Z])/g, '$1_$2') + .replace(/-/g, '_') + .toLowerCase(); + } + + function dasherize() { + return this.replace(/_/g, '-'); + } + + function inspect(useDoubleQuotes) { + var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) { + if (character in String.specialChar) { + return String.specialChar[character]; + } + return '\\u00' + character.charCodeAt().toPaddedString(2, 16); + }); + if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; + return "'" + escapedString.replace(/'/g, '\\\'') + "'"; + } + + function toJSON() { + return this.inspect(true); + } + + function unfilterJSON(filter) { + return this.replace(filter || Prototype.JSONFilter, '$1'); + } + + function isJSON() { + var str = this; + if (str.blank()) return false; + str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); + return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); + } + + function evalJSON(sanitize) { + var json = this.unfilterJSON(); + try { + if (!sanitize || json.isJSON()) return eval('(' + json + ')'); + } catch (e) { } + throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); + } + + function include(pattern) { + return this.indexOf(pattern) > -1; + } + + function startsWith(pattern) { + return this.indexOf(pattern) === 0; + } + + function endsWith(pattern) { + var d = this.length - pattern.length; + return d >= 0 && this.lastIndexOf(pattern) === d; + } + + function empty() { + return this == ''; + } + + function blank() { + return /^\s*$/.test(this); + } + + function interpolate(object, pattern) { + return new Template(this, pattern).evaluate(object); + } + + return { + gsub: gsub, + sub: sub, + scan: scan, + truncate: truncate, + strip: String.prototype.trim ? String.prototype.trim : strip, + stripTags: stripTags, + stripScripts: stripScripts, + extractScripts: extractScripts, + evalScripts: evalScripts, + escapeHTML: escapeHTML, + unescapeHTML: unescapeHTML, + toQueryParams: toQueryParams, + parseQuery: toQueryParams, + toArray: toArray, + succ: succ, + times: times, + camelize: camelize, + capitalize: capitalize, + underscore: underscore, + dasherize: dasherize, + inspect: inspect, + toJSON: toJSON, + unfilterJSON: unfilterJSON, + isJSON: isJSON, + evalJSON: evalJSON, + include: include, + startsWith: startsWith, + endsWith: endsWith, + empty: empty, + blank: blank, + interpolate: interpolate + }; +})()); + +var Template = Class.create({ + initialize: function(template, pattern) { + this.template = template.toString(); + this.pattern = pattern || Template.Pattern; + }, + + evaluate: function(object) { + if (object && Object.isFunction(object.toTemplateReplacements)) + object = object.toTemplateReplacements(); + + return this.template.gsub(this.pattern, function(match) { + if (object == null) return (match[1] + ''); + + var before = match[1] || ''; + if (before == '\\') return match[2]; + + var ctx = object, expr = match[3]; + var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; + match = pattern.exec(expr); + if (match == null) return before; + + while (match != null) { + var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1]; + ctx = ctx[comp]; + if (null == ctx || '' == match[3]) break; + expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); + match = pattern.exec(expr); + } + + return before + String.interpret(ctx); + }); + } +}); +Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; + +var $break = { }; + +var Enumerable = (function() { + function each(iterator, context) { + var index = 0; + try { + this._each(function(value) { + iterator.call(context, value, index++); + }); + } catch (e) { + if (e != $break) throw e; + } + return this; + } + + function eachSlice(number, iterator, context) { + var index = -number, slices = [], array = this.toArray(); + if (number < 1) return array; + while ((index += number) < array.length) + slices.push(array.slice(index, index+number)); + return slices.collect(iterator, context); + } + + function all(iterator, context) { + iterator = iterator || Prototype.K; + var result = true; + this.each(function(value, index) { + result = result && !!iterator.call(context, value, index); + if (!result) throw $break; + }); + return result; + } + + function any(iterator, context) { + iterator = iterator || Prototype.K; + var result = false; + this.each(function(value, index) { + if (result = !!iterator.call(context, value, index)) + throw $break; + }); + return result; + } + + function collect(iterator, context) { + iterator = iterator || Prototype.K; + var results = []; + this.each(function(value, index) { + results.push(iterator.call(context, value, index)); + }); + return results; + } + + function detect(iterator, context) { + var result; + this.each(function(value, index) { + if (iterator.call(context, value, index)) { + result = value; + throw $break; + } + }); + return result; + } + + function findAll(iterator, context) { + var results = []; + this.each(function(value, index) { + if (iterator.call(context, value, index)) + results.push(value); + }); + return results; + } + + function grep(filter, iterator, context) { + iterator = iterator || Prototype.K; + var results = []; + + if (Object.isString(filter)) + filter = new RegExp(RegExp.escape(filter)); + + this.each(function(value, index) { + if (filter.match(value)) + results.push(iterator.call(context, value, index)); + }); + return results; + } + + function include(object) { + if (Object.isFunction(this.indexOf)) + if (this.indexOf(object) != -1) return true; + + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw $break; + } + }); + return found; + } + + function inGroupsOf(number, fillWith) { + fillWith = Object.isUndefined(fillWith) ? null : fillWith; + return this.eachSlice(number, function(slice) { + while(slice.length < number) slice.push(fillWith); + return slice; + }); + } + + function inject(memo, iterator, context) { + this.each(function(value, index) { + memo = iterator.call(context, memo, value, index); + }); + return memo; + } + + function invoke(method) { + var args = $A(arguments).slice(1); + return this.map(function(value) { + return value[method].apply(value, args); + }); + } + + function max(iterator, context) { + iterator = iterator || Prototype.K; + var result; + this.each(function(value, index) { + value = iterator.call(context, value, index); + if (result == null || value >= result) + result = value; + }); + return result; + } + + function min(iterator, context) { + iterator = iterator || Prototype.K; + var result; + this.each(function(value, index) { + value = iterator.call(context, value, index); + if (result == null || value < result) + result = value; + }); + return result; + } + + function partition(iterator, context) { + iterator = iterator || Prototype.K; + var trues = [], falses = []; + this.each(function(value, index) { + (iterator.call(context, value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + } + + function pluck(property) { + var results = []; + this.each(function(value) { + results.push(value[property]); + }); + return results; + } + + function reject(iterator, context) { + var results = []; + this.each(function(value, index) { + if (!iterator.call(context, value, index)) + results.push(value); + }); + return results; + } + + function sortBy(iterator, context) { + return this.map(function(value, index) { + return { + value: value, + criteria: iterator.call(context, value, index) + }; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + } + + function toArray() { + return this.map(); + } + + function zip() { + var iterator = Prototype.K, args = $A(arguments); + if (Object.isFunction(args.last())) + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + return iterator(collections.pluck(index)); + }); + } + + function size() { + return this.toArray().length; + } + + function inspect() { + return '#'; + } + + + + + + + + + + return { + each: each, + eachSlice: eachSlice, + all: all, + every: all, + any: any, + some: any, + collect: collect, + map: collect, + detect: detect, + findAll: findAll, + select: findAll, + filter: findAll, + grep: grep, + include: include, + member: include, + inGroupsOf: inGroupsOf, + inject: inject, + invoke: invoke, + max: max, + min: min, + partition: partition, + pluck: pluck, + reject: reject, + sortBy: sortBy, + toArray: toArray, + entries: toArray, + zip: zip, + size: size, + inspect: inspect, + find: detect + }; +})(); +function $A(iterable) { + if (!iterable) return []; + if ('toArray' in Object(iterable)) return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; +} + +function $w(string) { + if (!Object.isString(string)) return []; + string = string.strip(); + return string ? string.split(/\s+/) : []; +} + +Array.from = $A; + + +(function() { + var arrayProto = Array.prototype, + slice = arrayProto.slice, + _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available + + function each(iterator) { + for (var i = 0, length = this.length; i < length; i++) + iterator(this[i]); + } + if (!_each) _each = each; + + function clear() { + this.length = 0; + return this; + } + + function first() { + return this[0]; + } + + function last() { + return this[this.length - 1]; + } + + function compact() { + return this.select(function(value) { + return value != null; + }); + } + + function flatten() { + return this.inject([], function(array, value) { + if (Object.isArray(value)) + return array.concat(value.flatten()); + array.push(value); + return array; + }); + } + + function without() { + var values = slice.call(arguments, 0); + return this.select(function(value) { + return !values.include(value); + }); + } + + function reverse(inline) { + return (inline !== false ? this : this.toArray())._reverse(); + } + + function uniq(sorted) { + return this.inject([], function(array, value, index) { + if (0 == index || (sorted ? array.last() != value : !array.include(value))) + array.push(value); + return array; + }); + } + + function intersect(array) { + return this.uniq().findAll(function(item) { + return array.detect(function(value) { return item === value }); + }); + } + + + function clone() { + return slice.call(this, 0); + } + + function size() { + return this.length; + } + + function inspect() { + return '[' + this.map(Object.inspect).join(', ') + ']'; + } + + function toJSON() { + var results = []; + this.each(function(object) { + var value = Object.toJSON(object); + if (!Object.isUndefined(value)) results.push(value); + }); + return '[' + results.join(', ') + ']'; + } + + function indexOf(item, i) { + i || (i = 0); + var length = this.length; + if (i < 0) i = length + i; + for (; i < length; i++) + if (this[i] === item) return i; + return -1; + } + + function lastIndexOf(item, i) { + i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; + var n = this.slice(0, i).reverse().indexOf(item); + return (n < 0) ? n : i - n - 1; + } + + function concat() { + var array = slice.call(this, 0), item; + for (var i = 0, length = arguments.length; i < length; i++) { + item = arguments[i]; + if (Object.isArray(item) && !('callee' in item)) { + for (var j = 0, arrayLength = item.length; j < arrayLength; j++) + array.push(item[j]); + } else { + array.push(item); + } + } + return array; + } + + Object.extend(arrayProto, Enumerable); + + if (!arrayProto._reverse) + arrayProto._reverse = arrayProto.reverse; + + Object.extend(arrayProto, { + _each: _each, + clear: clear, + first: first, + last: last, + compact: compact, + flatten: flatten, + without: without, + reverse: reverse, + uniq: uniq, + intersect: intersect, + clone: clone, + toArray: clone, + size: size, + inspect: inspect, + toJSON: toJSON + }); + + var CONCAT_ARGUMENTS_BUGGY = (function() { + return [].concat(arguments)[0][0] !== 1; + })(1,2) + + if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat; + + if (!arrayProto.indexOf) arrayProto.indexOf = indexOf; + if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf; +})(); +function $H(object) { + return new Hash(object); +}; + +var Hash = Class.create(Enumerable, (function() { + function initialize(object) { + this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); + } + + function _each(iterator) { + for (var key in this._object) { + var value = this._object[key], pair = [key, value]; + pair.key = key; + pair.value = value; + iterator(pair); + } + } + + function set(key, value) { + return this._object[key] = value; + } + + function get(key) { + if (this._object[key] !== Object.prototype[key]) + return this._object[key]; + } + + function unset(key) { + var value = this._object[key]; + delete this._object[key]; + return value; + } + + function toObject() { + return Object.clone(this._object); + } + + function keys() { + return this.pluck('key'); + } + + function values() { + return this.pluck('value'); + } + + function index(value) { + var match = this.detect(function(pair) { + return pair.value === value; + }); + return match && match.key; + } + + function merge(object) { + return this.clone().update(object); + } + + function update(object) { + return new Hash(object).inject(this, function(result, pair) { + result.set(pair.key, pair.value); + return result; + }); + } + + function toQueryPair(key, value) { + if (Object.isUndefined(value)) return key; + return key + '=' + encodeURIComponent(String.interpret(value)); + } + + function toQueryString() { + return this.inject([], function(results, pair) { + var key = encodeURIComponent(pair.key), values = pair.value; + + if (values && typeof values == 'object') { + if (Object.isArray(values)) + return results.concat(values.map(toQueryPair.curry(key))); + } else results.push(toQueryPair(key, values)); + return results; + }).join('&'); + } + + function inspect() { + return '#'; + } + + function toJSON() { + return Object.toJSON(this.toObject()); + } + + function clone() { + return new Hash(this); + } + + return { + initialize: initialize, + _each: _each, + set: set, + get: get, + unset: unset, + toObject: toObject, + toTemplateReplacements: toObject, + keys: keys, + values: values, + index: index, + merge: merge, + update: update, + toQueryString: toQueryString, + inspect: inspect, + toJSON: toJSON, + clone: clone + }; +})()); + +Hash.from = $H; +Object.extend(Number.prototype, (function() { + function toColorPart() { + return this.toPaddedString(2, 16); + } + + function succ() { + return this + 1; + } + + function times(iterator, context) { + $R(0, this, true).each(iterator, context); + return this; + } + + function toPaddedString(length, radix) { + var string = this.toString(radix || 10); + return '0'.times(length - string.length) + string; + } + + function toJSON() { + return isFinite(this) ? this.toString() : 'null'; + } + + function abs() { + return Math.abs(this); + } + + function round() { + return Math.round(this); + } + + function ceil() { + return Math.ceil(this); + } + + function floor() { + return Math.floor(this); + } + + return { + toColorPart: toColorPart, + succ: succ, + times: times, + toPaddedString: toPaddedString, + toJSON: toJSON, + abs: abs, + round: round, + ceil: ceil, + floor: floor + }; +})()); + +function $R(start, end, exclusive) { + return new ObjectRange(start, end, exclusive); +} + +var ObjectRange = Class.create(Enumerable, (function() { + function initialize(start, end, exclusive) { + this.start = start; + this.end = end; + this.exclusive = exclusive; + } + + function _each(iterator) { + var value = this.start; + while (this.include(value)) { + iterator(value); + value = value.succ(); + } + } + + function include(value) { + if (value < this.start) + return false; + if (this.exclusive) + return value < this.end; + return value <= this.end; + } + + return { + initialize: initialize, + _each: _each, + include: include + }; +})()); + + + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new XMLHttpRequest()}, + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')} + ) || false; + }, + + activeRequestCount: 0 +}; + +Ajax.Responders = { + responders: [], + + _each: function(iterator) { + this.responders._each(iterator); + }, + + register: function(responder) { + if (!this.include(responder)) + this.responders.push(responder); + }, + + unregister: function(responder) { + this.responders = this.responders.without(responder); + }, + + dispatch: function(callback, request, transport, json) { + this.each(function(responder) { + if (Object.isFunction(responder[callback])) { + try { + responder[callback].apply(responder, [request, transport, json]); + } catch (e) { } + } + }); + } +}; + +Object.extend(Ajax.Responders, Enumerable); + +Ajax.Responders.register({ + onCreate: function() { Ajax.activeRequestCount++ }, + onComplete: function() { Ajax.activeRequestCount-- } +}); +Ajax.Base = Class.create({ + initialize: function(options) { + this.options = { + method: 'post', + asynchronous: true, + contentType: 'application/x-www-form-urlencoded', + encoding: 'UTF-8', + parameters: '', + evalJSON: true, + evalJS: true + }; + Object.extend(this.options, options || { }); + + this.options.method = this.options.method.toLowerCase(); + + if (Object.isString(this.options.parameters)) + this.options.parameters = this.options.parameters.toQueryParams(); + else if (Object.isHash(this.options.parameters)) + this.options.parameters = this.options.parameters.toObject(); + } +}); +Ajax.Request = Class.create(Ajax.Base, { + _complete: false, + + initialize: function($super, url, options) { + $super(options); + this.transport = Ajax.getTransport(); + this.request(url); + }, + + request: function(url) { + this.url = url; + this.method = this.options.method; + var params = Object.clone(this.options.parameters); + + if (!['get', 'post'].include(this.method)) { + params['_method'] = this.method; + this.method = 'post'; + } + + this.parameters = params; + + if (params = Object.toQueryString(params)) { + if (this.method == 'get') + this.url += (this.url.include('?') ? '&' : '?') + params; + else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) + params += '&_='; + } + + try { + var response = new Ajax.Response(this); + if (this.options.onCreate) this.options.onCreate(response); + Ajax.Responders.dispatch('onCreate', this, response); + + this.transport.open(this.method.toUpperCase(), this.url, + this.options.asynchronous); + + if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); + + this.transport.onreadystatechange = this.onStateChange.bind(this); + this.setRequestHeaders(); + + this.body = this.method == 'post' ? (this.options.postBody || params) : null; + this.transport.send(this.body); + + /* Force Firefox to handle ready state 4 for synchronous requests */ + if (!this.options.asynchronous && this.transport.overrideMimeType) + this.onStateChange(); + + } + catch (e) { + this.dispatchException(e); + } + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState > 1 && !((readyState == 4) && this._complete)) + this.respondToReadyState(this.transport.readyState); + }, + + setRequestHeaders: function() { + var headers = { + 'X-Requested-With': 'XMLHttpRequest', + 'X-Prototype-Version': Prototype.Version, + 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' + }; + + if (this.method == 'post') { + headers['Content-type'] = this.options.contentType + + (this.options.encoding ? '; charset=' + this.options.encoding : ''); + + /* Force "Connection: close" for older Mozilla browsers to work + * around a bug where XMLHttpRequest sends an incorrect + * Content-length header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType && + (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) + headers['Connection'] = 'close'; + } + + if (typeof this.options.requestHeaders == 'object') { + var extras = this.options.requestHeaders; + + if (Object.isFunction(extras.push)) + for (var i = 0, length = extras.length; i < length; i += 2) + headers[extras[i]] = extras[i+1]; + else + $H(extras).each(function(pair) { headers[pair.key] = pair.value }); + } + + for (var name in headers) + this.transport.setRequestHeader(name, headers[name]); + }, + + success: function() { + var status = this.getStatus(); + return !status || (status >= 200 && status < 300); + }, + + getStatus: function() { + try { + return this.transport.status || 0; + } catch (e) { return 0 } + }, + + respondToReadyState: function(readyState) { + var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); + + if (state == 'Complete') { + try { + this._complete = true; + (this.options['on' + response.status] + || this.options['on' + (this.success() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + var contentType = response.getHeader('Content-type'); + if (this.options.evalJS == 'force' + || (this.options.evalJS && this.isSameOrigin() && contentType + && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) + this.evalResponse(); + } + + try { + (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); + Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + if (state == 'Complete') { + this.transport.onreadystatechange = Prototype.emptyFunction; + } + }, + + isSameOrigin: function() { + var m = this.url.match(/^\s*https?:\/\/[^\/]*/); + return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ + protocol: location.protocol, + domain: document.domain, + port: location.port ? ':' + location.port : '' + })); + }, + + getHeader: function(name) { + try { + return this.transport.getResponseHeader(name) || null; + } catch (e) { return null; } + }, + + evalResponse: function() { + try { + return eval((this.transport.responseText || '').unfilterJSON()); + } catch (e) { + this.dispatchException(e); + } + }, + + dispatchException: function(exception) { + (this.options.onException || Prototype.emptyFunction)(this, exception); + Ajax.Responders.dispatch('onException', this, exception); + } +}); + +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + + + + + + + + +Ajax.Response = Class.create({ + initialize: function(request){ + this.request = request; + var transport = this.transport = request.transport, + readyState = this.readyState = transport.readyState; + + if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { + this.status = this.getStatus(); + this.statusText = this.getStatusText(); + this.responseText = String.interpret(transport.responseText); + this.headerJSON = this._getHeaderJSON(); + } + + if(readyState == 4) { + var xml = transport.responseXML; + this.responseXML = Object.isUndefined(xml) ? null : xml; + this.responseJSON = this._getResponseJSON(); + } + }, + + status: 0, + + statusText: '', + + getStatus: Ajax.Request.prototype.getStatus, + + getStatusText: function() { + try { + return this.transport.statusText || ''; + } catch (e) { return '' } + }, + + getHeader: Ajax.Request.prototype.getHeader, + + getAllHeaders: function() { + try { + return this.getAllResponseHeaders(); + } catch (e) { return null } + }, + + getResponseHeader: function(name) { + return this.transport.getResponseHeader(name); + }, + + getAllResponseHeaders: function() { + return this.transport.getAllResponseHeaders(); + }, + + _getHeaderJSON: function() { + var json = this.getHeader('X-JSON'); + if (!json) return null; + json = decodeURIComponent(escape(json)); + try { + return json.evalJSON(this.request.options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + }, + + _getResponseJSON: function() { + var options = this.request.options; + if (!options.evalJSON || (options.evalJSON != 'force' && + !(this.getHeader('Content-type') || '').include('application/json')) || + this.responseText.blank()) + return null; + try { + return this.responseText.evalJSON(options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + } +}); + +Ajax.Updater = Class.create(Ajax.Request, { + initialize: function($super, container, url, options) { + this.container = { + success: (container.success || container), + failure: (container.failure || (container.success ? null : container)) + }; + + options = Object.clone(options); + var onComplete = options.onComplete; + options.onComplete = (function(response, json) { + this.updateContent(response.responseText); + if (Object.isFunction(onComplete)) onComplete(response, json); + }).bind(this); + + $super(url, options); + }, + + updateContent: function(responseText) { + var receiver = this.container[this.success() ? 'success' : 'failure'], + options = this.options; + + if (!options.evalScripts) responseText = responseText.stripScripts(); + + if (receiver = $(receiver)) { + if (options.insertion) { + if (Object.isString(options.insertion)) { + var insertion = { }; insertion[options.insertion] = responseText; + receiver.insert(insertion); + } + else options.insertion(receiver, responseText); + } + else receiver.update(responseText); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { + initialize: function($super, container, url, options) { + $super(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = (this.options.decay || 1); + + this.updater = { }; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.options.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Prototype.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(response) { + if (this.options.decay) { + this.decay = (response.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = response.responseText; + } + this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); + + + +function $(element) { + if (arguments.length > 1) { + for (var i = 0, elements = [], length = arguments.length; i < length; i++) + elements.push($(arguments[i])); + return elements; + } + if (Object.isString(element)) + element = document.getElementById(element); + return Element.extend(element); +} + +if (Prototype.BrowserFeatures.XPath) { + document._getElementsByXPath = function(expression, parentElement) { + var results = []; + var query = document.evaluate(expression, $(parentElement) || document, + null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + for (var i = 0, length = query.snapshotLength; i < length; i++) + results.push(Element.extend(query.snapshotItem(i))); + return results; + }; +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Node) var Node = { }; + +if (!Node.ELEMENT_NODE) { + Object.extend(Node, { + ELEMENT_NODE: 1, + ATTRIBUTE_NODE: 2, + TEXT_NODE: 3, + CDATA_SECTION_NODE: 4, + ENTITY_REFERENCE_NODE: 5, + ENTITY_NODE: 6, + PROCESSING_INSTRUCTION_NODE: 7, + COMMENT_NODE: 8, + DOCUMENT_NODE: 9, + DOCUMENT_TYPE_NODE: 10, + DOCUMENT_FRAGMENT_NODE: 11, + NOTATION_NODE: 12 + }); +} + + +(function(global) { + + var SETATTRIBUTE_IGNORES_NAME = (function(){ + var elForm = document.createElement("form"); + var elInput = document.createElement("input"); + var root = document.documentElement; + elInput.setAttribute("name", "test"); + elForm.appendChild(elInput); + root.appendChild(elForm); + var isBuggy = elForm.elements + ? (typeof elForm.elements.test == "undefined") + : null; + root.removeChild(elForm); + elForm = elInput = null; + return isBuggy; + })(); + + var element = global.Element; + global.Element = function(tagName, attributes) { + attributes = attributes || { }; + tagName = tagName.toLowerCase(); + var cache = Element.cache; + if (SETATTRIBUTE_IGNORES_NAME && attributes.name) { + tagName = '<' + tagName + ' name="' + attributes.name + '">'; + delete attributes.name; + return Element.writeAttribute(document.createElement(tagName), attributes); + } + if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); + return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); + }; + Object.extend(global.Element, element || { }); + if (element) global.Element.prototype = element.prototype; +})(this); + +Element.cache = { }; +Element.idCounter = 1; + +Element.Methods = { + visible: function(element) { + return $(element).style.display != 'none'; + }, + + toggle: function(element) { + element = $(element); + Element[Element.visible(element) ? 'hide' : 'show'](element); + return element; + }, + + + hide: function(element) { + element = $(element); + element.style.display = 'none'; + return element; + }, + + show: function(element) { + element = $(element); + element.style.display = ''; + return element; + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + return element; + }, + + update: (function(){ + + var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){ + var el = document.createElement("select"), + isBuggy = true; + el.innerHTML = ""; + if (el.options && el.options[0]) { + isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION"; + } + el = null; + return isBuggy; + })(); + + var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){ + try { + var el = document.createElement("table"); + if (el && el.tBodies) { + el.innerHTML = "test"; + var isBuggy = typeof el.tBodies[0] == "undefined"; + el = null; + return isBuggy; + } + } catch (e) { + return true; + } + })(); + + var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () { + var s = document.createElement("script"), + isBuggy = false; + try { + s.appendChild(document.createTextNode("")); + isBuggy = !s.firstChild || + s.firstChild && s.firstChild.nodeType !== 3; + } catch (e) { + isBuggy = true; + } + s = null; + return isBuggy; + })(); + + function update(element, content) { + element = $(element); + + if (content && content.toElement) + content = content.toElement(); + + if (Object.isElement(content)) + return element.update().insert(content); + + content = Object.toHTML(content); + + var tagName = element.tagName.toUpperCase(); + + if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) { + element.text = content; + return element; + } + + if (SELECT_ELEMENT_INNERHTML_BUGGY || TABLE_ELEMENT_INNERHTML_BUGGY) { + if (tagName in Element._insertionTranslations.tags) { + while (element.firstChild) { + element.removeChild(element.firstChild); + } + Element._getContentFromAnonymousElement(tagName, content.stripScripts()) + .each(function(node) { + element.appendChild(node) + }); + } + else { + element.innerHTML = content.stripScripts(); + } + } + else { + element.innerHTML = content.stripScripts(); + } + + content.evalScripts.bind(content).defer(); + return element; + } + + return update; + })(), + + replace: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + else if (!Object.isElement(content)) { + content = Object.toHTML(content); + var range = element.ownerDocument.createRange(); + range.selectNode(element); + content.evalScripts.bind(content).defer(); + content = range.createContextualFragment(content.stripScripts()); + } + element.parentNode.replaceChild(content, element); + return element; + }, + + insert: function(element, insertions) { + element = $(element); + + if (Object.isString(insertions) || Object.isNumber(insertions) || + Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) + insertions = {bottom:insertions}; + + var content, insert, tagName, childNodes; + + for (var position in insertions) { + content = insertions[position]; + position = position.toLowerCase(); + insert = Element._insertionTranslations[position]; + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + insert(element, content); + continue; + } + + content = Object.toHTML(content); + + tagName = ((position == 'before' || position == 'after') + ? element.parentNode : element).tagName.toUpperCase(); + + childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + + if (position == 'top' || position == 'after') childNodes.reverse(); + childNodes.each(insert.curry(element)); + + content.evalScripts.bind(content).defer(); + } + + return element; + }, + + wrap: function(element, wrapper, attributes) { + element = $(element); + if (Object.isElement(wrapper)) + $(wrapper).writeAttribute(attributes || { }); + else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); + else wrapper = new Element('div', wrapper); + if (element.parentNode) + element.parentNode.replaceChild(wrapper, element); + wrapper.appendChild(element); + return wrapper; + }, + + inspect: function(element) { + element = $(element); + var result = '<' + element.tagName.toLowerCase(); + $H({'id': 'id', 'className': 'class'}).each(function(pair) { + var property = pair.first(), attribute = pair.last(); + var value = (element[property] || '').toString(); + if (value) result += ' ' + attribute + '=' + value.inspect(true); + }); + return result + '>'; + }, + + recursivelyCollect: function(element, property) { + element = $(element); + var elements = []; + while (element = element[property]) + if (element.nodeType == 1) + elements.push(Element.extend(element)); + return elements; + }, + + ancestors: function(element) { + return Element.recursivelyCollect(element, 'parentNode'); + }, + + descendants: function(element) { + return Element.select(element, "*"); + }, + + firstDescendant: function(element) { + element = $(element).firstChild; + while (element && element.nodeType != 1) element = element.nextSibling; + return $(element); + }, + + immediateDescendants: function(element) { + if (!(element = $(element).firstChild)) return []; + while (element && element.nodeType != 1) element = element.nextSibling; + if (element) return [element].concat($(element).nextSiblings()); + return []; + }, + + previousSiblings: function(element) { + return Element.recursivelyCollect(element, 'previousSibling'); + }, + + nextSiblings: function(element) { + return Element.recursivelyCollect(element, 'nextSibling'); + }, + + siblings: function(element) { + element = $(element); + return Element.previousSiblings(element).reverse() + .concat(Element.nextSiblings(element)); + }, + + match: function(element, selector) { + if (Object.isString(selector)) + selector = new Selector(selector); + return selector.match($(element)); + }, + + up: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(element.parentNode); + var ancestors = Element.ancestors(element); + return Object.isNumber(expression) ? ancestors[expression] : + Selector.findElement(ancestors, expression, index); + }, + + down: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return Element.firstDescendant(element); + return Object.isNumber(expression) ? Element.descendants(element)[expression] : + Element.select(element, expression)[index || 0]; + }, + + previous: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); + var previousSiblings = Element.previousSiblings(element); + return Object.isNumber(expression) ? previousSiblings[expression] : + Selector.findElement(previousSiblings, expression, index); + }, + + next: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); + var nextSiblings = Element.nextSiblings(element); + return Object.isNumber(expression) ? nextSiblings[expression] : + Selector.findElement(nextSiblings, expression, index); + }, + + + select: function(element) { + var args = Array.prototype.slice.call(arguments, 1); + return Selector.findChildElements(element, args); + }, + + adjacent: function(element) { + var args = Array.prototype.slice.call(arguments, 1); + return Selector.findChildElements(element.parentNode, args).without(element); + }, + + identify: function(element) { + element = $(element); + var id = Element.readAttribute(element, 'id'); + if (id) return id; + do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id)); + Element.writeAttribute(element, 'id', id); + return id; + }, + + readAttribute: function(element, name) { + element = $(element); + if (Prototype.Browser.IE) { + var t = Element._attributeTranslations.read; + if (t.values[name]) return t.values[name](element, name); + if (t.names[name]) name = t.names[name]; + if (name.include(':')) { + return (!element.attributes || !element.attributes[name]) ? null : + element.attributes[name].value; + } + } + return element.getAttribute(name); + }, + + writeAttribute: function(element, name, value) { + element = $(element); + var attributes = { }, t = Element._attributeTranslations.write; + + if (typeof name == 'object') attributes = name; + else attributes[name] = Object.isUndefined(value) ? true : value; + + for (var attr in attributes) { + name = t.names[attr] || attr; + value = attributes[attr]; + if (t.values[attr]) name = t.values[attr](element, value); + if (value === false || value === null) + element.removeAttribute(name); + else if (value === true) + element.setAttribute(name, name); + else element.setAttribute(name, value); + } + return element; + }, + + getHeight: function(element) { + return Element.getDimensions(element).height; + }, + + getWidth: function(element) { + return Element.getDimensions(element).width; + }, + + classNames: function(element) { + return new Element.ClassNames(element); + }, + + hasClassName: function(element, className) { + if (!(element = $(element))) return; + var elementClassName = element.className; + return (elementClassName.length > 0 && (elementClassName == className || + new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); + }, + + addClassName: function(element, className) { + if (!(element = $(element))) return; + if (!Element.hasClassName(element, className)) + element.className += (element.className ? ' ' : '') + className; + return element; + }, + + removeClassName: function(element, className) { + if (!(element = $(element))) return; + element.className = element.className.replace( + new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); + return element; + }, + + toggleClassName: function(element, className) { + if (!(element = $(element))) return; + return Element[Element.hasClassName(element, className) ? + 'removeClassName' : 'addClassName'](element, className); + }, + + cleanWhitespace: function(element) { + element = $(element); + var node = element.firstChild; + while (node) { + var nextNode = node.nextSibling; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + element.removeChild(node); + node = nextNode; + } + return element; + }, + + empty: function(element) { + return $(element).innerHTML.blank(); + }, + + descendantOf: function(element, ancestor) { + element = $(element), ancestor = $(ancestor); + + if (element.compareDocumentPosition) + return (element.compareDocumentPosition(ancestor) & 8) === 8; + + if (ancestor.contains) + return ancestor.contains(element) && ancestor !== element; + + while (element = element.parentNode) + if (element == ancestor) return true; + + return false; + }, + + scrollTo: function(element) { + element = $(element); + var pos = Element.cumulativeOffset(element); + window.scrollTo(pos[0], pos[1]); + return element; + }, + + getStyle: function(element, style) { + element = $(element); + style = style == 'float' ? 'cssFloat' : style.camelize(); + var value = element.style[style]; + if (!value || value == 'auto') { + var css = document.defaultView.getComputedStyle(element, null); + value = css ? css[style] : null; + } + if (style == 'opacity') return value ? parseFloat(value) : 1.0; + return value == 'auto' ? null : value; + }, + + getOpacity: function(element) { + return $(element).getStyle('opacity'); + }, + + setStyle: function(element, styles) { + element = $(element); + var elementStyle = element.style, match; + if (Object.isString(styles)) { + element.style.cssText += ';' + styles; + return styles.include('opacity') ? + element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; + } + for (var property in styles) + if (property == 'opacity') element.setOpacity(styles[property]); + else + elementStyle[(property == 'float' || property == 'cssFloat') ? + (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : + property] = styles[property]; + + return element; + }, + + setOpacity: function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + return element; + }, + + getDimensions: function(element) { + element = $(element); + var display = Element.getStyle(element, 'display'); + if (display != 'none' && display != null) // Safari bug + return {width: element.offsetWidth, height: element.offsetHeight}; + + var els = element.style; + var originalVisibility = els.visibility; + var originalPosition = els.position; + var originalDisplay = els.display; + els.visibility = 'hidden'; + if (originalPosition != 'fixed') // Switching fixed to absolute causes issues in Safari + els.position = 'absolute'; + els.display = 'block'; + var originalWidth = element.clientWidth; + var originalHeight = element.clientHeight; + els.display = originalDisplay; + els.position = originalPosition; + els.visibility = originalVisibility; + return {width: originalWidth, height: originalHeight}; + }, + + makePositioned: function(element) { + element = $(element); + var pos = Element.getStyle(element, 'position'); + if (pos == 'static' || !pos) { + element._madePositioned = true; + element.style.position = 'relative'; + if (Prototype.Browser.Opera) { + element.style.top = 0; + element.style.left = 0; + } + } + return element; + }, + + undoPositioned: function(element) { + element = $(element); + if (element._madePositioned) { + element._madePositioned = undefined; + element.style.position = + element.style.top = + element.style.left = + element.style.bottom = + element.style.right = ''; + } + return element; + }, + + makeClipping: function(element) { + element = $(element); + if (element._overflow) return element; + element._overflow = Element.getStyle(element, 'overflow') || 'auto'; + if (element._overflow !== 'hidden') + element.style.overflow = 'hidden'; + return element; + }, + + undoClipping: function(element) { + element = $(element); + if (!element._overflow) return element; + element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; + element._overflow = null; + return element; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + positionedOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + if (element) { + if (element.tagName.toUpperCase() == 'BODY') break; + var p = Element.getStyle(element, 'position'); + if (p !== 'static') break; + } + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + absolutize: function(element) { + element = $(element); + if (Element.getStyle(element, 'position') == 'absolute') return element; + + var offsets = Element.positionedOffset(element); + var top = offsets[1]; + var left = offsets[0]; + var width = element.clientWidth; + var height = element.clientHeight; + + element._originalLeft = left - parseFloat(element.style.left || 0); + element._originalTop = top - parseFloat(element.style.top || 0); + element._originalWidth = element.style.width; + element._originalHeight = element.style.height; + + element.style.position = 'absolute'; + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.width = width + 'px'; + element.style.height = height + 'px'; + return element; + }, + + relativize: function(element) { + element = $(element); + if (Element.getStyle(element, 'position') == 'relative') return element; + + element.style.position = 'relative'; + var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); + var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); + + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.height = element._originalHeight; + element.style.width = element._originalWidth; + return element; + }, + + cumulativeScrollOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + getOffsetParent: function(element) { + if (element.offsetParent) return $(element.offsetParent); + if (element == document.body) return $(element); + + while ((element = element.parentNode) && element != document.body) + if (Element.getStyle(element, 'position') != 'static') + return $(element); + + return $(document.body); + }, + + viewportOffset: function(forElement) { + var valueT = 0, valueL = 0; + + var element = forElement; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + + if (element.offsetParent == document.body && + Element.getStyle(element, 'position') == 'absolute') break; + + } while (element = element.offsetParent); + + element = forElement; + do { + if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) { + valueT -= element.scrollTop || 0; + valueL -= element.scrollLeft || 0; + } + } while (element = element.parentNode); + + return Element._returnOffset(valueL, valueT); + }, + + clonePosition: function(element, source) { + var options = Object.extend({ + setLeft: true, + setTop: true, + setWidth: true, + setHeight: true, + offsetTop: 0, + offsetLeft: 0 + }, arguments[2] || { }); + + source = $(source); + var p = Element.viewportOffset(source); + + element = $(element); + var delta = [0, 0]; + var parent = null; + if (Element.getStyle(element, 'position') == 'absolute') { + parent = Element.getOffsetParent(element); + delta = Element.viewportOffset(parent); + } + + if (parent == document.body) { + delta[0] -= document.body.offsetLeft; + delta[1] -= document.body.offsetTop; + } + + if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; + if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; + if (options.setWidth) element.style.width = source.offsetWidth + 'px'; + if (options.setHeight) element.style.height = source.offsetHeight + 'px'; + return element; + } +}; + +Object.extend(Element.Methods, { + getElementsBySelector: Element.Methods.select, + + childElements: Element.Methods.immediateDescendants +}); + +Element._attributeTranslations = { + write: { + names: { + className: 'class', + htmlFor: 'for' + }, + values: { } + } +}; + +if (Prototype.Browser.Opera) { + Element.Methods.getStyle = Element.Methods.getStyle.wrap( + function(proceed, element, style) { + switch (style) { + case 'left': case 'top': case 'right': case 'bottom': + if (proceed(element, 'position') === 'static') return null; + case 'height': case 'width': + if (!Element.visible(element)) return null; + + var dim = parseInt(proceed(element, style), 10); + + if (dim !== element['offset' + style.capitalize()]) + return dim + 'px'; + + var properties; + if (style === 'height') { + properties = ['border-top-width', 'padding-top', + 'padding-bottom', 'border-bottom-width']; + } + else { + properties = ['border-left-width', 'padding-left', + 'padding-right', 'border-right-width']; + } + return properties.inject(dim, function(memo, property) { + var val = proceed(element, property); + return val === null ? memo : memo - parseInt(val, 10); + }) + 'px'; + default: return proceed(element, style); + } + } + ); + + Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( + function(proceed, element, attribute) { + if (attribute === 'title') return element.title; + return proceed(element, attribute); + } + ); +} + +else if (Prototype.Browser.IE) { + Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( + function(proceed, element) { + element = $(element); + try { element.offsetParent } + catch(e) { return $(document.body) } + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + + $w('positionedOffset viewportOffset').each(function(method) { + Element.Methods[method] = Element.Methods[method].wrap( + function(proceed, element) { + element = $(element); + try { element.offsetParent } + catch(e) { return Element._returnOffset(0,0) } + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + var offsetParent = element.getOffsetParent(); + if (offsetParent && offsetParent.getStyle('position') === 'fixed') + offsetParent.setStyle({ zoom: 1 }); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + }); + + Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap( + function(proceed, element) { + try { element.offsetParent } + catch(e) { return Element._returnOffset(0,0) } + return proceed(element); + } + ); + + Element.Methods.getStyle = function(element, style) { + element = $(element); + style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); + var value = element.style[style]; + if (!value && element.currentStyle) value = element.currentStyle[style]; + + if (style == 'opacity') { + if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) + if (value[1]) return parseFloat(value[1]) / 100; + return 1.0; + } + + if (value == 'auto') { + if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) + return element['offset' + style.capitalize()] + 'px'; + return null; + } + return value; + }; + + Element.Methods.setOpacity = function(element, value) { + function stripAlpha(filter){ + return filter.replace(/alpha\([^\)]*\)/gi,''); + } + element = $(element); + var currentStyle = element.currentStyle; + if ((currentStyle && !currentStyle.hasLayout) || + (!currentStyle && element.style.zoom == 'normal')) + element.style.zoom = 1; + + var filter = element.getStyle('filter'), style = element.style; + if (value == 1 || value === '') { + (filter = stripAlpha(filter)) ? + style.filter = filter : style.removeAttribute('filter'); + return element; + } else if (value < 0.00001) value = 0; + style.filter = stripAlpha(filter) + + 'alpha(opacity=' + (value * 100) + ')'; + return element; + }; + + Element._attributeTranslations = (function(){ + + var classProp = 'className'; + var forProp = 'for'; + + var el = document.createElement('div'); + + el.setAttribute(classProp, 'x'); + + if (el.className !== 'x') { + el.setAttribute('class', 'x'); + if (el.className === 'x') { + classProp = 'class'; + } + } + el = null; + + el = document.createElement('label'); + el.setAttribute(forProp, 'x'); + if (el.htmlFor !== 'x') { + el.setAttribute('htmlFor', 'x'); + if (el.htmlFor === 'x') { + forProp = 'htmlFor'; + } + } + el = null; + + return { + read: { + names: { + 'class': classProp, + 'className': classProp, + 'for': forProp, + 'htmlFor': forProp + }, + values: { + _getAttr: function(element, attribute) { + return element.getAttribute(attribute); + }, + _getAttr2: function(element, attribute) { + return element.getAttribute(attribute, 2); + }, + _getAttrNode: function(element, attribute) { + var node = element.getAttributeNode(attribute); + return node ? node.value : ""; + }, + _getEv: (function(){ + + var el = document.createElement('div'); + el.onclick = Prototype.emptyFunction; + var value = el.getAttribute('onclick'); + var f; + + if (String(value).indexOf('{') > -1) { + f = function(element, attribute) { + attribute = element.getAttribute(attribute); + if (!attribute) return null; + attribute = attribute.toString(); + attribute = attribute.split('{')[1]; + attribute = attribute.split('}')[0]; + return attribute.strip(); + }; + } + else if (value === '') { + f = function(element, attribute) { + attribute = element.getAttribute(attribute); + if (!attribute) return null; + return attribute.strip(); + }; + } + el = null; + return f; + })(), + _flag: function(element, attribute) { + return $(element).hasAttribute(attribute) ? attribute : null; + }, + style: function(element) { + return element.style.cssText.toLowerCase(); + }, + title: function(element) { + return element.title; + } + } + } + } + })(); + + Element._attributeTranslations.write = { + names: Object.extend({ + cellpadding: 'cellPadding', + cellspacing: 'cellSpacing' + }, Element._attributeTranslations.read.names), + values: { + checked: function(element, value) { + element.checked = !!value; + }, + + style: function(element, value) { + element.style.cssText = value ? value : ''; + } + } + }; + + Element._attributeTranslations.has = {}; + + $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + + 'encType maxLength readOnly longDesc frameBorder').each(function(attr) { + Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; + Element._attributeTranslations.has[attr.toLowerCase()] = attr; + }); + + (function(v) { + Object.extend(v, { + href: v._getAttr2, + src: v._getAttr2, + type: v._getAttr, + action: v._getAttrNode, + disabled: v._flag, + checked: v._flag, + readonly: v._flag, + multiple: v._flag, + onload: v._getEv, + onunload: v._getEv, + onclick: v._getEv, + ondblclick: v._getEv, + onmousedown: v._getEv, + onmouseup: v._getEv, + onmouseover: v._getEv, + onmousemove: v._getEv, + onmouseout: v._getEv, + onfocus: v._getEv, + onblur: v._getEv, + onkeypress: v._getEv, + onkeydown: v._getEv, + onkeyup: v._getEv, + onsubmit: v._getEv, + onreset: v._getEv, + onselect: v._getEv, + onchange: v._getEv + }); + })(Element._attributeTranslations.read.values); + + if (Prototype.BrowserFeatures.ElementExtensions) { + (function() { + function _descendants(element) { + var nodes = element.getElementsByTagName('*'), results = []; + for (var i = 0, node; node = nodes[i]; i++) + if (node.tagName !== "!") // Filter out comment nodes. + results.push(node); + return results; + } + + Element.Methods.down = function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return element.firstDescendant(); + return Object.isNumber(expression) ? _descendants(element)[expression] : + Element.select(element, expression)[index || 0]; + } + })(); + } + +} + +else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1) ? 0.999999 : + (value === '') ? '' : (value < 0.00001) ? 0 : value; + return element; + }; +} + +else if (Prototype.Browser.WebKit) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + + if (value == 1) + if(element.tagName.toUpperCase() == 'IMG' && element.width) { + element.width++; element.width--; + } else try { + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch (e) { } + + return element; + }; + + Element.Methods.cumulativeOffset = function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + if (element.offsetParent == document.body) + if (Element.getStyle(element, 'position') == 'absolute') break; + + element = element.offsetParent; + } while (element); + + return Element._returnOffset(valueL, valueT); + }; +} + +if ('outerHTML' in document.documentElement) { + Element.Methods.replace = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + element.parentNode.replaceChild(content, element); + return element; + } + + content = Object.toHTML(content); + var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); + + if (Element._insertionTranslations.tags[tagName]) { + var nextSibling = element.next(); + var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + parent.removeChild(element); + if (nextSibling) + fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); + else + fragments.each(function(node) { parent.appendChild(node) }); + } + else element.outerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +Element._returnOffset = function(l, t) { + var result = [l, t]; + result.left = l; + result.top = t; + return result; +}; + +Element._getContentFromAnonymousElement = function(tagName, html) { + var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; + if (t) { + div.innerHTML = t[0] + html + t[1]; + t[2].times(function() { div = div.firstChild }); + } else div.innerHTML = html; + return $A(div.childNodes); +}; + +Element._insertionTranslations = { + before: function(element, node) { + element.parentNode.insertBefore(node, element); + }, + top: function(element, node) { + element.insertBefore(node, element.firstChild); + }, + bottom: function(element, node) { + element.appendChild(node); + }, + after: function(element, node) { + element.parentNode.insertBefore(node, element.nextSibling); + }, + tags: { + TABLE: ['', '
    ', 1], + TBODY: ['', '
    ', 2], + TR: ['', '
    ', 3], + TD: ['
    ', '
    ', 4], + SELECT: ['', 1] + } +}; + +(function() { + var tags = Element._insertionTranslations.tags; + Object.extend(tags, { + THEAD: tags.TBODY, + TFOOT: tags.TBODY, + TH: tags.TD + }); +})(); + +Element.Methods.Simulated = { + hasAttribute: function(element, attribute) { + attribute = Element._attributeTranslations.has[attribute] || attribute; + var node = $(element).getAttributeNode(attribute); + return !!(node && node.specified); + } +}; + +Element.Methods.ByTag = { }; + +Object.extend(Element, Element.Methods); + +(function(div) { + + if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) { + window.HTMLElement = { }; + window.HTMLElement.prototype = div['__proto__']; + Prototype.BrowserFeatures.ElementExtensions = true; + } + + div = null; + +})(document.createElement('div')) + +Element.extend = (function() { + + function checkDeficiency(tagName) { + if (typeof window.Element != 'undefined') { + var proto = window.Element.prototype; + if (proto) { + var id = '_' + (Math.random()+'').slice(2); + var el = document.createElement(tagName); + proto[id] = 'x'; + var isBuggy = (el[id] !== 'x'); + delete proto[id]; + el = null; + return isBuggy; + } + } + return false; + } + + function extendElementWith(element, methods) { + for (var property in methods) { + var value = methods[property]; + if (Object.isFunction(value) && !(property in element)) + element[property] = value.methodize(); + } + } + + var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object'); + + if (Prototype.BrowserFeatures.SpecificElementExtensions) { + if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) { + return function(element) { + if (element && typeof element._extendedByPrototype == 'undefined') { + var t = element.tagName; + if (t && (/^(?:object|applet|embed)$/i.test(t))) { + extendElementWith(element, Element.Methods); + extendElementWith(element, Element.Methods.Simulated); + extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]); + } + } + return element; + } + } + return Prototype.K; + } + + var Methods = { }, ByTag = Element.Methods.ByTag; + + var extend = Object.extend(function(element) { + if (!element || typeof element._extendedByPrototype != 'undefined' || + element.nodeType != 1 || element == window) return element; + + var methods = Object.clone(Methods), + tagName = element.tagName.toUpperCase(); + + if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); + + extendElementWith(element, methods); + + element._extendedByPrototype = Prototype.emptyFunction; + return element; + + }, { + refresh: function() { + if (!Prototype.BrowserFeatures.ElementExtensions) { + Object.extend(Methods, Element.Methods); + Object.extend(Methods, Element.Methods.Simulated); + } + } + }); + + extend.refresh(); + return extend; +})(); + +Element.hasAttribute = function(element, attribute) { + if (element.hasAttribute) return element.hasAttribute(attribute); + return Element.Methods.Simulated.hasAttribute(element, attribute); +}; + +Element.addMethods = function(methods) { + var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; + + if (!methods) { + Object.extend(Form, Form.Methods); + Object.extend(Form.Element, Form.Element.Methods); + Object.extend(Element.Methods.ByTag, { + "FORM": Object.clone(Form.Methods), + "INPUT": Object.clone(Form.Element.Methods), + "SELECT": Object.clone(Form.Element.Methods), + "TEXTAREA": Object.clone(Form.Element.Methods) + }); + } + + if (arguments.length == 2) { + var tagName = methods; + methods = arguments[1]; + } + + if (!tagName) Object.extend(Element.Methods, methods || { }); + else { + if (Object.isArray(tagName)) tagName.each(extend); + else extend(tagName); + } + + function extend(tagName) { + tagName = tagName.toUpperCase(); + if (!Element.Methods.ByTag[tagName]) + Element.Methods.ByTag[tagName] = { }; + Object.extend(Element.Methods.ByTag[tagName], methods); + } + + function copy(methods, destination, onlyIfAbsent) { + onlyIfAbsent = onlyIfAbsent || false; + for (var property in methods) { + var value = methods[property]; + if (!Object.isFunction(value)) continue; + if (!onlyIfAbsent || !(property in destination)) + destination[property] = value.methodize(); + } + } + + function findDOMClass(tagName) { + var klass; + var trans = { + "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", + "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", + "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", + "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", + "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": + "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": + "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": + "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": + "FrameSet", "IFRAME": "IFrame" + }; + if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName.capitalize() + 'Element'; + if (window[klass]) return window[klass]; + + var element = document.createElement(tagName); + var proto = element['__proto__'] || element.constructor.prototype; + element = null; + return proto; + } + + var elementPrototype = window.HTMLElement ? HTMLElement.prototype : + Element.prototype; + + if (F.ElementExtensions) { + copy(Element.Methods, elementPrototype); + copy(Element.Methods.Simulated, elementPrototype, true); + } + + if (F.SpecificElementExtensions) { + for (var tag in Element.Methods.ByTag) { + var klass = findDOMClass(tag); + if (Object.isUndefined(klass)) continue; + copy(T[tag], klass.prototype); + } + } + + Object.extend(Element, Element.Methods); + delete Element.ByTag; + + if (Element.extend.refresh) Element.extend.refresh(); + Element.cache = { }; +}; + + +document.viewport = { + + getDimensions: function() { + return { width: this.getWidth(), height: this.getHeight() }; + }, + + getScrollOffsets: function() { + return Element._returnOffset( + window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, + window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); + } +}; + +(function(viewport) { + var B = Prototype.Browser, doc = document, element, property = {}; + + function getRootElement() { + if (B.WebKit && !doc.evaluate) + return document; + + if (B.Opera && window.parseFloat(window.opera.version()) < 9.5) + return document.body; + + return document.documentElement; + } + + function define(D) { + if (!element) element = getRootElement(); + + property[D] = 'client' + D; + + viewport['get' + D] = function() { return element[property[D]] }; + return viewport['get' + D](); + } + + viewport.getWidth = define.curry('Width'); + + viewport.getHeight = define.curry('Height'); +})(document.viewport); + + +Element.Storage = { + UID: 1 +}; + +Element.addMethods({ + getStorage: function(element) { + if (!(element = $(element))) return; + + var uid; + if (element === window) { + uid = 0; + } else { + if (typeof element._prototypeUID === "undefined") + element._prototypeUID = [Element.Storage.UID++]; + uid = element._prototypeUID[0]; + } + + if (!Element.Storage[uid]) + Element.Storage[uid] = $H(); + + return Element.Storage[uid]; + }, + + store: function(element, key, value) { + if (!(element = $(element))) return; + + if (arguments.length === 2) { + Element.getStorage(element).update(key); + } else { + Element.getStorage(element).set(key, value); + } + + return element; + }, + + retrieve: function(element, key, defaultValue) { + if (!(element = $(element))) return; + var hash = Element.getStorage(element), value = hash.get(key); + + if (Object.isUndefined(value)) { + hash.set(key, defaultValue); + value = defaultValue; + } + + return value; + }, + + clone: function(element, deep) { + if (!(element = $(element))) return; + var clone = element.cloneNode(deep); + clone._prototypeUID = void 0; + if (deep) { + var descendants = Element.select(clone, '*'), + i = descendants.length; + while (i--) { + descendants[i]._prototypeUID = void 0; + } + } + return Element.extend(clone); + } +}); +/* Portions of the Selector class are derived from Jack Slocum's DomQuery, + * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style + * license. Please see http://www.yui-ext.com/ for more information. */ + +var Selector = Class.create({ + initialize: function(expression) { + this.expression = expression.strip(); + + if (this.shouldUseSelectorsAPI()) { + this.mode = 'selectorsAPI'; + } else if (this.shouldUseXPath()) { + this.mode = 'xpath'; + this.compileXPathMatcher(); + } else { + this.mode = "normal"; + this.compileMatcher(); + } + + }, + + shouldUseXPath: (function() { + + var IS_DESCENDANT_SELECTOR_BUGGY = (function(){ + var isBuggy = false; + if (document.evaluate && window.XPathResult) { + var el = document.createElement('div'); + el.innerHTML = '
    '; + + var xpath = ".//*[local-name()='ul' or local-name()='UL']" + + "//*[local-name()='li' or local-name()='LI']"; + + var result = document.evaluate(xpath, el, null, + XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + + isBuggy = (result.snapshotLength !== 2); + el = null; + } + return isBuggy; + })(); + + return function() { + if (!Prototype.BrowserFeatures.XPath) return false; + + var e = this.expression; + + if (Prototype.Browser.WebKit && + (e.include("-of-type") || e.include(":empty"))) + return false; + + if ((/(\[[\w-]*?:|:checked)/).test(e)) + return false; + + if (IS_DESCENDANT_SELECTOR_BUGGY) return false; + + return true; + } + + })(), + + shouldUseSelectorsAPI: function() { + if (!Prototype.BrowserFeatures.SelectorsAPI) return false; + + if (Selector.CASE_INSENSITIVE_CLASS_NAMES) return false; + + if (!Selector._div) Selector._div = new Element('div'); + + try { + Selector._div.querySelector(this.expression); + } catch(e) { + return false; + } + + return true; + }, + + compileMatcher: function() { + var e = this.expression, ps = Selector.patterns, h = Selector.handlers, + c = Selector.criteria, le, p, m, len = ps.length, name; + + if (Selector._cache[e]) { + this.matcher = Selector._cache[e]; + return; + } + + this.matcher = ["this.matcher = function(root) {", + "var r = root, h = Selector.handlers, c = false, n;"]; + + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i = 0; i"; + } +}); + +if (Prototype.BrowserFeatures.SelectorsAPI && + document.compatMode === 'BackCompat') { + Selector.CASE_INSENSITIVE_CLASS_NAMES = (function(){ + var div = document.createElement('div'), + span = document.createElement('span'); + + div.id = "prototype_test_id"; + span.className = 'Test'; + div.appendChild(span); + var isIgnored = (div.querySelector('#prototype_test_id .test') !== null); + div = span = null; + return isIgnored; + })(); +} + +Object.extend(Selector, { + _cache: { }, + + xpath: { + descendant: "//*", + child: "/*", + adjacent: "/following-sibling::*[1]", + laterSibling: '/following-sibling::*', + tagName: function(m) { + if (m[1] == '*') return ''; + return "[local-name()='" + m[1].toLowerCase() + + "' or local-name()='" + m[1].toUpperCase() + "']"; + }, + className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", + id: "[@id='#{1}']", + attrPresence: function(m) { + m[1] = m[1].toLowerCase(); + return new Template("[@#{1}]").evaluate(m); + }, + attr: function(m) { + m[1] = m[1].toLowerCase(); + m[3] = m[5] || m[6]; + return new Template(Selector.xpath.operators[m[2]]).evaluate(m); + }, + pseudo: function(m) { + var h = Selector.xpath.pseudos[m[1]]; + if (!h) return ''; + if (Object.isFunction(h)) return h(m); + return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); + }, + operators: { + '=': "[@#{1}='#{3}']", + '!=': "[@#{1}!='#{3}']", + '^=': "[starts-with(@#{1}, '#{3}')]", + '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", + '*=': "[contains(@#{1}, '#{3}')]", + '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", + '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" + }, + pseudos: { + 'first-child': '[not(preceding-sibling::*)]', + 'last-child': '[not(following-sibling::*)]', + 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', + 'empty': "[count(*) = 0 and (count(text()) = 0)]", + 'checked': "[@checked]", + 'disabled': "[(@disabled) and (@type!='hidden')]", + 'enabled': "[not(@disabled) and (@type!='hidden')]", + 'not': function(m) { + var e = m[6], p = Selector.patterns, + x = Selector.xpath, le, v, len = p.length, name; + + var exclusion = []; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i = 0; i= 0)]"; + return new Template(predicate).evaluate({ + fragment: fragment, a: a, b: b }); + } + } + } + }, + + criteria: { + tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', + className: 'n = h.className(n, r, "#{1}", c); c = false;', + id: 'n = h.id(n, r, "#{1}", c); c = false;', + attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', + attr: function(m) { + m[3] = (m[5] || m[6]); + return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); + }, + pseudo: function(m) { + if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); + return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); + }, + descendant: 'c = "descendant";', + child: 'c = "child";', + adjacent: 'c = "adjacent";', + laterSibling: 'c = "laterSibling";' + }, + + patterns: [ + { name: 'laterSibling', re: /^\s*~\s*/ }, + { name: 'child', re: /^\s*>\s*/ }, + { name: 'adjacent', re: /^\s*\+\s*/ }, + { name: 'descendant', re: /^\s/ }, + + { name: 'tagName', re: /^\s*(\*|[\w\-]+)(\b|$)?/ }, + { name: 'id', re: /^#([\w\-\*]+)(\b|$)/ }, + { name: 'className', re: /^\.([\w\-\*]+)(\b|$)/ }, + { name: 'pseudo', re: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/ }, + { name: 'attrPresence', re: /^\[((?:[\w-]+:)?[\w-]+)\]/ }, + { name: 'attr', re: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ } + ], + + assertions: { + tagName: function(element, matches) { + return matches[1].toUpperCase() == element.tagName.toUpperCase(); + }, + + className: function(element, matches) { + return Element.hasClassName(element, matches[1]); + }, + + id: function(element, matches) { + return element.id === matches[1]; + }, + + attrPresence: function(element, matches) { + return Element.hasAttribute(element, matches[1]); + }, + + attr: function(element, matches) { + var nodeValue = Element.readAttribute(element, matches[1]); + return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); + } + }, + + handlers: { + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + a.push(node); + return a; + }, + + mark: function(nodes) { + var _true = Prototype.emptyFunction; + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = _true; + return nodes; + }, + + unmark: (function(){ + + var PROPERTIES_ATTRIBUTES_MAP = (function(){ + var el = document.createElement('div'), + isBuggy = false, + propName = '_countedByPrototype', + value = 'x' + el[propName] = value; + isBuggy = (el.getAttribute(propName) === value); + el = null; + return isBuggy; + })(); + + return PROPERTIES_ATTRIBUTES_MAP ? + function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node.removeAttribute('_countedByPrototype'); + return nodes; + } : + function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = void 0; + return nodes; + } + })(), + + index: function(parentNode, reverse, ofType) { + parentNode._countedByPrototype = Prototype.emptyFunction; + if (reverse) { + for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { + var node = nodes[i]; + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + } else { + for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + }, + + unique: function(nodes) { + if (nodes.length == 0) return nodes; + var results = [], n; + for (var i = 0, l = nodes.length; i < l; i++) + if (typeof (n = nodes[i])._countedByPrototype == 'undefined') { + n._countedByPrototype = Prototype.emptyFunction; + results.push(Element.extend(n)); + } + return Selector.handlers.unmark(results); + }, + + descendant: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName('*')); + return results; + }, + + child: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) { + for (var j = 0, child; child = node.childNodes[j]; j++) + if (child.nodeType == 1 && child.tagName != '!') results.push(child); + } + return results; + }, + + adjacent: function(nodes) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + var next = this.nextElementSibling(node); + if (next) results.push(next); + } + return results; + }, + + laterSibling: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, Element.nextSiblings(node)); + return results; + }, + + nextElementSibling: function(node) { + while (node = node.nextSibling) + if (node.nodeType == 1) return node; + return null; + }, + + previousElementSibling: function(node) { + while (node = node.previousSibling) + if (node.nodeType == 1) return node; + return null; + }, + + tagName: function(nodes, root, tagName, combinator) { + var uTagName = tagName.toUpperCase(); + var results = [], h = Selector.handlers; + if (nodes) { + if (combinator) { + if (combinator == "descendant") { + for (var i = 0, node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName(tagName)); + return results; + } else nodes = this[combinator](nodes); + if (tagName == "*") return nodes; + } + for (var i = 0, node; node = nodes[i]; i++) + if (node.tagName.toUpperCase() === uTagName) results.push(node); + return results; + } else return root.getElementsByTagName(tagName); + }, + + id: function(nodes, root, id, combinator) { + var targetNode = $(id), h = Selector.handlers; + + if (root == document) { + if (!targetNode) return []; + if (!nodes) return [targetNode]; + } else { + if (!root.sourceIndex || root.sourceIndex < 1) { + var nodes = root.getElementsByTagName('*'); + for (var j = 0, node; node = nodes[j]; j++) { + if (node.id === id) return [node]; + } + } + } + + if (nodes) { + if (combinator) { + if (combinator == 'child') { + for (var i = 0, node; node = nodes[i]; i++) + if (targetNode.parentNode == node) return [targetNode]; + } else if (combinator == 'descendant') { + for (var i = 0, node; node = nodes[i]; i++) + if (Element.descendantOf(targetNode, node)) return [targetNode]; + } else if (combinator == 'adjacent') { + for (var i = 0, node; node = nodes[i]; i++) + if (Selector.handlers.previousElementSibling(targetNode) == node) + return [targetNode]; + } else nodes = h[combinator](nodes); + } + for (var i = 0, node; node = nodes[i]; i++) + if (node == targetNode) return [targetNode]; + return []; + } + return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; + }, + + className: function(nodes, root, className, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + return Selector.handlers.byClassName(nodes, root, className); + }, + + byClassName: function(nodes, root, className) { + if (!nodes) nodes = Selector.handlers.descendant([root]); + var needle = ' ' + className + ' '; + for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { + nodeClassName = node.className; + if (nodeClassName.length == 0) continue; + if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) + results.push(node); + } + return results; + }, + + attrPresence: function(nodes, root, attr, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var results = []; + for (var i = 0, node; node = nodes[i]; i++) + if (Element.hasAttribute(node, attr)) results.push(node); + return results; + }, + + attr: function(nodes, root, attr, value, operator, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var handler = Selector.operators[operator], results = []; + for (var i = 0, node; node = nodes[i]; i++) { + var nodeValue = Element.readAttribute(node, attr); + if (nodeValue === null) continue; + if (handler(nodeValue, value)) results.push(node); + } + return results; + }, + + pseudo: function(nodes, name, value, root, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + if (!nodes) nodes = root.getElementsByTagName("*"); + return Selector.pseudos[name](nodes, value, root); + } + }, + + pseudos: { + 'first-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.previousElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'last-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.nextElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'only-child': function(nodes, value, root) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) + results.push(node); + return results; + }, + 'nth-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root); + }, + 'nth-last-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true); + }, + 'nth-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, false, true); + }, + 'nth-last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true, true); + }, + 'first-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, false, true); + }, + 'last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, true, true); + }, + 'only-of-type': function(nodes, formula, root) { + var p = Selector.pseudos; + return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); + }, + + getIndices: function(a, b, total) { + if (a == 0) return b > 0 ? [b] : []; + return $R(1, total).inject([], function(memo, i) { + if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); + return memo; + }); + }, + + nth: function(nodes, formula, root, reverse, ofType) { + if (nodes.length == 0) return []; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + var h = Selector.handlers, results = [], indexed = [], m; + h.mark(nodes); + for (var i = 0, node; node = nodes[i]; i++) { + if (!node.parentNode._countedByPrototype) { + h.index(node.parentNode, reverse, ofType); + indexed.push(node.parentNode); + } + } + if (formula.match(/^\d+$/)) { // just a number + formula = Number(formula); + for (var i = 0, node; node = nodes[i]; i++) + if (node.nodeIndex == formula) results.push(node); + } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (m[1] == "-") m[1] = -1; + var a = m[1] ? Number(m[1]) : 1; + var b = m[2] ? Number(m[2]) : 0; + var indices = Selector.pseudos.getIndices(a, b, nodes.length); + for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { + for (var j = 0; j < l; j++) + if (node.nodeIndex == indices[j]) results.push(node); + } + } + h.unmark(nodes); + h.unmark(indexed); + return results; + }, + + 'empty': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (node.tagName == '!' || node.firstChild) continue; + results.push(node); + } + return results; + }, + + 'not': function(nodes, selector, root) { + var h = Selector.handlers, selectorType, m; + var exclusions = new Selector(selector).findElements(root); + h.mark(exclusions); + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node._countedByPrototype) results.push(node); + h.unmark(exclusions); + return results; + }, + + 'enabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node.disabled && (!node.type || node.type !== 'hidden')) + results.push(node); + return results; + }, + + 'disabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.disabled) results.push(node); + return results; + }, + + 'checked': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.checked) results.push(node); + return results; + } + }, + + operators: { + '=': function(nv, v) { return nv == v; }, + '!=': function(nv, v) { return nv != v; }, + '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); }, + '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); }, + '*=': function(nv, v) { return nv == v || nv && nv.include(v); }, + '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, + '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() + + '-').include('-' + (v || "").toUpperCase() + '-'); } + }, + + split: function(expression) { + var expressions = []; + expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { + expressions.push(m[1].strip()); + }); + return expressions; + }, + + matchElements: function(elements, expression) { + var matches = $$(expression), h = Selector.handlers; + h.mark(matches); + for (var i = 0, results = [], element; element = elements[i]; i++) + if (element._countedByPrototype) results.push(element); + h.unmark(matches); + return results; + }, + + findElement: function(elements, expression, index) { + if (Object.isNumber(expression)) { + index = expression; expression = false; + } + return Selector.matchElements(elements, expression || '*')[index || 0]; + }, + + findChildElements: function(element, expressions) { + expressions = Selector.split(expressions.join(',')); + var results = [], h = Selector.handlers; + for (var i = 0, l = expressions.length, selector; i < l; i++) { + selector = new Selector(expressions[i].strip()); + h.concat(results, selector.findElements(element)); + } + return (l > 1) ? h.unique(results) : results; + } +}); + +if (Prototype.Browser.IE) { + Object.extend(Selector.handlers, { + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + if (node.tagName !== "!") a.push(node); + return a; + } + }); +} + +function $$() { + return Selector.findChildElements(document, $A(arguments)); +} + +var Form = { + reset: function(form) { + form = $(form); + form.reset(); + return form; + }, + + serializeElements: function(elements, options) { + if (typeof options != 'object') options = { hash: !!options }; + else if (Object.isUndefined(options.hash)) options.hash = true; + var key, value, submitted = false, submit = options.submit; + + var data = elements.inject({ }, function(result, element) { + if (!element.disabled && element.name) { + key = element.name; value = $(element).getValue(); + if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && + submit !== false && (!submit || key == submit) && (submitted = true)))) { + if (key in result) { + if (!Object.isArray(result[key])) result[key] = [result[key]]; + result[key].push(value); + } + else result[key] = value; + } + } + return result; + }); + + return options.hash ? data : Object.toQueryString(data); + } +}; + +Form.Methods = { + serialize: function(form, options) { + return Form.serializeElements(Form.getElements(form), options); + }, + + getElements: function(form) { + var elements = $(form).getElementsByTagName('*'), + element, + arr = [ ], + serializers = Form.Element.Serializers; + for (var i = 0; element = elements[i]; i++) { + arr.push(element); + } + return arr.inject([], function(elements, child) { + if (serializers[child.tagName.toLowerCase()]) + elements.push(Element.extend(child)); + return elements; + }) + }, + + getInputs: function(form, typeName, name) { + form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) return $A(inputs).map(Element.extend); + + for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || (name && input.name != name)) + continue; + matchingInputs.push(Element.extend(input)); + } + + return matchingInputs; + }, + + disable: function(form) { + form = $(form); + Form.getElements(form).invoke('disable'); + return form; + }, + + enable: function(form) { + form = $(form); + Form.getElements(form).invoke('enable'); + return form; + }, + + findFirstElement: function(form) { + var elements = $(form).getElements().findAll(function(element) { + return 'hidden' != element.type && !element.disabled; + }); + var firstByIndex = elements.findAll(function(element) { + return element.hasAttribute('tabIndex') && element.tabIndex >= 0; + }).sortBy(function(element) { return element.tabIndex }).first(); + + return firstByIndex ? firstByIndex : elements.find(function(element) { + return /^(?:input|select|textarea)$/i.test(element.tagName); + }); + }, + + focusFirstElement: function(form) { + form = $(form); + form.findFirstElement().activate(); + return form; + }, + + request: function(form, options) { + form = $(form), options = Object.clone(options || { }); + + var params = options.parameters, action = form.readAttribute('action') || ''; + if (action.blank()) action = window.location.href; + options.parameters = form.serialize(true); + + if (params) { + if (Object.isString(params)) params = params.toQueryParams(); + Object.extend(options.parameters, params); + } + + if (form.hasAttribute('method') && !options.method) + options.method = form.method; + + return new Ajax.Request(action, options); + } +}; + +/*--------------------------------------------------------------------------*/ + + +Form.Element = { + focus: function(element) { + $(element).focus(); + return element; + }, + + select: function(element) { + $(element).select(); + return element; + } +}; + +Form.Element.Methods = { + + serialize: function(element) { + element = $(element); + if (!element.disabled && element.name) { + var value = element.getValue(); + if (value != undefined) { + var pair = { }; + pair[element.name] = value; + return Object.toQueryString(pair); + } + } + return ''; + }, + + getValue: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + return Form.Element.Serializers[method](element); + }, + + setValue: function(element, value) { + element = $(element); + var method = element.tagName.toLowerCase(); + Form.Element.Serializers[method](element, value); + return element; + }, + + clear: function(element) { + $(element).value = ''; + return element; + }, + + present: function(element) { + return $(element).value != ''; + }, + + activate: function(element) { + element = $(element); + try { + element.focus(); + if (element.select && (element.tagName.toLowerCase() != 'input' || + !(/^(?:button|reset|submit)$/i.test(element.type)))) + element.select(); + } catch (e) { } + return element; + }, + + disable: function(element) { + element = $(element); + element.disabled = true; + return element; + }, + + enable: function(element) { + element = $(element); + element.disabled = false; + return element; + } +}; + +/*--------------------------------------------------------------------------*/ + +var Field = Form.Element; + +var $F = Form.Element.Methods.getValue; + +/*--------------------------------------------------------------------------*/ + +Form.Element.Serializers = { + input: function(element, value) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element, value); + default: + return Form.Element.Serializers.textarea(element, value); + } + }, + + inputSelector: function(element, value) { + if (Object.isUndefined(value)) return element.checked ? element.value : null; + else element.checked = !!value; + }, + + textarea: function(element, value) { + if (Object.isUndefined(value)) return element.value; + else element.value = value; + }, + + select: function(element, value) { + if (Object.isUndefined(value)) + return this[element.type == 'select-one' ? + 'selectOne' : 'selectMany'](element); + else { + var opt, currentValue, single = !Object.isArray(value); + for (var i = 0, length = element.length; i < length; i++) { + opt = element.options[i]; + currentValue = this.optionValue(opt); + if (single) { + if (currentValue == value) { + opt.selected = true; + return; + } + } + else opt.selected = value.include(currentValue); + } + } + }, + + selectOne: function(element) { + var index = element.selectedIndex; + return index >= 0 ? this.optionValue(element.options[index]) : null; + }, + + selectMany: function(element) { + var values, length = element.length; + if (!length) return null; + + for (var i = 0, values = []; i < length; i++) { + var opt = element.options[i]; + if (opt.selected) values.push(this.optionValue(opt)); + } + return values; + }, + + optionValue: function(opt) { + return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; + } +}; + +/*--------------------------------------------------------------------------*/ + + +Abstract.TimedObserver = Class.create(PeriodicalExecuter, { + initialize: function($super, element, frequency, callback) { + $super(callback, frequency); + this.element = $(element); + this.lastValue = this.getValue(); + }, + + execute: function() { + var value = this.getValue(); + if (Object.isString(this.lastValue) && Object.isString(value) ? + this.lastValue != value : String(this.lastValue) != String(value)) { + this.callback(this.element, value); + this.lastValue = value; + } + } +}); + +Form.Element.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = Class.create({ + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + Form.getElements(this.element).each(this.registerCallback, this); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + Event.observe(element, 'click', this.onElementEvent.bind(this)); + break; + default: + Event.observe(element, 'change', this.onElementEvent.bind(this)); + break; + } + } + } +}); + +Form.Element.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); +(function() { + + var Event = { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + KEY_HOME: 36, + KEY_END: 35, + KEY_PAGEUP: 33, + KEY_PAGEDOWN: 34, + KEY_INSERT: 45, + + cache: {} + }; + + var docEl = document.documentElement; + var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl + && 'onmouseleave' in docEl; + + var _isButton; + if (Prototype.Browser.IE) { + var buttonMap = { 0: 1, 1: 4, 2: 2 }; + _isButton = function(event, code) { + return event.button === buttonMap[code]; + }; + } else if (Prototype.Browser.WebKit) { + _isButton = function(event, code) { + switch (code) { + case 0: return event.which == 1 && !event.metaKey; + case 1: return event.which == 1 && event.metaKey; + default: return false; + } + }; + } else { + _isButton = function(event, code) { + return event.which ? (event.which === code + 1) : (event.button === code); + }; + } + + function isLeftClick(event) { return _isButton(event, 0) } + + function isMiddleClick(event) { return _isButton(event, 1) } + + function isRightClick(event) { return _isButton(event, 2) } + + function element(event) { + event = Event.extend(event); + + var node = event.target, type = event.type, + currentTarget = event.currentTarget; + + if (currentTarget && currentTarget.tagName) { + if (type === 'load' || type === 'error' || + (type === 'click' && currentTarget.tagName.toLowerCase() === 'input' + && currentTarget.type === 'radio')) + node = currentTarget; + } + + if (node.nodeType == Node.TEXT_NODE) + node = node.parentNode; + + return Element.extend(node); + } + + function findElement(event, expression) { + var element = Event.element(event); + if (!expression) return element; + var elements = [element].concat(element.ancestors()); + return Selector.findElement(elements, expression, 0); + } + + function pointer(event) { + return { x: pointerX(event), y: pointerY(event) }; + } + + function pointerX(event) { + var docElement = document.documentElement, + body = document.body || { scrollLeft: 0 }; + + return event.pageX || (event.clientX + + (docElement.scrollLeft || body.scrollLeft) - + (docElement.clientLeft || 0)); + } + + function pointerY(event) { + var docElement = document.documentElement, + body = document.body || { scrollTop: 0 }; + + return event.pageY || (event.clientY + + (docElement.scrollTop || body.scrollTop) - + (docElement.clientTop || 0)); + } + + + function stop(event) { + Event.extend(event); + event.preventDefault(); + event.stopPropagation(); + + event.stopped = true; + } + + Event.Methods = { + isLeftClick: isLeftClick, + isMiddleClick: isMiddleClick, + isRightClick: isRightClick, + + element: element, + findElement: findElement, + + pointer: pointer, + pointerX: pointerX, + pointerY: pointerY, + + stop: stop + }; + + + var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { + m[name] = Event.Methods[name].methodize(); + return m; + }); + + if (Prototype.Browser.IE) { + function _relatedTarget(event) { + var element; + switch (event.type) { + case 'mouseover': element = event.fromElement; break; + case 'mouseout': element = event.toElement; break; + default: return null; + } + return Element.extend(element); + } + + Object.extend(methods, { + stopPropagation: function() { this.cancelBubble = true }, + preventDefault: function() { this.returnValue = false }, + inspect: function() { return '[object Event]' } + }); + + Event.extend = function(event, element) { + if (!event) return false; + if (event._extendedByPrototype) return event; + + event._extendedByPrototype = Prototype.emptyFunction; + var pointer = Event.pointer(event); + + Object.extend(event, { + target: event.srcElement || element, + relatedTarget: _relatedTarget(event), + pageX: pointer.x, + pageY: pointer.y + }); + + return Object.extend(event, methods); + }; + } else { + Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__; + Object.extend(Event.prototype, methods); + Event.extend = Prototype.K; + } + + function _createResponder(element, eventName, handler) { + var registry = Element.retrieve(element, 'prototype_event_registry'); + + if (Object.isUndefined(registry)) { + CACHE.push(element); + registry = Element.retrieve(element, 'prototype_event_registry', $H()); + } + + var respondersForEvent = registry.get(eventName); + if (Object.isUndefined(respondersForEvent)) { + respondersForEvent = []; + registry.set(eventName, respondersForEvent); + } + + if (respondersForEvent.pluck('handler').include(handler)) return false; + + var responder; + if (eventName.include(":")) { + responder = function(event) { + if (Object.isUndefined(event.eventName)) + return false; + + if (event.eventName !== eventName) + return false; + + Event.extend(event, element); + handler.call(element, event); + }; + } else { + if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED && + (eventName === "mouseenter" || eventName === "mouseleave")) { + if (eventName === "mouseenter" || eventName === "mouseleave") { + responder = function(event) { + Event.extend(event, element); + + var parent = event.relatedTarget; + while (parent && parent !== element) { + try { parent = parent.parentNode; } + catch(e) { parent = element; } + } + + if (parent === element) return; + + handler.call(element, event); + }; + } + } else { + responder = function(event) { + Event.extend(event, element); + handler.call(element, event); + }; + } + } + + responder.handler = handler; + respondersForEvent.push(responder); + return responder; + } + + function _destroyCache() { + for (var i = 0, length = CACHE.length; i < length; i++) { + Event.stopObserving(CACHE[i]); + CACHE[i] = null; + } + } + + var CACHE = []; + + if (Prototype.Browser.IE) + window.attachEvent('onunload', _destroyCache); + + if (Prototype.Browser.WebKit) + window.addEventListener('unload', Prototype.emptyFunction, false); + + + var _getDOMEventName = Prototype.K; + + if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) { + _getDOMEventName = function(eventName) { + var translations = { mouseenter: "mouseover", mouseleave: "mouseout" }; + return eventName in translations ? translations[eventName] : eventName; + }; + } + + function observe(element, eventName, handler) { + element = $(element); + + var responder = _createResponder(element, eventName, handler); + + if (!responder) return element; + + if (eventName.include(':')) { + if (element.addEventListener) + element.addEventListener("dataavailable", responder, false); + else { + element.attachEvent("ondataavailable", responder); + element.attachEvent("onfilterchange", responder); + } + } else { + var actualEventName = _getDOMEventName(eventName); + + if (element.addEventListener) + element.addEventListener(actualEventName, responder, false); + else + element.attachEvent("on" + actualEventName, responder); + } + + return element; + } + + function stopObserving(element, eventName, handler) { + element = $(element); + + var registry = Element.retrieve(element, 'prototype_event_registry'); + + if (Object.isUndefined(registry)) return element; + + if (eventName && !handler) { + var responders = registry.get(eventName); + + if (Object.isUndefined(responders)) return element; + + responders.each( function(r) { + Element.stopObserving(element, eventName, r.handler); + }); + return element; + } else if (!eventName) { + registry.each( function(pair) { + var eventName = pair.key, responders = pair.value; + + responders.each( function(r) { + Element.stopObserving(element, eventName, r.handler); + }); + }); + return element; + } + + var responders = registry.get(eventName); + + if (!responders) return; + + var responder = responders.find( function(r) { return r.handler === handler; }); + if (!responder) return element; + + var actualEventName = _getDOMEventName(eventName); + + if (eventName.include(':')) { + if (element.removeEventListener) + element.removeEventListener("dataavailable", responder, false); + else { + element.detachEvent("ondataavailable", responder); + element.detachEvent("onfilterchange", responder); + } + } else { + if (element.removeEventListener) + element.removeEventListener(actualEventName, responder, false); + else + element.detachEvent('on' + actualEventName, responder); + } + + registry.set(eventName, responders.without(responder)); + + return element; + } + + function fire(element, eventName, memo, bubble) { + element = $(element); + + if (Object.isUndefined(bubble)) + bubble = true; + + if (element == document && document.createEvent && !element.dispatchEvent) + element = document.documentElement; + + var event; + if (document.createEvent) { + event = document.createEvent('HTMLEvents'); + event.initEvent('dataavailable', true, true); + } else { + event = document.createEventObject(); + event.eventType = bubble ? 'ondataavailable' : 'onfilterchange'; + } + + event.eventName = eventName; + event.memo = memo || { }; + + if (document.createEvent) + element.dispatchEvent(event); + else + element.fireEvent(event.eventType, event); + + return Event.extend(event); + } + + + Object.extend(Event, Event.Methods); + + Object.extend(Event, { + fire: fire, + observe: observe, + stopObserving: stopObserving + }); + + Element.addMethods({ + fire: fire, + + observe: observe, + + stopObserving: stopObserving + }); + + Object.extend(document, { + fire: fire.methodize(), + + observe: observe.methodize(), + + stopObserving: stopObserving.methodize(), + + loaded: false + }); + + if (window.Event) Object.extend(window.Event, Event); + else window.Event = Event; +})(); + +(function() { + /* Support for the DOMContentLoaded event is based on work by Dan Webb, + Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */ + + var timer; + + function fireContentLoadedEvent() { + if (document.loaded) return; + if (timer) window.clearTimeout(timer); + document.loaded = true; + document.fire('dom:loaded'); + } + + function checkReadyState() { + if (document.readyState === 'complete') { + document.stopObserving('readystatechange', checkReadyState); + fireContentLoadedEvent(); + } + } + + function pollDoScroll() { + try { document.documentElement.doScroll('left'); } + catch(e) { + timer = pollDoScroll.defer(); + return; + } + fireContentLoadedEvent(); + } + + if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false); + } else { + document.observe('readystatechange', checkReadyState); + if (window == top) + timer = pollDoScroll.defer(); + } + + Event.observe(window, 'load', fireContentLoadedEvent); +})(); + +Element.addMethods(); + +/*------------------------------- DEPRECATED -------------------------------*/ + +Hash.toQueryString = Object.toQueryString; + +var Toggle = { display: Element.toggle }; + +Element.Methods.childOf = Element.Methods.descendantOf; + +var Insertion = { + Before: function(element, content) { + return Element.insert(element, {before:content}); + }, + + Top: function(element, content) { + return Element.insert(element, {top:content}); + }, + + Bottom: function(element, content) { + return Element.insert(element, {bottom:content}); + }, + + After: function(element, content) { + return Element.insert(element, {after:content}); + } +}; + +var $continue = new Error('"throw $continue" is deprecated, use "return" instead'); + +var Position = { + includeScrollOffsets: false, + + prepare: function() { + this.deltaX = window.pageXOffset + || document.documentElement.scrollLeft + || document.body.scrollLeft + || 0; + this.deltaY = window.pageYOffset + || document.documentElement.scrollTop + || document.body.scrollTop + || 0; + }, + + within: function(element, x, y) { + if (this.includeScrollOffsets) + return this.withinIncludingScrolloffsets(element, x, y); + this.xcomp = x; + this.ycomp = y; + this.offset = Element.cumulativeOffset(element); + + return (y >= this.offset[1] && + y < this.offset[1] + element.offsetHeight && + x >= this.offset[0] && + x < this.offset[0] + element.offsetWidth); + }, + + withinIncludingScrolloffsets: function(element, x, y) { + var offsetcache = Element.cumulativeScrollOffset(element); + + this.xcomp = x + offsetcache[0] - this.deltaX; + this.ycomp = y + offsetcache[1] - this.deltaY; + this.offset = Element.cumulativeOffset(element); + + return (this.ycomp >= this.offset[1] && + this.ycomp < this.offset[1] + element.offsetHeight && + this.xcomp >= this.offset[0] && + this.xcomp < this.offset[0] + element.offsetWidth); + }, + + overlap: function(mode, element) { + if (!mode) return 0; + if (mode == 'vertical') + return ((this.offset[1] + element.offsetHeight) - this.ycomp) / + element.offsetHeight; + if (mode == 'horizontal') + return ((this.offset[0] + element.offsetWidth) - this.xcomp) / + element.offsetWidth; + }, + + + cumulativeOffset: Element.Methods.cumulativeOffset, + + positionedOffset: Element.Methods.positionedOffset, + + absolutize: function(element) { + Position.prepare(); + return Element.absolutize(element); + }, + + relativize: function(element) { + Position.prepare(); + return Element.relativize(element); + }, + + realOffset: Element.Methods.cumulativeScrollOffset, + + offsetParent: Element.Methods.getOffsetParent, + + page: Element.Methods.viewportOffset, + + clone: function(source, target, options) { + options = options || { }; + return Element.clonePosition(target, source, options); + } +}; + +/*--------------------------------------------------------------------------*/ + +if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){ + function iter(name) { + return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]"; + } + + instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ? + function(element, className) { + className = className.toString().strip(); + var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className); + return cond ? document._getElementsByXPath('.//*' + cond, element) : []; + } : function(element, className) { + className = className.toString().strip(); + var elements = [], classNames = (/\s/.test(className) ? $w(className) : null); + if (!classNames && !className) return elements; + + var nodes = $(element).getElementsByTagName('*'); + className = ' ' + className + ' '; + + for (var i = 0, child, cn; child = nodes[i]; i++) { + if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) || + (classNames && classNames.all(function(name) { + return !name.toString().blank() && cn.include(' ' + name + ' '); + })))) + elements.push(Element.extend(child)); + } + return elements; + }; + + return function(className, parentElement) { + return $(parentElement || document.body).getElementsByClassName(className); + }; +}(Element.Methods); + +/*--------------------------------------------------------------------------*/ + +Element.ClassNames = Class.create(); +Element.ClassNames.prototype = { + initialize: function(element) { + this.element = $(element); + }, + + _each: function(iterator) { + this.element.className.split(/\s+/).select(function(name) { + return name.length > 0; + })._each(iterator); + }, + + set: function(className) { + this.element.className = className; + }, + + add: function(classNameToAdd) { + if (this.include(classNameToAdd)) return; + this.set($A(this).concat(classNameToAdd).join(' ')); + }, + + remove: function(classNameToRemove) { + if (!this.include(classNameToRemove)) return; + this.set($A(this).without(classNameToRemove).join(' ')); + }, + + toString: function() { + return $A(this).join(' '); + } +}; + +Object.extend(Element.ClassNames.prototype, Enumerable); + +/*--------------------------------------------------------------------------*/ \ No newline at end of file diff --git a/OLD/js/scriptaculous.js b/OLD/js/scriptaculous.js new file mode 100644 index 0000000..6bf437a --- /dev/null +++ b/OLD/js/scriptaculous.js @@ -0,0 +1,68 @@ +// script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009 + +// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +var Scriptaculous = { + Version: '1.8.3', + require: function(libraryName) { + try{ + // inserting via DOM fails in Safari 2.0, so brute force approach + document.write(' + + + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    +
    + + +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + + /* Connect using SQL Server Authentication. */ + $conn = sqlsrv_connect( $serverName, $connectionInfo); + if( $conn === false ) + { + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); + } + +//select data from db + $sql = "SELECT LoadData.LoadId_Pk, + LoadData.CropDay, + LoadData.TractId_Fk, + LoadData.TareWt, + LoadData.GrossWt, + LoadData.Tons, + LoadData.FarmerId_Fk, + CONVERT(varchar, LoadData.DateOut, 100) [TIME], + LoadData.Parked, + Tract.AccountName + FROM LoadData RIGHT JOIN Tract ON LoadData.FarmerId_Fk = Tract.AccountId_Pk + WHERE CropDay LIKE ".$cropday." OR AccountName LIKE ".$grower." + GROUP BY LoadData.LoadId_Pk, + LoadData.CropDay, + LoadData.TractId_Fk, + LoadData.TareWt, + LoadData.GrossWt, + LoadData.Tons, + LoadData.FarmerId_Fk, + LoadData.DateOut, + LoadData.Parked, + Tract.AccountName + ORDER by LoadId_Pk DESC"; + + $stmt = sqlsrv_query( $conn, $sql ); + if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} + +$tonsin = 0; +$tonsin2 = 0; + +} +?> + + + + +
    +
    + + +
    + + + +
    +
    + + + + +
    Live Scale Load Data
    + + + + + + + + + + + + + +"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + //end + sqlsrv_free_stmt( $stmt); + sqlsrv_close( $conn); +?> +
    LoadDayTractGrowerGrossTareTonsOut Time
    ".$row ['LoadId_Pk']."".$row ['CropDay']."".$row ['TractId_Fk']."".$row ['AccountName']."".$row ['GrossWt']." ".$row ['TareWt']." ".$row ['Tons']." ".$row ['TIME']."
    + + + + + +
    Total Tons:
    +
    +Back to Top +
    + + + + diff --git a/OLD/loaddata/index_old.php b/OLD/loaddata/index_old.php new file mode 100644 index 0000000..5879752 --- /dev/null +++ b/OLD/loaddata/index_old.php @@ -0,0 +1,135 @@ + + + +Load Data + + + + + + + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    +query($sql); +$tonsin = 0; +$tonsin2 = 0; + +?> +
    + + + + +
    +
    + +
    + + + +
    +
    + + + + +
    Live Scale Load Data
    + + + + + + + + + + + + + + +fetch()) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + //end + +?> +
    LoadDayTractGrowerGrossTareTonsHauledRemaining
    ".$row [ 'Load No' ]."".$row [ 'Crop Day' ]."".$row [ 'Tract No' ]."".$row [ 'farmer' ]."".$row [ 'Gross Wt' ]." ".$row [ 'In Tare' ]." ".$row [ 'Tons' ]."".$row [ 'hauled' ]." Tons".$row [ 'REMTONs' ]." Tons
    + +
    +Back to Top +
    + + + + diff --git a/OLD/loaddata/menu.php b/OLD/loaddata/menu.php new file mode 100644 index 0000000..60ae391 --- /dev/null +++ b/OLD/loaddata/menu.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/OLD/loaddata/mssqltest.php b/OLD/loaddata/mssqltest.php new file mode 100644 index 0000000..e30943c --- /dev/null +++ b/OLD/loaddata/mssqltest.php @@ -0,0 +1,34 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT TOP 20 LoadId_Pk, CropDay, TractId_Fk, TareIN, GrossWt, Tons, FarmerId_Fk, DateOut, SplitPercent + FROM LoadData + WHERE FarmerId_Fk + LIKE 32002 + ORDER by LoadId_Pk DESC"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} + +while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) { + echo $row['LoadId_Pk'].", ".$row['TareIN'].", ".$row['GrossWt'].", ".$row['Tons'].", ".$row['GrossWt'].", ".$row['FarmerId_Fk']."
    "; +} + +/* Free statement and connection resources. */ +sqlsrv_free_stmt( $stmt); +sqlsrv_close( $conn); +?> \ No newline at end of file diff --git a/OLD/loaddata/report.php b/OLD/loaddata/report.php new file mode 100644 index 0000000..7f4cf0a --- /dev/null +++ b/OLD/loaddata/report.php @@ -0,0 +1,158 @@ + + + +Load Data + + + + + + + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    +
    + + + + + +
    +
    + +
    + + + +
    +
    +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + + /* Connect using SQL Server Authentication. */ + $conn = sqlsrv_connect( $serverName, $connectionInfo); + if( $conn === false ) + { + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); + } + +//select data from db + $sql = "SELECT LoadData.LoadId_Pk, + LoadData.CropDay, + LoadData.TractId_Fk, + LoadData.TareWt, + LoadData.GrossWt, + LoadData.Tons, + LoadData.FarmerId_Fk, + CONVERT(varchar, LoadData.DateOut, 100) [TIME], + LoadData.Parked, + Tract.AccountName + FROM LoadData RIGHT JOIN Tract ON LoadData.FarmerId_Fk = Tract.AccountId_Pk + WHERE CropDay = 90 + GROUP BY LoadData.LoadId_Pk, + LoadData.CropDay, + LoadData.TractId_Fk, + LoadData.TareWt, + LoadData.GrossWt, + LoadData.Tons, + LoadData.FarmerId_Fk, + LoadData.DateOut, + LoadData.Parked, + Tract.AccountName + ORDER by LoadId_Pk DESC"; + + $stmt = sqlsrv_query( $conn, $sql ); + if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} + +$tonsin = 0; +$tonsin2 = 0; +?> + + + + +
    Live Scale Load Data
    + + + + + + + + + + + + + +"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + //end + sqlsrv_free_stmt( $stmt); + sqlsrv_close( $conn); +?> +
    LoadDayTractGrowerGrossTareTonsOut Time
    ".$row ['LoadId_Pk']."".$row ['CropDay']."".$row ['TractId_Fk']."".$row ['AccountName']."".$row ['GrossWt']." ".$row ['TareWt']." ".$row ['Tons']." ".$row ['TIME']."
    + + + + + +
    Total Tons:
    +
    +Back to Top +
    + + + + diff --git a/OLD/loaddata/search.php b/OLD/loaddata/search.php new file mode 100644 index 0000000..c571b07 --- /dev/null +++ b/OLD/loaddata/search.php @@ -0,0 +1,163 @@ + + + + +Load Data + + + + + + + +
    + +
    +
    + +
    + +
    +
    + + +
    +
    +
    + + + + +
    +
    + +
    + + + +
    +
    + +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + + /* Connect using SQL Server Authentication. */ + $conn = sqlsrv_connect( $serverName, $connectionInfo); + if( $conn === false ) + { + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); + } + +//select data from db + + $grower = $_POST['grower']; + $cropday = $_POST['cropday']; + + + + $sql = "SELECT LoadData.LoadId_Pk, + LoadData.CropDay, + LoadData.TractId_Fk, + LoadData.TareWt, + LoadData.GrossWt, + LoadData.Tons, + LoadData.FarmerId_Fk, + CONVERT(varchar, LoadData.DateOut, 100) [TIME], + LoadData.Parked, + Tract.AccountName + FROM LoadData RIGHT JOIN Tract ON LoadData.FarmerId_Fk = Tract.AccountName + WHERE CropDay LIKE '%".$cropday."%' OR AccountName LIKE '%".$grower."%' + GROUP BY LoadData.LoadId_Pk, + LoadData.CropDay, + LoadData.TractId_Fk, + LoadData.TareWt, + LoadData.GrossWt, + LoadData.Tons, + LoadData.FarmerId_Fk, + LoadData.DateOut, + LoadData.Parked, + Tract.AccountName + ORDER by LoadId_Pk DESC"; + + $stmt = sqlsrv_query( $conn, $sql ); + if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} + +$tonsin = 0; +$tonsin2 = 0; +?> + + + + + + + +
    Live Scale Load Data
    + + + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + + //end + sqlsrv_free_stmt( $stmt); + sqlsrv_close( $conn); + ?> +
    LoadDayTractGrowerGrossTareTonsOut Time
    ".$row ['LoadId_Pk']."".$row ['CropDay']."".$row ['TractId_Fk']."".$row ['AccountName']."".$row ['GrossWt']." ".$row ['TareWt']." ".$row ['Tons']." ".$row ['TIME']."
    +
    +Back to Top +
    + + + + + diff --git a/OLD/loaddata/style.css b/OLD/loaddata/style.css new file mode 100644 index 0000000..3378998 --- /dev/null +++ b/OLD/loaddata/style.css @@ -0,0 +1,232 @@ +body{ + max-width: 1080px; + margin: 0 auto !important; + float: none !important; + background-image: url("images/bg.gif"); + background-color: #000; +} +* { + box-sizing: border-box; +} +.center { + background-color: #fff; +} +.row:after { + content: ""; + clear: both; + display: block; +} +[class*="col-"] { + float: left; + padding: 15px; +} +html, html a { + font-family: Arial, "Lucida Sans", sans-serif; + -webkit-font-smoothing: antialiased !important; + text-shadow: 1px 1px 1px rgba(0,0,0,0.004); +} +.header { + background-image: url("images/fulllogo.png"); + background-repeat: no-repeat; + background-position: center; + background-color: #474719; + height: 100px; + color: #ffffff; + padding: 15px; +} +h1 { + padding: 0px; + margin: 0px; +} +p{ + padding: 0px; + margin: 0px; +} +.menu ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.menu li { + padding: 8px; + margin-bottom: 7px; + background-color :#333300; + color: #ffffff; + box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); +} +.menu li:hover { + background-color: #333333; +} +.aside { + background-color: #474719; + padding: 2px; + color: #ffffff; + text-align: center; + font-size: 14px; + box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); +} +.footer { + background-color: #474719; + color: #ffffff; + text-align: center; + font-size: 12px; + padding: 15px; +} +/* For desktop: */ +.col-1 {width: 8.33%;} +.col-2 {width: 16.66%;} +.col-3 {width: 20%;} +.col-4 {width: 33.33%;} +.col-5 {width: 41.66%;} +.col-6 {width: 80%;} +.col-7 {width: 58.33%;} +.col-8 {width: 66.66%;} +.col-9 {width: 75%;} +.col-10 {width: 83.33%;} +.col-11 {width: 91.66%;} +.col-12 {width: 100%;} + +/* +Max width before this PARTICULAR table gets nasty +This query will take effect for any screen smaller than 760px +and also iPads specifically. +*/ + +@media +only screen and (max-width: 760px), +(min-device-width: 768px) and (max-device-width: 1024px) { + /* For mobile phones: */ + [class*="col-"] { + width: 100%; + } + /* Force table to not be like tables anymore */ + table, thead, tbody, th, td, tr { + display: block; + } + + /* Hide table headers (but not display: none;, for accessibility) */ + thead tr { + position: absolute; + top: -9999px; + left: -9999px; + } + + tr { border: 1px solid #ccc; } + + td { + /* Behave like a "row" */ + border: none; + border-bottom: 1px solid #eee; + position: relative; + padding-left: 50%; + } + + td:before { + /* Now like a table header */ + position: absolute; + /* Top/left values mimic padding */ + top: 6px; + left: 6px; + width: 45%; + padding-right: 10px; + white-space: nowrap; + } + + /* + Label the data + */ + td:nth-of-type(1):before { content: "Load Number"; } + td:nth-of-type(2):before { content: "Crop DaY"; } + td:nth-of-type(3):before { content: "Tract No"; } + td:nth-of-type(4):before { content: "Grower"; } + td:nth-of-type(5):before { content: "Gross Wt"; } + td:nth-of-type(6):before { content: "Tare Wt"; } + td:nth-of-type(7):before { content: "Tons"; } + td:nth-of-type(8):before { content: "Tons Hauled"; } + td:nth-of-type(9):before { content: "Tons Remaining"; } +} + +table { + border-collapse: collapse; + width: 100%; +} +table, th, td { + border: 1px solid black; +} + +th { + background-color: grey; + color: white; + text-align: center; + vertical-align: center; +} +td { + text-align: center; +} +tr:nth-child(even) { + background: #6C6C47; + color: white; + } +tr:nth-child(odd) { + background: #FFF; + color: black; + } + +input[type=checkbox]:not(old), +input[type=radio ]:not(old){aa + width : 2em; + margin : 0; + padding : 0; + font-size : 1em; + opacity : 0; +} +input[type=checkbox]:not(old) + label, +input[type=radio ]:not(old) + label{ + display : inline-block; + margin-left : -2em; + line-height : 1.5em; +} +input[type=checkbox]:not(old) + label > span, +input[type=radio ]:not(old) + label > span{ + display : inline-block; + width : 0.875em; + height : 0.875em; + margin : 0.05em 0.2em 0.35em 0.9em; + border : 0.0625em solid rgb(192,192,192); + border-radius : 0.25em; + background : rgb(224,224,224); + background-image : -moz-linear-gradient(rgb(240,240,240),rgb(224,224,224)); + background-image : -ms-linear-gradient(rgb(240,240,240),rgb(224,224,224)); + background-image : -o-linear-gradient(rgb(240,240,240),rgb(224,224,224)); + background-image : -webkit-linear-gradient(rgb(240,240,240),rgb(224,224,224)); + background-image : linear-gradient(rgb(240,240,240),rgb(224,224,224)); + vertical-align : bottom; +} +input[type=checkbox]:not(old):checked + label > span:before{ + content : '✓'; + display : block; + width : 1em; + color : rgb(153,204,102); + font-size : 0.875em; + line-height : 1em; + text-align : center; + text-shadow : 0 0 0.0714em rgb(115,153,77); + font-weight : bold; +} +a.back-to-top { + display: none; + width: 35px; + height: 35px; + text-indent: -9999px; + position: fixed; + z-index: 999; + right: 20px; + bottom: 20px; + background: #27AE61 url("up-arrow.png") no-repeat center 43%; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + border-radius: 30px; +} +a:hover.back-to-top { + background-color: #000; +} \ No newline at end of file diff --git a/OLD/loaddata/test.php b/OLD/loaddata/test.php new file mode 100644 index 0000000..bc747fa --- /dev/null +++ b/OLD/loaddata/test.php @@ -0,0 +1,47 @@ +"; + echo "".$row [ 'load' ].""; + echo "".$row [ 'cropday' ].""; + echo "".$row [ 'tractno' ].""; + echo "".$row [ 'gross' ]." "; + echo "".$row [ 'intare' ]." "; + echo "".$row [ 'tons' ]." Tons"; + echo "".$row [ 'intime' ]." "; + echo "".$row [ 'outtime' ]." "; + echo ""; + } + + +//Original Query + +$sql = "SELECT * FROM `Load Data` ORDER BY `Crop Day` DESC,`In Time` DESC"; + + +{ + echo ""; + echo "".$row [ 'Load No' ].""; + echo "".$row [ 'Crop Day' ].""; + echo "".$row [ 'Tract No' ].""; + echo "".$row [ 'Gross Wt' ]." "; + echo "".$row [ 'In Tare' ]." "; + echo "".$row [ 'Tons' ]." Tons"; + echo "".$row [ 'In Time' ]." "; + echo "".$row [ 'Out Time' ]." "; + echo ""; + } + + \ No newline at end of file diff --git a/OLD/loaddata/tonsin.php b/OLD/loaddata/tonsin.php new file mode 100644 index 0000000..675e088 --- /dev/null +++ b/OLD/loaddata/tonsin.php @@ -0,0 +1,36 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT Tons FROM LoadData WHERE CropDay = ( SELECT Max(CropDay) FROM LoadData)"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} +$tonsin = 0; + while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) + { + $tonsin += $row['Tons']; + + } + + //end + +?> +

    Tons In Today

    +

    + diff --git a/OLD/loaddata/tonsinprev.php b/OLD/loaddata/tonsinprev.php new file mode 100644 index 0000000..a5e3978 --- /dev/null +++ b/OLD/loaddata/tonsinprev.php @@ -0,0 +1,36 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT Tons FROM LoadData WHERE CropDay = ( SELECT Max(CropDay)-1 FROM LoadData)"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} +$tonsin = 0; + while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) + { + $tonsin += $row['Tons']; + + } + + //end + +?> +

    Tons In Today

    +

    + diff --git a/OLD/loaddata/tonsintot.php b/OLD/loaddata/tonsintot.php new file mode 100644 index 0000000..9f25e5a --- /dev/null +++ b/OLD/loaddata/tonsintot.php @@ -0,0 +1,36 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT * FROM LoadData ORDER BY DateIn DESC"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} +$tonsin = 0; + while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) + { + $tonsin += $row['Tons']; + + } + + //end + +?> +

    Tons In Total

    +

    + diff --git a/OLD/loaddata/up-arrow.png b/OLD/loaddata/up-arrow.png new file mode 100644 index 0000000..904802f Binary files /dev/null and b/OLD/loaddata/up-arrow.png differ diff --git a/OLD/newboilers/boiler7and8.php b/OLD/newboilers/boiler7and8.php new file mode 100644 index 0000000..7302ec2 --- /dev/null +++ b/OLD/newboilers/boiler7and8.php @@ -0,0 +1,2 @@ + + diff --git a/OLD/newboilers/boilermainfull.php b/OLD/newboilers/boilermainfull.php new file mode 100644 index 0000000..9055ebc --- /dev/null +++ b/OLD/newboilers/boilermainfull.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/OLD/newboilers/index.php b/OLD/newboilers/index.php new file mode 100644 index 0000000..004c053 --- /dev/null +++ b/OLD/newboilers/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/OLD/test/index.php b/OLD/test/index.php new file mode 100644 index 0000000..b0e0b28 --- /dev/null +++ b/OLD/test/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/OLD/test/test.php b/OLD/test/test.php new file mode 100644 index 0000000..b1bf932 --- /dev/null +++ b/OLD/test/test.php @@ -0,0 +1,4 @@ + + + + diff --git a/OLD/tonsin.php b/OLD/tonsin.php new file mode 100644 index 0000000..c54b521 --- /dev/null +++ b/OLD/tonsin.php @@ -0,0 +1,35 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT ROUND (Tons,0) AS Tons FROM LoadData WHERE CropDay = ( SELECT Max(CropDay) FROM LoadData)"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} +$tonsin = 0; + while( $rowtonsin = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) + { + $tonsin += $rowtonsin['Tons']; + + } + + //end + +?> + + diff --git a/OLD/totground.php b/OLD/totground.php new file mode 100644 index 0000000..0fdab52 --- /dev/null +++ b/OLD/totground.php @@ -0,0 +1,28 @@ +connect_error) { + die("Connection failed: " . $conn->connect_error); +} + $query = "SELECT DISTINCT PREVTONS FROM totaltons"; + $result=$conn->query($query); + $tonsin = 0; + if ($result->num_rows > 0) { + // output data of each row + while($rowtotground = $result->fetch_assoc()) { + $tonsin += $rowtotground['PREVTONS']; + + } + } else { + echo "0 results"; + } + $conn->close(); + +?> + \ No newline at end of file diff --git a/OLD/w15minavg.php b/OLD/w15minavg.php new file mode 100644 index 0000000..a2dc9cf --- /dev/null +++ b/OLD/w15minavg.php @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/OLD/w24hravg.php b/OLD/w24hravg.php new file mode 100644 index 0000000..3217016 --- /dev/null +++ b/OLD/w24hravg.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/OLD/w24hravgtotal.php b/OLD/w24hravgtotal.php new file mode 100644 index 0000000..1640a06 --- /dev/null +++ b/OLD/w24hravgtotal.php @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OLD/west15minavg.php b/OLD/west15minavg.php new file mode 100644 index 0000000..66c3b21 --- /dev/null +++ b/OLD/west15minavg.php @@ -0,0 +1,15 @@ + + + + + diff --git a/OLD/wruntime.php b/OLD/wruntime.php new file mode 100644 index 0000000..a247ff7 --- /dev/null +++ b/OLD/wruntime.php @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/boilers/boilermain.php b/boilers/boilermain.php new file mode 100644 index 0000000..fd648aa --- /dev/null +++ b/boilers/boilermain.php @@ -0,0 +1,4 @@ + + + + diff --git a/boilers/boilermainfull.php b/boilers/boilermainfull.php new file mode 100644 index 0000000..98fe549 --- /dev/null +++ b/boilers/boilermainfull.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/boilers/index.php b/boilers/index.php new file mode 100644 index 0000000..d0f3bde --- /dev/null +++ b/boilers/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/cvp/cvpmain.php b/cvp/cvpmain.php new file mode 100644 index 0000000..212cac9 --- /dev/null +++ b/cvp/cvpmain.php @@ -0,0 +1,5 @@ + + +
    + + diff --git a/cvp/index.php b/cvp/index.php new file mode 100644 index 0000000..02f0f2e --- /dev/null +++ b/cvp/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/data/OLD/4kboiler7and8.php b/data/OLD/4kboiler7and8.php new file mode 100644 index 0000000..72b066a --- /dev/null +++ b/data/OLD/4kboiler7and8.php @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = 0) && ($f111 <= 290)) + $color = "#FF0000"; + else if (($f111 >= 290) && ($f111 <= 300)) + $color = "#FFFF00"; + else if ($f111 >= 300) + $color = "#00d145"; + + echo ""; + ?> + + + = 0) && ($f126 <= 290)) + $color = "#FF0000"; + else if (($f126 >= 290) && ($f126 <= 300)) + $color = "#FFFF00"; + else if ($f126 >= 300) + $color = "#00d145"; + + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BOILER 7BOILER 8
    Drum LVL A%Drum LVL A%
    Drum LVL B%Drum LVL B%
    Drum LVL C%Drum LVL C%
    Drum LVL Avg%Drum LVL Avg%
    Drum PressurePsigDrum PressurePsig
    Live Steam PressurepsiLive Steam Pressurepsi
    Feed Water Pressure $f111 PsigFeed Water Pressure $f126 Psig
    Feed Water FlowkpphFeed Water Flowkpph
    Steam FlowkpphSteam Flowkpph
    ID Fan SpeedRPMID Fan SpeedRPM
    + + + + \ No newline at end of file diff --git a/data/OLD/4kboilersfull.php b/data/OLD/4kboilersfull.php new file mode 100644 index 0000000..0f7df83 --- /dev/null +++ b/data/OLD/4kboilersfull.php @@ -0,0 +1,284 @@ + + + + + + + + + +
    BOILERS 1-6
    + + + + + + + + + + + + + + A"; + if ($f97 == 1) + echo ""; + ?> + = 0) && ($f58 <= 5)) + $color = "#FF0000"; + else if (($f58 >= 6) && ($f58 <= 13)) + $color = "#FFFF00"; + else if ($f58 >= 14) + $color = "#00FF00"; + + echo ""; + ?> + + + += 0) && ($f52 <= 155)) + $color = "#FF0000"; + else if (($f52 >= 156) && ($f52 <= 165)) + $color = "#FFFF00"; + else if ($f52 >= 165) + $color = "#00FF00"; + + echo ""; + ?> + + + + + +
    Total Steam Flow:KpphVapor Pressure:PSIExhaust Pressure:M $f58 PSILive Steam Pressure: $f52 PSI
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 1Boiler 2Boiler 3Boiler 4Boiler 5Boiler 6
    Steam FlowkpphSteam FlowkpphSteam FlowkpphSteam FlowkpphSteam FlowkpphSteam Flowkpph
    Drum Level%Drum Level%Drum Level%Drum Level%Drum Level%Drum Level%
    Feed WaterkpphFeed WaterkpphFeed WaterkpphFeed WaterkpphFeed WaterkpphFeed Waterkpph
    Drum PressurepsiDrum PressurepsiDrum PressurepsiDrum PressurepsiDrum PressurepsiDrum Pressurepsi
    ID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan Speedrpm
    + + + + \ No newline at end of file diff --git a/data/OLD/4kfix.css b/data/OLD/4kfix.css new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/OLD/4kfix.css @@ -0,0 +1 @@ + diff --git a/data/OLD/4kheader.php b/data/OLD/4kheader.php new file mode 100644 index 0000000..6b2ab42 --- /dev/null +++ b/data/OLD/4kheader.php @@ -0,0 +1,7 @@ + + + + + +
    LASUCA CONTROLS     Crop Day CONTROLS OVERVIEW
    + diff --git a/data/OLD/4kmillsfull.php b/data/OLD/4kmillsfull.php new file mode 100644 index 0000000..3c89d37 --- /dev/null +++ b/data/OLD/4kmillsfull.php @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    E Mill 1E Mill 2E Mill 3E Mill 4E Mill 5E Mill 6W Mill 1W Mill 2W Mill 3W Mill 4W Mill 5
    RPMRPM
    SPSP
    Lvl%%%%%%Lvl%%%%%
    + + + + + + \ No newline at end of file diff --git a/data/OLD/4knewgeneral.php b/data/OLD/4knewgeneral.php new file mode 100644 index 0000000..7640707 --- /dev/null +++ b/data/OLD/4knewgeneral.php @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Today's Tons In:TonsTotal Tons Ground:TonsRun Hours:Hours
    Tons Ground:TonsPrev Tons Ground:TonsPrev Run Hours:Hours
    Average Tons/Day:TonsTotal Tons/Hr:Today's Loss Time:Hours
    + + + + + diff --git a/data/OLD/4knewgeneraltest.php b/data/OLD/4knewgeneraltest.php new file mode 100644 index 0000000..a8f5479 --- /dev/null +++ b/data/OLD/4knewgeneraltest.php @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Today's Tons In:TonsTotal Tons Ground:TonsRun Hours:Hours
    Tons Ground:TonsPrev Tons Ground:TonsPrev Run Hours:Hours
    Average Tons/Day:TonsToday's Loss Time:Hours
    + + + + + diff --git a/data/OLD/4knewmills.php b/data/OLD/4knewmills.php new file mode 100644 index 0000000..7b845a4 --- /dev/null +++ b/data/OLD/4knewmills.php @@ -0,0 +1,338 @@ + + + + + + + + + + + +
    + + + + +
    EAST MILL TANDEM
    + + + + + + + + + A"; + if ($f78 == 1) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A"; + if ($f80 == 0) + echo ""; + ?> + $f10 "; + if ($f11 == 0) + echo ""; + ?> + Tons/Hr"; + if ($f11 == 0) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LevelSPRPMMill 1 OutputM%
    1MCC FPMFPM
    2MCC Output%
    3MCC TonsTons
    4Mill 1 SPM $f7 %
    5Grinding RateTons/Hr
    6Average RateTons/15Min
    Imibition 6 Flow:GPMImibition 6 SP:GPM
    Imibition 5 Flow:GPMImibition 5 SP:GPM
    +
    + + + + +
    GENERAL INFO
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Total Tons Ground:Tons
    Today's Tons In:Tons
    Tons Ground:Tons
    Average Tons/Day:Tons
    Prev Tons Ground:Tons
    Run Hours:Hours
    Prev Run Hours:Hours
    Today's Loss Time:Hours
    Total Tons/Hr:
    +
    + + + + +
    WEST MILL TANDEM
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    LevelSPRPM
    1MCC FPMFPM
    2MCC Output%
    3MCC TonsTons
    4Mill 1 SP%
    5Grinding RateTons/Hr
    Average RateTons/15Min
    Imibition Flow:GPMImibition 5 SP:GPM
    +
    + diff --git a/data/OLD/4ktanklevelsbar.php b/data/OLD/4ktanklevelsbar.php new file mode 100644 index 0000000..f15bc02 --- /dev/null +++ b/data/OLD/4ktanklevelsbar.php @@ -0,0 +1,72 @@ + + + + + + + + + +
    TANK LEVELS
    + + + One Juice Tank"; + if ($f66 == 1) + echo ""; + ?> + + + + + + + + + + + + + + + + + + +
    Two Juice TanksSyrup RCVRSyrup OverflowTotal SyrupA RCVRA OverflowB RCVRB Overflow
    + + + \ No newline at end of file diff --git a/data/OLD/bartest.php b/data/OLD/bartest.php new file mode 100644 index 0000000..742ecea --- /dev/null +++ b/data/OLD/bartest.php @@ -0,0 +1,105 @@ + + + + + + + + + + + +
    EAST MILL TANDEMWEST MILL TANDEM
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Mill 1 LVL%RPM
    Mill 2 LVL%RPM
    Mill 3 LVL%RPM
    Mill 4 LVL%RPM
    Mill 5 LVL%RPM
    Mill 6 LVL%RPM
    + + + \ No newline at end of file diff --git a/data/OLD/boiler7and8.php b/data/OLD/boiler7and8.php new file mode 100644 index 0000000..95bb9fa --- /dev/null +++ b/data/OLD/boiler7and8.php @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = 0) && ($f111 <= 290)) + $color = "#FF0000"; + else if (($f111 >= 290) && ($f111 <= 300)) + $color = "#FFFF00"; + else if ($f111 >= 300) + $color = "#00d145"; + + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + +
    BOILER 7BOILER 8
    Drum LVL A%Drum LVL A%
    Drum LVL B%Drum LVL B%
    Drum LVL C%Drum LVL C%
    Drum LVL Avg%Drum LVL Avg%
    Drum PressurePsigDrum PressurePsig
    Live Steam PressurepsiLive Steam Pressurepsi
    Feed Water Pressure $f111 PsigFeed Water PressurePsig
    Feed Water FlowkpphFeed Water Flowkpph
    Steam FlowkpphSteam Flowkpph
    + + + + diff --git a/data/OLD/boiler7and8small.php b/data/OLD/boiler7and8small.php new file mode 100644 index 0000000..f49a430 --- /dev/null +++ b/data/OLD/boiler7and8small.php @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BOILER 7BOILER 8
    Drum LVL A%Drum LVL A%
    Drum LVL B%Drum LVL B%
    Drum LVL C%Drum LVL C%
    Drum LVL Avg%Drum LVL Avg%
    Drum PressurePsigDrum PressurePsig
    Live Steam PressurepsiLive Steam Pressurepsi
    Feed Water FlowkpphFeed Water Flowkpph
    Steam FlowkpphSteam Flowkpph
    + + + + \ No newline at end of file diff --git a/data/OLD/boilersfulltest.php b/data/OLD/boilersfulltest.php new file mode 100644 index 0000000..6a9a35b --- /dev/null +++ b/data/OLD/boilersfulltest.php @@ -0,0 +1,325 @@ + + + + + + + + + + + + + + + + + + + += 0) && ($f52 <= 155)) + $color = "#FF0000"; + else if (($f52 >= 156) && ($f52 <= 165)) + $color = "#FFFF00"; + else if ($f52 >= 165) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + + + A"; + if ($f97 == 1) + echo ""; + ?> + = 0) && ($f58 <= 5)) + $color = "#FF0000"; + else if (($f58 >= 6) && ($f58 <= 13)) + $color = "#FFFF00"; + else if ($f58 >= 14) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + + + + +
    Total Steam Flow:KpphVapor Header Pressure:PSILive Steam Pressure: $f52 PSI
    Exhaust Pressure:M $f58 PSI
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 1Boiler 2Boiler 3Boiler 4
    Steam FlowkpphSteam FlowkpphSteam FlowkpphSteam Flowkpph
    Drum Level%Drum Level%Drum Level%Drum Level%
    Feed WaterkpphFeed WaterkpphFeed WaterkpphFeed Waterkpph
    Drum PressurepsiDrum PressurepsiDrum PressurepsiDrum Pressurepsi
    ID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan Speedrpm
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 5Boiler 6Boiler 7Boiler 8
    Steam FlowkpphSteam FlowkpphSteam FlowkpphSteam Flowkpph
    Drum Level%Drum Level%Drum Level%Drum Level%
    Feed WaterkpphFeed WaterkpphFeed WaterkpphFeed Waterkpph
    Drum PressurepsiDrum PressurepsiDrum PressurepsiDrum Pressurepsi
    ID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan Speedrpm
    + + + + \ No newline at end of file diff --git a/data/OLD/general.php b/data/OLD/general.php new file mode 100644 index 0000000..6c97689 --- /dev/null +++ b/data/OLD/general.php @@ -0,0 +1,299 @@ + + + + + + + + + + +A"; + if ($row['MILL1AUTOMAN1'] == 0) + echo ""; + ?> +". $row['WEIGHTWSP']." "; + if ($row['LEVELSWITCH'] == 0) + echo ""; + ?> +Tons/Hr"; + if ($row['LEVELSWITCH'] == 0) + echo ""; + ?> + + += 0) && ($row['TONSHR'] <= 299)) + $color = "#FF0000"; +else if (($row['TONSHR'] >= 200) && ($row['TONSHR'] <= 399)) + $color = "#FFFF00"; +else if ($row['TONSHR'] >= 400) + $color = "#00FF00"; + +echo ""; +?> + + + + + + + + + + + + + +A"; + if ($row['MILL1AUTOMAN'] == 1) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2"; + if ($row['B1PIDSWITCH'] == 0) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + One Juice Tank"; + if ($row['JUICETANKBIT'] == 1) + echo ""; + ?> + + + + + + + + + + + + + + +
    Mill 1 Set Point:M ".$row['MILL1WSP']." %Grinding Rate:". $row['TONSHR']." Tons/HrTotal Tons Ground:Tons
    Mill 1 Turbine Output:M%15 Min Average:Tons/HrPrev Tons Ground:Tons
    MCC FPM:FPMTons Ground:TonsRun Hours:Hours
    MCC Output:1%Average Tons/Day:TonsPrev Run Hours:Hours
    MCC Tons:TonsImibition Flow:GPMToday's Tons In:Tons
    Two Juice Tanks%Imibition SP:GPMToday's Loss Time:Hours
    + + + + + \ No newline at end of file diff --git a/data/OLD/generalboilers.php b/data/OLD/generalboilers.php new file mode 100644 index 0000000..af245e5 --- /dev/null +++ b/data/OLD/generalboilers.php @@ -0,0 +1,174 @@ + + + + + + + + +A"; + if ($value['MILL1AUTOMAN1'] == 0) + echo ""; + ?> + ".$value['WEIGHTWSP']." "; + if ($value['LEVELSWITCH'] == 0) + echo ""; + ?> +Tons/Hr"; + if ($value['LEVELSWITCH'] == 0) + echo ""; + ?> + + += 0) && ($value['TONSHR'] <= 299)) + $color = "#FF0000"; +else if (($value['TONSHR'] >= 200) && ($value['TONSHR'] <= 399)) + $color = "#FFFF00"; +else if ($value['TONSHR'] >= 400) + $color = "#00FF00"; + +echo ""; +?> + + + + + + + + + + + + + +A"; + if ($value['MILL1AUTOMAN'] == 1) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2"; + if ($value['B1PIDSWITCH'] == 0) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + One Juice Tank"; + if ($value['JUICETANKBIT'] == 1) + echo ""; + ?> + + = 0) && ($value['JUICELVL'] <= 90)) + $color = "#00ff00"; + else if ($value['JUICELVL'] >= 90) + $color = "#e60000"; + + echo ""; + ?> + + + + + + + + + + + + + + +
    Mill 1 Set Point:M ".$value['MILL1WSP']." %Grinding Rate:". $value['TONSHR']." Tons/HrTotal Tons Ground:Tons
    Mill 1 Turbine Output:M%15 Min Average:Tons/HrPrev Tons Ground:Tons
    MCC FPM:FPMTons Ground:TonsRun Hours:Hours
    MCC Output:1%Average Tons/Day:TonsPrev Run Hours:Hours
    MCC Tons:TonsImibition Flow:GPMToday's Tons In:Tons
    Two Juice Tanks". $value['JUICELVL']." %Imibition SP:GPMToday's Loss Time:Hours
    + + + + diff --git a/data/OLD/maintest.php b/data/OLD/maintest.php new file mode 100644 index 0000000..a510c9f --- /dev/null +++ b/data/OLD/maintest.php @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/data/OLD/mills.php b/data/OLD/mills.php new file mode 100644 index 0000000..70d15ae --- /dev/null +++ b/data/OLD/mills.php @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Mill 1Mill 2Mill 3Mill 4Mill 5Mill 6
    RPMRPMRPMRPMRPMRPM
    SPSPSPSPSPSP
    Level%Level%Level%Level%Level%Level%
    + + + + + + + \ No newline at end of file diff --git a/data/OLD/millsfull.php b/data/OLD/millsfull.php new file mode 100644 index 0000000..3c89d37 --- /dev/null +++ b/data/OLD/millsfull.php @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    E Mill 1E Mill 2E Mill 3E Mill 4E Mill 5E Mill 6W Mill 1W Mill 2W Mill 3W Mill 4W Mill 5
    RPMRPM
    SPSP
    Lvl%%%%%%Lvl%%%%%
    + + + + + + \ No newline at end of file diff --git a/data/OLD/newboilersandlevels.php b/data/OLD/newboilersandlevels.php new file mode 100644 index 0000000..1cdbce0 --- /dev/null +++ b/data/OLD/newboilersandlevels.php @@ -0,0 +1,173 @@ + + + + + + + + + +
    + + + + +
    BOILERS
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    BOILER 1Steam FlowKPPH
    BOILER 2Steam FlowKPPH
    BOILER 3Steam FlowKPPH
    BOILER 4Steam FlowKPPH
    BOILER 5Steam FlowKPPH
    BOILER 6Steam FlowKPPH
    BOILER 7Steam FlowKPPH
    BOILER 8Steam FlowKPPH
    +
    + + + + +
    TANK LEVELS
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    SYRUP RCVR LVL
    SYRUP OVERFLOW LVL
    TOTAL SYRUP LVL
    A MOLASSES RCVR LVL
    A MOLASSES OVERFLOW LVL
    B MOLASSES RCVR LVL
    B MOLASSES OVERFLOW LVL
    +
    + \ No newline at end of file diff --git a/data/OLD/newmillsouterlabel.php b/data/OLD/newmillsouterlabel.php new file mode 100644 index 0000000..3038814 --- /dev/null +++ b/data/OLD/newmillsouterlabel.php @@ -0,0 +1,258 @@ + + + + + + + + + +
    + + + + +
    EAST MILL TANDEM
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A"; + if ($f80 == 0) + echo ""; + ?> + $f10 "; + if ($f11 == 0) + echo ""; + ?> + Tons/Hr"; + if ($f11 == 0) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    1Level%RPMMCC FPMFPM
    2Level%RPMMCC Output%
    3Level%RPMMCC TonsTons
    4Level%RPMMill 1 SPM $f7 %
    5Level%RPMTons Per HourTPH
    6Level%RPMAvg Tons Per HourTPH
    East Imibition 6 Flow:GPMEast Imibition 6 SP:GPM
    East Imibition 5 Flow:GPMEast Imibition 5 SP:GPM
    +
    + + + + +
    WEST MILL TANDEM
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    1LevelRPMMCC FPMFPM
    2LevelRPMMCC Output%
    3LevelRPMMCC TonsTons
    4LevelRPMMill 1 SP%
    5LevelRPMTons Per HourTPH
    Avg Tons Per HourTPH
    West Imibition 5 Flow:GPMWest Imibition 5 SP:GPM
    +
    + \ No newline at end of file diff --git a/data/OLD/newoverview.php b/data/OLD/newoverview.php new file mode 100644 index 0000000..f5b0698 --- /dev/null +++ b/data/OLD/newoverview.php @@ -0,0 +1,180 @@ + + + + + + + + + + +
    + + + + +
    EAST MILL TANDEM
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Mill 1 LVL%RPMMCC FPMFPM
    Mill 2 LVL%RPMMCC Output%
    Mill 3 LVL%RPMMCC TonsTons
    Mill 4 LVL%RPM
    Mill 5 LVL%RPM
    Mill 6 LVL%RPM
    +
    + + + + +
    WEST MILL TANDEM
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Mill 1 LVLRPMMCC FPMFPM
    Mill 2 LVLRPMMCC Output%
    Mill 3 LVLRPMMCC TonsTons
    Mill 4 LVLRPM
    Mill 5 LVLRPM
    +
    + \ No newline at end of file diff --git a/data/OLD/record.php b/data/OLD/record.php new file mode 100644 index 0000000..09cd055 --- /dev/null +++ b/data/OLD/record.php @@ -0,0 +1,14 @@ + + + + diff --git a/data/OLD/recorddate.php b/data/OLD/recorddate.php new file mode 100644 index 0000000..149e05f --- /dev/null +++ b/data/OLD/recorddate.php @@ -0,0 +1,14 @@ + + + + diff --git a/data/OLD/tanklevels.php b/data/OLD/tanklevels.php new file mode 100644 index 0000000..ee19f53 --- /dev/null +++ b/data/OLD/tanklevels.php @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + +
    Syrup RCVR%Syrup Overflow%Total Syrup%A RCVR%A Overflow%B RCVR%B Overflow%
    + + + \ No newline at end of file diff --git a/data/OLD/tanklevelsbarouterlabel.php b/data/OLD/tanklevelsbarouterlabel.php new file mode 100644 index 0000000..9747fd5 --- /dev/null +++ b/data/OLD/tanklevelsbarouterlabel.php @@ -0,0 +1,80 @@ + + + + + + + + + +
    TANK LEVELS
    + + + One Juice Tank"; + if ($f66 == 1) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Two Juice TanksSyrup RCVRSyrup OverflowTotal SyrupA RCVRA OverflowB RCVRB Overflow
    %%%%%%%%
    + + + \ No newline at end of file diff --git a/data/boilers.php b/data/boilers.php new file mode 100644 index 0000000..20e61fd --- /dev/null +++ b/data/boilers.php @@ -0,0 +1,96 @@ + + + + + + + +
    BOILERS
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 1Boiler 2Boiler 3Boiler 4Boiler 5Boiler 6Boiler 7Boiler 8
    Steam FlowSteam FlowSteam FlowSteam FlowSteam FlowSteam FlowSteam FlowSteam Flow
    + + + + + + + + += 0) && ($value['PT_001'] <= 155)) + $color = "#FF0000"; + else if (($value['PT_001'] >= 156) && ($value['PT_001'] <= 165)) + $color = "#FFFF00"; + else if ($value['PT_001'] >= 165) + $color = "#00FF00"; + + echo ""; + ?> + + + + A"; + if ($value['ExhaustAM'] == 1) + echo ""; + ?> + = 0) && ($ID['00302'] <= 9)) + $color = "#FF0000"; + else if (($ID['00192'] >= 6) && ($ID['00302'] <= 13)) + $color = "#FFFF00"; + else if ($ID['00192'] >= 14) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + + + + + diff --git a/data/boilersfull.php b/data/boilersfull.php new file mode 100644 index 0000000..b0e45fe --- /dev/null +++ b/data/boilersfull.php @@ -0,0 +1,245 @@ + + + +
    Total Steam Flow:KpphLive Steam Pressure:". $value['PT_001'] ."PSIExhaust Pressure:M". $ID['V'] ."PSIVapor Header Pressure:PSI
    + + + +
    BOILERS
    + + + + + + + + + + + + + += 0) && ($value['PT_001'] <= 155)) + $color = "#FF0000"; + else if (($value['PT_001'] >= 156) && ($value['PT_001'] <= 165)) + $color = "#FFFF00"; + else if ($value['PT_001'] >= 165) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + + + A"; + if ($ID['00302'] == 1) + echo ""; + ?> + = 0) && ($ID['00302'] <= 5)) + $color = "#FF0000"; + else if (($ID['00302'] >= 6) && ($ID['00302'] <= 13)) + $color = "#FFFF00"; + else if ($ID['00302'] >= 14) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + + + + +
    Total Steam Flow:KpphVapor Header Pressure:PSILive Steam Pressure: ".$value['PT_001']." PSI
    Exhaust Pressure:M ".$ID['00302']." PSI
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 1Boiler 2Boiler 3Boiler 4
    Steam FlowkpphSteam FlowkpphSteam FlowkpphSteam Flowkpph
    Drum Level%Drum Level%Drum Level%Drum Level%
    Feed WaterkpphFeed WaterkpphFeed WaterkpphFeed Waterkpph
    Drum PressurepsiDrum PressurepsiDrum PressurepsiDrum Pressurepsi
    ID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan Speedrpm
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 5Boiler 6Boiler 7Boiler 8
    Steam FlowkpphSteam FlowkpphSteam FlowkpphSteam Flowkpph
    Drum Level%Drum Level%Drum Level%Drum Level%
    Feed WaterkpphFeed WaterkpphFeed WaterkpphFeed Waterkpph
    Drum PressurepsiDrum PressurepsiDrum PressurepsiDrum Pressurepsi
    ID Fan SpeedrpmID Fan SpeedrpmID Fan SpeedrpmID Fan Speedrpm
    + + + diff --git a/data/boilersslim.php b/data/boilersslim.php new file mode 100644 index 0000000..4640cf1 --- /dev/null +++ b/data/boilersslim.php @@ -0,0 +1,98 @@ + + + + + + + +
    BOILERS
    + + + + + + + + += 0) && ($value['PT_001'] <= 155)) + $color = "#c46666ff"; + else if (($value['PT_001'] >= 156) && ($value['PT_001'] <= 165)) + $color = "#FFFF00"; + else if ($value['PT_001'] >= 165) + $color = "#00FF00"; + + echo ""; + ?> + + + + A"; + if ($value['ExhaustAM'] == 1) + echo ""; + ?> + = 0) && ($ID['00302'] <= 9)) + $color = "#FF0000"; + else if (($ID['00302'] >= 6) && ($ID['00302'] <= 13)) + $color = "#FFFF00"; + else if ($ID['00302'] >= 14) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + +
    Total Steam Flow:KpphLive Steam Pressure:". $value['PT_001'] ."PSIExhaust Pressure:M". $ID['00302'] ."PSIVapor Header Pressure:PSI
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Boiler 1Boiler 2Boiler 3Boiler 4Boiler 5Boiler 6Boiler 7Boiler 8
    Steam FlowSteam FlowSteam FlowSteam FlowSteam FlowSteam FlowSteam FlowSteam Flow
    + + + + + diff --git a/data/dryers.php b/data/dryers.php new file mode 100644 index 0000000..ec5e259 --- /dev/null +++ b/data/dryers.php @@ -0,0 +1,171 @@ + + + + + + + + + + + +
    +
    DRYERS RUN/STOP
    Broadbent Tank :A CVP Massecuite Tank :
    + + +A1"; + } + else if ($value['A1Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A2 + if ($value['A2Running'] == 1) { + echo ""; + } + else if ($value['A2Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A3 + if ($value['A3Running'] == 1) { + echo ""; + } + else if ($value['A3Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A4 + if ($value['A4Running'] == 1) { + echo ""; + } + else if ($value['A4Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A5 + if ($value['A5Running'] == 1) { + echo ""; + } + else if ($value['A5Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A6 + if ($value['A6Running'] == 1) { + echo ""; + } + else if ($value['A6Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A7 + if ($value['A7Running'] == 1) { + echo ""; + } + else if ($value['A7Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A8 + if ($value['OnOff'] == 1) { + echo ""; + } + else if ($value['OnOff'] == 0) { + echo ""; + } + else { + echo ""; + } + //A9 + if ($value['A9Running'] == 1) { + echo ""; + } + else if ($value['A9Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A10 + if ($value['A10Running'] == 1) { + echo ""; + } + else if ($value['A10Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A11 + if ($value['A11Running'] == 1) { + echo ""; + } + else if ($value['A11Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A12 + if ($value['A12Running'] == 1) { + echo ""; + } + else if ($value['A12Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A13 + if ($value['A13Running'] == 1) { + echo ""; + } + else if ($value['A13Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A14 + if ($value['A14Running'] == 1) { + echo ""; + } + else if ($value['A14Running'] == 0) { + echo ""; + } + else { + echo ""; + } + //A15 + if ($value['A15Running'] == 1) { + echo ""; + } + else if ($value['A15Running'] == 0) { + echo ""; + } + else { + echo ""; + } +?> + +
    A1ERRORA2A2ERRORA3A3ERRORA4A4ERRORA5A5ERRORA6A6ERRORA7A7ERRORBBBBERRORA9A9ERRORA10A10ERRORA11A11ERRORA12A12ERRORA13A13ERRORA14A14ERRORA15A15ERROR
    \ No newline at end of file diff --git a/data/evaporators.php b/data/evaporators.php new file mode 100644 index 0000000..615233c --- /dev/null +++ b/data/evaporators.php @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    EVAPORATORS/HEATERS
    Pre 1 SouthPre 2 NorthPre 3 35KPre 4 45K
    Level
    Level SP%%%%
    Evaporators Set AEvaporators Set BEvaporators Set C
    123123123
    Level
    Level SP%%%%%%%%%
    Feed Valve%%%%%%%%%
    Vacuum SP SP SP
    Brix SP SP SP
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Heater 1Heater 2Heater 3Heater 4Heater 5Heater 6Heater 7Heater 8
    Temp°°°°°°°°
    Setpoint°°°°°°°°
    \ No newline at end of file diff --git a/data/header.php b/data/header.php new file mode 100644 index 0000000..a7f1e30 --- /dev/null +++ b/data/header.php @@ -0,0 +1,9 @@ + + + + + + + + +
    LASUCA CONTROLS     Crop Day CONTROLS OVERVIEW
    diff --git a/data/heaters.php b/data/heaters.php new file mode 100644 index 0000000..28c02de --- /dev/null +++ b/data/heaters.php @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Heater 1Heater 2Heater 3Heater 4Heater 5Heater 6Heater 7Heater 8
    Temp°°°°°°°°
    Setpoint°°°°°°°°
    + + diff --git a/data/main.php b/data/main.php new file mode 100644 index 0000000..654b9d1 --- /dev/null +++ b/data/main.php @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/data/maintenence.php b/data/maintenence.php new file mode 100644 index 0000000..82fda09 --- /dev/null +++ b/data/maintenence.php @@ -0,0 +1,8 @@ + + + + + + + +
    UNDER MAINTENENACE
    diff --git a/data/newgeneral.php b/data/newgeneral.php new file mode 100644 index 0000000..995da66 --- /dev/null +++ b/data/newgeneral.php @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Cane In Today:TonsRecord On:TonsRun Hours:Hours
    Ground Today:TonsTotal Ground Yesterday:TonsPrev Run Hours:Hours
    E 15 Min Avg:TonsTotal Tons/Hr:Today's Loss Time:Hours
    W 15 Min Avg:Tons
    + + + diff --git a/data/newgeneralwithsteam.php b/data/newgeneralwithsteam.php new file mode 100644 index 0000000..9b4f9ac --- /dev/null +++ b/data/newgeneralwithsteam.php @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Cane In Today:TonsRecord On:TonsRun Hours:Hours
    Ground Today:TonsTotal Ground Yesterday:TonsPrev Run Hours:Hours
    E 15 Min Avg:TonsTotal Tons/Hr:Today's Loss Time:Hours
    W 15 Min Avg:Tons
    + + + + + + + + += 0) && ($value['PT_001'] <= 155)) + $color = "#FF0000"; + else if (($value['PT_001'] >= 156) && ($value['PT_001'] <= 165)) + $color = "#FFFF00"; + else if ($value['PT_001'] >= 165) + $color = "#00FF00"; + + echo ""; + ?> + + + + A"; + if ($value['ExhaustAM'] == 1) + echo ""; + ?> + = 0) && ($ID['00302'] <= 9)) + $color = "#FF0000"; + else if (($ID['00302'] >= 6) && ($ID['00302'] <= 13)) + $color = "#FFFF00"; + else if ($ID['00302'] >= 14) + $color = "#00FF00"; + + echo ""; + ?> + + + + + + + + +
    Total Steam Flow:KpphLive Steam Pressure:". $value['PT_001'] ."PSIExhaust Pressure:M". $ID['00302'] ."PSIVapor Header Pressure:PSI
    + diff --git a/data/newmills.php b/data/newmills.php new file mode 100644 index 0000000..c8edfaa --- /dev/null +++ b/data/newmills.php @@ -0,0 +1,521 @@ + [ + 'verify_peer' => false, + 'verify_peer_name' => false, + ], + ]); + } + } + + $response = @file_get_contents($endpointUrl, false, $context ?: null); + + if ($response === false && strcasecmp($scheme, 'https') === 0) { + $fallbackUrl = preg_replace('#^https#i', 'http', $endpointUrl); + $response = @file_get_contents($fallbackUrl); + if ($response !== false) { + $endpointUrl = $fallbackUrl; + } + } + + if ($response === false) { + throw new RuntimeException('Unable to reach shared endpoint: ' . $endpointUrl); + } + + try { + $payload = json_decode($response, true, flags: JSON_THROW_ON_ERROR); + } catch (JsonException $exception) { + throw new RuntimeException('Malformed JSON from shared endpoint', 0, $exception); + } + + if (($payload['status'] ?? null) !== 'ok') { + $message = $payload['message'] ?? 'unknown error'; + throw new RuntimeException('Shared endpoint returned an error: ' . $message); + } + + if (!isset($payload['items']) || !is_array($payload['items'])) { + $snippet = substr(strip_tags($response), 0, 200); + throw new RuntimeException('Shared endpoint response missing items. Snippet: ' . $snippet); + } + + foreach ($payload['items'] as $item) { + $tagKey = str_pad((string) $item['tagId'], 5, '0', STR_PAD_LEFT); + $value[$item['name']] = $item['value']; + $rounded[$item['name']] = $item['rounded1']; + $rounded1[$item['name']] = $item['rounded2']; + $roundedid[$tagKey] = $item['rounded2']; + $ID[$tagKey] = $item['value']; + } + + $endpointDataLoaded = true; +} catch (Throwable $exception) { + $endpointErrorMessage = $exception->getMessage(); + error_log('Milling shared endpoint failed: ' . $endpointErrorMessage); +} + +$dataSourceLabel = 'Shared endpoint'; + +if (!$endpointDataLoaded) { + require __DIR__ . '/../items.php'; + require __DIR__ . '/../items2dec.php'; + $dataSourceLabel = 'Legacy items.php data'; +} +// Helper function for rendering data rows +function renderDataRow($label, $value, $unit = "") { + $safeValue = htmlspecialchars($value); + return " + $label + $safeValue + $unit + "; +} +?> + + + + + + + +
    + + + + +
    + EAST MILL TANDEM +
    + + + + + + + + + + + A"; + } + if ($value['MILL1AUTOMAN'] == 1) { + echo ""; + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " . $value['WEIGHT_WSP'] . " "; + } + if ($value['LEVEL_THROUGHPUT_SWITCH'] == 0) { + echo ""; + } + ?> + Tons/Hr"; + } + if ($value['LEVEL_THROUGHPUT_SWITCH'] == 0) { + echo ""; + } + ?> + A"; + } + if ($value['MILL1AUTOMAN1'] == 0) { + echo ""; + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + Level + + SP + + RPM + + Mill 1 OP + + + + % + M
    + 1 + + + + + + MCC FPM + + + + FPM +
    + 2 + + + + + + MCC Output + + + + % +
    + 3 + + + + + + MCC Tons + + + + Tons +
    + 4 + + + + + + Mill 1 SP + " . $value['WEIGHT_WSP'] . " %M
    + 5 + + + + + + Grinding Rate + + + + Tons/Hr +
    + 6 + + + + + + Average Rate + + + + Tons/15/Min +
    + Imibition 6: + + + + GPM + + Imibition 6 SP: + + + + GPM +
    + Imibition 5: + + + + GPM + + Imibition 5 SP: + + + + GPM +
    +
    + + + + +
    + WEST MILL TANDEM +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + Level + + SP + + RPM + + +
    + 1 + + + + + + BC-09 FPM + + + + FPM +
    + 2 + + + + + + BC-09 Output + + + + +
    + 3 + + + + + + BC-09 Tons + + + + Tons +
    + 4 + + + + + + Mill 1 SP + + + + % +
    + 5 + + + + + + Grinding Rate + + + + + Tons/Hr +
    + + + Average Rate + + + + Tons/15Min +
    + Imibition: + + + + GPM + + Imibition SP: + + + + GPM +
    +   +
    +
    + \ No newline at end of file diff --git a/data/tablesandtd.php b/data/tablesandtd.php new file mode 100644 index 0000000..0f436c1 --- /dev/null +++ b/data/tablesandtd.php @@ -0,0 +1,232 @@ + + + + + + + +
    TRUCK DUMP / TABLES / KNIVES
    + + + + + + + + Truck Dump"; + if ($value['LATCHON'] == 1) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SP3"; + if ($value['TD SP3 ON/OFF'] ==0) + echo ""; + ?> + ". $value['TD SP3']." "; + if ($value['TD SP3 ON/OFF'] == 0) + echo ""; + ?> + + + + + + + + + SP3"; + if ($value['STABLE SP3 ON/OFF'] ==0) + echo ""; + ?> + ". $value['STABLE SP1']." "; + if ($value['STABLE SP3 ON/OFF'] == 0) + echo ""; + ?> + SP3"; + if ($value['NE SP SWITCH'] ==0) + echo ""; + ?> + ". $value['NE SETPOINT2']." "; + if ($value['NE SP SWITCH'] == 0) + echo ""; + ?> + SP3"; + if ($value['W SP SWITCH'] == 0) + echo ""; + ?> + ". $value['W SETPOINT2']." "; + if ($value['W SP SWITCH'] == 0) + echo ""; + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ON"; + if ($value['TDBELTSCALEONOFF'] == 1) + echo ""; + ?> + + + + +
    Truck DumpKnife 1Knife 2Knife 3ShredderS TableNE TableW TableW Belt
    PVPSIPSIPSIPSIPVPVPVPV
    SP". $value['TD SP1'] ."RPMRPMRPMRPMSP". $value['SE SETPOINT'] ."SP". $value['NE SETPOINT'] ."SP". $value['W SETPOINT'] ."RPM
    OutputOutputOutputOutputOutputOutputOutputOutputOutput
    RatioN + Control"; + if ($value['KC1'] == 0) + echo "Knife"; + ?> + + Control"; + if ($value['KC2'] == 0) + echo "Knife"; + ?> + + Control"; + if ($value['KC3'] == 0) + echo "Knife"; + ?> + + Control"; + if ($value['KC3'] == 0) + echo "Knife"; + ?> + + Auto"; + if ($value['SAM'] == 1) + echo "Manual"; + ?> + + Auto"; + if ($value['NAM'] == 1) + echo "Manual"; + ?> + + Auto"; + if ($value['WAM'] == 1) + echo "Manual"; + ?> + + Auto"; + if ($value['WAM'] == 1) + echo "Manual"; + ?> +
    RatioS + Dump Mill"; + if ($value['TD MILLGROUND'] == 1) + echo "Dump Ground"; + ?> + Truck Dump Scale:OFFLBS
    + + + + + diff --git a/data/tanklevelsbar.php b/data/tanklevelsbar.php new file mode 100644 index 0000000..9ace74f --- /dev/null +++ b/data/tanklevelsbar.php @@ -0,0 +1,44 @@ + + + + + + + + +
    TANK LEVELS
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Juice Tank1Juice Tank2Syrup RcvrSyrup OverTotal SyrupA1 RcvrA1 OverA2 RcvrA2 OverB RcvrB Over
    + + + diff --git a/data/tanklevelswrap.php b/data/tanklevelswrap.php new file mode 100644 index 0000000..005309d --- /dev/null +++ b/data/tanklevelswrap.php @@ -0,0 +1,59 @@ + + + + + + + +
    TANK LEVELS
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Juice Tank1Juice Tank2Syrup RcvrSyrup OverflowTotal SyrupCondensate WaterSweet WaterCold Water INJ
    A1 RcvrA1 OverflowA2 RcvrA2 OverflowB RcvrB OverflowFlash Tank
    + + + diff --git a/data/tanklvlsvert.php b/data/tanklvlsvert.php new file mode 100644 index 0000000..ccc67da --- /dev/null +++ b/data/tanklvlsvert.php @@ -0,0 +1,142 @@ + + + + + + +
    TANK LEVELS
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Juice Tank1Juice Tank2Syrup RcvrSyrup OverflowTotal SyrupA1 RcvrA1 OverA2 RcvrA2 OverB RcvrB OverFlash TankCondens. WaterSweet WaterCold Water INJ
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    +
    +
    +
    %
    +
    +
    +
    + + + diff --git a/dbinfo3.php b/dbinfo3.php new file mode 100644 index 0000000..f323b3c --- /dev/null +++ b/dbinfo3.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/evaporators/evaporators.php b/evaporators/evaporators.php new file mode 100644 index 0000000..2966790 --- /dev/null +++ b/evaporators/evaporators.php @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/evaporators/index.php b/evaporators/index.php new file mode 100644 index 0000000..47e3f4a --- /dev/null +++ b/evaporators/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/fikadu/index.php b/fikadu/index.php new file mode 100644 index 0000000..59323b5 --- /dev/null +++ b/fikadu/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/fikadu/main.php b/fikadu/main.php new file mode 100644 index 0000000..d841147 --- /dev/null +++ b/fikadu/main.php @@ -0,0 +1,6 @@ + + + + + + diff --git a/includes/cropday.php b/includes/cropday.php new file mode 100644 index 0000000..54fe8af --- /dev/null +++ b/includes/cropday.php @@ -0,0 +1,29 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT CropDay FROM Parameters"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} + +while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) { + echo $row['CropDay']; +} + +sqlsrv_free_stmt( $stmt); +sqlsrv_close( $conn); +?> diff --git a/includes/dbconnect.php b/includes/dbconnect.php new file mode 100644 index 0000000..7e20c5a --- /dev/null +++ b/includes/dbconnect.php @@ -0,0 +1,9 @@ + diff --git a/includes/dbinfo.php b/includes/dbinfo.php new file mode 100644 index 0000000..0b81f18 --- /dev/null +++ b/includes/dbinfo.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/includes/dbinfo3.php b/includes/dbinfo3.php new file mode 100644 index 0000000..f323b3c --- /dev/null +++ b/includes/dbinfo3.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/includes/items.php b/includes/items.php new file mode 100644 index 0000000..ea269ce --- /dev/null +++ b/includes/items.php @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/includes/items2dec.php b/includes/items2dec.php new file mode 100644 index 0000000..69516e3 --- /dev/null +++ b/includes/items2dec.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/includes/itemsAI.php b/includes/itemsAI.php new file mode 100644 index 0000000..610f6f9 --- /dev/null +++ b/includes/itemsAI.php @@ -0,0 +1,17 @@ + \ No newline at end of file diff --git a/includes/record.php b/includes/record.php new file mode 100644 index 0000000..edbb7c5 --- /dev/null +++ b/includes/record.php @@ -0,0 +1,14 @@ + + + + diff --git a/includes/recorddate.php b/includes/recorddate.php new file mode 100644 index 0000000..3d554c8 --- /dev/null +++ b/includes/recorddate.php @@ -0,0 +1,14 @@ + + + + diff --git a/includes/tonsin.php b/includes/tonsin.php new file mode 100644 index 0000000..c54b521 --- /dev/null +++ b/includes/tonsin.php @@ -0,0 +1,35 @@ +$uid, "PWD"=>$pwd,'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8', "Database"=>"SugarCaneScale" ); + +/* Connect using SQL Server Authentication. */ +$conn = sqlsrv_connect( $serverName, $connectionInfo); +if( $conn === false ) +{ + echo "Unable to connect.
    "; + die( print_r( sqlsrv_errors(), true)); +} + +$sql = "SELECT ROUND (Tons,0) AS Tons FROM LoadData WHERE CropDay = ( SELECT Max(CropDay) FROM LoadData)"; + +$stmt = sqlsrv_query( $conn, $sql ); +if( $stmt === false) { + die( print_r( sqlsrv_errors(), true) ); +} +$tonsin = 0; + while( $rowtonsin = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) + { + $tonsin += $rowtonsin['Tons']; + + } + + //end + +?> + + diff --git a/includes/totground.php b/includes/totground.php new file mode 100644 index 0000000..0fdab52 --- /dev/null +++ b/includes/totground.php @@ -0,0 +1,28 @@ +connect_error) { + die("Connection failed: " . $conn->connect_error); +} + $query = "SELECT DISTINCT PREVTONS FROM totaltons"; + $result=$conn->query($query); + $tonsin = 0; + if ($result->num_rows > 0) { + // output data of each row + while($rowtotground = $result->fetch_assoc()) { + $tonsin += $rowtotground['PREVTONS']; + + } + } else { + echo "0 results"; + } + $conn->close(); + +?> + \ No newline at end of file diff --git a/includes/w15minavg.php b/includes/w15minavg.php new file mode 100644 index 0000000..07de684 --- /dev/null +++ b/includes/w15minavg.php @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/includes/w24hravg.php b/includes/w24hravg.php new file mode 100644 index 0000000..565a278 --- /dev/null +++ b/includes/w24hravg.php @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/includes/w24hravgtotal.php b/includes/w24hravgtotal.php new file mode 100644 index 0000000..1640a06 --- /dev/null +++ b/includes/w24hravgtotal.php @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/includes/west15minavg.php b/includes/west15minavg.php new file mode 100644 index 0000000..bb274cf --- /dev/null +++ b/includes/west15minavg.php @@ -0,0 +1,15 @@ + + + + + diff --git a/includes/wruntime.php b/includes/wruntime.php new file mode 100644 index 0000000..a247ff7 --- /dev/null +++ b/includes/wruntime.php @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..5c83414 --- /dev/null +++ b/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/index2.php b/index2.php new file mode 100644 index 0000000..d1f701d --- /dev/null +++ b/index2.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/main2.php b/main2.php new file mode 100644 index 0000000..b2dc2c3 --- /dev/null +++ b/main2.php @@ -0,0 +1,2 @@ + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..f3fc698 --- /dev/null +++ b/script.js @@ -0,0 +1,352 @@ +/* begin Page */ + +/* Generated with Artisteer version 2.3.0.21098, file checksum is 2970076B. */ + +cssFix = function(){ +var u = navigator.userAgent.toLowerCase(), +addClass = function(el, val){ + if(! el.className) { + el.className = val; + } else { + var newCl = el.className; + newCl+=(' '+val); + el.className = newCl; + } +}, +is = function(t){return (u.indexOf(t)!=-1)}; +addClass(document.getElementsByTagName('html')[0],[ +(!(/opera|webtv/i.test(u))&&/msie (\d)/.test(u))?('ie ie'+RegExp.$1) +: is('firefox/2')?'gecko firefox2' +: is('firefox/3')?'gecko firefox3' +: is('gecko/')?'gecko' +: is('chrome/')?'chrome' +: is('opera/9')?'opera opera9':/opera (\d)/.test(u)?'opera opera'+RegExp.$1 +: is('konqueror')?'konqueror' +: is('applewebkit/')?'webkit safari' +: is('mozilla/')?'gecko':'', +(is('x11')||is('linux'))?' linux' +: is('mac')?' mac' +: is('win')?' win':'' +].join(' ')); +}(); + +var artEventHelper = { + 'bind': function(obj, evt, fn) { + if (obj.addEventListener) + obj.addEventListener(evt, fn, false); + else if (obj.attachEvent) + obj.attachEvent('on' + evt, fn); + else + obj['on' + evt] = fn; + } +}; + +var userAgent = navigator.userAgent.toLowerCase(); +var browser = { + version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], + safari: /webkit/.test(userAgent) && !/chrome/.test(userAgent), + chrome: /chrome/.test(userAgent), + opera: /opera/.test(userAgent), + msie: /msie/.test(userAgent) && !/opera/.test(userAgent), + mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) +}; + +var artLoadEvent = (function() { + + + var list = []; + + var done = false; + var ready = function() { + if (done) return; + done = true; + for (var i = 0; i < list.length; i++) + list[i](); + }; + + if (document.addEventListener && !browser.opera) + document.addEventListener('DOMContentLoaded', ready, false); + + if (browser.msie && window == top) { + (function() { + try { + document.documentElement.doScroll('left'); + } catch (e) { + setTimeout(arguments.callee, 10); + return; + } + ready(); + })(); + } + + if (browser.opera) { + document.addEventListener('DOMContentLoaded', function() { + for (var i = 0; i < document.styleSheets.length; i++) { + if (document.styleSheets[i].disabled) { + setTimeout(arguments.callee, 10); + return; + } + } + ready(); + }, false); + } + + if (browser.safari || browser.chrome) { + var numStyles; + (function() { + if (document.readyState != 'loaded' && document.readyState != 'complete') { + setTimeout(arguments.callee, 10); + return; + } + if ('undefined' == typeof numStyles) { + numStyles = document.getElementsByTagName('style').length; + var links = document.getElementsByTagName('link'); + for (var i = 0; i < links.length; i++) { + numStyles += (links[i].getAttribute('rel') == 'stylesheet') ? 1 : 0; + } + if (document.styleSheets.length != numStyles) { + setTimeout(arguments.callee, 0); + return; + } + } + ready(); + })(); + } + artEventHelper.bind(window, 'load', ready); + return ({ + add: function(f) { + list.push(f); + } + }) +})(); + +(function() { + // fix ie blinking + var m = document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand; + try { if (!!m) { m('BackgroundImageCache', false, true); } } + catch (oh) { }; +})(); + +function xGetElementsByClassName(clsName, parentEle, tagName) { + var elements = null; + var found = []; + var s = String.fromCharCode(92); + var re = new RegExp('(?:^|' + s + 's+)' + clsName + '(?:$|' + s + 's+)'); + if (!parentEle) parentEle = document; + if (!tagName) tagName = '*'; + elements = parentEle.getElementsByTagName(tagName); + if (elements) { + for (var i = 0; i < elements.length; ++i) { + if (elements[i].className.search(re) != -1) { + found[found.length] = elements[i]; + } + } + } + return found; +} + +var styleUrlCached = null; +function GetStyleUrl() { + if (null == styleUrlCached) { + var ns; + styleUrlCached = ''; + ns = document.getElementsByTagName('link'); + for (var i = 0; i < ns.length; i++) { + var l = ns[i]; + if (l.href && /style\.ie6\.css(\?.*)?$/.test(l.href)) { + return styleUrlCached = l.href.replace(/style\.ie6\.css(\?.*)?$/, ''); + } + } + + ns = document.getElementsByTagName('style'); + for (var i = 0; i < ns.length; i++) { + var matches = new RegExp('import\\s+"([^"]+\\/)style\\.ie6\\.css"').exec(ns[i].innerHTML); + if (null != matches && matches.length > 0) + return styleUrlCached = matches[1]; + } + } + return styleUrlCached; +} + +function fixPNG(element) { + if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) { + var src; + if (element.tagName == 'IMG') { + if (/\.png$/.test(element.src)) { + src = element.src; + element.src = GetStyleUrl() + 'images/spacer.gif'; + } + } + else { + src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i); + if (src) { + src = src[1]; + element.runtimeStyle.backgroundImage = 'none'; + } + } + if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')"; + } +} + +function artHasClass(el, cls) { + return (el && el.className && (' ' + el.className + ' ').indexOf(' ' + cls + ' ') != -1); +} +/* end Page */ + +/* begin Menu */ +function gTranslateFix() { + var menus = xGetElementsByClassName("art-menu", document); + for (var i = 0; i < menus.length; i++) { + var menu = menus[i]; + var childs = menu.childNodes; + var listItems = []; + for (var j = 0; j < childs.length; j++) { + var el = childs[j]; + if (String(el.tagName).toLowerCase() == "li") listItems.push(el); + } + for (var j = 0; j < listItems.length; j++) { + var item = listItems[j]; + var a = null; + var gspan = null; + for (var p = 0; p < item.childNodes.length; p++) { + var l = item.childNodes[p]; + if (!(l && l.tagName)) continue; + if (String(l.tagName).toLowerCase() == "a") a = l; + if (String(l.tagName).toLowerCase() == "span") gspan = l; + } + if (gspan && a) { + var t = null; + for (var k = 0; k < gspan.childNodes.length; k++) { + var e = gspan.childNodes[k]; + if (!(e && e.tagName)) continue; + if (String(e.tagName).toLowerCase() == "a" && e.firstChild) e = e.firstChild; + if (e && e.className && e.className == 't') { + t = e; + if (t.firstChild && t.firstChild.tagName && String(t.firstChild.tagName).toLowerCase() == "a") { + while (t.firstChild.firstChild) t.appendChild(t.firstChild.firstChild); + t.removeChild(t.firstChild); + } + a.appendChild(t); + break; + } + } + gspan.parentNode.removeChild(gspan); + } + } + } +} +artLoadEvent.add(gTranslateFix); + +function Insert_Separators() { + var menus = xGetElementsByClassName("art-menu", document); + for (var i = 0; i < menus.length; i++) { + var menu = menus[i]; + var childs = menu.childNodes; + var listItems = []; + for (var j = 0; j < childs.length; j++) { + var el = childs[j]; + if (String(el.tagName).toLowerCase() == "li") listItems.push(el); + } + for (var j = 0; j < listItems.length - 1; j++) { + var item = listItems[j]; + var span = document.createElement('span'); + span.className = 'art-menu-separator'; + var li = document.createElement('li'); + li.appendChild(span); + item.parentNode.insertBefore(li, item.nextSibling); + } + } +} +artLoadEvent.add(Insert_Separators); + +function Menu_IE6Setup() { + var isIE6 = navigator.userAgent.toLowerCase().indexOf("msie") != -1 + && navigator.userAgent.toLowerCase().indexOf("msie 7") == -1; + if (!isIE6) return; + var aTmp2, i, j, oLI, aUL, aA; + var aTmp = xGetElementsByClassName("art-menu", document, "ul"); + for (i = 0; i < aTmp.length; i++) { + aTmp2 = aTmp[i].getElementsByTagName("li"); + for (j = 0; j < aTmp2.length; j++) { + oLI = aTmp2[j]; + aUL = oLI.getElementsByTagName("ul"); + if (aUL && aUL.length) { + oLI.UL = aUL[0]; + aA = oLI.getElementsByTagName("a"); + if (aA && aA.length) + oLI.A = aA[0]; + oLI.onmouseenter = function() { + this.className += " art-menuhover"; + this.UL.className += " art-menuhoverUL"; + if (this.A) this.A.className += " art-menuhoverA"; + }; + oLI.onmouseleave = function() { + this.className = this.className.replace(/art-menuhover/, ""); + this.UL.className = this.UL.className.replace(/art-menuhoverUL/, ""); + if (this.A) this.A.className = this.A.className.replace(/art-menuhoverA/, ""); + }; + } + } + } +} +artLoadEvent.add(Menu_IE6Setup); +/* end Menu */ + +/* begin Button */ + + +function artButtonsSetupJsHover(className) { + var tags = ["input", "a", "button"]; + for (var j = 0; j < tags.length; j++){ + var buttons = xGetElementsByClassName(className, document, tags[j]); + for (var i = 0; i < buttons.length; i++) { + var button = buttons[i]; + if (!button.tagName || !button.parentNode) return; + if (!artHasClass(button.parentNode, 'art-button-wrapper')) { + if (!artHasClass(button, 'art-button')) button.className += ' art-button'; + var wrapper = document.createElement('span'); + wrapper.className = "art-button-wrapper"; + if (artHasClass(button, 'active')) wrapper.className += ' active'; + var spanL = document.createElement('span'); + spanL.className = "l"; + spanL.innerHTML = " "; + wrapper.appendChild(spanL); + var spanR = document.createElement('span'); + spanR.className = "r"; + spanR.innerHTML = " "; + wrapper.appendChild(spanR); + button.parentNode.insertBefore(wrapper, button); + wrapper.appendChild(button); + } + artEventHelper.bind(button, 'mouseover', function(e) { + e = e || window.event; + wrapper = (e.target || e.srcElement).parentNode; + wrapper.className += " hover"; + }); + artEventHelper.bind(button, 'mouseout', function(e) { + e = e || window.event; + button = e.target || e.srcElement; + wrapper = button.parentNode; + wrapper.className = wrapper.className.replace(/hover/, ""); + if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, ""); + }); + artEventHelper.bind(button, 'mousedown', function(e) { + e = e || window.event; + button = e.target || e.srcElement; + wrapper = button.parentNode; + if (!artHasClass(button, 'active')) wrapper.className += " active"; + }); + artEventHelper.bind(button, 'mouseup', function(e) { + e = e || window.event; + button = e.target || e.srcElement; + wrapper = button.parentNode; + if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, ""); + }); + } + } +} + +artLoadEvent.add(function() { artButtonsSetupJsHover("art-button"); }); +/* end Button */ + + diff --git a/style.css b/style.css new file mode 100644 index 0000000..5692461 --- /dev/null +++ b/style.css @@ -0,0 +1,259 @@ +body +{ + margin: 0 auto; + position:absolute; + padding: 0; + background-color: #000000; + width: 100%; +} + +.tftable1 {font-family:sans-serif;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable1 th {font-family:arial;font-size:1.2vw;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable1 tr {background-color:#171515;} +.tftable1 td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 1px;padding: 2px;border-style: solid;border-color: #686767;} + +.tftable2 {font-family:sans-serif;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable2 th {font-family:sans-serif;font-size:1.2vw;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable2 tr {background-color:#171515;} +.tftable2 td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 1px;padding: 2px;border-style: solid;border-color: #686767;} + +.tftable3 {font-family:sans-serif;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable3 th {font-family:sans-serif;font-size:1.2vw;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable3 tr {background-color:#171515;} +.tftable3 td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable4 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable4 th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable4 tr {background-color:#171515;} +.tftable4 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 1px;padding: 1px;border-style: solid;border-color: #686767;} + +.tftable5 {font-family:sans-serif;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable5 th {font-family:sans-serif;font-size:1.2vw;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable5 tr {background-color:#171515;} +.tftable5 td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable6 {width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable6 th {background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable6 tr {background-color:#171515;height:50px;} +.tftable6 td {font-family: sans-serif;font-size: 3vw;color: #fbfbfb;border-width: 2px;padding: 1px;border-style: solid;border-color: #686767;} + +.tftable7 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable7 th {font-family:arial;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable7 tr {background-color:#171515;} +.tftable7 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 6px;padding: 3px;border-style: solid;border-color: #2b2b2b;} + +.tftableEAST {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableEAST th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableEAST tr {background-color:#171515;height:1.2vw;} +.tftableEAST td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;width:1.2vw;} + +.tftableWEST {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableWEST th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableWEST tr {background-color:#171515;height:1.2vw;} +.tftableWEST td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;width:1.2vw;} + +.tftableBOILERS {font-family:sans-serif;color:#fbfbfb;width:100%;vertical-align: top;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableBOILERS th {font-family:sans-serif;font-size:1.2vw;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableBOILERS tr {background-color:#171515;height:38px;} +.tftableBOILERS td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftableLEVELS {font-family:sans-serif;color:#fbfbfb;width:100%;vertical-align: top;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableLEVELS th {font-family:sans-serif;font-size:1.2vw;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableLEVELS tr {background-color:#171515;height:38px;vertical-align: top;} +.tftableLEVELS td {font-family:sans-serif;font-size:1.2vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +#generalTPH {font-family:sans-serif;font-size:2.4vw;font-weight:bold;} +#progressMILLSfont {font-family:sans-serif;font-size:2.0vw;font-weight:bold;} + +progress { + width: 200px; + height: 30px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; +} + +#progresstanks[value]::-webkit-progress-value::before { + content: attr(value) + position: absolute; + right: 0; + top: 0%; +} + +#progresstanks4k[value]::-webkit-progress-value::before { + content: attr(value) + position: absolute; + right: 0; + top: 0%; +} + + +#progressmills { + width: 100%; + height: 1.6vw; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +#progresstanks { + width: 100%; + height: 1.65vw; + background-color: #000; + font-size: 1.5vw; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +#progresstanks4k { + width: 100%; + height: 32px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +progress:before { + content: attr(data-label); + text-align: center; + font-size: 1.3vw; + vertical-align: 0; + + /*Position text over the progress bar */ + position:absolute; + left:0; + right:0; +} + +#progressboilers { + width: 100%; + height: 26px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +.container{ + width: 100%; + height: 120px; + overflow: hidden; + position: relative; + margin:0px auto; +} + +.barcontainer{ + background-color: #171f17; + position: relative; + transform: translateY(-50%); + margin-top: 60px; + margin-left: 0px; + margin-bottom: -60px; + width: 100%; + height: 120px; +} + +.bar{ + background-color: #1e6b1d; + position: absolute; + margin-left: 3.5px; + bottom: 0; + width: 95%; + height: 100%; + border-top: 6px solid #0f360f; + box-sizing: border-box; + //animation: grow 1.5s ease-out forwards; + transform-origin: bottom; +} + +.bartext{ + position: absolute; + bottom: 0; + text-align: center; + font-family: Arial; + font-size: 2.1vw; + font-color: #fff; + font-style: italic; +} + #dryerson { + background-color: #039003; + text-align: center; + font-size: 1.4vw; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 6.66%px; + height: 8px; + padding: 9px 0px 9px 0px; + margin: 0 9px 0 8px; +} + #dryersoff { + background-color:#c00002; + text-align: center; + font-size: 1.4vw; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 6.66%px; + height: 8px; + padding: 9px 0px 9px 0px; + margin: 0 9px 0 8px; +} + #gopen { + background-color: #039003; + text-align: center; + font-size: 100%; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 100%px; + height: 8px; + padding: 9px 0 9px 12px; + margin: 0 9px 0 8px; +} + #gclose { + background-color:#c00002; + text-align: center; + font-size: 100%; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 100%px; + height: 8px; + padding: 9px 0 9px 12px; + margin: 0 9px 0 8px; +} + + +@keyframes grow{ + from{ + transform: scaleY(0); + } +} diff --git a/style_BACKUP.css b/style_BACKUP.css new file mode 100644 index 0000000..9eadef2 --- /dev/null +++ b/style_BACKUP.css @@ -0,0 +1,286 @@ +body +{ + margin: 0 auto; + position:absolute; + padding: 0; + background-color: #000000; + width: 100%; +} + +.header14k {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.header14k th {font-family:arial;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.header14k tr {background-color:#171515;} +.header14k td {font-family:sans-serif;font-size:38px;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable1 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable1 th {font-family:arial;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable1 tr {background-color:#171515;} +.tftable1 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable14k {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable14k th {font-family:arial;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable14k tr {background-color:#171515;} +.tftable14k td {font-family:sans-serif;font-size:32px;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable2 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable2 th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable2 tr {background-color:#171515;} +.tftable2 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 0px;border-style: solid;border-color: #686767;} + +.tftable24k {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable24k th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable24k tr {background-color:#171515;} +.tftable24k td {font-family:sans-serif;font-size:30px;font-weight:bold;border-width: 2px;padding: 0px;border-style: solid;border-color: #686767;} + +.tftable3 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable3 th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable3 tr {background-color:#171515;} +.tftable3 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable4 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable4 th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable4 tr {background-color:#171515;} +.tftable4 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 1px;padding: 1px;border-style: solid;border-color: #686767;} + +.tftable5 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable5 th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable5 tr {background-color:#171515;} +.tftable5 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable54k {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable54k th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable54k tr {background-color:#171515;} +.tftable54k td {font-family:sans-serif;font-size:32px;font-weight:550;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftable6 {width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable6 th {background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable6 tr {background-color:#171515;height:50px;} +.tftable6 td {font-family: sans-serif;font-size: 3vw;color: #fbfbfb;border-width: 2px;padding: 1px;border-style: solid;border-color: #686767;} + +.tftable7 {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftable7 th {font-family:arial;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftable7 tr {background-color:#171515;} +.tftable7 td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 6px;padding: 3px;border-style: solid;border-color: #2b2b2b;} + +.tftableEAST {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableEAST th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableEAST tr {background-color:#171515;height:37px;} +.tftableEAST td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftableWEST {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableWEST th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableWEST tr {background-color:#171515;height:37px;} +.tftableWEST td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftableEAST4k {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableEAST4k th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableEAST4k tr {background-color:#171515;height:37px;} +.tftableEAST4k td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftableWEST4k {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableWEST4k th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableWEST4k tr {background-color:#171515;height:37px;} +.tftableWEST4k td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftableBOILERS {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;vertical-align: top;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableBOILERS th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableBOILERS tr {background-color:#171515;height:38px;} +.tftableBOILERS td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +.tftableLEVELS {font-family:sans-serif;font-size:12px;color:#fbfbfb;width:100%;vertical-align: top;border-width: 1px;border-color: #686767;border-collapse: collapse;empty-cells: hide;} +.tftableLEVELS th {font-family:sans-serif;font-size:12px;background-color:#171515;border-width: 1px;padding: 8px;border-style: solid;border-color: #686767;text-align:left;} +.tftableLEVELS tr {background-color:#171515;height:38px;vertical-align: top;} +.tftableLEVELS td {font-family:sans-serif;font-size:1.4vw;font-weight:bold;border-width: 2px;padding: 3px;border-style: solid;border-color: #686767;} + +progress { + width: 190px; + height: 30px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; +} + +#progresstanks[value]::-webkit-progress-value::before { + content: attr(value) + position: absolute; + right: 0; + top: 0%; +} + +#progresstanks4k[value]::-webkit-progress-value::before { + content: attr(value) + position: absolute; + right: 0; + top: 0%; +} + + +#progressmills { + width: 100%; + height: 27px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +#progresstanks { + width: 100%; + height: 26px; + background-color: #000; + font-size: 1.5vw; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +#progresstanks4k { + width: 100%; + height: 32px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +progress:before { + content: attr(data-label); + text-align: center; + font-size: 1.0em; + vertical-align: 0; + + /*Position text over the progress bar */ + position:absolute; + left:0; + right:0; +} + +#progressboilers { + width: 100%; + height: 26px; + background-color: #000; + border-radius: 2px; + padding-left: 0px; + padding-right: 0px; + padding-top: 0px; + padding-bottom: 0px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; + position:relative; +} + +.container{ + width: 100%; + height: 120px; + overflow: hidden; + position: relative; + margin:0px auto; +} + +.barcontainer{ + background-color: #171f17; + position: relative; + transform: translateY(-50%); + margin-top: 60px; + margin-left: 0px; + margin-bottom: -60px; + width: 100%; + height: 120px; +} + +.bar{ + background-color: #1e6b1d; + position: absolute; + margin-left: 3.5px; + bottom: 0; + width: 95%; + height: 100%; + border-top: 6px solid #0f360f; + box-sizing: border-box; + //animation: grow 1.5s ease-out forwards; + transform-origin: bottom; +} + +.bartext{ + position: absolute; + bottom: 0; + text-align: center; + font-family: Arial; + font-size: 2.2vw; + font-color: #fff; + font-style: italic; +} + #dryerson { + background-color: #039003; + text-align: center; + font-size: 1.4vw; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 6.66%px; + height: 8px; + padding: 9px 0px 9px 0px; + margin: 0 9px 0 8px; +} + #dryersoff { + background-color:#c00002; + text-align: center; + font-size: 1.4vw; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 6.66%px; + height: 8px; + padding: 9px 0px 9px 0px; + margin: 0 9px 0 8px; +} + #gopen { + background-color: #039003; + text-align: center; + font-size: 100%; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 100%px; + height: 8px; + padding: 9px 0 9px 12px; + margin: 0 9px 0 8px; +} + #gclose { + background-color:#c00002; + text-align: center; + font-size: 100%; + letter-spacing: -0.00em; + color: #fff; + font-weight: bold; + text-decoration: none; + width: 100%px; + height: 8px; + padding: 9px 0 9px 12px; + margin: 0 9px 0 8px; +} + + +@keyframes grow{ + from{ + transform: scaleY(0); + } +} diff --git a/tanks/index.php b/tanks/index.php new file mode 100644 index 0000000..e302214 --- /dev/null +++ b/tanks/index.php @@ -0,0 +1,35 @@ + + + + + + + LASUCA Controls + + + + + + + + + + + +
    + + + + diff --git a/tanks/tanklevelsmain.php b/tanks/tanklevelsmain.php new file mode 100644 index 0000000..ade5493 --- /dev/null +++ b/tanks/tanklevelsmain.php @@ -0,0 +1,2 @@ + + diff --git a/testall/index.php b/testall/index.php new file mode 100644 index 0000000..59323b5 --- /dev/null +++ b/testall/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/testall/main.php b/testall/main.php new file mode 100644 index 0000000..255d772 --- /dev/null +++ b/testall/main.php @@ -0,0 +1,51 @@ + +
    +
    +GENERAL DATA + +
    +
    +GENERAL DATA WITH STEAM VALUES + +
    +
    +EAST AND WEST TANDEMS FULL DATA + +
    +
    +BOILERS SLIM STEAM ONLY + +
    +
    +BOILERS FULL DATA + +
    +
    +TANK LEVEL DATA SLIM + +
    +
    +TANK LEVEL DATA STACKED + +
    +
    +TANK LEVEL DATA VERTICAL + +
    +
    +TABLES AND TRUCK DUMP DATA + +
    +
    +EVAPORATORS AND PRE-EVAPORATOR DATA + +
    +
    +SHELL AND TUBER HEATER DATA + +
    +
    +DRYERS DATA + +
    + diff --git a/vertical/index.php b/vertical/index.php new file mode 100644 index 0000000..59323b5 --- /dev/null +++ b/vertical/index.php @@ -0,0 +1,32 @@ + + + + + + + LASUCA Controls + + + + + + + + + + +
    + + diff --git a/vertical/main.php b/vertical/main.php new file mode 100644 index 0000000..96fec9a --- /dev/null +++ b/vertical/main.php @@ -0,0 +1,10 @@ + + + + + + + + + +