Переглянути джерело

N°409 - completely remove the use of Flash (via Open Flash Charts), and therefore remove the php-ofc library. iTop now uses c3.js and d3.js instead.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4882 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 7 роки тому
батько
коміт
52ba2e1409
50 змінених файлів з 94 додано та 3890 видалено
  1. 1 1
      application/dashboardlayout.class.inc.php
  2. 93 170
      application/dashlet.class.inc.php
  3. 0 806
      pages/php-ofc-library/JSON.php
  4. 0 16
      pages/php-ofc-library/README.txt
  5. 0 231
      pages/php-ofc-library/dot_base.php
  6. 0 5
      pages/php-ofc-library/exclude.txt
  7. 0 86
      pages/php-ofc-library/json_format.php
  8. 0 40
      pages/php-ofc-library/ofc_area_base.php
  9. 0 10
      pages/php-ofc-library/ofc_area_hollow.php
  10. 0 10
      pages/php-ofc-library/ofc_area_line.php
  11. 0 27
      pages/php-ofc-library/ofc_arrow.php
  12. 0 34
      pages/php-ofc-library/ofc_bar.php
  13. 0 22
      pages/php-ofc-library/ofc_bar_3d.php
  14. 0 97
      pages/php-ofc-library/ofc_bar_base.php
  15. 0 39
      pages/php-ofc-library/ofc_bar_filled.php
  16. 0 137
      pages/php-ofc-library/ofc_bar_glass.php
  17. 0 29
      pages/php-ofc-library/ofc_bar_sketch.php
  18. 0 55
      pages/php-ofc-library/ofc_bar_stack.php
  19. 0 41
      pages/php-ofc-library/ofc_candle.php
  20. 0 64
      pages/php-ofc-library/ofc_hbar.php
  21. 0 157
      pages/php-ofc-library/ofc_line.php
  22. 0 92
      pages/php-ofc-library/ofc_line_base.php
  23. 0 33
      pages/php-ofc-library/ofc_line_dot.php
  24. 0 9
      pages/php-ofc-library/ofc_line_hollow.php
  25. 0 11
      pages/php-ofc-library/ofc_line_style.php
  26. 0 56
      pages/php-ofc-library/ofc_menu.php
  27. 0 257
      pages/php-ofc-library/ofc_pie.php
  28. 0 47
      pages/php-ofc-library/ofc_radar_axis.php
  29. 0 15
      pages/php-ofc-library/ofc_radar_axis_labels.php
  30. 0 15
      pages/php-ofc-library/ofc_radar_spoke_labels.php
  31. 0 47
      pages/php-ofc-library/ofc_scatter.php
  32. 0 49
      pages/php-ofc-library/ofc_scatter_line.php
  33. 0 25
      pages/php-ofc-library/ofc_shape.php
  34. 0 43
      pages/php-ofc-library/ofc_sugar.php
  35. 0 133
      pages/php-ofc-library/ofc_tags.php
  36. 0 39
      pages/php-ofc-library/ofc_title.php
  37. 0 67
      pages/php-ofc-library/ofc_tooltip.php
  38. 0 70
      pages/php-ofc-library/ofc_upload_image.php
  39. 0 140
      pages/php-ofc-library/ofc_x_axis.php
  40. 0 45
      pages/php-ofc-library/ofc_x_axis_label.php
  41. 0 69
      pages/php-ofc-library/ofc_x_axis_labels.php
  42. 0 15
      pages/php-ofc-library/ofc_x_legend.php
  43. 0 17
      pages/php-ofc-library/ofc_y_axis.php
  44. 0 116
      pages/php-ofc-library/ofc_y_axis_base.php
  45. 0 38
      pages/php-ofc-library/ofc_y_axis_label.php
  46. 0 57
      pages/php-ofc-library/ofc_y_axis_labels.php
  47. 0 6
      pages/php-ofc-library/ofc_y_axis_right.php
  48. 0 15
      pages/php-ofc-library/ofc_y_legend.php
  49. 0 109
      pages/php-ofc-library/open-flash-chart-object.php
  50. 0 178
      pages/php-ofc-library/open-flash-chart.php

+ 1 - 1
application/dashboardlayout.class.inc.php

@@ -104,7 +104,7 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout
 		// Trim the list of cells to remove the invisible/empty ones at the end of the array
 		$aCells = $this->TrimCellsArray($aCells);
 		
-		$oPage->add('<table style="width:100%"><tbody>');
+		$oPage->add('<table style="width:100%;table-layout:fixed;"><tbody>');
 		$iCellIdx = 0;
 		$fColSize = 100 / $this->iNbCols;
 		$sStyle = $bEditMode ? 'border: 1px #ccc dashed; width:'.$fColSize.'%;' : 'width: '.$fColSize.'%;';

+ 93 - 170
application/dashlet.class.inc.php

@@ -686,7 +686,7 @@ abstract class DashletGroupBy extends Dashlet
 				}
 				foreach ($aValues as $sValue)
 				{
-					$aDisplayValues[] = array('label' => $sValue, 'count' => (int)rand(1, 15));
+					$aDisplayValues[] = array('label' => $sValue, 'value' => (int)rand(1, 15));
 				}
 			}
 			elseif (is_subclass_of($sAttributeType, 'AttributeEnum') || $sAttributeType == 'AttributeEnum')
@@ -699,16 +699,16 @@ abstract class DashletGroupBy extends Dashlet
 						$iCount = (int) rand(2, 100);
 						$aDisplayValues[] = array(
 							'label' => $sValueLabel,
-							'count' => $iCount
+							'value' => $iCount
 						);
 					}
 				}
 			}
 			else
 			{
-				$aDisplayValues[] = array('label' => 'a', 'count' => 123);
-				$aDisplayValues[] = array('label' => 'b', 'count' => 321);
-				$aDisplayValues[] = array('label' => 'c', 'count' => 456);
+				$aDisplayValues[] = array('label' => 'a', 'value' => 123);
+				$aDisplayValues[] = array('label' => 'b', 'value' => 321);
+				$aDisplayValues[] = array('label' => 'c', 'value' => 456);
 			}
 		}
 		return $aDisplayValues;
@@ -906,82 +906,42 @@ class DashletGroupByPie extends DashletGroupBy
 	{
 		$sTitle = $this->aProperties['title'];
 
+		$sBlockId = 'block_fake_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occuring in the same DOM)
+		
+		$HTMLsTitle = ($sTitle != '') ? '<h1 style="text-align:center">'.htmlentities($sTitle, ENT_QUOTES, 'UTF-8').'</h1>' : '';
+		$oPage->add("<div style=\"background-color:#fff;padding:0.25em;\">$HTMLsTitle<div id=\"$sBlockId\" style=\"background-color:#fff;\"></div></div>");
+		
 		$aDisplayValues = $this->MakeSimulatedData();
 
-		require_once(APPROOT.'/pages/php-ofc-library/open-flash-chart.php');
-		$oChart = new open_flash_chart();
-	
-		$aGroupBy = array();
-		$aLabels = array();
-		foreach($aDisplayValues as $iRow => $aDisplayData)
-		{
-			$aLabels[$iRow] = $aDisplayData['label'];
-			$aGroupBy[$iRow] = (int) $aDisplayData['count'];
-		}
-
-		$oChartElement = new pie();
-		$oChartElement->set_start_angle( 35 );
-		$oChartElement->set_animate( true );
-		$oChartElement->set_tooltip( '#label# - #val# (#percent#)' );
-		$oChartElement->set_colours( array('#FF8A00', '#909980', '#2C2B33', '#CCC08D', '#596664') );
-	
-		$aData = array();
-		foreach($aGroupBy as $iRow => $iCount)
+		$aColumns = array();
+		$aNames = array();
+		foreach($aDisplayValues as $idx => $aValue)
 		{
-			$sFlashLabel = html_entity_decode($aLabels[$iRow], ENT_QUOTES, 'UTF-8');
-			$PieValue = new pie_value($iCount, $sFlashLabel);
-			$aData[] = $PieValue;
+			$aColumns[] = array('series_'.$idx, (int)$aValue['value']);
+			$aNames['series_'.$idx] = $aValue['label'];
 		}
-	
-		$oChartElement->set_values($aData);
-		$oChart->x_axis = null;
-
-		if (!empty($sTitle))
-		{
-			// The title has been given in an url, and urlencoded...
-			// and urlencode transforms utf-8 into something similar to ISO-8859-1
-			// Example: é (C3A9 becomes %E9)
-			// As a consequence, json_encode (called within open-flash-chart.php)
-			// was returning 'null' and the graph was not displayed at all
-			// To make sure that the graph is displayed AND to get a correct title
-			// (at least for european characters) let's transform back into utf-8 !
-			$sTitle = iconv("ISO-8859-1", "UTF-8//IGNORE", $sTitle);
-		
-			// If the title is a dictionnary entry, fetch it
-			$sTitle = $this->oModelReflection->DictString($sTitle);
-		
-			$oTitle = new title($sTitle);
-			$oChart->set_title($oTitle);
-			$oTitle->set_style("{font-size: 16px; font-family: Tahoma; font-weight: bold; text-align: center;}");
-		}
-		$oChart->set_bg_colour('#FFFFFF');
-		$oChart->add_element($oChartElement);
-
-		$sData = $oChart->toPrettyString();
-		$sData = json_encode($sData);
-		$oPage->add_script(
-<<< EOF
-function ofc_get_data_dashlet_{$this->sId}()
-{
-	return $sData;
-}
-EOF
-		);
-
-		$oPage->add('<div class="dashlet-content">');
-		$oPage->add("<div id=\"dashlet_chart_{$this->sId}\">If the chart does not display, <a href=\"http://get.adobe.com/flash/\" target=\"_blank\">install Flash</a></div>\n");
-		$oPage->add('</div>');
-
-//		$oPage->add_script("function ofc_resize(left, width, top, height) { /* do nothing special */ }");
+		$sJSColumns = json_encode($aColumns);
+		$sJSNames = json_encode($aNames);
 		$oPage->add_ready_script(
 <<<EOF
-swfobject.embedSWF(	"../images/open-flash-chart.swf", 
-	"dashlet_chart_{$this->sId}", 
-	"100%", "300","9.0.0",
-	"expressInstall.swf",
-	{"get-data":"ofc_get_data_dashlet_{$this->sId}", "id":"dashlet_chart_{$this->sId}"}, 
-	{'wmode': 'transparent'}
-);
+window.setTimeout(function() {
+var chart = c3.generate({
+    bindto: '#{$sBlockId}',
+    data: {
+    	columns: $sJSColumns,
+      	type: 'pie',
+		names: $sJSNames,
+    },
+    legend: {
+      show: true,
+	  position: 'right',
+    },
+	tooltip: {
+	  format: {
+	    value: function (value, ratio, id) { return value; }
+	  }
+	}
+});}, 100);
 EOF
 		);
 	}
@@ -1009,106 +969,69 @@ class DashletGroupByBars extends DashletGroupBy
 	{
 		$sTitle = $this->aProperties['title'];
 
+		$sBlockId = 'block_fake_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occuring in the same DOM)
+		
+		$HTMLsTitle = ($sTitle != '') ? '<h1 style="text-align:center">'.htmlentities($sTitle, ENT_QUOTES, 'UTF-8').'</h1>' : '';
+		$oPage->add("<div style=\"background-color:#fff;padding:0.25em;\">$HTMLsTitle<div id=\"$sBlockId\" style=\"background-color:#fff;\"></div></div>");
+		
 		$aDisplayValues = $this->MakeSimulatedData();
 
-		require_once(APPROOT.'/pages/php-ofc-library/open-flash-chart.php');
-		$oChart = new open_flash_chart();
-	
-		$aGroupBy = array();
-		$aLabels = array();
-		foreach($aDisplayValues as $iRow => $aDisplayData)
+		$aNames = array();
+		foreach($aDisplayValues as $idx => $aValue)
 		{
-			$aLabels[$iRow] = $aDisplayData['label'];
-			$aGroupBy[$iRow] = (int) $aDisplayData['count'];
-		}
-
-		$oChartElement = new bar_glass();
-
-		$aData = array();
-		$aChartLabels = array();
-		$maxValue = 0;
-		foreach($aGroupBy as $iRow => $iCount)
-		{
-			$oBarValue = new bar_value($iCount);
-			$aData[] = $oBarValue;
-			if ($iCount > $maxValue) $maxValue = $iCount;
-			$aChartLabels[] = html_entity_decode($aLabels[$iRow], ENT_QUOTES, 'UTF-8');
-		}
-		$oYAxis = new y_axis();
-		$aMagicValues = array(1,2,5,10);
-		$iMultiplier = 1;
-		$index = 0;
-		$iTop = $aMagicValues[$index % count($aMagicValues)]*$iMultiplier;
-		while($maxValue > $iTop)
-		{
-			$index++;
-			$iTop = $aMagicValues[$index % count($aMagicValues)]*$iMultiplier;
-			if (($index % count($aMagicValues)) == 0)
-			{
-				$iMultiplier = $iMultiplier * 10;
-			}
+			$aNames[$idx] = $aValue['label'];
 		}
-		//echo "oYAxis->set_range(0, $iTop, $iMultiplier);\n";
-		$oYAxis->set_range(0, $iTop, $iMultiplier);
-		$oChart->set_y_axis( $oYAxis );
-	
-		$oChartElement->set_values( $aData );
-		$oXAxis = new x_axis();
-		$oXLabels = new x_axis_labels();
-		// set them vertical
-		$oXLabels->set_vertical();
-		// set the label text
-		$oXLabels->set_labels($aChartLabels);
-		// Add the X Axis Labels to the X Axis
-		$oXAxis->set_labels( $oXLabels );
-		$oChart->set_x_axis( $oXAxis );
-
-		if (!empty($sTitle))
-		{
-			// The title has been given in an url, and urlencoded...
-			// and urlencode transforms utf-8 into something similar to ISO-8859-1
-			// Example: é (C3A9 becomes %E9)
-			// As a consequence, json_encode (called within open-flash-chart.php)
-			// was returning 'null' and the graph was not displayed at all
-			// To make sure that the graph is displayed AND to get a correct title
-			// (at least for european characters) let's transform back into utf-8 !
-			$sTitle = iconv("ISO-8859-1", "UTF-8//IGNORE", $sTitle);
-		
-			// If the title is a dictionnary entry, fetch it
-			$sTitle = $this->oModelReflection->DictString($sTitle);
+		$sJSNames = json_encode($aNames);
 		
-			$oTitle = new title($sTitle);
-			$oChart->set_title($oTitle);
-			$oTitle->set_style("{font-size: 16px; font-family: Tahoma; font-weight: bold; text-align: center;}");
-		}
-		$oChart->set_bg_colour('#FFFFFF');
-		$oChart->add_element($oChartElement);
-
-		$sData = $oChart->toPrettyString();
-		$sData = json_encode($sData);
-		$oPage->add_script(
-<<< EOF
-function ofc_get_data_dashlet_{$this->sId}()
-{
-	return $sData;
-}
-EOF
-		);
-
-		$oPage->add('<div class="dashlet-content">');
-		$oPage->add("<div id=\"dashlet_chart_{$this->sId}\">If the chart does not display, <a href=\"http://get.adobe.com/flash/\" target=\"_blank\">install Flash</a></div>\n");
-		$oPage->add('</div>');
-
-//		$oPage->add_script("function ofc_resize(left, width, top, height) { /* do nothing special */ }");
+		$sJson = json_encode($aDisplayValues);
+		$sJSCount = json_encode(Dict::S('UI:GroupBy:Count'));
 		$oPage->add_ready_script(
 <<<EOF
-swfobject.embedSWF(	"../images/open-flash-chart.swf", 
-	"dashlet_chart_{$this->sId}", 
-	"100%", "300","9.0.0",
-	"expressInstall.swf",
-	{"get-data":"ofc_get_data_dashlet_{$this->sId}", "id":"dashlet_chart_{$this->sId}"}, 
-	{'wmode': 'transparent'}
-);
+window.setTimeout(function() {
+	var chart = c3.generate({
+    bindto: '#{$sBlockId}',
+    data: {
+   	  json: $sJson,
+      keys: {
+      	x: 'label',
+      	value: ["value"]
+	  },
+	  selection: {
+		enabled: true
+	  },
+      type: 'bar'
+    },
+    axis: {
+        x: {
+			tick: {
+				culling: {max: 25}, // Maximum 24 labels on x axis (2 years).
+				centered: true,
+				rotate: 90,
+				multiline: false
+			},
+            type: 'category'   // this needed to load string x value
+        }
+    },
+	grid: {
+		y: {
+			show: true
+		}
+	},
+    legend: {
+      show: false,
+    },
+	tooltip: {
+	  grouped: false,
+	  format: {
+		title: function() { return '' },
+	    name: function (name, ratio, id, index) {
+			var aNames = $sJSNames;
+			return aNames[index];
+		}
+	  }
+	}
+});
+}, 100);
 EOF
 		);
 	}
@@ -1139,7 +1062,7 @@ class DashletGroupByTable extends DashletGroupBy
 		$iTotal = 0;
 		foreach($aDisplayValues as $iRow => $aDisplayData)
 		{
-			$iTotal += $aDisplayData['count'];
+			$iTotal += $aDisplayData['value'];
 		}
 
 		$oPage->add('<div class="dashlet-content">');
@@ -1160,7 +1083,7 @@ class DashletGroupByTable extends DashletGroupBy
 		{
 			$oPage->add('<tr class="even">');
 			$oPage->add('<td class=""><span title="Active">'.$aDisplayData['label'].'</span></td>');
-			$oPage->add('<td class=""><a>'.$aDisplayData['count'].'</a></td>');
+			$oPage->add('<td class=""><a>'.$aDisplayData['value'].'</a></td>');
 			$oPage->add('</tr>');
 		}
 		$oPage->add('</tbody>');

+ 0 - 806
pages/php-ofc-library/JSON.php

@@ -1,806 +0,0 @@
-<?php
-/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
-
-/**
- * Converts to and from JSON format.
- *
- * JSON (JavaScript Object Notation) is a lightweight data-interchange
- * format. It is easy for humans to read and write. It is easy for machines
- * to parse and generate. It is based on a subset of the JavaScript
- * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
- * This feature can also be found in  Python. JSON is a text format that is
- * completely language independent but uses conventions that are familiar
- * to programmers of the C-family of languages, including C, C++, C#, Java,
- * JavaScript, Perl, TCL, and many others. These properties make JSON an
- * ideal data-interchange language.
- *
- * This package provides a simple encoder and decoder for JSON notation. It
- * is intended for use with client-side Javascript applications that make
- * use of HTTPRequest to perform server communication functions - data can
- * be encoded into JSON notation for use in a client-side javascript, or
- * decoded from incoming Javascript requests. JSON format is native to
- * Javascript, and can be directly eval()'ed with no further parsing
- * overhead
- *
- * All strings should be in ASCII or UTF-8 format!
- *
- * LICENSE: Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met: Redistributions of source code must retain the
- * above copyright notice, this list of conditions and the following
- * disclaimer. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- * @category
- * @package     Services_JSON
- * @author      Michal Migurski <mike-json@teczno.com>
- * @author      Matt Knapp <mdknapp[at]gmail[dot]com>
- * @author      Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
- * @copyright   2005 Michal Migurski
- * @version     CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
- * @license     http://www.opensource.org/licenses/bsd-license.php
- * @link        http://pear.php.net/pepr/pepr-proposal-show.php?id=198
- */
-
-/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
- */
-define('SERVICES_JSON_SLICE',   1);
-
-/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
- */
-define('SERVICES_JSON_IN_STR',  2);
-
-/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
- */
-define('SERVICES_JSON_IN_ARR',  3);
-
-/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
- */
-define('SERVICES_JSON_IN_OBJ',  4);
-
-/**
- * Marker constant for Services_JSON::decode(), used to flag stack state
- */
-define('SERVICES_JSON_IN_CMT', 5);
-
-/**
- * Behavior switch for Services_JSON::decode()
- */
-define('SERVICES_JSON_LOOSE_TYPE', 16);
-
-/**
- * Behavior switch for Services_JSON::decode()
- */
-define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
-
-/**
- * Converts to and from JSON format.
- *
- * Brief example of use:
- *
- * <code>
- * // create a new instance of Services_JSON
- * $json = new Services_JSON();
- *
- * // convert a complexe value to JSON notation, and send it to the browser
- * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
- * $output = $json->encode($value);
- *
- * print($output);
- * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
- *
- * // accept incoming POST data, assumed to be in JSON notation
- * $input = file_get_contents('php://input', 1000000);
- * $value = $json->decode($input);
- * </code>
- */
-class Services_JSON
-{
-   /**
-    * constructs a new JSON instance
-    *
-    * @param    int     $use    object behavior flags; combine with boolean-OR
-    *
-    *                           possible values:
-    *                           - SERVICES_JSON_LOOSE_TYPE:  loose typing.
-    *                                   "{...}" syntax creates associative arrays
-    *                                   instead of objects in decode().
-    *                           - SERVICES_JSON_SUPPRESS_ERRORS:  error suppression.
-    *                                   Values which can't be encoded (e.g. resources)
-    *                                   appear as NULL instead of throwing errors.
-    *                                   By default, a deeply-nested resource will
-    *                                   bubble up with an error, so all return values
-    *                                   from encode() should be checked with isError()
-    */
-    function Services_JSON($use = 0)
-    {
-        $this->use = $use;
-    }
-
-   /**
-    * convert a string from one UTF-16 char to one UTF-8 char
-    *
-    * Normally should be handled by mb_convert_encoding, but
-    * provides a slower PHP-only method for installations
-    * that lack the multibye string extension.
-    *
-    * @param    string  $utf16  UTF-16 character
-    * @return   string  UTF-8 character
-    * @access   private
-    */
-    function utf162utf8($utf16)
-    {
-        // oh please oh please oh please oh please oh please
-        if(function_exists('mb_convert_encoding')) {
-            return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
-        }
-
-        $bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
-
-        switch(true) {
-            case ((0x7F & $bytes) == $bytes):
-                // this case should never be reached, because we are in ASCII range
-                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                return chr(0x7F & $bytes);
-
-            case (0x07FF & $bytes) == $bytes:
-                // return a 2-byte UTF-8 character
-                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                return chr(0xC0 | (($bytes >> 6) & 0x1F))
-                     . chr(0x80 | ($bytes & 0x3F));
-
-            case (0xFFFF & $bytes) == $bytes:
-                // return a 3-byte UTF-8 character
-                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                return chr(0xE0 | (($bytes >> 12) & 0x0F))
-                     . chr(0x80 | (($bytes >> 6) & 0x3F))
-                     . chr(0x80 | ($bytes & 0x3F));
-        }
-
-        // ignoring UTF-32 for now, sorry
-        return '';
-    }
-
-   /**
-    * convert a string from one UTF-8 char to one UTF-16 char
-    *
-    * Normally should be handled by mb_convert_encoding, but
-    * provides a slower PHP-only method for installations
-    * that lack the multibye string extension.
-    *
-    * @param    string  $utf8   UTF-8 character
-    * @return   string  UTF-16 character
-    * @access   private
-    */
-    function utf82utf16($utf8)
-    {
-        // oh please oh please oh please oh please oh please
-        if(function_exists('mb_convert_encoding')) {
-            return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
-        }
-
-        switch(strlen($utf8)) {
-            case 1:
-                // this case should never be reached, because we are in ASCII range
-                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                return $utf8;
-
-            case 2:
-                // return a UTF-16 character from a 2-byte UTF-8 char
-                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                return chr(0x07 & (ord($utf8{0}) >> 2))
-                     . chr((0xC0 & (ord($utf8{0}) << 6))
-                         | (0x3F & ord($utf8{1})));
-
-            case 3:
-                // return a UTF-16 character from a 3-byte UTF-8 char
-                // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                return chr((0xF0 & (ord($utf8{0}) << 4))
-                         | (0x0F & (ord($utf8{1}) >> 2)))
-                     . chr((0xC0 & (ord($utf8{1}) << 6))
-                         | (0x7F & ord($utf8{2})));
-        }
-
-        // ignoring UTF-32 for now, sorry
-        return '';
-    }
-
-   /**
-    * encodes an arbitrary variable into JSON format
-    *
-    * @param    mixed   $var    any number, boolean, string, array, or object to be encoded.
-    *                           see argument 1 to Services_JSON() above for array-parsing behavior.
-    *                           if var is a strng, note that encode() always expects it
-    *                           to be in ASCII or UTF-8 format!
-    *
-    * @return   mixed   JSON string representation of input var or an error if a problem occurs
-    * @access   public
-    */
-    function encode($var)
-    {
-        switch (gettype($var)) {
-            case 'boolean':
-                return $var ? 'true' : 'false';
-
-            case 'NULL':
-                return 'null';
-
-            case 'integer':
-                return (int) $var;
-
-            case 'double':
-            case 'float':
-                return (float) $var;
-
-            case 'string':
-                // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
-                $ascii = '';
-                $strlen_var = strlen($var);
-
-               /*
-                * Iterate over every character in the string,
-                * escaping with a slash or encoding to UTF-8 where necessary
-                */
-                for ($c = 0; $c < $strlen_var; ++$c) {
-
-                    $ord_var_c = ord($var{$c});
-
-                    switch (true) {
-                        case $ord_var_c == 0x08:
-                            $ascii .= '\b';
-                            break;
-                        case $ord_var_c == 0x09:
-                            $ascii .= '\t';
-                            break;
-                        case $ord_var_c == 0x0A:
-                            $ascii .= '\n';
-                            break;
-                        case $ord_var_c == 0x0C:
-                            $ascii .= '\f';
-                            break;
-                        case $ord_var_c == 0x0D:
-                            $ascii .= '\r';
-                            break;
-
-                        case $ord_var_c == 0x22:
-                        case $ord_var_c == 0x2F:
-                        case $ord_var_c == 0x5C:
-                            // double quote, slash, slosh
-                            $ascii .= '\\'.$var{$c};
-                            break;
-
-                        case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
-                            // characters U-00000000 - U-0000007F (same as ASCII)
-                            $ascii .= $var{$c};
-                            break;
-
-                        case (($ord_var_c & 0xE0) == 0xC0):
-                            // characters U-00000080 - U-000007FF, mask 110XXXXX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
-                            $c += 1;
-                            $utf16 = $this->utf82utf16($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xF0) == 0xE0):
-                            // characters U-00000800 - U-0000FFFF, mask 1110XXXX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c + 1}),
-                                         ord($var{$c + 2}));
-                            $c += 2;
-                            $utf16 = $this->utf82utf16($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xF8) == 0xF0):
-                            // characters U-00010000 - U-001FFFFF, mask 11110XXX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c + 1}),
-                                         ord($var{$c + 2}),
-                                         ord($var{$c + 3}));
-                            $c += 3;
-                            $utf16 = $this->utf82utf16($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xFC) == 0xF8):
-                            // characters U-00200000 - U-03FFFFFF, mask 111110XX
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c + 1}),
-                                         ord($var{$c + 2}),
-                                         ord($var{$c + 3}),
-                                         ord($var{$c + 4}));
-                            $c += 4;
-                            $utf16 = $this->utf82utf16($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-
-                        case (($ord_var_c & 0xFE) == 0xFC):
-                            // characters U-04000000 - U-7FFFFFFF, mask 1111110X
-                            // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                            $char = pack('C*', $ord_var_c,
-                                         ord($var{$c + 1}),
-                                         ord($var{$c + 2}),
-                                         ord($var{$c + 3}),
-                                         ord($var{$c + 4}),
-                                         ord($var{$c + 5}));
-                            $c += 5;
-                            $utf16 = $this->utf82utf16($char);
-                            $ascii .= sprintf('\u%04s', bin2hex($utf16));
-                            break;
-                    }
-                }
-
-                return '"'.$ascii.'"';
-
-            case 'array':
-               /*
-                * As per JSON spec if any array key is not an integer
-                * we must treat the the whole array as an object. We
-                * also try to catch a sparsely populated associative
-                * array with numeric keys here because some JS engines
-                * will create an array with empty indexes up to
-                * max_index which can cause memory issues and because
-                * the keys, which may be relevant, will be remapped
-                * otherwise.
-                *
-                * As per the ECMA and JSON specification an object may
-                * have any string as a property. Unfortunately due to
-                * a hole in the ECMA specification if the key is a
-                * ECMA reserved word or starts with a digit the
-                * parameter is only accessible using ECMAScript's
-                * bracket notation.
-                */
-
-                // treat as a JSON object
-                if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
-                    $properties = array_map(array($this, 'name_value'),
-                                            array_keys($var),
-                                            array_values($var));
-
-                    foreach($properties as $property) {
-                        if(Services_JSON::isError($property)) {
-                            return $property;
-                        }
-                    }
-
-                    return '{' . join(',', $properties) . '}';
-                }
-
-                // treat it like a regular array
-                $elements = array_map(array($this, 'encode'), $var);
-
-                foreach($elements as $element) {
-                    if(Services_JSON::isError($element)) {
-                        return $element;
-                    }
-                }
-
-                return '[' . join(',', $elements) . ']';
-
-            case 'object':
-                $vars = get_object_vars($var);
-
-                $properties = array_map(array($this, 'name_value'),
-                                        array_keys($vars),
-                                        array_values($vars));
-
-                foreach($properties as $property) {
-                    if(Services_JSON::isError($property)) {
-                        return $property;
-                    }
-                }
-
-                return '{' . join(',', $properties) . '}';
-
-            default:
-                return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS)
-                    ? 'null'
-                    : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string");
-        }
-    }
-
-   /**
-    * array-walking function for use in generating JSON-formatted name-value pairs
-    *
-    * @param    string  $name   name of key to use
-    * @param    mixed   $value  reference to an array element to be encoded
-    *
-    * @return   string  JSON-formatted name-value pair, like '"name":value'
-    * @access   private
-    */
-    function name_value($name, $value)
-    {
-        $encoded_value = $this->encode($value);
-
-        if(Services_JSON::isError($encoded_value)) {
-            return $encoded_value;
-        }
-
-        return $this->encode(strval($name)) . ':' . $encoded_value;
-    }
-
-   /**
-    * reduce a string by removing leading and trailing comments and whitespace
-    *
-    * @param    $str    string      string value to strip of comments and whitespace
-    *
-    * @return   string  string value stripped of comments and whitespace
-    * @access   private
-    */
-    function reduce_string($str)
-    {
-        $str = preg_replace(array(
-
-                // eliminate single line comments in '// ...' form
-                '#^\s*//(.+)$#m',
-
-                // eliminate multi-line comments in '/* ... */' form, at start of string
-                '#^\s*/\*(.+)\*/#Us',
-
-                // eliminate multi-line comments in '/* ... */' form, at end of string
-                '#/\*(.+)\*/\s*$#Us'
-
-            ), '', $str);
-
-        // eliminate extraneous space
-        return trim($str);
-    }
-
-   /**
-    * decodes a JSON string into appropriate variable
-    *
-    * @param    string  $str    JSON-formatted string
-    *
-    * @return   mixed   number, boolean, string, array, or object
-    *                   corresponding to given JSON input string.
-    *                   See argument 1 to Services_JSON() above for object-output behavior.
-    *                   Note that decode() always returns strings
-    *                   in ASCII or UTF-8 format!
-    * @access   public
-    */
-    function decode($str)
-    {
-        $str = $this->reduce_string($str);
-
-        switch (strtolower($str)) {
-            case 'true':
-                return true;
-
-            case 'false':
-                return false;
-
-            case 'null':
-                return null;
-
-            default:
-                $m = array();
-
-                if (is_numeric($str)) {
-                    // Lookie-loo, it's a number
-
-                    // This would work on its own, but I'm trying to be
-                    // good about returning integers where appropriate:
-                    // return (float)$str;
-
-                    // Return float or int, as appropriate
-                    return ((float)$str == (integer)$str)
-                        ? (integer)$str
-                        : (float)$str;
-
-                } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) {
-                    // STRINGS RETURNED IN UTF-8 FORMAT
-                    $delim = substr($str, 0, 1);
-                    $chrs = substr($str, 1, -1);
-                    $utf8 = '';
-                    $strlen_chrs = strlen($chrs);
-
-                    for ($c = 0; $c < $strlen_chrs; ++$c) {
-
-                        $substr_chrs_c_2 = substr($chrs, $c, 2);
-                        $ord_chrs_c = ord($chrs{$c});
-
-                        switch (true) {
-                            case $substr_chrs_c_2 == '\b':
-                                $utf8 .= chr(0x08);
-                                ++$c;
-                                break;
-                            case $substr_chrs_c_2 == '\t':
-                                $utf8 .= chr(0x09);
-                                ++$c;
-                                break;
-                            case $substr_chrs_c_2 == '\n':
-                                $utf8 .= chr(0x0A);
-                                ++$c;
-                                break;
-                            case $substr_chrs_c_2 == '\f':
-                                $utf8 .= chr(0x0C);
-                                ++$c;
-                                break;
-                            case $substr_chrs_c_2 == '\r':
-                                $utf8 .= chr(0x0D);
-                                ++$c;
-                                break;
-
-                            case $substr_chrs_c_2 == '\\"':
-                            case $substr_chrs_c_2 == '\\\'':
-                            case $substr_chrs_c_2 == '\\\\':
-                            case $substr_chrs_c_2 == '\\/':
-                                if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
-                                   ($delim == "'" && $substr_chrs_c_2 != '\\"')) {
-                                    $utf8 .= $chrs{++$c};
-                                }
-                                break;
-
-                            case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)):
-                                // single, escaped unicode character
-                                $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))
-                                       . chr(hexdec(substr($chrs, ($c + 4), 2)));
-                                $utf8 .= $this->utf162utf8($utf16);
-                                $c += 5;
-                                break;
-
-                            case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
-                                $utf8 .= $chrs{$c};
-                                break;
-
-                            case ($ord_chrs_c & 0xE0) == 0xC0:
-                                // characters U-00000080 - U-000007FF, mask 110XXXXX
-                                //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                $utf8 .= substr($chrs, $c, 2);
-                                ++$c;
-                                break;
-
-                            case ($ord_chrs_c & 0xF0) == 0xE0:
-                                // characters U-00000800 - U-0000FFFF, mask 1110XXXX
-                                // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                $utf8 .= substr($chrs, $c, 3);
-                                $c += 2;
-                                break;
-
-                            case ($ord_chrs_c & 0xF8) == 0xF0:
-                                // characters U-00010000 - U-001FFFFF, mask 11110XXX
-                                // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                $utf8 .= substr($chrs, $c, 4);
-                                $c += 3;
-                                break;
-
-                            case ($ord_chrs_c & 0xFC) == 0xF8:
-                                // characters U-00200000 - U-03FFFFFF, mask 111110XX
-                                // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                $utf8 .= substr($chrs, $c, 5);
-                                $c += 4;
-                                break;
-
-                            case ($ord_chrs_c & 0xFE) == 0xFC:
-                                // characters U-04000000 - U-7FFFFFFF, mask 1111110X
-                                // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-                                $utf8 .= substr($chrs, $c, 6);
-                                $c += 5;
-                                break;
-
-                        }
-
-                    }
-
-                    return $utf8;
-
-                } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
-                    // array, or object notation
-
-                    if ($str{0} == '[') {
-                        $stk = array(SERVICES_JSON_IN_ARR);
-                        $arr = array();
-                    } else {
-                        if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
-                            $stk = array(SERVICES_JSON_IN_OBJ);
-                            $obj = array();
-                        } else {
-                            $stk = array(SERVICES_JSON_IN_OBJ);
-                            $obj = new stdClass();
-                        }
-                    }
-
-                    array_push($stk, array('what'  => SERVICES_JSON_SLICE,
-                                           'where' => 0,
-                                           'delim' => false));
-
-                    $chrs = substr($str, 1, -1);
-                    $chrs = $this->reduce_string($chrs);
-
-                    if ($chrs == '') {
-                        if (reset($stk) == SERVICES_JSON_IN_ARR) {
-                            return $arr;
-
-                        } else {
-                            return $obj;
-
-                        }
-                    }
-
-                    //print("\nparsing {$chrs}\n");
-
-                    $strlen_chrs = strlen($chrs);
-
-                    for ($c = 0; $c <= $strlen_chrs; ++$c) {
-
-                        $top = end($stk);
-                        $substr_chrs_c_2 = substr($chrs, $c, 2);
-
-                        if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
-                            // found a comma that is not inside a string, array, etc.,
-                            // OR we've reached the end of the character list
-                            $slice = substr($chrs, $top['where'], ($c - $top['where']));
-                            array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false));
-                            //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                            if (reset($stk) == SERVICES_JSON_IN_ARR) {
-                                // we are in an array, so just push an element onto the stack
-                                array_push($arr, $this->decode($slice));
-
-                            } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
-                                // we are in an object, so figure
-                                // out the property name and set an
-                                // element in an associative array,
-                                // for now
-                                $parts = array();
-                                
-                                if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
-                                    // "name":value pair
-                                    $key = $this->decode($parts[1]);
-                                    $val = $this->decode($parts[2]);
-
-                                    if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
-                                        $obj[$key] = $val;
-                                    } else {
-                                        $obj->$key = $val;
-                                    }
-                                } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
-                                    // name:value pair, where name is unquoted
-                                    $key = $parts[1];
-                                    $val = $this->decode($parts[2]);
-
-                                    if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
-                                        $obj[$key] = $val;
-                                    } else {
-                                        $obj->$key = $val;
-                                    }
-                                }
-
-                            }
-
-                        } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
-                            // found a quote, and we are not inside a string
-                            array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
-                            //print("Found start of string at {$c}\n");
-
-                        } elseif (($chrs{$c} == $top['delim']) &&
-                                 ($top['what'] == SERVICES_JSON_IN_STR) &&
-                                 ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
-                            // found a quote, we're in a string, and it's not escaped
-                            // we know that it's not escaped becase there is _not_ an
-                            // odd number of backslashes at the end of the string so far
-                            array_pop($stk);
-                            //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
-
-                        } elseif (($chrs{$c} == '[') &&
-                                 in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
-                            // found a left-bracket, and we are in an array, object, or slice
-                            array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
-                            //print("Found start of array at {$c}\n");
-
-                        } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
-                            // found a right-bracket, and we're in an array
-                            array_pop($stk);
-                            //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                        } elseif (($chrs{$c} == '{') &&
-                                 in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
-                            // found a left-brace, and we are in an array, object, or slice
-                            array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
-                            //print("Found start of object at {$c}\n");
-
-                        } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
-                            // found a right-brace, and we're in an object
-                            array_pop($stk);
-                            //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                        } elseif (($substr_chrs_c_2 == '/*') &&
-                                 in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
-                            // found a comment start, and we are in an array, object, or slice
-                            array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false));
-                            $c++;
-                            //print("Found start of comment at {$c}\n");
-
-                        } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) {
-                            // found a comment end, and we're in one now
-                            array_pop($stk);
-                            $c++;
-
-                            for ($i = $top['where']; $i <= $c; ++$i)
-                                $chrs = substr_replace($chrs, ' ', $i, 1);
-
-                            //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
-
-                        }
-
-                    }
-
-                    if (reset($stk) == SERVICES_JSON_IN_ARR) {
-                        return $arr;
-
-                    } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
-                        return $obj;
-
-                    }
-
-                }
-        }
-    }
-
-    /**
-     * @todo Ultimately, this should just call PEAR::isError()
-     */
-    function isError($data, $code = null)
-    {
-        if (class_exists('pear')) {
-            return PEAR::isError($data, $code);
-        } elseif (is_object($data) && (get_class($data) == 'services_json_error' ||
-                                 is_subclass_of($data, 'services_json_error'))) {
-            return true;
-        }
-
-        return false;
-    }
-}
-
-if (class_exists('PEAR_Error')) {
-
-    class Services_JSON_Error extends PEAR_Error
-    {
-        function Services_JSON_Error($message = 'unknown error', $code = null,
-                                     $mode = null, $options = null, $userinfo = null)
-        {
-            parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
-        }
-    }
-
-} else {
-
-    /**
-     * @todo Ultimately, this class shall be descended from PEAR_Error
-     */
-    class Services_JSON_Error
-    {
-        function Services_JSON_Error($message = 'unknown error', $code = null,
-                                     $mode = null, $options = null, $userinfo = null)
-        {
-
-        }
-    }
-
-}
-    
-?>

+ 0 - 16
pages/php-ofc-library/README.txt

@@ -1,16 +0,0 @@
-Open Flash Chart - PHP libraries. These help create data files for Open Flash Chart.
-Copyright (C) 2007 
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library 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
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

+ 0 - 231
pages/php-ofc-library/dot_base.php

@@ -1,231 +0,0 @@
-<?php
-
-/**
- * A private class. All the other line-dots inherit from this.
- * Gives them all some common methods.
- */ 
-class dot_base
-{
-	/**
-	 * @param $type string
-	 * @param $value integer
-	 */
-	function dot_base($type, $value=null)
-	{
-		$this->type = $type;
-		if( isset( $value ) )
-			$this->value( $value );
-	}
-	
-	/**
-	 * For line charts that only require a Y position
-	 * for each point.
-	 * @param $value as integer, the Y position
-	 */
-	function value( $value )
-	{
-		$this->value = $value;
-	}
-	
-	/**
-	 * For scatter charts that require an X and Y position for
-	 * each point.
-	 * 
-	 * @param $x as integer
-	 * @param $y as integer
-	 */
-	function position( $x, $y )
-	{
-		$this->x = $x;
-		$this->y = $y;
-	}
-	
-	/**
-	 * @param $colour is a string, HEX colour, e.g. '#FF0000' red
-	 */
-	function colour($colour)
-	{
-		$this->colour = $colour;
-		return $this;
-	}
-	
-	/**
-	 * The tooltip for this dot.
-	 */
-	function tooltip( $tip )
-	{
-		$this->tip = $tip;
-		return $this;
-	}
-	
-	/**
-	 * @param $size is an integer. Size of the dot.
-	 */
-	function size($size)
-	{
-		$tmp = 'dot-size';
-		$this->$tmp = $size;
-		return $this;
-	}
-	
-	/**
-	 * a private method
-	 */
-	function type( $type )
-	{
-		$this->type = $type;
-		return $this;
-	}
-	
-	/**
-	 * @param $size is an integer. The size of the hollow 'halo' around the dot that masks the line.
-	 */
-	function halo_size( $size )
-	{
-		$tmp = 'halo-size';
-		$this->$tmp = $size;
-		return $this;
-	}
-	
-	/**
-	 * @param $do as string. One of three options (examples):
-	 *  - "http://example.com" - browse to this URL
-	 *  - "https://example.com" - browse to this URL
-	 *  - "trace:message" - print this message in the FlashDevelop debug pane
-	 *  - all other strings will be called as Javascript functions, so a string "hello_world"
-	 *  will call the JS function "hello_world(index)". It passes in the index of the
-	 *  point.
-	 */
-	function on_click( $do )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $do;
-	}
-}
-
-/**
- * Draw a hollow dot
- */
-class hollow_dot extends dot_base
-{	
-	function hollow_dot($value=null)
-	{
-		parent::dot_base( 'hollow-dot', $value );
-	}
-}
-
-/**
- * Draw a star
- */
-class star extends dot_base
-{
-	/**
-	 * The constructor, takes an optional $value
-	 */
-	function star($value=null)
-	{
-		parent::dot_base( 'star', $value );
-	}
-	
-	/**
-	 * @param $angle is an integer.
-	 */
-	function rotation($angle)
-	{
-		$this->rotation = $angle;
-		return $this;
-	}
-	
-	/**
-	 * @param $is_hollow is a boolean.
-	 */
-	function hollow($is_hollow)
-	{
-		$this->hollow = $is_hollow;
-	}
-}
-
-/**
- * Draw a 'bow tie' shape.
- */
-class bow extends dot_base
-{
-	/**
-	 * The constructor, takes an optional $value
-	 */
-	function bow($value=null)
-	{
-		parent::dot_base( 'bow', $value );
-	}
-	
-	/**
-	 * Rotate the anchor object.
-	 * @param $angle is an integer.
-	 */
-	function rotation($angle)
-	{
-		$this->rotation = $angle;
-		return $this;
-	}
-}
-
-/**
- * An <i><b>n</b></i> sided shape.
- */
-class anchor extends dot_base
-{
-	/**
-	 * The constructor, takes an optional $value
-	 */
-	function anchor($value=null)
-	{
-		parent::dot_base( 'anchor', $value );
-	}
-	
-	/**
-	 * Rotate the anchor object.
-	 * @param $angle is an integer.
-	 */
-	function rotation($angle)
-	{
-		$this->rotation = $angle;
-		return $this;
-	}
-	
-	/**
-	 * @param $sides is an integer. Number of sides this shape has.
-	 */
-	function sides($sides)
-	{
-		$this->sides = $sides;
-		return $this;
-	}
-}
-
-/**
- * A simple dot
- */
-class dot extends dot_base
-{
-	/**
-	 * The constructor, takes an optional $value
-	 */
-	function dot($value=null)
-	{
-		parent::dot_base( 'dot', $value );
-	}
-}
-
-/**
- * A simple dot
- */
-class solid_dot extends dot_base
-{
-	/**
-	 * The constructor, takes an optional $value
-	 */
-	function solid_dot($value=null)
-	{
-		parent::dot_base( 'solid-dot', $value );
-	}
-}

+ 0 - 5
pages/php-ofc-library/exclude.txt

@@ -1,5 +0,0 @@
-#
-# The following source is not part of the buid, event though it's a standard file from php-ofc-library
-# but: 1) it is not used by iTop and 2) it causes a security/vulnerability issue by allowing file uploads to anywhere
-#
-ofc_upload_image.php

+ 0 - 86
pages/php-ofc-library/json_format.php

@@ -1,86 +0,0 @@
-<?php
-
-// Pretty print some JSON
-function json_format($json)
-{
-    $tab = "  ";
-    $new_json = "";
-    $indent_level = 0;
-    $in_string = false;
-
-/*
- commented out by monk.e.boy 22nd May '08
- because my web server is PHP4, and
- json_* are PHP5 functions...
-
-    $json_obj = json_decode($json);
-
-    if($json_obj === false)
-        return false;
-
-    $json = json_encode($json_obj);
-*/
-    $len = strlen($json);
-
-    for($c = 0; $c < $len; $c++)
-    {
-        $char = $json[$c];
-        switch($char)
-        {
-            case '{':
-            case '[':
-                if(!$in_string)
-                {
-                    $new_json .= $char . "\n" . str_repeat($tab, $indent_level+1);
-                    $indent_level++;
-                }
-                else
-                {
-                    $new_json .= $char;
-                }
-                break;
-            case '}':
-            case ']':
-                if(!$in_string)
-                {
-                    $indent_level--;
-                    $new_json .= "\n" . str_repeat($tab, $indent_level) . $char;
-                }
-                else
-                {
-                    $new_json .= $char;
-                }
-                break;
-            case ',':
-                if(!$in_string)
-                {
-                    $new_json .= ",\n" . str_repeat($tab, $indent_level);
-                }
-                else
-                {
-                    $new_json .= $char;
-                }
-                break;
-            case ':':
-                if(!$in_string)
-                {
-                    $new_json .= ": ";
-                }
-                else
-                {
-                    $new_json .= $char;
-                }
-                break;
-            case '"':
-                if($c > 0 && $json[$c-1] != '\\')
-                {
-                    $in_string = !$in_string;
-                }
-            default:
-                $new_json .= $char;
-                break;                   
-        }
-    }
-
-    return $new_json;
-}

+ 0 - 40
pages/php-ofc-library/ofc_area_base.php

@@ -1,40 +0,0 @@
-<?php
-
-/**
- * inherits from line
- */
-class area extends line
-{
-	function area()
-	{
-		$this->type      = "area";
-	}
-	
-	/**
-	 * the fill colour
-	 */
-	function set_fill_colour( $colour )
-	{
-		$this->fill = $colour;
-	}
-	
-	/**
-	 * sugar: see set_fill_colour
-	 */
-	function fill_colour( $colour )
-	{
-		$this->set_fill_colour( $colour );
-		return $this;
-	}
-	
-	function set_fill_alpha( $alpha )
-	{
-		$tmp = "fill-alpha";
-		$this->$tmp = $alpha;
-	}
-	
-	function set_loop()
-	{
-		$this->loop = true;
-	}
-}

+ 0 - 10
pages/php-ofc-library/ofc_area_hollow.php

@@ -1,10 +0,0 @@
-<?php
-
-class area_hollow extends area_base
-{
-	function area_hollow()
-	{
-		$this->type      = "area_hollow";
-		parent::area_base();
-	}
-}

+ 0 - 10
pages/php-ofc-library/ofc_area_line.php

@@ -1,10 +0,0 @@
-<?php
-
-class area_line extends area_base
-{
-	function area_line()
-	{
-		$this->type      = "area_line";
-		parent::area_base();
-	}
-}

+ 0 - 27
pages/php-ofc-library/ofc_arrow.php

@@ -1,27 +0,0 @@
-<?php
-
-class ofc_arrow
-{
-	/**
-	 *@param $x as number. Start x position
-	 *@param $y as number. Start y position
-	 *@param $a as number. End x position
-	 *@param $b as number. End y position
-	 *@param $colour as string.
-	 *@param $barb_length as number. Length of the barbs in pixels.
-	 */
-	function ofc_arrow($x, $y, $a, $b, $colour, $barb_length=10)
-	{
-		$this->type     = "arrow";
-		$this->start	= array("x"=>$x, "y"=>$y);
-		$this->end		= array("x"=>$a, "y"=>$b);
-		$this->colour($colour);
-		$this->{"barb-length"} = $barb_length;
-	}
-	
-	function colour( $colour )
-	{
-		$this->colour = $colour;
-		return $this;
-	}
-}

+ 0 - 34
pages/php-ofc-library/ofc_bar.php

@@ -1,34 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class bar_value
-{
-	function bar_value( $top, $bottom=null )
-	{
-		$this->top = $top;
-		
-		if( isset( $bottom ) )
-			$this->bottom = $bottom;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-}
-
-class bar extends bar_base
-{
-	function bar()
-	{
-		$this->type      = "bar";
-		parent::bar_base();
-	}
-}
-

+ 0 - 22
pages/php-ofc-library/ofc_bar_3d.php

@@ -1,22 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class bar_3d_value
-{
-	function bar_3d_value( $top )
-	{
-		$this->top = $top;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-}
-

+ 0 - 97
pages/php-ofc-library/ofc_bar_base.php

@@ -1,97 +0,0 @@
-<?php
-
-/* this is a base class */
-
-class bar_base
-{
-	function bar_base(){}
-
-	/**
-	 * @param $text as string the key text
-	 * @param $size as integer, size in pixels
-	 */
-	function set_key( $text, $size )
-	{
-		$this->text = $text;
-		$tmp = 'font-size';
-		$this->$tmp = $size;
-	}
-	
-	/**
-	 * syntatical sugar.
-	 */
-	function key( $text, $size )
-	{
-		$this->set_key( $text, $size );
-	}
-
-	/**
-	 * @param $v as an array, a mix of:
-	 * 	- a bar_value class. You can use this to customise the paramters of each bar.
-	 * 	- integer. This is the Y position of the top of the bar.
-	 */
-	function set_values( $v )
-	{
-		$this->values = $v;		
-	}
-	
-	/**
-	 * see set_values
-	 */
-	function append_value( $v )
-	{
-		$this->values[] = $v;		
-	}
-	
-	/**
-	 * @param $colour as string, a HEX colour, e.g. '#ff0000' red
-	 */
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;	
-	}
-	
-	/**
-	 *syntatical sugar
-	 */
-	function colour( $colour )
-	{
-		$this->set_colour( $colour );
-	}
-
-	/**
-	 * @param $alpha as real number (range 0 to 1), e.g. 0.5 is half transparent
-	 */
-	function set_alpha( $alpha )
-	{
-		$this->alpha = $alpha;	
-	}
-	
-	/**
-	 * @param $tip as string, the tip to show. May contain various magic variables.
-	 */
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;	
-	}
-	
-	/**
-	 *@param $on_show as line_on_show object
-	 */
-	function set_on_show($on_show)
-	{
-		$this->{'on-show'} = $on_show;
-	}
-	
-	function set_on_click( $text )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $text;
-	}
-	
-	function attach_to_right_y_axis()
-	{
-		$this->axis = 'right';
-	}
-}
-

+ 0 - 39
pages/php-ofc-library/ofc_bar_filled.php

@@ -1,39 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class bar_filled_value extends bar_value
-{
-	function bar_filled_value( $top, $bottom=null )
-	{
-		parent::bar_value( $top, $bottom );	
-	}
-	
-	function set_outline_colour( $outline_colour )
-	{
-		$tmp = 'outline-colour';
-		$this->$tmp = $outline_colour;	
-	}
-}
-
-class bar_filled extends bar_base
-{
-	function bar_filled( $colour=null, $outline_colour=null )
-	{
-		$this->type      = "bar_filled";
-		parent::bar_base();
-		
-		if( isset( $colour ) )
-			$this->set_colour( $colour );
-		
-		if( isset( $outline_colour ) )
-			$this->set_outline_colour( $outline_colour );
-	}
-	
-	function set_outline_colour( $outline_colour )
-	{
-		$tmp = 'outline-colour';
-		$this->$tmp = $outline_colour;	
-	}
-}
-

+ 0 - 137
pages/php-ofc-library/ofc_bar_glass.php

@@ -1,137 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class bar_on_show
-{
-	/**
-	 *@param $type as string. Can be any one of:
-	 * - 'pop-up'
-	 * - 'drop'
-	 * - 'fade-in'
-	 * - 'grow-up'
-	 * - 'grow-down'
-	 * - 'pop'
-	 *
-	 * @param $cascade as float. Cascade in seconds
-	 * @param $delay as float. Delay before animation starts in seconds.
-	 */
-	function __construct($type, $cascade, $delay)
-	{
-		$this->type = $type;
-		$this->cascade = (float)$cascade;
-		$this->delay = (float)$delay;
-	}
-}
-
-class bar_value
-{
-	/**
-	 * @param $top as integer. The Y value of the top of the bar
-	 * @param OPTIONAL $bottom as integer. The Y value of the bottom of the bar, defaults to Y min.
-	 */
-	function bar_value( $top, $bottom=null )
-	{
-		$this->top = $top;
-		
-		if( isset( $bottom ) )
-			$this->bottom = $bottom;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-	
-	function on_click( $event )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $event;
-	}
-}
-
-class bar extends bar_base
-{
-	function bar()
-	{
-		$this->type      = "bar";
-		parent::bar_base();
-	}
-}
-
-class bar_glass extends bar_base
-{
-	function bar_glass()
-	{
-		$this->type      = "bar_glass";
-		parent::bar_base();
-	}
-}
-
-class bar_cylinder extends bar_base
-{
-	function bar_cylinder()
-	{
-		$this->type      = "bar_cylinder";
-		parent::bar_base();
-	}
-}
-
-class bar_cylinder_outline extends bar_base
-{
-	function bar_cylinder_outline()
-	{
-		$this->type      = "bar_cylinder_outline";
-		parent::bar_base();
-	}
-}
-
-class bar_rounded_glass extends bar_base
-{
-	function bar_rounded_glass()
-	{
-		$this->type      = "bar_round_glass";
-		parent::bar_base();
-	}
-}
-
-class bar_round extends bar_base
-{
-	function bar_round()
-	{
-		$this->type      = "bar_round";
-		parent::bar_base();
-	}
-}
-
-class bar_dome extends bar_base
-{
-	function bar_dome()
-	{
-		$this->type      = "bar_dome";
-		parent::bar_base();
-	}
-}
-
-class bar_round3d extends bar_base
-{
-	function bar_round3d()
-	{
-		$this->type      = "bar_round3d";
-		parent::bar_base();
-	}
-}
-
-class bar_3d extends bar_base
-{
-	function bar_3d()
-	{
-		$this->type      = "bar_3d";
-		parent::bar_base();
-	}
-}

+ 0 - 29
pages/php-ofc-library/ofc_bar_sketch.php

@@ -1,29 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class bar_sketch extends bar_base
-{
-	/**
-	 * @param $colour as string, HEX colour e.g. '#00ff00'
-	 * @param $outline_colour as string, HEX colour e.g. '#ff0000'
-	 * @param $fun_factor as integer, range 0 to 10. 0,1 and 2 are pretty boring.
-	 * 4 to 6 is a bit fun, 7 and above is lots of fun. 
-	 */
-	function bar_sketch( $colour, $outline_colour, $fun_factor )
-	{
-		$this->type      = "bar_sketch";
-		parent::bar_base();
-		
-		$this->set_colour( $colour );
-		$this->set_outline_colour( $outline_colour );
-		$this->offset = $fun_factor;
-	}
-	
-	function set_outline_colour( $outline_colour )
-	{
-		$tmp = 'outline-colour';
-		$this->$tmp = $outline_colour;	
-	}
-}
-

+ 0 - 55
pages/php-ofc-library/ofc_bar_stack.php

@@ -1,55 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class bar_stack extends bar_base
-{
-	function bar_stack()
-	{
-		$this->type      = "bar_stack";
-		parent::bar_base();
-	}
-	
-	function append_stack( $v )
-	{
-		$this->append_value( $v );
-	}
-	
-	// an array of HEX colours strings
-	// e.g. array( '#ff0000', '#00ff00' );
-	function set_colours( $colours )
-	{
-		$this->colours = $colours;
-	}
-	
-	// an array of bar_stack_value
-	function set_keys( $keys )
-	{
-		$this->keys = $keys;
-	}
-}
-
-class bar_stack_value
-{
-	function bar_stack_value( $val, $colour )
-	{
-		$this->val = $val;
-		$this->colour = $colour;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	} 
-}
-
-class bar_stack_key
-{
-	function bar_stack_key( $colour, $text, $font_size )
-	{
-		$this->colour = $colour;
-		$this->text = $text;
-		$tmp = 'font-size';
-		$this->$tmp = $font_size;
-	}
-}

+ 0 - 41
pages/php-ofc-library/ofc_candle.php

@@ -1,41 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class candle_value
-{
-	/**
-	 *
-	 */
-	function candle_value( $high, $open, $close, $low )
-	{
-		$this->high = $high;
-		$this->top = $open;
-		$this->bottom = $close;
-		$this->low = $low;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-}
-
-class candle extends bar_base
-{
-	function candle($colour, $negative_colour=null)
-	{
-		$this->type      = "candle";
-		parent::bar_base();
-		
-		$this->set_colour( $colour );
-		if(!is_null($negative_colour))
-			$this->{'negative-colour'} = $negative_colour;
-	}
-}
-

+ 0 - 64
pages/php-ofc-library/ofc_hbar.php

@@ -1,64 +0,0 @@
-<?php
-
-class hbar_value
-{
-	function hbar_value( $left, $right=null )
-	{
-		if( isset( $right ) )
-		{
-			$this->left = $left;
-			$this->right = $right;
-		}
-		else
-			$this->right = $left;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;	
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;	
-	}
-}
-
-class hbar
-{
-	function hbar( $colour )
-	{
-		$this->type      = "hbar";
-		$this->values    = array();
-		$this->set_colour( $colour );
-	}
-	
-	function append_value( $v )
-	{
-		$this->values[] = $v;		
-	}
-	
-	function set_values( $v )
-	{
-		foreach( $v as $val )
-			$this->append_value( new hbar_value( $val ) );
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;	
-	}
-	
-	function set_key( $text, $size )
-	{
-		$this->text = $text;
-		$tmp = 'font-size';
-		$this->$tmp = $size;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;	
-	}
-}
-

+ 0 - 157
pages/php-ofc-library/ofc_line.php

@@ -1,157 +0,0 @@
-<?php
-
-class line_on_show
-{
-	/**
-	 *@param $type as string. Can be any one of:
-	 * - 'pop-up'
-	 * - 'explode'
-	 * - 'mid-slide'
-	 * - 'drop'
-	 * - 'fade-in'
-	 * - 'shrink-in'
-	 *
-	 * @param $cascade as float. Cascade in seconds
-	 * @param $delay as float. Delay before animation starts in seconds.
-	 */
-	function __construct($type, $cascade, $delay)
-	{
-		$this->type = $type;
-		$this->cascade = (float)$cascade;
-		$this->delay = (float)$delay;
-	}
-}
-
-class line
-{
-	function line()
-	{
-		$this->type      = "line";
-		$this->values    = array();
-	}
-	
-	/**
-	 * Set the default dot that all the real
-	 * dots inherit their properties from. If you set the
-	 * default dot to be red, all values in your chart that
-	 * do not specify a colour will be red. Same for all the
-	 * other attributes such as tooltip, on-click, size etc...
-	 * 
-	 * @param $style as any class that inherits base_dot
-	 */
-	function set_default_dot_style( $style )
-	{
-		$tmp = 'dot-style';
-		$this->$tmp = $style;	
-	}
-	
-	/**
-	 * @param $v as array, can contain any combination of:
-	 *  - integer, Y position of the point
-	 *  - any class that inherits from dot_base
-	 *  - <b>null</b>
-	 */
-	function set_values( $v )
-	{
-		$this->values = $v;		
-	}
-	
-	/**
-     * Append a value to the line.
-     *
-     * @param mixed $v
-     */
-    function append_value($v)
-    {
-        $this->values[] = $v;       
-    }
-	
-	function set_width( $width )
-	{
-		$this->width = $width;		
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	/**
-	 * sytnatical sugar for set_colour
-	 */
-	function colour( $colour )
-	{
-		$this->set_colour( $colour );
-		return $this;
-	}
-	
-	function set_halo_size( $size )
-	{
-		$tmp = 'halo-size';
-		$this->$tmp = $size;		
-	}
-	
-	function set_key( $text, $font_size )
-	{
-		$this->text      = $text;
-		$tmp = 'font-size';
-		$this->$tmp = $font_size;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-	
-	/**
-	 * @param $text as string. A javascript function name as a string. The chart will
-	 * try to call this function, it will pass the chart id as the only parameter into
-	 * this function. E.g:
-	 * 
-	 */
-	function set_on_click( $text )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $text;
-	}
-	
-	function loop()
-	{
-		$this->loop = true;
-	}
-	
-	function line_style( $s )
-	{
-		$tmp = "line-style";
-		$this->$tmp = $s;
-	}
-	
-	    /**
-     * Sets the text for the line.
-     *
-     * @param string $text
-     */   
-    function set_text($text)
-    {
-        $this->text = $text;
-    }
-	
-	function attach_to_right_y_axis()
-	{
-		$this->axis = 'right';
-	}
-	
-	/**
-	 *@param $on_show as line_on_show object
-	 */
-	function set_on_show($on_show)
-	{
-		$this->{'on-show'} = $on_show;
-	}
-	
-	function on_show($on_show)
-	{
-		$this->set_on_show($on_show);
-		return $this;
-	}
-}

+ 0 - 92
pages/php-ofc-library/ofc_line_base.php

@@ -1,92 +0,0 @@
-<?php
-
-class line_base
-{
-	function line_base()
-	{
-		$this->type      = "line";
-		$this->text      = "Page views";
-		$tmp = 'font-size';
-		$this->$tmp = 10;
-		
-		$this->values    = array();
-	}
-	
-	function set_values( $v )
-	{
-		$this->values = $v;		
-	}
-	
-	/**
-     * Append a value to the line.
-     *
-     * @param mixed $v
-     */
-    function append_value($v)
-    {
-        $this->values[] = $v;       
-    }
-	
-	function set_width( $width )
-	{
-		$this->width = $width;		
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_dot_size( $size )
-	{
-		$tmp = 'dot-size';
-		$this->$tmp = $size;		
-	}
-	
-	function set_halo_size( $size )
-	{
-		$tmp = 'halo-size';
-		$this->$tmp = $size;		
-	}
-	
-	function set_key( $text, $font_size )
-	{
-		$this->text      = $text;
-		$tmp = 'font-size';
-		$this->$tmp = $font_size;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-	
-	function set_on_click( $text )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $text;
-	}
-	
-	function loop()
-	{
-		$this->loop = true;
-	}
-	
-	function line_style( $s )
-	{
-		$tmp = "line-style";
-		$this->$tmp = $s;
-	}
-	
-	    /**
-     * Sets the text for the line.
-     *
-     * @param string $text
-     */   
-    function set_text($text)
-    {
-        $this->text = $text;
-    }
-	
-	
-}

+ 0 - 33
pages/php-ofc-library/ofc_line_dot.php

@@ -1,33 +0,0 @@
-<?php
-
-class dot_value
-{
-	function dot_value( $value, $colour )
-	{
-		$this->value = $value;
-		$this->colour = $colour;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_size( $size )
-	{
-		$this->size = $size;
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-}
-
-class line_dot extends line_base
-{
-	function line_dot()
-	{
-		$this->type      = "line_dot";
-	}
-}

+ 0 - 9
pages/php-ofc-library/ofc_line_hollow.php

@@ -1,9 +0,0 @@
-<?php
-
-class line_hollow extends line_base
-{
-	function line_hollow()
-	{
-		$this->type      = "line_hollow";
-	}
-}

+ 0 - 11
pages/php-ofc-library/ofc_line_style.php

@@ -1,11 +0,0 @@
-<?php
-
-class line_style
-{
-	function line_style($on, $off)
-	{
-		$this->style	= "dash";
-		$this->on		= $on;
-		$this->off		= $off;
-	}
-}

+ 0 - 56
pages/php-ofc-library/ofc_menu.php

@@ -1,56 +0,0 @@
-<?php
-
-class ofc_menu_item
-{
-	/**
-	 * @param $text as string. The menu item text.
-	 * @param $javascript_function_name as string. The javascript function name, the
-	 * js function takes one parameter, the chart ID. See ofc_menu_item_camera for
-	 * some example code.
-	 */
-	function ofc_menu_item($text, $javascript_function_name)
-	{
-		$this->type = "text";
-		$this->text = $text;
-		$tmp = 'javascript-function';
-		$this->$tmp = $javascript_function_name;
-	}
-}
-
-class ofc_menu_item_camera
-{
-	/**
-	 * @param $text as string. The menu item text.
-	 * @param $javascript_function_name as string. The javascript function name, the
-	 * js function takes one parameter, the chart ID. So for example, our js function
-	 * could look like this:
-	 *
-	 * function save_image( chart_id )
-	 * {
-	 *     alert( chart_id );
-	 * }
-	 *
-	 * to make a menu item call this: ofc_menu_item_camera('Save chart', 'save_image');
-	 */
-	function ofc_menu_item_camera($text, $javascript_function_name)
-	{
-		$this->type = "camera-icon";
-		$this->text = $text;
-		$tmp = 'javascript-function';
-		$this->$tmp = $javascript_function_name;
-	}
-}
-
-class ofc_menu
-{
-	function ofc_menu($colour, $outline_colour)
-	{
-		$this->colour = $colour;
-		$this->outline_colour = $outline_colour;
-	}
-	
-	function values($values)
-	{
-		$this->values = $values;
-	}
-}

+ 0 - 257
pages/php-ofc-library/ofc_pie.php

@@ -1,257 +0,0 @@
-<?php
-
-class pie_value
-{
-	function pie_value( $value, $label )
-	{
-		$this->value = $value;
-		$this->label = $label;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_label( $label, $label_colour, $font_size )
-	{
-		$this->label = $label;
-		
-		$tmp = 'label-colour';
-		$this->$tmp = $label_colour;
-		
-		$tmp = 'font-size';
-		$this->$tmp = $font_size;
-		
-	}
-	
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-	
-	function on_click( $event )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $event;
-	}
-	
-	
-	/**
-	 * An object that inherits from base_pie_animation
-	 */
-	function add_animation( $animation )
-	{
-		if( !isset( $this->animate ) )
-			$this->animate = array();
-			
-		$this->animate[] = $animation;
-		
-		return $this;
-	}
-}
-
-class base_pie_animation{}
-
-/**
- * fade the pie slice from $alpha (pie set_alpha) to 100% opaque.
- */
-class pie_fade extends base_pie_animation
-{
-	function pie_fade()
-	{
-		$this->type="fade";
-	}
-}
-
-/**
- * Bounce the pie slice out a little
- */
-class pie_bounce extends base_pie_animation
-{
-	/**
-	 * @param $distance as integer, distance to bounce in pixels
-	 */
-	function pie_bounce( $distance )
-	{
-		$this->type="bounce";
-		$this->distance = $distance;
-	}
-}
-
-/**
- * Make a pie chart and fill it with pie slices
- */
-class pie
-{
-	function pie()
-	{
-		$this->type      		= 'pie';
-	}
-	
-	function set_colours( $colours )
-	{
-		$this->colours = $colours;
-	}
-	
-	/**
-	 * Sugar wrapped around set_colours
-	 */
-	function colours( $colours )
-	{
-		$this->set_colours( $colours );
-		return $this;
-	}
-	
-	/**
-	 * @param $alpha as float (0-1) 0.75 = 3/4 visible
-	 */
-	function set_alpha( $alpha )
-	{
-		$this->alpha = $alpha;
-	}
-	
-	/**
-	 *sugar wrapped set_alpha
-	 **/
-	function alpha( $alpha )
-	{
-		$this->set_alpha( $alpha );
-		return $this;
-	}
-	
-	/**
-	 * @param $v as array containing one of
-	 *  - null
-	 *  - real or integer number
-	 *  - a pie_value object
-	 */
-	function set_values( $v )
-	{
-		$this->values = $v;		
-	}
-
-	/**
-	 * sugar for set_values
-	 */
-	function values( $v )
-	{
-		$this->set_values( $v );
-		return $this;
-	}
-	
-	/**
-	 * HACK to keep old code working.
-	 */
-	function set_animate( $bool )
-	{
-		if( $bool )
-			$this->add_animation( new pie_fade() );
-			
-	}
-	
-	/**
-	 * An object that inherits from base_pie_animation
-	 */
-	function add_animation( $animation )
-	{
-		if( !isset( $this->animate ) )
-			$this->animate = array();
-			
-		$this->animate[] = $animation;
-		
-		return $this;
-	}
-	
-	/**
-	 * @param $angle as real number
-	 */
-	function set_start_angle( $angle )
-	{
-		$tmp = 'start-angle';
-		$this->$tmp = $angle;
-	}
-	
-	/**
-	 * sugar for set_start_angle
-	 */
-	function start_angle($angle)
-	{
-		$this->set_start_angle( $angle );
-		return $this;
-	}
-	
-	/**
-	 * @param $tip as string. The tooltip text. May contain magic varibles
-	 */
-	function set_tooltip( $tip )
-	{
-		$this->tip = $tip;
-	}
-	
-	/**
-	 * sugar for set_tooltip
-	 */
-	function tooltip( $tip )
-	{
-		$this->set_tooltip( $tip );
-		return $this;
-	}
-	
-	function set_gradient_fill()
-	{
-		$tmp = 'gradient-fill';
-		$this->$tmp = true;
-	}
-	
-	function gradient_fill()
-	{
-		$this->set_gradient_fill();
-		return $this;
-	}
-	
-	/**
-	 * By default each label is the same colour as the slice,
-	 * but you can ovveride that behaviour using this method.
-	 * 
-	 * @param $label_colour as string HEX colour;
-	 */
-	function set_label_colour( $label_colour )
-	{
-		$tmp = 'label-colour';
-		$this->$tmp = $label_colour;	
-	}
-	
-	function label_colour( $label_colour )
-	{
-		$this->set_label_colour( $label_colour );
-		return $this;
-	}
-	
-	/**
-	 * Turn off the labels
-	 */
-	function set_no_labels()
-	{
-		$tmp = 'no-labels';
-		$this->$tmp = true;
-	}
-	
-	function on_click( $event )
-	{
-		$tmp = 'on-click';
-		$this->$tmp = $event;
-	}
-	
-	/**
-	 * Fix the radius of the pie chart. Take a look at the magic variable #radius#
-	 * for helping figure out what radius to set it to.
-	 * 
-	 * @param $radius as number
-	 */
-	function radius( $radius )
-	{
-		$this->radius = $radius;
-		return $this;
-	}
-}

+ 0 - 47
pages/php-ofc-library/ofc_radar_axis.php

@@ -1,47 +0,0 @@
-<?php
-
-class radar_axis
-{
-	function radar_axis( $max )
-	{
-		$this->set_max( $max );
-	}
-	
-	function set_max( $max )
-	{
-		$this->max = $max;
-	}
-	
-	function set_steps( $steps )
-	{
-		$this->steps = $steps;
-	}
-	
-	function set_stroke( $s )
-	{
-		$this->stroke = $s;
-	}
-    
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_grid_colour( $colour )
-	{
-		$tmp = 'grid-colour';
-		$this->$tmp = $colour;
-	}
-	
-	function set_labels( $labels )
-	{
-		$this->labels = $labels;
-	}
-	
-	function set_spoke_labels( $labels )
-	{
-		$tmp = 'spoke-labels';
-		$this->$tmp = $labels;
-	}
-}
-

+ 0 - 15
pages/php-ofc-library/ofc_radar_axis_labels.php

@@ -1,15 +0,0 @@
-<?php
-
-class radar_axis_labels
-{
-	// $labels : array
-	function radar_axis_labels( $labels )
-	{
-		$this->labels = $labels;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-}

+ 0 - 15
pages/php-ofc-library/ofc_radar_spoke_labels.php

@@ -1,15 +0,0 @@
-<?php
-
-class radar_spoke_labels
-{
-	// $labels : array
-	function radar_spoke_labels( $labels )
-	{
-		$this->labels = $labels;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-}

+ 0 - 47
pages/php-ofc-library/ofc_scatter.php

@@ -1,47 +0,0 @@
-<?php
-
-class scatter_value
-{
-	function scatter_value( $x, $y, $dot_size=-1 )
-	{
-		$this->x = $x;
-		$this->y = $y;
-		
-		if( $dot_size > 0 )
-		{
-			$tmp = 'dot-size';
-			$this->$tmp = $dot_size;
-		}
-	}
-}
-
-class scatter
-{
-	function scatter( $colour )
-	{
-		$this->type      = "scatter";
-		$this->set_colour( $colour );
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-
-	function set_default_dot_style( $style )
-	{
-		$tmp = 'dot-style';
-		$this->$tmp = $style;	
-	}
-	
-	/**
-	 * @param $v as array, can contain any combination of:
-	 *  - integer, Y position of the point
-	 *  - any class that inherits from scatter_value
-	 *  - <b>null</b>
-	 */
-	function set_values( $values )
-	{
-		$this->values = $values;
-	}
-}

+ 0 - 49
pages/php-ofc-library/ofc_scatter_line.php

@@ -1,49 +0,0 @@
-<?php
-
-class scatter_line
-{
-	function scatter_line( $colour, $width  )
-	{
-		$this->type      = "scatter_line";
-		$this->set_colour( $colour );
-		$this->set_width( $width );
-	}
-	
-	function set_default_dot_style( $style )
-	{
-		$tmp = 'dot-style';
-		$this->$tmp = $style;	
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_width( $width )
-	{
-		$this->width = $width;
-	}
-	
-	function set_values( $values )
-	{
-		$this->values = $values;
-	}
-	
-	function set_step_horizontal()
-	{
-		$this->stepgraph = 'horizontal';
-	}
-	
-	function set_step_vertical()
-	{
-		$this->stepgraph = 'vertical';
-	}
-	
-	function set_key( $text, $font_size )
-	{
-		$this->text      = $text;
-		$tmp = 'font-size';
-		$this->$tmp = $font_size;
-	}
-}

+ 0 - 25
pages/php-ofc-library/ofc_shape.php

@@ -1,25 +0,0 @@
-<?php
-
-class shape_point
-{
-	function shape_point( $x, $y )
-	{
-		$this->x = $x;
-		$this->y = $y;
-	}
-}
-
-class shape
-{
-	function shape( $colour )
-	{
-		$this->type		= "shape";
-		$this->colour	= $colour;
-		$this->values	= array();
-	}
-	
-	function append_value( $p )
-	{
-		$this->values[] = $p;	
-	}
-}

+ 0 - 43
pages/php-ofc-library/ofc_sugar.php

@@ -1,43 +0,0 @@
-<?php
-
-/**
- * Sugar: to make stars easier sometimes
- */
-class s_star extends star
-{
-	/**
-	 * I use this wrapper for default dot types,
-	 * it just makes the code easier to read.
-	 */
-	function s_star($colour, $size)
-	{
-		parent::star();
-		$this->colour($colour)->size($size);
-	}
-}
-
-class s_box extends anchor
-{
-	/**
-	 * I use this wrapper for default dot types,
-	 * it just makes the code easier to read.
-	 */
-	function s_box($colour, $size)
-	{
-		parent::anchor();
-		$this->colour($colour)->size($size)->rotation(45)->sides(4);
-	}
-}
-
-class s_hollow_dot extends hollow_dot
-{
-	/**
-	 * I use this wrapper for default dot types,
-	 * it just makes the code easier to read.
-	 */
-	function s_hollow_dot($colour, $size)
-	{
-		parent::hollow_dot();
-		$this->colour($colour)->size($size);
-	}
-}

+ 0 - 133
pages/php-ofc-library/ofc_tags.php

@@ -1,133 +0,0 @@
-<?php
-
-class ofc_tags
-{
-	function ofc_tags()
-	{
-		$this->type      = "tags";
-		$this->values	= array();
-	}
-	
-	function colour( $colour )
-	{
-		$this->colour = $colour;
-		return $this;
-	}
-	
-	/**
-	 *@param $font as string. e.g. "Verdana"
-	 *@param $size as integer. Size in px
-	 */
-	function font($font, $size)
-	{
-		$this->font = $font;
-		$this->{'font-size'} = $size;
-		return $this;
-	}
-
-	/**
-	 *@param $x as integer. Size of x padding in px
-	 *@param $y as integer. Size of y padding in px
-	 */
-	function padding($x, $y)
-	{
-		$this->{"pad-x"} = $x;
-		$this->{"pad-y"} = $y;
-		return $this;
-	}
-	
-	function rotate($angle)
-	{
-		$this->rotate($angle);
-		return $this;
-	}
-	
-	function align_x_center()
-	{
-		$this->{"align-x"} = "center";
-		return $this;
-	}
-	
-	function align_x_left()
-	{
-		$this->{"align-x"} = "left";
-		return $this;
-	}
-	
-	function align_x_right()
-	{
-		$this->{"align-x"} = "right";
-		return $this;
-	}
-	
-	function align_y_above()
-	{
-		$this->{"align-y"} = "above";
-		return $this;
-	}
-	
-	function align_y_below()
-	{
-		$this->{"align-y"} = "below";
-		return $this;
-	}
-	
-	function align_y_center()
-	{
-		$this->{"align-y"} = "center";
-		return $this;
-	}
-	
-	/**
-	 * This can contain some HTML, e.g:
-	 *  - "More <a href="javascript:alert(12);">info</a>"
-	 *  - "<a href="http://teethgrinder.co.uk">ofc</a>"
-	 */
-	function text($text)
-	{
-		$this->text = $text;
-		return $this;
-	}
-	
-	/**
-	 * This works, but to get the mouse pointer to change
-	 * to a little hand you need to use "<a href="">stuff</a>"-- see text()
-	 */
-	function on_click($on_click)
-	{
-		$this->{'on-click'} = $on_click;
-		return $this;
-	}
-	
-	/**
-	 *@param $bold boolean.
-	 *@param $underline boolean.
-	 *@param $border boolean.
-	 *@prarm $alpha real (0 to 1.0)
-	 */
-	function style($bold, $underline, $border, $alpha )
-	{
-		$this->bold = $bold;
-		$this->border = $underline;
-		$this->underline = $border;
-		$this->alpha = $alpha;
-		return $this;
-	}
-	
-	/**
-	 *@param $tag as ofc_tag
-	 */
-	function append_tag($tag)
-	{
-		$this->values[] = $tag;
-	}
-}
-
-class ofc_tag extends ofc_tags
-{
-	function ofc_tag($x, $y)
-	{
-		$this->x = $x;
-		$this->y = $y;
-	}
-}

+ 0 - 39
pages/php-ofc-library/ofc_title.php

@@ -1,39 +0,0 @@
-<?php
-
-/**
- * Set the title of a chart, make one of these and pass it into
- * open_flash_chart set_title
- */
-class title
-{
-	function title( $text='' )
-	{
-		$this->text = $text;
-	}
-	
-	/**
-	 * A css string. Can optionally contain:
-     * - font-size
-     * - font-family
-     * - font-weight
-     * - color
-     * - background-color
-     * - text-align
-     * - margin
-     * - margin-left
-     * - margin-right
-     * - margin-top
-     * - margin-bottom
-     * - padding
-     * - padding-left
-     * - padding-right
-     * - padding-top
-     * - padding-bottom
-     * just like the css we use all the time :-)
-	 */
-	function set_style( $css )
-	{
-		$this->style = $css;
-		//"{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}";		
-	}
-}

+ 0 - 67
pages/php-ofc-library/ofc_tooltip.php

@@ -1,67 +0,0 @@
-<?php
-
-include_once 'ofc_bar_base.php';
-
-class tooltip
-{
-	function tooltip(){}
-	
-	/**
-	 * @param $shadow as boolean. Enable drop shadow.
-	 */
-	function set_shadow( $shadow )
-	{
-		$this->shadow = $shadow;
-	}
-	
-	/**
-	 * @param $stroke as integer, border width in pixels (e.g. 5 )
-	 */
-	function set_stroke( $stroke )
-	{
-		$this->stroke = $stroke;
-	}
-	
-	/**
-	 * @param $colour as string, HEX colour e.g. '#0000ff'
-	 */
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	/**
-	 * @param $bg as string, HEX colour e.g. '#0000ff'
-	 */
-	function set_background_colour( $bg )
-	{
-		$this->background = $bg;
-	}
-	
-	/**
-	 * @param $style as string. A css style.
-	 */
-	function set_title_style( $style )
-	{
-		$this->title = $style;
-	}
-	
-	/**
-	 * @param $style as string. A css style.
-	 */
-    function set_body_style( $style )
-	{
-		$this->body = $style;
-	}
-	
-	function set_proximity()
-	{
-		$this->mouse = 1;
-	}
-	
-	function set_hover()
-	{
-		$this->mouse = 2;
-	}
-}
-

+ 0 - 70
pages/php-ofc-library/ofc_upload_image.php

@@ -1,70 +0,0 @@
-<?php
-
-//
-// In Open Flash Chart -> save_image debug mode, you
-// will see the 'echo' text in a new window.
-//
-
-/*
- 
-print_r( $_GET );
-print_r( $_POST );
-print_r( $_FILES );
-
-print_r( $GLOBALS );
-print_r( $GLOBALS["HTTP_RAW_POST_DATA"] );
-
-*/
-
-
-// default path for the image to be stored //
-$default_path = '../tmp-upload-images/';
-
-if (!file_exists($default_path)) mkdir($default_path, 0777, true);
-
-// full path to the saved image including filename //
-$destination = $default_path . basename( $_GET[ 'name' ] ); 
-
-echo 'Saving your image to: '. $destination;
-// print_r( $_POST );
-// print_r( $_SERVER );
-// echo $HTTP_RAW_POST_DATA;
-
-//
-// POST data is usually string data, but we are passing a RAW .png
-// so PHP is a bit confused and $_POST is empty. But it has saved
-// the raw bits into $HTTP_RAW_POST_DATA
-//
-
-$jfh = fopen($destination, 'w') or die("can't open file");
-fwrite($jfh, $HTTP_RAW_POST_DATA);
-fclose($jfh);
-
-//
-// LOOK:
-//
-exit();
-
-
-//
-// PHP5:
-//
-
-
-// default path for the image to be stored //
-$default_path = 'tmp-upload-images/';
-
-if (!file_exists($default_path)) mkdir($default_path, 0777, true);
-
-// full path to the saved image including filename //
-$destination = $default_path . basename( $_FILES[ 'Filedata' ][ 'name' ] ); 
-
-// move the image into the specified directory //
-if (move_uploaded_file($_FILES[ 'Filedata' ][ 'tmp_name' ], $destination)) {
-    echo "The file " . basename( $_FILES[ 'Filedata' ][ 'name' ] ) . " has been uploaded;";
-} else {
-    echo "FILE UPLOAD FAILED";
-}
-
-
-?>

+ 0 - 140
pages/php-ofc-library/ofc_x_axis.php

@@ -1,140 +0,0 @@
-<?php
-
-class x_axis
-{
-	function x_axis(){}
-
-	/**
-	 * @param $stroke as integer, with of the line and ticks
-	 */
-	function set_stroke( $stroke )
-	{
-		$this->stroke = $stroke;	
-	}
-	
-	function stroke( $stroke )
-	{
-		$this->set_stroke( $stroke );
-		return $this;
-	}
-	
-	/**
-	 *@param $colour as string HEX colour
-	 *@param $grid_colour as string HEX colour
-	 */
-	function set_colours( $colour, $grid_colour )
-	{
-		$this->set_colour( $colour );
-		$this->set_grid_colour( $grid_colour );
-	}
-	
-	/**
-	 *@param $colour as string HEX colour
-	 */
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;	
-	}
-	
-	function colour( $colour )
-	{
-		$this->set_colour($colour);
-		return $this;
-	}
-	
-	function set_tick_height( $height )
-	{
-		$tmp = 'tick-height';
-		$this->$tmp      		= $height;
-	}
-	
-	function tick_height( $height )
-	{
-		$this->set_tick_height($height);
-		return $this;
-	}
-	
-	function set_grid_colour( $colour )
-	{
-		$tmp = 'grid-colour';
-		$this->$tmp = $colour;
-	}
-	
-	function grid_colour( $colour )
-	{
-		$this->set_grid_colour($colour);
-		return $this;
-	}
-	
-	/**
-	 * @param $o is a boolean. If true, the X axis start half a step in
-	 * This defaults to True
-	 */
-	function set_offset( $o )
-	{
-		$this->offset = $o?true:false;	
-	}
-	
-	function offset( $o )
-	{
-		$this->set_offset($o);
-		return $this;
-	}
-	
-	/**
-	 * @param $steps as integer. Which grid lines and ticks are visible.
-	 */
-	function set_steps( $steps )
-	{
-		$this->steps = $steps;
-	}
-	
-	function steps( $steps )
-	{
-		$this->set_steps($steps);
-		return $this;
-	}
-	
-	/**
-	 * @param $val as an integer, the height in pixels of the 3D bar. Mostly
-	 * used for the 3D bar chart.
-	 */
-	function set_3d( $val )
-	{
-		$tmp = '3d';
-		$this->$tmp				= $val;		
-	}
-	
-	/**
-	 * @param $x_axis_labels as an x_axis_labels object
-	 * Use this to customize the labels (colour, font, etc...)
-	 */
-	function set_labels( $x_axis_labels )
-	{
-		//$this->labels = $v;
-		$this->labels = $x_axis_labels;
-	}
-	
-	/**
-	 * Sugar syntax: helper function to make the examples simpler.
-	 * @param $a is an array of labels
-	 */
-	function set_labels_from_array( $a )
-	{
-		$x_axis_labels = new x_axis_labels();
-		$x_axis_labels->set_labels( $a );
-		$this->labels = $x_axis_labels;
-		
-		if( isset( $this->steps ) )
-			$x_axis_labels->set_steps( $this->steps );
-	}
-	
-	/**
-	 * min and max.
-	 */
-	function set_range( $min, $max )
-	{
-		$this->min = $min;
-		$this->max = $max;
-	}
-}

+ 0 - 45
pages/php-ofc-library/ofc_x_axis_label.php

@@ -1,45 +0,0 @@
-<?php
-
-/**
- * x_axis_label see x_axis_labels
- */
-class x_axis_label
-{
-	function x_axis_label( $text, $colour, $size, $rotate )
-	{
-		$this->set_text( $text );
-		$this->set_colour( $colour );
-		$this->set_size( $size );
-		$this->set_rotate( $rotate );
-	}
-	
-	function set_text( $text )
-	{
-		$this->text = $text;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_size( $size )
-	{
-		$this->size = $size;
-	}
-	
-	function set_rotate( $rotate )
-	{
-		$this->rotate = $rotate;
-	}
-	
-	function set_vertical()
-	{
-		$this->rotate = "vertical";
-	}
-	
-	function set_visible()
-	{
-		$this->visible = true;
-	}
-}

+ 0 - 69
pages/php-ofc-library/ofc_x_axis_labels.php

@@ -1,69 +0,0 @@
-<?php
-
-class x_axis_labels
-{
-	function x_axis_labels(){}
-	
-	/**
-	 * @param $steps which labels are generated
-	 */
-	function set_steps( $steps )
-	{
-		$this->steps = $steps;
-	}
-	
-	/**
-	 * @param $steps as integer which labels are visible
-	 */
-	function visible_steps( $steps )
-	{
-		$this->{"visible-steps"} = $steps;
-		return $this;
-	}
-	
-	/**
-	 *
-	 * @param $labels as an array of [x_axis_label or string]
-	 */
-	function set_labels( $labels )
-	{
-		$this->labels = $labels;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	/**
-	 * font size in pixels
-	 */
-	function set_size( $size )
-	{
-		$this->size = $size;
-	}
-	
-	/**
-	 * rotate labels
-	 */
-	function set_vertical()
-	{
-		$this->rotate = 270;
-	}
-	
-	/**
-	 * @param @angle as real. The angle of the text.
-	 */
-	function rotate( $angle )
-	{
-		$this->rotate = $angle;
-	}
-	
-	/**
-	 * @param $text as string. Replace and magic variables with actual x axis position.
-	 */
-	function text( $text )
-	{
-		$this->text = $text;
-	}
-}

+ 0 - 15
pages/php-ofc-library/ofc_x_legend.php

@@ -1,15 +0,0 @@
-<?php
-
-class x_legend
-{
-	function x_legend( $text='' )
-	{
-		$this->text = $text;
-	}
-	
-	function set_style( $css )
-	{
-		$this->style = $css;
-		//"{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}";		
-	}
-}

+ 0 - 17
pages/php-ofc-library/ofc_y_axis.php

@@ -1,17 +0,0 @@
-<?php
-
-class y_axis extends y_axis_base
-{
-	function y_axis(){}
-	
-	/**
-	 * @param $colour as string. The grid are the lines inside the chart.
-	 * HEX colour, e.g. '#ff0000'
-	 */
-	function set_grid_colour( $colour )
-	{
-		$tmp = 'grid-colour';
-		$this->$tmp = $colour;
-	}
-	
-}

+ 0 - 116
pages/php-ofc-library/ofc_y_axis_base.php

@@ -1,116 +0,0 @@
-<?php
-
-class y_axis_base
-{
-	function y_axis_base(){}
-	
-	/**
-	 * @param $s as integer, thickness of the Y axis line
-	 */
-	function set_stroke( $s )
-	{
-		$this->stroke = $s;
-	}
-	
-	/**
-	 * @param $val as integer. The length of the ticks in pixels
-	 */
-	function set_tick_length( $val )
-	{
-		$tmp = 'tick-length';
-		$this->$tmp = $val;
-	}
-	
-	function set_colours( $colour, $grid_colour )
-	{
-		$this->set_colour( $colour );
-		$this->set_grid_colour( $grid_colour );
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_grid_colour( $colour )
-	{
-		$tmp = 'grid-colour';
-		$this->$tmp = $colour;
-	}
-	
-	/**
-	 * Set min and max values, also (optionally) set the steps value.
-	 * You can reverse the chart by setting min larger than max, e.g. min = 10
-	 * and max = 0.
-	 * 
-	 * @param $min as integer
-	 * @param $max as integer
-	 * @param $steps as integer.
-	 */
-	function set_range( $min, $max, $steps=1 )
-	{
-		$this->min = $min;
-		$this->max = $max;
-		$this->set_steps( $steps );
-	}
-	
-	/**
-	 * Sugar for set_range
-	 */
-	function range( $min, $max, $steps=1 )
-	{
-		$this->set_range( $min, $max, $steps );
-		return $this;
-	}
-	
-	/**
-	 * @param $off as Boolean. If true the Y axis is nudged up half a step.
-	 */
-	function set_offset( $off )
-	{
-		$this->offset = $off?1:0;
-	}
-	
-	/**
-	 * @param $y_axis_labels as an y_axis_labels object
-	 * Use this to customize the labels (colour, font, etc...)
-	 */
-	function set_labels( $y_axis_labels )
-	{
-		$this->labels = $y_axis_labels;
-	}
-	
-	/**
-	 * Pass in some text for each label. This can contain magic variables "#val#" which
-	 * will get replaced with the value for that Y axis label. Useful for:
-	 * - "£#val#"
-	 * - "#val#%"
-	 * - "#val# million"
-	 * 
-	 * @param $text as string.
-	 */
-	function set_label_text( $text )
-	{
-		$tmp = new y_axis_labels();
-		$tmp->set_text( $text );
-		$this->labels = $tmp;
-	}
-	
-	/**
-	 * @param $steps as integer.
-	 *
-	 * Only show every $steps label, e.g. every 10th
-	 */
-	function set_steps( $steps )
-	{
-		$this->steps = $steps;	
-	}
-	
-	/**
-	 * Make the labels show vertical
-	 */
-	function set_vertical()
-	{
-		$this->rotate = "vertical";
-	}
-}

+ 0 - 38
pages/php-ofc-library/ofc_y_axis_label.php

@@ -1,38 +0,0 @@
-<?php
-
-/**
- * y_axis_label see y_axis_labels
- */
-class y_axis_label
-{
-	function y_axis_label( $y, $text)
-	{
-		$this->y = $y;
-		$this->set_text( $text );
-	}
-	
-	function set_text( $text )
-	{
-		$this->text = $text;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	function set_size( $size )
-	{
-		$this->size = $size;
-	}
-	
-	function set_rotate( $rotate )
-	{
-		$this->rotate = $rotate;
-	}
-	
-	function set_vertical()
-	{
-		$this->rotate = "vertical";
-	}
-}

+ 0 - 57
pages/php-ofc-library/ofc_y_axis_labels.php

@@ -1,57 +0,0 @@
-<?php
-
-class y_axis_labels
-{
-	function y_axis_labels(){}
-	
-	/**
-	 * @param $steps which labels are generated
-	 */
-	function set_steps( $steps )
-	{
-		$this->steps = $steps;
-	}
-	
-	/**
-	 *
-	 * @param $labels as an array of [y_axis_label or string]
-	 */
-	function set_labels( $labels )
-	{
-		$this->labels = $labels;
-	}
-	
-	function set_colour( $colour )
-	{
-		$this->colour = $colour;
-	}
-	
-	/**
-	 * font size in pixels
-	 */
-	function set_size( $size )
-	{
-		$this->size = $size;
-	}
-	
-	/**
-	 * rotate labels
-	 */
-	function set_vertical()
-	{
-		$this->rotate = 270;
-	}
-	
-	function rotate( $angle )
-	{
-		$this->rotate = $angle;
-	}
-	
-	/**
-	 * @param $text default text that all labels inherit
-	 */
-	function set_text( $text )
-	{
-		$this->text = $text;
-	}
-}

+ 0 - 6
pages/php-ofc-library/ofc_y_axis_right.php

@@ -1,6 +0,0 @@
-<?php
-
-class y_axis_right extends y_axis_base
-{
-	function y_axis_right(){}
-}

+ 0 - 15
pages/php-ofc-library/ofc_y_legend.php

@@ -1,15 +0,0 @@
-<?php
-
-class y_legend
-{
-	function y_legend( $text='' )
-	{
-		$this->text = $text;
-	}
-	
-	function set_style( $css )
-	{
-		$this->style = $css;
-		//"{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}";		
-	}
-}

+ 0 - 109
pages/php-ofc-library/open-flash-chart-object.php

@@ -1,109 +0,0 @@
-<?php
-
-function open_flash_chart_object_str( $width, $height, $url, $use_swfobject=true, $base='' )
-{
-    //
-    // return the HTML as a string
-    //
-    return _ofc( $width, $height, $url, $use_swfobject, $base );
-}
-
-function open_flash_chart_object( $width, $height, $url, $use_swfobject=true, $base='' )
-{
-    //
-    // stream the HTML into the page
-    //
-    echo _ofc( $width, $height, $url, $use_swfobject, $base );
-}
-
-function _ofc( $width, $height, $url, $use_swfobject, $base )
-{
-    //
-    // I think we may use swfobject for all browsers,
-    // not JUST for IE...
-    //
-    //$ie = strstr(getenv('HTTP_USER_AGENT'), 'MSIE');
-    
-    //
-    // escape the & and stuff:
-    //
-    $url = urlencode($url);
-    
-    //
-    // output buffer
-    //
-    $out = array();
-    
-    //
-    // check for http or https:
-    //
-    if (isset ($_SERVER['HTTPS']))
-    {
-        if (strtoupper ($_SERVER['HTTPS']) == 'ON')
-        {
-            $protocol = 'https';
-        }
-        else
-        {
-            $protocol = 'http';
-        }
-    }
-    else
-    {
-        $protocol = 'http';
-    }
-    
-    //
-    // if there are more than one charts on the
-    // page, give each a different ID
-    //
-    global $open_flash_chart_seqno;
-    $obj_id = 'chart';
-    $div_name = 'flashcontent';
-    
-    //$out[] = '<script type="text/javascript" src="'. $base .'js/ofc.js"></script>';
-    
-    if( !isset( $open_flash_chart_seqno ) )
-    {
-        $open_flash_chart_seqno = 1;
-        $out[] = '<script type="text/javascript" src="'. $base .'js/swfobject.js"></script>';
-    }
-    else
-    {
-        $open_flash_chart_seqno++;
-        $obj_id .= '_'. $open_flash_chart_seqno;
-        $div_name .= '_'. $open_flash_chart_seqno;
-    }
-    
-    if( $use_swfobject )
-    {
-		// Using library for auto-enabling Flash object on IE, disabled-Javascript proof  
-		$out[] = '<div id="'. $div_name .'"></div>';
-		$out[] = '<script type="text/javascript">';
-		$out[] = 'var so = new SWFObject("'. $base .'open-flash-chart.swf", "'. $obj_id .'", "'. $width . '", "' . $height . '", "9", "#FFFFFF");';
-		
-		$out[] = 'so.addVariable("data-file", "'. $url . '");';
-	
-		$out[] = 'so.addParam("allowScriptAccess", "always" );//"sameDomain");';
-		$out[] = 'so.write("'. $div_name .'");';
-		$out[] = '</script>';
-		$out[] = '<noscript>';
-    }
-
-    $out[] = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' . $protocol . '://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ';
-    $out[] = 'width="' . $width . '" height="' . $height . '" id="ie_'. $obj_id .'" align="middle">';
-    $out[] = '<param name="allowScriptAccess" value="sameDomain" />';
-    $out[] = '<param name="movie" value="'. $base .'open-flash-chart.swf?data='. $url .'" />';
-    $out[] = '<param name="quality" value="high" />';
-    $out[] = '<param name="bgcolor" value="#FFFFFF" />';
-    $out[] = '<embed src="'. $base .'open-flash-chart.swf?data=' . $url .'" quality="high" bgcolor="#FFFFFF" width="'. $width .'" height="'. $height .'" name="'. $obj_id .'" align="middle" allowScriptAccess="sameDomain" ';
-    $out[] = 'type="application/x-shockwave-flash" pluginspage="' . $protocol . '://www.macromedia.com/go/getflashplayer" id="'. $obj_id .'"/>';
-    $out[] = '</object>';
-
-    if ( $use_swfobject ) {
-		$out[] = '</noscript>';
-    }
-    
-    return implode("\n",$out);
-}
-?>

+ 0 - 178
pages/php-ofc-library/open-flash-chart.php

@@ -1,178 +0,0 @@
-<?php
-
-// var_dump(debug_backtrace());
-
-//
-// Omar Kilani's php C extension for encoding JSON has been incorporated in stock PHP since 5.2.0
-// http://www.aurore.net/projects/php-json/
-//
-// -- Marcus Engene
-//
-if (! function_exists('json_encode'))
-{
-	include_once 'JSON.php';
-}
-
-include_once 'json_format.php';
-
-// ofc classes
-include_once 'ofc_title.php';
-include_once 'ofc_y_axis_base.php';
-include_once 'ofc_y_axis.php';
-include_once 'ofc_y_axis_right.php';
-include_once 'ofc_y_axis_labels.php';
-include_once 'ofc_y_axis_label.php';
-include_once 'ofc_x_axis.php';
-
-
-include_once 'ofc_pie.php';
-//include_once 'ofc_bar.php';
-include_once 'ofc_bar_glass.php';
-include_once 'ofc_bar_filled.php';
-include_once 'ofc_bar_stack.php';
-//include_once 'ofc_bar_3d.php';
-include_once 'ofc_hbar.php';
-include_once 'ofc_line_base.php';
-include_once 'ofc_line.php';
-//include_once 'ofc_line_dot.php';
-//include_once 'ofc_line_hollow.php';
-include_once 'ofc_candle.php';
-include_once 'ofc_area_base.php';
-include_once 'ofc_tags.php';
-include_once 'ofc_arrow.php';
-//include_once 'ofc_area_hollow.php';
-//include_once 'ofc_area_line.php';
-
-include_once 'ofc_x_legend.php';
-include_once 'ofc_y_legend.php';
-include_once 'ofc_bar_sketch.php';
-include_once 'ofc_scatter.php';
-include_once 'ofc_scatter_line.php';
-include_once 'ofc_x_axis_labels.php';
-include_once 'ofc_x_axis_label.php';
-include_once 'ofc_tooltip.php';
-include_once 'ofc_shape.php';
-include_once 'ofc_radar_axis.php';
-include_once 'ofc_radar_axis_labels.php';
-include_once 'ofc_radar_spoke_labels.php';
-include_once 'ofc_line_style.php';
-
-include_once 'dot_base.php';
-include_once 'ofc_menu.php';
-
-class open_flash_chart
-{
-	function open_flash_chart()
-	{
-		//$this->title = new title( "Many data lines" );
-		$this->elements = array();
-	}
-	
-	function set_title( $t )
-	{
-		$this->title = $t;
-	}
-	
-	function set_x_axis( $x )
-	{
-		$this->x_axis = $x;	
-	}
-	
-	function set_y_axis( $y )
-	{
-		$this->y_axis = $y;
-	}
-	
-	function add_y_axis( $y )
-	{
-		$this->y_axis = $y;
-	}
-
-	function set_y_axis_right( $y )
-	{
-		$this->y_axis_right = $y;
-	}
-	
-	function add_element( $e )
-	{
-		$this->elements[] = $e;
-	}
-	
-	function set_x_legend( $x )
-	{
-		$this->x_legend = $x;
-	}
-
-	function set_y_legend( $y )
-	{
-		$this->y_legend = $y;
-	}
-	
-	function set_bg_colour( $colour )
-	{
-		$this->bg_colour = $colour;	
-	}
-	
-	function set_radar_axis( $radar )
-	{
-		$this->radar_axis = $radar;
-	}
-	
-	function set_tooltip( $tooltip )
-	{
-		$this->tooltip = $tooltip;	
-	}
-	
-	/**
-	 * This is a bit funky :(
-	 *
-	 * @param $num_decimals as integer. Truncate the decimals to $num_decimals, e.g. set it
-	 * to 5 and 3.333333333 will display as 3.33333. 2.0 will display as 2 (or 2.00000 - see below)
-	 * @param $is_fixed_num_decimals_forced as boolean. If true it will pad the decimals.
-	 * @param $is_decimal_separator_comma as boolean
-	 * @param $is_thousand_separator_disabled as boolean
-	 *
-	 * This needs a bit of love and attention
-	 */
-	function set_number_format($num_decimals, $is_fixed_num_decimals_forced, $is_decimal_separator_comma, $is_thousand_separator_disabled )
-	{
-		$this->num_decimals = $num_decimals;
-		$this->is_fixed_num_decimals_forced = $is_fixed_num_decimals_forced;
-		$this->is_decimal_separator_comma = $is_decimal_separator_comma;
-		$this->is_thousand_separator_disabled = $is_thousand_separator_disabled;
-	}
-	
-	/**
-	 * This is experimental and will change as we make it work
-	 * 
-	 * @param $m as ofc_menu
-	 */
-	function set_menu($m)
-	{
-		$this->menu = $m;
-	}
-	
-	function toString()
-	{
-		if (function_exists('json_encode'))
-		{
-			return json_encode($this);
-		}
-		else
-		{
-			$json = new Services_JSON();
-			return $json->encode( $this );
-		}
-	}
-	
-	function toPrettyString()
-	{
-		return json_format( $this->toString() );
-	}
-}
-
-
-
-//
-// there is no PHP end tag so we don't mess the headers up!
-//