| <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
| /** | 
|  * CodeIgniter | 
|  * | 
|  * An open source application development framework for PHP 5.1.6 or newer | 
|  * | 
|  * @package        CodeIgniter | 
|  * @author        ExpressionEngine Dev Team | 
|  * @copyright    Copyright (c) 2008 - 2011, EllisLab, Inc. | 
|  * @license        http://codeigniter.com/user_guide/license.html | 
|  * @link        http://codeigniter.com | 
|  * @since        Version 1.0 | 
|  * @filesource | 
|  */ | 
|   | 
| // ------------------------------------------------------------------------ | 
|   | 
| /** | 
|  * Javascript Class | 
|  * | 
|  * @package        CodeIgniter | 
|  * @subpackage    Libraries | 
|  * @category    Javascript | 
|  * @author        ExpressionEngine Dev Team | 
|  * @link        http://codeigniter.com/user_guide/libraries/javascript.html | 
|  */ | 
| class CI_Javascript { | 
|   | 
|     var $_javascript_location = 'js'; | 
|   | 
|     public function __construct($params = array()) | 
|     { | 
|         $defaults = array('js_library_driver' => 'jquery', 'autoload' => TRUE); | 
|   | 
|         foreach ($defaults as $key => $val) | 
|         { | 
|             if (isset($params[$key]) && $params[$key] !== "") | 
|             { | 
|                 $defaults[$key] = $params[$key]; | 
|             } | 
|         } | 
|   | 
|         extract($defaults); | 
|   | 
|         $this->CI =& get_instance(); | 
|   | 
|         // load the requested js library | 
|         $this->CI->load->library('javascript/'.$js_library_driver, array('autoload' => $autoload)); | 
|         // make js to refer to current library | 
|         $this->js =& $this->CI->$js_library_driver; | 
|   | 
|         log_message('debug', "Javascript Class Initialized and loaded.  Driver used: $js_library_driver"); | 
|     } | 
|   | 
|     // --------------------------------------------------------------------     | 
|     // Event Code | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Blur | 
|      * | 
|      * Outputs a javascript library blur event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function blur($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_blur($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Change | 
|      * | 
|      * Outputs a javascript library change event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function change($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_change($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Click | 
|      * | 
|      * Outputs a javascript library click event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @param    boolean    whether or not to return false | 
|      * @return    string | 
|      */ | 
|     function click($element = 'this', $js = '', $ret_false = TRUE) | 
|     { | 
|         return $this->js->_click($element, $js, $ret_false); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Double Click | 
|      * | 
|      * Outputs a javascript library dblclick event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function dblclick($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_dblclick($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Error | 
|      * | 
|      * Outputs a javascript library error event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function error($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_error($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Focus | 
|      * | 
|      * Outputs a javascript library focus event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function focus($element = 'this', $js = '') | 
|     { | 
|         return $this->js->__add_event($focus, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Hover | 
|      * | 
|      * Outputs a javascript library hover event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - Javascript code for mouse over | 
|      * @param    string    - Javascript code for mouse out | 
|      * @return    string | 
|      */ | 
|     function hover($element = 'this', $over, $out) | 
|     { | 
|         return $this->js->__hover($element, $over, $out); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Keydown | 
|      * | 
|      * Outputs a javascript library keydown event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function keydown($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_keydown($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Keyup | 
|      * | 
|      * Outputs a javascript library keydown event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function keyup($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_keyup($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Load | 
|      * | 
|      * Outputs a javascript library load event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function load($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_load($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Mousedown | 
|      * | 
|      * Outputs a javascript library mousedown event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function mousedown($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_mousedown($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Mouse Out | 
|      * | 
|      * Outputs a javascript library mouseout event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function mouseout($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_mouseout($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Mouse Over | 
|      * | 
|      * Outputs a javascript library mouseover event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function mouseover($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_mouseover($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Mouseup | 
|      * | 
|      * Outputs a javascript library mouseup event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function mouseup($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_mouseup($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Output | 
|      * | 
|      * Outputs the called javascript to the screen | 
|      * | 
|      * @access    public | 
|      * @param    string    The code to output | 
|      * @return    string | 
|      */ | 
|     function output($js) | 
|     { | 
|         return $this->js->_output($js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Ready | 
|      * | 
|      * Outputs a javascript library mouseup event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function ready($js) | 
|     { | 
|         return $this->js->_document_ready($js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Resize | 
|      * | 
|      * Outputs a javascript library resize event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function resize($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_resize($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Scroll | 
|      * | 
|      * Outputs a javascript library scroll event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function scroll($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_scroll($element, $js); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Unload | 
|      * | 
|      * Outputs a javascript library unload event | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    string    The code to execute | 
|      * @return    string | 
|      */ | 
|     function unload($element = 'this', $js = '') | 
|     { | 
|         return $this->js->_unload($element, $js); | 
|     } | 
|   | 
|     // --------------------------------------------------------------------     | 
|     // Effects | 
|     // -------------------------------------------------------------------- | 
|   | 
|   | 
|     /** | 
|      * Add Class | 
|      * | 
|      * Outputs a javascript library addClass event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - Class to add | 
|      * @return    string | 
|      */ | 
|     function addClass($element = 'this', $class = '') | 
|     { | 
|         return $this->js->_addClass($element, $class); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Animate | 
|      * | 
|      * Outputs a javascript library animate event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function animate($element = 'this', $params = array(), $speed = '', $extra = '') | 
|     { | 
|         return $this->js->_animate($element, $params, $speed, $extra); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Fade In | 
|      * | 
|      * Outputs a javascript library hide event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function fadeIn($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_fadeIn($element, $speed, $callback); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Fade Out | 
|      * | 
|      * Outputs a javascript library hide event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function fadeOut($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_fadeOut($element, $speed, $callback); | 
|     } | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Slide Up | 
|      * | 
|      * Outputs a javascript library slideUp event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function slideUp($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_slideUp($element, $speed, $callback); | 
|   | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Remove Class | 
|      * | 
|      * Outputs a javascript library removeClass event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - Class to add | 
|      * @return    string | 
|      */ | 
|     function removeClass($element = 'this', $class = '') | 
|     { | 
|         return $this->js->_removeClass($element, $class); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Slide Down | 
|      * | 
|      * Outputs a javascript library slideDown event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function slideDown($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_slideDown($element, $speed, $callback); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Slide Toggle | 
|      * | 
|      * Outputs a javascript library slideToggle event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function slideToggle($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_slideToggle($element, $speed, $callback); | 
|   | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Hide | 
|      * | 
|      * Outputs a javascript library hide action | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function hide($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_hide($element, $speed, $callback); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Toggle | 
|      * | 
|      * Outputs a javascript library toggle event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @return    string | 
|      */ | 
|     function toggle($element = 'this') | 
|     { | 
|         return $this->js->_toggle($element); | 
|   | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Toggle Class | 
|      * | 
|      * Outputs a javascript library toggle class event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @return    string | 
|      */ | 
|     function toggleClass($element = 'this', $class='') | 
|     { | 
|         return $this->js->_toggleClass($element, $class); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Show | 
|      * | 
|      * Outputs a javascript library show event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function show($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_show($element, $speed, $callback); | 
|     } | 
|   | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Compile | 
|      * | 
|      * gather together all script needing to be output | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @return    string | 
|      */ | 
|     function compile($view_var = 'script_foot', $script_tags = TRUE) | 
|     { | 
|         $this->js->_compile($view_var, $script_tags); | 
|     } | 
|   | 
|     /** | 
|      * Clear Compile | 
|      * | 
|      * Clears any previous javascript collected for output | 
|      * | 
|      * @access    public | 
|      * @return    void | 
|      */ | 
|     function clear_compile() | 
|     { | 
|         $this->js->_clear_compile(); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * External | 
|      * | 
|      * Outputs a <script> tag with the source as an external js file | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @return    string | 
|      */ | 
|     function external($external_file = '', $relative = FALSE) | 
|     { | 
|         if ($external_file !== '') | 
|         { | 
|             $this->_javascript_location = $external_file; | 
|         } | 
|         else | 
|         { | 
|             if ($this->CI->config->item('javascript_location') != '') | 
|             { | 
|                 $this->_javascript_location = $this->CI->config->item('javascript_location'); | 
|             } | 
|         } | 
|   | 
|         if ($relative === TRUE OR strncmp($external_file, 'http://', 7) == 0 OR strncmp($external_file, 'https://', 8) == 0) | 
|         { | 
|             $str = $this->_open_script($external_file); | 
|         } | 
|         elseif (strpos($this->_javascript_location, 'http://') !== FALSE) | 
|         { | 
|             $str = $this->_open_script($this->_javascript_location.$external_file); | 
|         } | 
|         else | 
|         { | 
|             $str = $this->_open_script($this->CI->config->slash_item('base_url').$this->_javascript_location.$external_file); | 
|         } | 
|   | 
|         $str .= $this->_close_script(); | 
|         return $str; | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Inline | 
|      * | 
|      * Outputs a <script> tag | 
|      * | 
|      * @access    public | 
|      * @param    string    The element to attach the event to | 
|      * @param    boolean    If a CDATA section should be added | 
|      * @return    string | 
|      */ | 
|     function inline($script, $cdata = TRUE) | 
|     { | 
|         $str = $this->_open_script(); | 
|         $str .= ($cdata) ? "\n// <![CDATA[\n{$script}\n// ]]>\n" : "\n{$script}\n"; | 
|         $str .= $this->_close_script(); | 
|   | 
|         return $str; | 
|     } | 
|      | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Open Script | 
|      * | 
|      * Outputs an opening <script> | 
|      * | 
|      * @access    private | 
|      * @param    string | 
|      * @return    string | 
|      */ | 
|     function _open_script($src = '') | 
|     { | 
|         $str = '<script type="text/javascript" charset="'.strtolower($this->CI->config->item('charset')).'"'; | 
|         $str .= ($src == '') ? '>' : ' src="'.$src.'">'; | 
|         return $str; | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Close Script | 
|      * | 
|      * Outputs an closing </script> | 
|      * | 
|      * @access    private | 
|      * @param    string | 
|      * @return    string | 
|      */ | 
|     function _close_script($extra = "\n") | 
|     { | 
|         return "</script>$extra"; | 
|     } | 
|   | 
|   | 
|     // -------------------------------------------------------------------- | 
|     // -------------------------------------------------------------------- | 
|     // AJAX-Y STUFF - still a testbed | 
|     // -------------------------------------------------------------------- | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Update | 
|      * | 
|      * Outputs a javascript library slideDown event | 
|      * | 
|      * @access    public | 
|      * @param    string    - element | 
|      * @param    string    - One of 'slow', 'normal', 'fast', or time in milliseconds | 
|      * @param    string    - Javascript callback function | 
|      * @return    string | 
|      */ | 
|     function update($element = 'this', $speed = '', $callback = '') | 
|     { | 
|         return $this->js->_updater($element, $speed, $callback); | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Generate JSON | 
|      * | 
|      * Can be passed a database result or associative array and returns a JSON formatted string | 
|      * | 
|      * @param    mixed    result set or array | 
|      * @param    bool    match array types (defaults to objects) | 
|      * @return    string    a json formatted string | 
|      */ | 
|     function generate_json($result = NULL, $match_array_type = FALSE) | 
|     { | 
|         // JSON data can optionally be passed to this function | 
|         // either as a database result object or an array, or a user supplied array | 
|         if ( ! is_null($result)) | 
|         { | 
|             if (is_object($result)) | 
|             { | 
|                 $json_result = $result->result_array(); | 
|             } | 
|             elseif (is_array($result)) | 
|             { | 
|                 $json_result = $result; | 
|             } | 
|             else | 
|             { | 
|                 return $this->_prep_args($result); | 
|             } | 
|         } | 
|         else | 
|         { | 
|             return 'null'; | 
|         } | 
|   | 
|         $json = array(); | 
|         $_is_assoc = TRUE; | 
|   | 
|         if ( ! is_array($json_result) AND empty($json_result)) | 
|         { | 
|             show_error("Generate JSON Failed - Illegal key, value pair."); | 
|         } | 
|         elseif ($match_array_type) | 
|         { | 
|             $_is_assoc = $this->_is_associative_array($json_result); | 
|         } | 
|   | 
|         foreach ($json_result as $k => $v) | 
|         { | 
|             if ($_is_assoc) | 
|             { | 
|                 $json[] = $this->_prep_args($k, TRUE).':'.$this->generate_json($v, $match_array_type); | 
|             } | 
|             else | 
|             { | 
|                 $json[] = $this->generate_json($v, $match_array_type); | 
|             } | 
|         } | 
|   | 
|         $json = implode(',', $json); | 
|   | 
|         return $_is_assoc ? "{".$json."}" : "[".$json."]"; | 
|   | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Is associative array | 
|      * | 
|      * Checks for an associative array | 
|      * | 
|      * @access    public | 
|      * @param    type | 
|      * @return    type | 
|      */ | 
|     function _is_associative_array($arr) | 
|     { | 
|         foreach (array_keys($arr) as $key => $val) | 
|         { | 
|             if ($key !== $val) | 
|             { | 
|                 return TRUE; | 
|             } | 
|         } | 
|   | 
|         return FALSE; | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
|   | 
|     /** | 
|      * Prep Args | 
|      * | 
|      * Ensures a standard json value and escapes values | 
|      * | 
|      * @access    public | 
|      * @param    type | 
|      * @return    type | 
|      */ | 
|     function _prep_args($result, $is_key = FALSE) | 
|     { | 
|         if (is_null($result)) | 
|         { | 
|             return 'null'; | 
|         } | 
|         elseif (is_bool($result)) | 
|         { | 
|             return ($result === TRUE) ? 'true' : 'false'; | 
|         } | 
|         elseif (is_string($result) OR $is_key) | 
|         { | 
|             return '"'.str_replace(array('\\', "\t", "\n", "\r", '"', '/'), array('\\\\', '\\t', '\\n', "\\r", '\"', '\/'), $result).'"';             | 
|         } | 
|         elseif (is_scalar($result)) | 
|         { | 
|             return $result; | 
|         } | 
|     } | 
|   | 
|     // -------------------------------------------------------------------- | 
| } | 
| // END Javascript Class | 
|   | 
| /* End of file Javascript.php */ | 
| /* Location: ./system/libraries/Javascript.php */ |