Completed
Push — master ( 2d4977...3189d6 )
by Michael
10:50
created
include/projax_/classes/JavaScript.php 1 patch
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -15,90 +15,90 @@
 block discarded – undo
15 15
  */
16 16
 class JavaScript
17 17
 {
18
-    /**
19
-     * @param       $name
20
-     * @param  null $function
21
-     * @return string
22
-     */
23
-    public function button_to_function($name, $function = null)
24
-    {
25
-        return '<input type="button" value="' . $name . '" onclick="' . $function . '" />';
26
-    }
18
+	/**
19
+	 * @param       $name
20
+	 * @param  null $function
21
+	 * @return string
22
+	 */
23
+	public function button_to_function($name, $function = null)
24
+	{
25
+		return '<input type="button" value="' . $name . '" onclick="' . $function . '" />';
26
+	}
27 27
 
28
-    /**
29
-     * @param $javascript
30
-     * @return mixed|string
31
-     */
32
-    public function escape($javascript)
33
-    {
34
-        $javascript = addslashes($javascript);
35
-        $javascript = str_replace(array("\r\n", "\n", "\r"), array("\n"), $javascript);
28
+	/**
29
+	 * @param $javascript
30
+	 * @return mixed|string
31
+	 */
32
+	public function escape($javascript)
33
+	{
34
+		$javascript = addslashes($javascript);
35
+		$javascript = str_replace(array("\r\n", "\n", "\r"), array("\n"), $javascript);
36 36
 
37
-        return $javascript;
38
-    }
37
+		return $javascript;
38
+	}
39 39
 
40
-    /**
41
-     * @param $content
42
-     * @return string
43
-     */
44
-    public function tag($content)
45
-    {
46
-        return '<script type="text/javascript">' . $content . '</script>';
47
-    }
40
+	/**
41
+	 * @param $content
42
+	 * @return string
43
+	 */
44
+	public function tag($content)
45
+	{
46
+		return '<script type="text/javascript">' . $content . '</script>';
47
+	}
48 48
 
49
-    /**
50
-     * @param       $name
51
-     * @param       $function
52
-     * @param  null $html_options
53
-     * @return string
54
-     */
55
-    public function link_to_function($name, $function, $html_options = null)
56
-    {
57
-        return '<a href="' . (isset($html_options['href']) ? $html_options['href'] : '#') . '" onclick="' . (isset($html_options['onclick']) ? $html_options['onclick'] . ';' : '') . $function . '; return false;" />' . $name . '</a>';
58
-    }
49
+	/**
50
+	 * @param       $name
51
+	 * @param       $function
52
+	 * @param  null $html_options
53
+	 * @return string
54
+	 */
55
+	public function link_to_function($name, $function, $html_options = null)
56
+	{
57
+		return '<a href="' . (isset($html_options['href']) ? $html_options['href'] : '#') . '" onclick="' . (isset($html_options['onclick']) ? $html_options['onclick'] . ';' : '') . $function . '; return false;" />' . $name . '</a>';
58
+	}
59 59
 
60
-    /////////////////////////////////////////////////////////////////////////////////////
61
-    //                             Private functions
62
-    /////////////////////////////////////////////////////////////////////////////////////
60
+	/////////////////////////////////////////////////////////////////////////////////////
61
+	//                             Private functions
62
+	/////////////////////////////////////////////////////////////////////////////////////
63 63
 
64
-    /**
65
-     * @param $option
66
-     * @return string
67
-     */
68
-    public function _array_or_string_for_javascript($option)
69
-    {
70
-        $return_val = '';
71
-        if (is_array($option)) {
72
-            foreach ($option as $value) {
73
-                if (!empty($return_val)) {
74
-                    $ret_val .= ', ';
75
-                }
76
-                $return_val .= $value;
77
-            }
64
+	/**
65
+	 * @param $option
66
+	 * @return string
67
+	 */
68
+	public function _array_or_string_for_javascript($option)
69
+	{
70
+		$return_val = '';
71
+		if (is_array($option)) {
72
+			foreach ($option as $value) {
73
+				if (!empty($return_val)) {
74
+					$ret_val .= ', ';
75
+				}
76
+				$return_val .= $value;
77
+			}
78 78
 
79
-            return '[' . $return_val . ']';
80
-        }
79
+			return '[' . $return_val . ']';
80
+		}
81 81
 
82
-        return "'$option'";
83
-    }
82
+		return "'$option'";
83
+	}
84 84
 
85
-    /**
86
-     * @param $options
87
-     * @return string
88
-     */
89
-    public function _options_for_javascript($options)
90
-    {
91
-        $return_val = '';
85
+	/**
86
+	 * @param $options
87
+	 * @return string
88
+	 */
89
+	public function _options_for_javascript($options)
90
+	{
91
+		$return_val = '';
92 92
 
93
-        if (is_array($options)) {
94
-            foreach ($options as $var => $val) {
95
-                if (!empty($return_val)) {
96
-                    $return_val .= ', ';
97
-                }
98
-                $return_val .= "$var:$val";
99
-            }
100
-        }
93
+		if (is_array($options)) {
94
+			foreach ($options as $var => $val) {
95
+				if (!empty($return_val)) {
96
+					$return_val .= ', ';
97
+				}
98
+				$return_val .= "$var:$val";
99
+			}
100
+		}
101 101
 
102
-        return '{' . $return_val . '}';
103
-    }
102
+		return '{' . $return_val . '}';
103
+	}
104 104
 }
Please login to merge, or discard this patch.
include/projax_/classes/Prototype.php 1 patch
Indentation   +448 added lines, -448 removed lines patch added patch discarded remove patch
@@ -15,452 +15,452 @@
 block discarded – undo
15 15
  */
16 16
 class Prototype extends JavaScript
17 17
 {
18
-    public $CALLBACKS = array(
19
-        'uninitialized',
20
-        'loading',
21
-        'loaded',
22
-        'interactive',
23
-        'complete',
24
-        'failure',
25
-        'success'
26
-    );
27
-
28
-    public $AJAX_OPTIONS = array(
29
-        'before',
30
-        'after',
31
-        'condition',
32
-        'url',
33
-        'asynchronous',
34
-        'method',
35
-        'insertion',
36
-        'position',
37
-        'form',
38
-        'with',
39
-        'update',
40
-        'script',
41
-        'uninitialized',
42
-        'loading',
43
-        'loaded',
44
-        'interactive',
45
-        'complete',
46
-        'failure',
47
-        'success'
48
-    );
49
-
50
-    /**
51
-     * @return string
52
-     */
53
-    public function evaluate_remote_response()
54
-    {
55
-        return 'eval(request.responseText)';
56
-    }
57
-
58
-    /**
59
-     * @param $options
60
-     * @return string
61
-     */
62
-    public function form_remote_tag($options)
63
-    {
64
-        $options['form'] = true;
65
-
66
-        return '<form action="' . $options['url'] . '" onsubmit="' . $this->remote_function($options) . '; return false;" method="' . (isset($options['method']) ? $options['method'] : 'post') . '"  >';
67
-    }
68
-
69
-    /**
70
-     * @param       $name
71
-     * @param  null $options
72
-     * @param  null $html_options
73
-     * @return string
74
-     */
75
-    public function link_to_remote($name, $options = null, $html_options = null)
76
-    {
77
-        return $this->link_to_function($name, $this->remote_function($options), $html_options);
78
-    }
79
-
80
-    /**
81
-     * @param       $field_id
82
-     * @param  null $options
83
-     * @return string
84
-     */
85
-    public function observe_field($field_id, $options = null)
86
-    {
87
-        if (isset($options['frequency']) && $options['frequency'] > 0) {
88
-            return $this->_build_observer('Form.Element.Observer', $field_id, $options);
89
-        } else {
90
-            return $this->_build_observer('Form.Element.EventObserver', $field_id, $options);
91
-        }
92
-    }
93
-
94
-    /**
95
-     * @param       $form_id
96
-     * @param  null $options
97
-     * @return string
98
-     */
99
-    public function observe_form($form_id, $options = null)
100
-    {
101
-        if (isset($options['frequency'])) {
102
-            return $this->_build_observer('Form.Observer', $form_id, $options);
103
-        } else {
104
-            return $this->_build_observer('Form.EventObserver', $form_id, $options);
105
-        }
106
-    }
107
-
108
-    /**
109
-     * @param  null $options
110
-     * @return string
111
-     */
112
-    public function periodically_call_remote($options = null)
113
-    {
114
-        $frequency = isset($options['frequency']) ? $options['frequency'] : 10;
115
-        $code      = 'new PeriodicalExecuter(function() {' . $this->remote_function($options) . '},' . $frequency . ')';
116
-
117
-        return $code;
118
-    }
119
-
120
-    /**
121
-     * @param $options
122
-     * @return string
123
-     */
124
-    public function remote_function($options)
125
-    {
126
-        $javascript_options = $this->_options_for_ajax($options);
127
-
128
-        $update = '';
129
-
130
-        if (isset($options['update']) && is_array($options['update'])) {
131
-            $update = isset($options['update']['success']) ? 'success: ' . $options['update']['success'] : '';
132
-            $update .= empty($update) ? '' : ',';
133
-            $update .= isset($options['update']['failure']) ? 'failure: ' . $options['update']['failure'] : '';
134
-        } else {
135
-            $update .= isset($options['update']) ? $options['update'] : '';
136
-        }
137
-
138
-        $ajax_function = empty($update) ? 'new Ajax.Request(' : 'new Ajax.Updater(\'' . $update . '\',';
139
-
140
-        $ajax_function .= "'" . $options['url'] . "'";
141
-        $ajax_function .= ',' . $javascript_options . ')';
142
-
143
-        $ajax_function = isset($options['before']) ? $options['before'] . ';' . $ajax_function : $ajax_function;
144
-        $ajax_function = isset($options['after']) ? $ajax_function . ';' . $options['after'] : $ajax_function;
145
-        $ajax_function = isset($options['condition']) ? 'if (' . $options['condition'] . ') {' . $ajax_function . '}' : $ajax_function;
146
-        $ajax_function = isset($options['confirm']) ? 'if ( confirm(\'' . $options['confirm'] . '\' ) ) { ' . $ajax_function . ' } ' : $ajax_function;
147
-
148
-        return $ajax_function;
149
-    }
150
-
151
-    /**
152
-     * @param $name
153
-     * @param $value
154
-     * @param $options
155
-     * @return string
156
-     */
157
-    public function submit_to_remote($name, $value, $options)
158
-    {
159
-        if (isset($options['with'])) {
160
-            $options['with'] = 'Form.serialize(this.form)';
161
-        }
162
-
163
-        return '<input type="button" onclick="' . $this->remote_function($options) . '" name="' . $name . '" value ="' . $value . '" />';
164
-    }
165
-
166
-    /**
167
-     * @param      $element_id
168
-     * @param null $options
169
-     * @param      $block
170
-     */
171
-    public function update_element_function($element_id, $options = null, $block)
172
-    {
173
-        $content = isset($options['content']) ? $options['content'] : '';
174
-        $content = $this->escape($content);
175
-    }
176
-
177
-    /**
178
-     * @param $block
179
-     */
180
-    public function update_page($block)
181
-    {
182
-    }
183
-
184
-    /**
185
-     * @param $block
186
-     * @return string
187
-     */
188
-    public function update_page_tag(& $block)
189
-    {
190
-        return $this->tag($block);
191
-    }
192
-
193
-    /////////////////////////////////////////////////////////////////////////////////////
194
-    //                             Private functions
195
-    /////////////////////////////////////////////////////////////////////////////////////
196
-
197
-    /**
198
-     * @param $options
199
-     * @return array
200
-     */
201
-    public function _build_callbacks($options)
202
-    {
203
-        $callbacks = array();
204
-        foreach ($options as $callback => $code) {
205
-            if (in_array($callback, $this->CALLBACKS)) {
206
-                $name             = 'on' . ucfirst($callback);
207
-                $callbacks[$name] = 'function(request){' . $code . '}';
208
-            }
209
-        }
210
-
211
-        return $callbacks;
212
-    }
213
-
214
-    /**
215
-     * @param       $klass
216
-     * @param       $name
217
-     * @param  null $options
218
-     * @return string
219
-     */
220
-    public function _build_observer($klass, $name, $options = null)
221
-    {
222
-        if (isset($options['with']) && false === strpos($options['with'], '=')) {
223
-            $options['with'] = '\'' . $options['with'] . '=\' + value';
224
-        } elseif (isset($options['with']) && isset($options['update'])) {
225
-            $options['with'] = 'value';
226
-        }
227
-
228
-        $callback = $options['function'] ?: $this->remote_function($options);
229
-
230
-        $javascript = "new $klass('$name', ";
231
-        $javascript .= isset($options['frequency']) ? $options['frequency'] . ', ' : '';
232
-        $javascript .= 'function (element,value) { ';
233
-        $javascript .= $callback;
234
-        $javascript .= isset($options['on']) ? ', ' . $options['on'] : '';
235
-        $javascript .= '})';
236
-
237
-        return $javascript;
238
-    }
239
-
240
-    /**
241
-     * @param $method
242
-     * @return string
243
-     */
244
-    public function _method_option_to_s($method)
245
-    {
246
-        return strstr($method, "'") ? $method : "'$method'";
247
-    }
248
-
249
-    /**
250
-     * @param $options
251
-     * @return string
252
-     */
253
-    public function _options_for_ajax($options)
254
-    {
255
-        $js_options = is_array($options) ? $this->_build_callbacks($options) : array();
256
-
257
-        if (isset($options['type']) && $option['type'] === 'synchronous') {
258
-            $js_options['asynchronous'] = 'false';
259
-        }
260
-
261
-        if (isset($options['method'])) {
262
-            $js_options['method'] = $this->_method_option_to_s($options['method']);
263
-        }
264
-
265
-        if (isset($options['position'])) {
266
-            $js_options['insertion'] = 'Insertion.' . ucfirst($options['position']);
267
-        }
268
-
269
-        $js_options['evalScripts'] = isset($options['script']) ? $options['script'] : 'true';
270
-
271
-        if (isset($options['form'])) {
272
-            $js_options['parameters'] = 'Form.serialize(this)';
273
-        } elseif (isset($options['parameters'])) {
274
-            $js_options['parameters'] = 'Form.serialize(\'' . $options['submit'] . '\')';
275
-        } elseif (isset($options['with'])) {
276
-            $js_options['parameters'] = $options['with'];
277
-        }
278
-
279
-        return $this->_options_for_javascript($js_options);
280
-    }
281
-
282
-    /////////////////////////////////////////////////////////////////////////////////////
283
-    //                            Mergerd Javascript Generator helpers
284
-    /////////////////////////////////////////////////////////////////////////////////////
285
-
286
-    /**
287
-     * @param $javascript
288
-     */
289
-    public function dump($javascript)
290
-    {
291
-        echo $javascript;
292
-    }
293
-
294
-    /**
295
-     * @param       $id
296
-     * @param  null $extend
297
-     * @return string
298
-     */
299
-    public function ID($id, $extend = null)
300
-    {
301
-        return "$('$id')" . (!empty($extend)) ? '.' . $extend . '()' : '';
302
-    }
303
-
304
-    /**
305
-     * @param $message
306
-     * @return string
307
-     */
308
-    public function alert($message)
309
-    {
310
-        return $this->call('alert', $message);
311
-    }
312
-
313
-    /**
314
-     * @param $variable
315
-     * @param $value
316
-     * @return string
317
-     */
318
-    public function assign($variable, $value)
319
-    {
320
-        return "$variable = $value;";
321
-    }
322
-
323
-    /**
324
-     * @param       $function
325
-     * @param  null $args
326
-     * @return string
327
-     */
328
-    public function call($function, $args = null)
329
-    {
330
-        $arg_str = '';
331
-        if (is_array($args)) {
332
-            foreach ($args as $arg) {
333
-                if (!empty($arg_str)) {
334
-                    $arg_str .= ', ';
335
-                }
336
-                if (is_string($arg)) {
337
-                    $arg_str .= "'$arg'";
338
-                } else {
339
-                    $arg_str .= $arg;
340
-                }
341
-            }
342
-        } else {
343
-            if (is_string($args)) {
344
-                $arg_str .= "'$args'";
345
-            } else {
346
-                $arg_str .= $args;
347
-            }
348
-        }
349
-
350
-        return "$function($arg_str)";
351
-    }
352
-
353
-    /**
354
-     * @param  int    $seconds
355
-     * @param  string $script
356
-     * @return string
357
-     */
358
-    public function delay($seconds = 1, $script = '')
359
-    {
360
-        return "setTimeout( function() { $script } , " . ($seconds * 1000) . ' )';
361
-    }
362
-
363
-    /**
364
-     * @param $id
365
-     * @return string
366
-     */
367
-    public function hide($id)
368
-    {
369
-        return $this->call('Element.hide', $id);
370
-    }
371
-
372
-    /**
373
-     * @param       $position
374
-     * @param       $id
375
-     * @param  null $options_for_render
376
-     * @return string
377
-     */
378
-    public function insert_html($position, $id, $options_for_render = null)
379
-    {
380
-        $args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
381
-
382
-        return $this->call('new Insertion.' . ucfirst($position), $args);
383
-    }
384
-
385
-    /**
386
-     * @param $location
387
-     * @return string
388
-     */
389
-    public function redirect_to($location)
390
-    {
391
-        return $this->assign('window.location.href', $location);
392
-    }
393
-
394
-    /**
395
-     * @param $id
396
-     * @return string
397
-     */
398
-    public function remove($id)
399
-    {
400
-        if (is_array($id)) {
401
-            $arr_str = '';
402
-            foreach ($id as $obj) {
403
-                if (!empty($arg_str)) {
404
-                    $arg_str .= ', ';
405
-                }
406
-                $arg_str .= "'$arg'";
407
-            }
408
-
409
-            return "$A[$arg_str].each(Element.remove)";
410
-        } else {
411
-            return "Element.remove('$id')";
412
-        }
413
-    }
414
-
415
-    /**
416
-     * @param $id
417
-     * @param $options_for_render
418
-     * @return string
419
-     */
420
-    public function replace($id, $options_for_render)
421
-    {
422
-        $args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
423
-
424
-        return $this->call('Element.replace', $args);
425
-    }
426
-
427
-    /**
428
-     * @param $id
429
-     * @param $options_for_render
430
-     * @return string
431
-     */
432
-    public function replace_html($id, $options_for_render)
433
-    {
434
-        $args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
435
-
436
-        return $this->call('Element.update', $args);
437
-    }
438
-
439
-    /**
440
-     * @param       $pattern
441
-     * @param  null $extend
442
-     * @return string
443
-     */
444
-    public function select($pattern, $extend = null)
445
-    {
446
-        return "$$('$pattern')" . (!empty($extend)) ? '.' . $extend : '';
447
-    }
448
-
449
-    /**
450
-     * @param $id
451
-     * @return string
452
-     */
453
-    public function show($id)
454
-    {
455
-        return $this->call('Element.show', $id);
456
-    }
457
-
458
-    /**
459
-     * @param $id
460
-     * @return string
461
-     */
462
-    public function toggle($id)
463
-    {
464
-        return $this->call('Element.toggle', $id);
465
-    }
18
+	public $CALLBACKS = array(
19
+		'uninitialized',
20
+		'loading',
21
+		'loaded',
22
+		'interactive',
23
+		'complete',
24
+		'failure',
25
+		'success'
26
+	);
27
+
28
+	public $AJAX_OPTIONS = array(
29
+		'before',
30
+		'after',
31
+		'condition',
32
+		'url',
33
+		'asynchronous',
34
+		'method',
35
+		'insertion',
36
+		'position',
37
+		'form',
38
+		'with',
39
+		'update',
40
+		'script',
41
+		'uninitialized',
42
+		'loading',
43
+		'loaded',
44
+		'interactive',
45
+		'complete',
46
+		'failure',
47
+		'success'
48
+	);
49
+
50
+	/**
51
+	 * @return string
52
+	 */
53
+	public function evaluate_remote_response()
54
+	{
55
+		return 'eval(request.responseText)';
56
+	}
57
+
58
+	/**
59
+	 * @param $options
60
+	 * @return string
61
+	 */
62
+	public function form_remote_tag($options)
63
+	{
64
+		$options['form'] = true;
65
+
66
+		return '<form action="' . $options['url'] . '" onsubmit="' . $this->remote_function($options) . '; return false;" method="' . (isset($options['method']) ? $options['method'] : 'post') . '"  >';
67
+	}
68
+
69
+	/**
70
+	 * @param       $name
71
+	 * @param  null $options
72
+	 * @param  null $html_options
73
+	 * @return string
74
+	 */
75
+	public function link_to_remote($name, $options = null, $html_options = null)
76
+	{
77
+		return $this->link_to_function($name, $this->remote_function($options), $html_options);
78
+	}
79
+
80
+	/**
81
+	 * @param       $field_id
82
+	 * @param  null $options
83
+	 * @return string
84
+	 */
85
+	public function observe_field($field_id, $options = null)
86
+	{
87
+		if (isset($options['frequency']) && $options['frequency'] > 0) {
88
+			return $this->_build_observer('Form.Element.Observer', $field_id, $options);
89
+		} else {
90
+			return $this->_build_observer('Form.Element.EventObserver', $field_id, $options);
91
+		}
92
+	}
93
+
94
+	/**
95
+	 * @param       $form_id
96
+	 * @param  null $options
97
+	 * @return string
98
+	 */
99
+	public function observe_form($form_id, $options = null)
100
+	{
101
+		if (isset($options['frequency'])) {
102
+			return $this->_build_observer('Form.Observer', $form_id, $options);
103
+		} else {
104
+			return $this->_build_observer('Form.EventObserver', $form_id, $options);
105
+		}
106
+	}
107
+
108
+	/**
109
+	 * @param  null $options
110
+	 * @return string
111
+	 */
112
+	public function periodically_call_remote($options = null)
113
+	{
114
+		$frequency = isset($options['frequency']) ? $options['frequency'] : 10;
115
+		$code      = 'new PeriodicalExecuter(function() {' . $this->remote_function($options) . '},' . $frequency . ')';
116
+
117
+		return $code;
118
+	}
119
+
120
+	/**
121
+	 * @param $options
122
+	 * @return string
123
+	 */
124
+	public function remote_function($options)
125
+	{
126
+		$javascript_options = $this->_options_for_ajax($options);
127
+
128
+		$update = '';
129
+
130
+		if (isset($options['update']) && is_array($options['update'])) {
131
+			$update = isset($options['update']['success']) ? 'success: ' . $options['update']['success'] : '';
132
+			$update .= empty($update) ? '' : ',';
133
+			$update .= isset($options['update']['failure']) ? 'failure: ' . $options['update']['failure'] : '';
134
+		} else {
135
+			$update .= isset($options['update']) ? $options['update'] : '';
136
+		}
137
+
138
+		$ajax_function = empty($update) ? 'new Ajax.Request(' : 'new Ajax.Updater(\'' . $update . '\',';
139
+
140
+		$ajax_function .= "'" . $options['url'] . "'";
141
+		$ajax_function .= ',' . $javascript_options . ')';
142
+
143
+		$ajax_function = isset($options['before']) ? $options['before'] . ';' . $ajax_function : $ajax_function;
144
+		$ajax_function = isset($options['after']) ? $ajax_function . ';' . $options['after'] : $ajax_function;
145
+		$ajax_function = isset($options['condition']) ? 'if (' . $options['condition'] . ') {' . $ajax_function . '}' : $ajax_function;
146
+		$ajax_function = isset($options['confirm']) ? 'if ( confirm(\'' . $options['confirm'] . '\' ) ) { ' . $ajax_function . ' } ' : $ajax_function;
147
+
148
+		return $ajax_function;
149
+	}
150
+
151
+	/**
152
+	 * @param $name
153
+	 * @param $value
154
+	 * @param $options
155
+	 * @return string
156
+	 */
157
+	public function submit_to_remote($name, $value, $options)
158
+	{
159
+		if (isset($options['with'])) {
160
+			$options['with'] = 'Form.serialize(this.form)';
161
+		}
162
+
163
+		return '<input type="button" onclick="' . $this->remote_function($options) . '" name="' . $name . '" value ="' . $value . '" />';
164
+	}
165
+
166
+	/**
167
+	 * @param      $element_id
168
+	 * @param null $options
169
+	 * @param      $block
170
+	 */
171
+	public function update_element_function($element_id, $options = null, $block)
172
+	{
173
+		$content = isset($options['content']) ? $options['content'] : '';
174
+		$content = $this->escape($content);
175
+	}
176
+
177
+	/**
178
+	 * @param $block
179
+	 */
180
+	public function update_page($block)
181
+	{
182
+	}
183
+
184
+	/**
185
+	 * @param $block
186
+	 * @return string
187
+	 */
188
+	public function update_page_tag(& $block)
189
+	{
190
+		return $this->tag($block);
191
+	}
192
+
193
+	/////////////////////////////////////////////////////////////////////////////////////
194
+	//                             Private functions
195
+	/////////////////////////////////////////////////////////////////////////////////////
196
+
197
+	/**
198
+	 * @param $options
199
+	 * @return array
200
+	 */
201
+	public function _build_callbacks($options)
202
+	{
203
+		$callbacks = array();
204
+		foreach ($options as $callback => $code) {
205
+			if (in_array($callback, $this->CALLBACKS)) {
206
+				$name             = 'on' . ucfirst($callback);
207
+				$callbacks[$name] = 'function(request){' . $code . '}';
208
+			}
209
+		}
210
+
211
+		return $callbacks;
212
+	}
213
+
214
+	/**
215
+	 * @param       $klass
216
+	 * @param       $name
217
+	 * @param  null $options
218
+	 * @return string
219
+	 */
220
+	public function _build_observer($klass, $name, $options = null)
221
+	{
222
+		if (isset($options['with']) && false === strpos($options['with'], '=')) {
223
+			$options['with'] = '\'' . $options['with'] . '=\' + value';
224
+		} elseif (isset($options['with']) && isset($options['update'])) {
225
+			$options['with'] = 'value';
226
+		}
227
+
228
+		$callback = $options['function'] ?: $this->remote_function($options);
229
+
230
+		$javascript = "new $klass('$name', ";
231
+		$javascript .= isset($options['frequency']) ? $options['frequency'] . ', ' : '';
232
+		$javascript .= 'function (element,value) { ';
233
+		$javascript .= $callback;
234
+		$javascript .= isset($options['on']) ? ', ' . $options['on'] : '';
235
+		$javascript .= '})';
236
+
237
+		return $javascript;
238
+	}
239
+
240
+	/**
241
+	 * @param $method
242
+	 * @return string
243
+	 */
244
+	public function _method_option_to_s($method)
245
+	{
246
+		return strstr($method, "'") ? $method : "'$method'";
247
+	}
248
+
249
+	/**
250
+	 * @param $options
251
+	 * @return string
252
+	 */
253
+	public function _options_for_ajax($options)
254
+	{
255
+		$js_options = is_array($options) ? $this->_build_callbacks($options) : array();
256
+
257
+		if (isset($options['type']) && $option['type'] === 'synchronous') {
258
+			$js_options['asynchronous'] = 'false';
259
+		}
260
+
261
+		if (isset($options['method'])) {
262
+			$js_options['method'] = $this->_method_option_to_s($options['method']);
263
+		}
264
+
265
+		if (isset($options['position'])) {
266
+			$js_options['insertion'] = 'Insertion.' . ucfirst($options['position']);
267
+		}
268
+
269
+		$js_options['evalScripts'] = isset($options['script']) ? $options['script'] : 'true';
270
+
271
+		if (isset($options['form'])) {
272
+			$js_options['parameters'] = 'Form.serialize(this)';
273
+		} elseif (isset($options['parameters'])) {
274
+			$js_options['parameters'] = 'Form.serialize(\'' . $options['submit'] . '\')';
275
+		} elseif (isset($options['with'])) {
276
+			$js_options['parameters'] = $options['with'];
277
+		}
278
+
279
+		return $this->_options_for_javascript($js_options);
280
+	}
281
+
282
+	/////////////////////////////////////////////////////////////////////////////////////
283
+	//                            Mergerd Javascript Generator helpers
284
+	/////////////////////////////////////////////////////////////////////////////////////
285
+
286
+	/**
287
+	 * @param $javascript
288
+	 */
289
+	public function dump($javascript)
290
+	{
291
+		echo $javascript;
292
+	}
293
+
294
+	/**
295
+	 * @param       $id
296
+	 * @param  null $extend
297
+	 * @return string
298
+	 */
299
+	public function ID($id, $extend = null)
300
+	{
301
+		return "$('$id')" . (!empty($extend)) ? '.' . $extend . '()' : '';
302
+	}
303
+
304
+	/**
305
+	 * @param $message
306
+	 * @return string
307
+	 */
308
+	public function alert($message)
309
+	{
310
+		return $this->call('alert', $message);
311
+	}
312
+
313
+	/**
314
+	 * @param $variable
315
+	 * @param $value
316
+	 * @return string
317
+	 */
318
+	public function assign($variable, $value)
319
+	{
320
+		return "$variable = $value;";
321
+	}
322
+
323
+	/**
324
+	 * @param       $function
325
+	 * @param  null $args
326
+	 * @return string
327
+	 */
328
+	public function call($function, $args = null)
329
+	{
330
+		$arg_str = '';
331
+		if (is_array($args)) {
332
+			foreach ($args as $arg) {
333
+				if (!empty($arg_str)) {
334
+					$arg_str .= ', ';
335
+				}
336
+				if (is_string($arg)) {
337
+					$arg_str .= "'$arg'";
338
+				} else {
339
+					$arg_str .= $arg;
340
+				}
341
+			}
342
+		} else {
343
+			if (is_string($args)) {
344
+				$arg_str .= "'$args'";
345
+			} else {
346
+				$arg_str .= $args;
347
+			}
348
+		}
349
+
350
+		return "$function($arg_str)";
351
+	}
352
+
353
+	/**
354
+	 * @param  int    $seconds
355
+	 * @param  string $script
356
+	 * @return string
357
+	 */
358
+	public function delay($seconds = 1, $script = '')
359
+	{
360
+		return "setTimeout( function() { $script } , " . ($seconds * 1000) . ' )';
361
+	}
362
+
363
+	/**
364
+	 * @param $id
365
+	 * @return string
366
+	 */
367
+	public function hide($id)
368
+	{
369
+		return $this->call('Element.hide', $id);
370
+	}
371
+
372
+	/**
373
+	 * @param       $position
374
+	 * @param       $id
375
+	 * @param  null $options_for_render
376
+	 * @return string
377
+	 */
378
+	public function insert_html($position, $id, $options_for_render = null)
379
+	{
380
+		$args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
381
+
382
+		return $this->call('new Insertion.' . ucfirst($position), $args);
383
+	}
384
+
385
+	/**
386
+	 * @param $location
387
+	 * @return string
388
+	 */
389
+	public function redirect_to($location)
390
+	{
391
+		return $this->assign('window.location.href', $location);
392
+	}
393
+
394
+	/**
395
+	 * @param $id
396
+	 * @return string
397
+	 */
398
+	public function remove($id)
399
+	{
400
+		if (is_array($id)) {
401
+			$arr_str = '';
402
+			foreach ($id as $obj) {
403
+				if (!empty($arg_str)) {
404
+					$arg_str .= ', ';
405
+				}
406
+				$arg_str .= "'$arg'";
407
+			}
408
+
409
+			return "$A[$arg_str].each(Element.remove)";
410
+		} else {
411
+			return "Element.remove('$id')";
412
+		}
413
+	}
414
+
415
+	/**
416
+	 * @param $id
417
+	 * @param $options_for_render
418
+	 * @return string
419
+	 */
420
+	public function replace($id, $options_for_render)
421
+	{
422
+		$args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
423
+
424
+		return $this->call('Element.replace', $args);
425
+	}
426
+
427
+	/**
428
+	 * @param $id
429
+	 * @param $options_for_render
430
+	 * @return string
431
+	 */
432
+	public function replace_html($id, $options_for_render)
433
+	{
434
+		$args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
435
+
436
+		return $this->call('Element.update', $args);
437
+	}
438
+
439
+	/**
440
+	 * @param       $pattern
441
+	 * @param  null $extend
442
+	 * @return string
443
+	 */
444
+	public function select($pattern, $extend = null)
445
+	{
446
+		return "$$('$pattern')" . (!empty($extend)) ? '.' . $extend : '';
447
+	}
448
+
449
+	/**
450
+	 * @param $id
451
+	 * @return string
452
+	 */
453
+	public function show($id)
454
+	{
455
+		return $this->call('Element.show', $id);
456
+	}
457
+
458
+	/**
459
+	 * @param $id
460
+	 * @return string
461
+	 */
462
+	public function toggle($id)
463
+	{
464
+		return $this->call('Element.toggle', $id);
465
+	}
466 466
 }
Please login to merge, or discard this patch.
include/projax_/classes/Scriptaculous.php 1 patch
Indentation   +302 added lines, -302 removed lines patch added patch discarded remove patch
@@ -15,307 +15,307 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class Scriptaculous extends Prototype
17 17
 {
18
-    public $TOGGLE_EFFECTS = array('toggle_appear', 'toggle_slide', 'toggle_blind');
19
-
20
-    /**
21
-     * Scriptaculous constructor.
22
-     */
23
-    public function __construct()
24
-    {
25
-    }
26
-
27
-    /**
28
-     * @param      $element_id
29
-     * @param null $options
30
-     * @return string
31
-     */
32
-    public function dragable_element($element_id, $options = null)
33
-    {
34
-        return $this->tag($this->_dragable_element_js($element_id, $options));
35
-    }
36
-
37
-    /**
38
-     * @param      $element_id
39
-     * @param null $options
40
-     * @return string
41
-     */
42
-    public function drop_receiving_element($element_id, $options = null)
43
-    {
44
-        return $this->tag($this->_drop_receiving_element($element_id, $options));
45
-    }
46
-
47
-    /**
48
-     * @param      $name
49
-     * @param bool $element_id
50
-     * @param null $js_options
51
-     * @return string
52
-     */
53
-    public function visual_effect($name, $element_id = false, $js_options = null)
54
-    {
55
-        $element = $element_id ? "'$element_id'" : 'element';
56
-
57
-        $js_queue = '';
58
-        if (isset($js_options) && is_array($js_options['queue'])) {
59
-        } elseif (isset($js_options)) {
60
-            $js_queue = "'$js_options'";
61
-        }
62
-
63
-        if (in_array($name, $this->TOGGLE_EFFECTS)) {
64
-            return "Effect.toggle($element,'" . str_replace('toggle_', '', $name) . "'," . $this->_options_for_javascript($js_options) . ')';
65
-        } else {
66
-            return 'new Effect.' . ucwords($name) . "($element," . $this->_options_for_javascript($js_options) . ')';
67
-        }
68
-    }
69
-
70
-    /**
71
-     * @param      $element_id
72
-     * @param null $options
73
-     * @return string
74
-     */
75
-    public function sortabe_element($element_id, $options = null)
76
-    {
77
-        return $this->tag($this->_sortabe_element($element_id, $options));
78
-    }
79
-
80
-    /////////////////////////////////////////////////////////////////////////////////////
81
-    //                             Private functions
82
-    /////////////////////////////////////////////////////////////////////////////////////
83
-
84
-    /**
85
-     * @param $element_id
86
-     * @param $options
87
-     * @return string
88
-     */
89
-    public function _sortabe_element($element_id, $options)
90
-    {
91
-        //if (isset($options['with'])) {
92
-        $options['with'] = "Sortable.serialize('$element_id')";
93
-        //    }
94
-
95
-        //if (isset($option['onUpdate'])) {
96
-        $options['onUpdate'] = 'function(){' . $this->remote_function($options) . '}';
97
-        //}
98
-
99
-        foreach ($options as $var => $val) {
100
-            if (in_array($var, $this->AJAX_OPTIONS)) {
101
-                unset($options[$var]);
102
-            }
103
-        }
104
-
105
-        $arr = array('tag', 'overlap', 'contraint', 'handle');
106
-
107
-        foreach ($arr as $var) {
108
-            if (isset($options[$var])) {
109
-                $options[$var] = "'" . $options[$var] . "'";
110
-            }
111
-        }
112
-
113
-        if (isset($options['containment'])) {
114
-            $options['containment'] = $this->_array_or_string_for_javascript($options['containment']);
115
-        }
116
-
117
-        if (isset($options['only'])) {
118
-            $options['only'] = $this->_array_or_string_for_javascript($options['only']);
119
-        }
120
-
121
-        return "Sortable.create('$element_id'," . $this->_options_for_javascript($options) . ')';
122
-    }
123
-
124
-    /**
125
-     * @param $element_id
126
-     * @param $options
127
-     * @return string
128
-     */
129
-    public function _dragable_element_js($element_id, $options)
130
-    {
131
-        return 'new Draggable(\'' . $element_id . '\',' . $this->_options_for_javascript($options) . ')';
132
-    }
133
-
134
-    /**
135
-     * @param $element_id
136
-     * @param $options
137
-     * @return string
138
-     */
139
-    public function _drop_receiving_element($element_id, $options)
140
-    {
141
-
142
-        //if (isset($options['with'])) {
143
-        $options['with'] = '\'id=\' + encodeURIComponent(element.id)';
144
-        //    }
145
-
146
-        //if (isset($option['onDrop']))
147
-
148
-        {
149
-            $options['onDrop'] = 'function(element){' . $this->remote_function($options) . '}';
150
-        }
151
-
152
-        if (is_array($options)) {
153
-            foreach ($options as $var => $val) {
154
-                if (in_array($var, $this->AJAX_OPTIONS)) {
155
-                    unset($options[$var]);
156
-                }
157
-            }
158
-        }
159
-
160
-        if (isset($options['accept'])) {
161
-            $options['accept'] = $this->_array_or_string_for_javascript($options['accept']);
162
-        }
163
-
164
-        if (isset($options['hoverclass'])) {
165
-            $options['hoverclass'] = "'" . $options['hoverclass'] . "'";
166
-        }
167
-
168
-        return 'Droppables.add(\'' . $element_id . '\',' . $this->_options_for_javascript($options) . ')';
169
-    }
170
-
171
-    /////////////////////////////////////////////////////////////////////////////////////
172
-    //                            Merged Javascript macro
173
-    /////////////////////////////////////////////////////////////////////////////////////
174
-
175
-    /**
176
-     * @param      $field_id
177
-     * @param      $options
178
-     * @param bool $tag
179
-     * @return string
180
-     */
181
-    public function in_place_editor($field_id, $options, $tag = true)
182
-    {
183
-        $function = 'new Ajax.InPlaceEditor(';
184
-        $function .= "'$field_id', ";
185
-        $function .= "'" . $options['url'] . "'";
186
-
187
-        $js_options = array();
188
-        if (isset($options['cancel_text'])) {
189
-            $js_options['cancelText'] = $options['cancel_text'];
190
-        }
191
-        if (isset($options['save_text'])) {
192
-            $js_options['okText'] = $options['save_text'];
193
-        }
194
-        if (isset($options['loading_text'])) {
195
-            $js_options['loadingText'] = $options['loading_text'];
196
-        }
197
-        if (isset($options['rows'])) {
198
-            $js_options['rows'] = $options['rows'];
199
-        }
200
-        if (isset($options['cols'])) {
201
-            $js_options['cols'] = $options['cols'];
202
-        }
203
-        if (isset($options['size'])) {
204
-            $js_options['size'] = $options['size'];
205
-        }
206
-        if (isset($options['external_control'])) {
207
-            $js_options['externalControl'] = "'" . $options['external_control'] . "'";
208
-        }
209
-        if (isset($options['load_text_url'])) {
210
-            $js_options['loadTextURL'] = "'" . $options['load_text_url'] . "'";
211
-        }
212
-        if (isset($options['options'])) {
213
-            $js_options['ajaxOptions'] = $options['options'];
214
-        }
215
-        if (isset($options['script'])) {
216
-            $js_options['evalScripts'] = $options['script'];
217
-        }
218
-        if (isset($options['with'])) {
219
-            $js_options['callback'] = 'function(form) { return ' . $options['with'] . ' }';
220
-        }
221
-
222
-        $function .= ', ' . $this->_options_for_javascript($js_options) . ' )';
223
-        if ($tag) {
224
-            return $this->tag($function);
225
-        } else {
226
-            return $function;
227
-        }
228
-    }
229
-
230
-    /**
231
-     * @param      $object
232
-     * @param null $tag_options
233
-     * @param null $in_place_editor_options
234
-     * @return string
235
-     */
236
-    public function in_place_editor_field($object, $tag_options = null, $in_place_editor_options = null)
237
-    {
238
-        $ret_val = '';
239
-        $ret_val .= '<span id="' . $object . '" class="in_place_editor_field">' . (isset($tag_options['value']) ? $tag_options['value'] : '') . '</span>';
240
-        $ret_val .= $this->in_place_editor($object, $in_place_editor_options);
241
-
242
-        return $ret_val;
243
-    }
244
-
245
-    /**
246
-     * @param $field_id
247
-     * @param $options
248
-     * @return mixed
249
-     */
250
-    public function auto_complete_field($field_id, $options)
251
-    {
252
-        $function = "var $field_id" . '_auto_completer = new Ajax.Autocompleter(';
253
-        $function .= "'$field_id', ";
254
-        $function .= "'" . (isset($options['update']) ? $options['update'] : $field_id . '_auto_complete') . "', ";
255
-        $function .= "'" . $options['url'] . "'";
256
-
257
-        $js_options = array();
258
-        if (isset($options['tokens'])) {
259
-            $js_options['tokens'] = $this->javascript->_array_or_string_for_javascript($options['tokens']);
260
-        }
261
-        if (isset($options['with'])) {
262
-            $js_options['callback'] = 'function(element, value) { return ' . $options['with'] . ' }';
263
-        }
264
-        if (isset($options['indicator'])) {
265
-            $js_options['indicator'] = "'" . $options['indicator'] . "'";
266
-        }
267
-        if (isset($options['select'])) {
268
-            $js_options['select'] = "'" . $options['select'] . "'";
269
-        }
270
-
271
-        foreach (array('on_show' => 'onShow', 'on_hide' => 'onHide', 'min_chars' => 'min_chars') as $var => $val) {
272
-            if (isset($options[$var])) {
273
-                $js_options['$val'] = $options['var'];
274
-            }
275
-        }
276
-
277
-        $function .= ', ' . $this->_options_for_javascript($js_options) . ' )';
278
-
279
-        return $this->tag($function);
280
-    }
281
-
282
-    /**
283
-     * @param      $entries
284
-     * @param      $field
285
-     * @param null $phrase
286
-     */
287
-    public function auto_complete_results($entries, $field, $phrase = null)
288
-    {
289
-        if (!is_array($entries)) {
290
-            return;
291
-        }
292
-        $ret_val = '<ul>';
293
-        //  Complete this function
294
-    }
295
-
296
-    /**
297
-     * @param      $object
298
-     * @param null $tag_options
299
-     * @param null $completion_options
300
-     * @return string
301
-     */
302
-    public function text_field_with_auto_complete($object, $tag_options = null, $completion_options = null)
303
-    {
304
-        $ret_val = isset($completion_options['skip_style']) ? '' : $this->_auto_complete_stylesheet();
305
-        $ret_val .= '<input autocomplete="off" id="' . $object . '" name="' . $object . '" size="' . (isset($tag_options['size']) ? $tag_options['size'] : 30) . '" type="text" value="' . (isset($tag_options['size']) ? $tag_options['value'] : '') . '" ' . (isset($tag_options['class']) ? 'class = "' . $tag_options['class'] . '" ' : '') . '/>';
306
-
307
-        $ret_val .= '<div id="' . $object . '_auto_complete" class="auto_complete"></div>';
308
-        $ret_val .= $this->auto_complete_field($object, $completion_options);
309
-
310
-        return $ret_val;
311
-    }
312
-
313
-    /**
314
-     * @return string
315
-     */
316
-    public function _auto_complete_stylesheet()
317
-    {
318
-        return '<style> div.auto_complete {
18
+	public $TOGGLE_EFFECTS = array('toggle_appear', 'toggle_slide', 'toggle_blind');
19
+
20
+	/**
21
+	 * Scriptaculous constructor.
22
+	 */
23
+	public function __construct()
24
+	{
25
+	}
26
+
27
+	/**
28
+	 * @param      $element_id
29
+	 * @param null $options
30
+	 * @return string
31
+	 */
32
+	public function dragable_element($element_id, $options = null)
33
+	{
34
+		return $this->tag($this->_dragable_element_js($element_id, $options));
35
+	}
36
+
37
+	/**
38
+	 * @param      $element_id
39
+	 * @param null $options
40
+	 * @return string
41
+	 */
42
+	public function drop_receiving_element($element_id, $options = null)
43
+	{
44
+		return $this->tag($this->_drop_receiving_element($element_id, $options));
45
+	}
46
+
47
+	/**
48
+	 * @param      $name
49
+	 * @param bool $element_id
50
+	 * @param null $js_options
51
+	 * @return string
52
+	 */
53
+	public function visual_effect($name, $element_id = false, $js_options = null)
54
+	{
55
+		$element = $element_id ? "'$element_id'" : 'element';
56
+
57
+		$js_queue = '';
58
+		if (isset($js_options) && is_array($js_options['queue'])) {
59
+		} elseif (isset($js_options)) {
60
+			$js_queue = "'$js_options'";
61
+		}
62
+
63
+		if (in_array($name, $this->TOGGLE_EFFECTS)) {
64
+			return "Effect.toggle($element,'" . str_replace('toggle_', '', $name) . "'," . $this->_options_for_javascript($js_options) . ')';
65
+		} else {
66
+			return 'new Effect.' . ucwords($name) . "($element," . $this->_options_for_javascript($js_options) . ')';
67
+		}
68
+	}
69
+
70
+	/**
71
+	 * @param      $element_id
72
+	 * @param null $options
73
+	 * @return string
74
+	 */
75
+	public function sortabe_element($element_id, $options = null)
76
+	{
77
+		return $this->tag($this->_sortabe_element($element_id, $options));
78
+	}
79
+
80
+	/////////////////////////////////////////////////////////////////////////////////////
81
+	//                             Private functions
82
+	/////////////////////////////////////////////////////////////////////////////////////
83
+
84
+	/**
85
+	 * @param $element_id
86
+	 * @param $options
87
+	 * @return string
88
+	 */
89
+	public function _sortabe_element($element_id, $options)
90
+	{
91
+		//if (isset($options['with'])) {
92
+		$options['with'] = "Sortable.serialize('$element_id')";
93
+		//    }
94
+
95
+		//if (isset($option['onUpdate'])) {
96
+		$options['onUpdate'] = 'function(){' . $this->remote_function($options) . '}';
97
+		//}
98
+
99
+		foreach ($options as $var => $val) {
100
+			if (in_array($var, $this->AJAX_OPTIONS)) {
101
+				unset($options[$var]);
102
+			}
103
+		}
104
+
105
+		$arr = array('tag', 'overlap', 'contraint', 'handle');
106
+
107
+		foreach ($arr as $var) {
108
+			if (isset($options[$var])) {
109
+				$options[$var] = "'" . $options[$var] . "'";
110
+			}
111
+		}
112
+
113
+		if (isset($options['containment'])) {
114
+			$options['containment'] = $this->_array_or_string_for_javascript($options['containment']);
115
+		}
116
+
117
+		if (isset($options['only'])) {
118
+			$options['only'] = $this->_array_or_string_for_javascript($options['only']);
119
+		}
120
+
121
+		return "Sortable.create('$element_id'," . $this->_options_for_javascript($options) . ')';
122
+	}
123
+
124
+	/**
125
+	 * @param $element_id
126
+	 * @param $options
127
+	 * @return string
128
+	 */
129
+	public function _dragable_element_js($element_id, $options)
130
+	{
131
+		return 'new Draggable(\'' . $element_id . '\',' . $this->_options_for_javascript($options) . ')';
132
+	}
133
+
134
+	/**
135
+	 * @param $element_id
136
+	 * @param $options
137
+	 * @return string
138
+	 */
139
+	public function _drop_receiving_element($element_id, $options)
140
+	{
141
+
142
+		//if (isset($options['with'])) {
143
+		$options['with'] = '\'id=\' + encodeURIComponent(element.id)';
144
+		//    }
145
+
146
+		//if (isset($option['onDrop']))
147
+
148
+		{
149
+			$options['onDrop'] = 'function(element){' . $this->remote_function($options) . '}';
150
+		}
151
+
152
+		if (is_array($options)) {
153
+			foreach ($options as $var => $val) {
154
+				if (in_array($var, $this->AJAX_OPTIONS)) {
155
+					unset($options[$var]);
156
+				}
157
+			}
158
+		}
159
+
160
+		if (isset($options['accept'])) {
161
+			$options['accept'] = $this->_array_or_string_for_javascript($options['accept']);
162
+		}
163
+
164
+		if (isset($options['hoverclass'])) {
165
+			$options['hoverclass'] = "'" . $options['hoverclass'] . "'";
166
+		}
167
+
168
+		return 'Droppables.add(\'' . $element_id . '\',' . $this->_options_for_javascript($options) . ')';
169
+	}
170
+
171
+	/////////////////////////////////////////////////////////////////////////////////////
172
+	//                            Merged Javascript macro
173
+	/////////////////////////////////////////////////////////////////////////////////////
174
+
175
+	/**
176
+	 * @param      $field_id
177
+	 * @param      $options
178
+	 * @param bool $tag
179
+	 * @return string
180
+	 */
181
+	public function in_place_editor($field_id, $options, $tag = true)
182
+	{
183
+		$function = 'new Ajax.InPlaceEditor(';
184
+		$function .= "'$field_id', ";
185
+		$function .= "'" . $options['url'] . "'";
186
+
187
+		$js_options = array();
188
+		if (isset($options['cancel_text'])) {
189
+			$js_options['cancelText'] = $options['cancel_text'];
190
+		}
191
+		if (isset($options['save_text'])) {
192
+			$js_options['okText'] = $options['save_text'];
193
+		}
194
+		if (isset($options['loading_text'])) {
195
+			$js_options['loadingText'] = $options['loading_text'];
196
+		}
197
+		if (isset($options['rows'])) {
198
+			$js_options['rows'] = $options['rows'];
199
+		}
200
+		if (isset($options['cols'])) {
201
+			$js_options['cols'] = $options['cols'];
202
+		}
203
+		if (isset($options['size'])) {
204
+			$js_options['size'] = $options['size'];
205
+		}
206
+		if (isset($options['external_control'])) {
207
+			$js_options['externalControl'] = "'" . $options['external_control'] . "'";
208
+		}
209
+		if (isset($options['load_text_url'])) {
210
+			$js_options['loadTextURL'] = "'" . $options['load_text_url'] . "'";
211
+		}
212
+		if (isset($options['options'])) {
213
+			$js_options['ajaxOptions'] = $options['options'];
214
+		}
215
+		if (isset($options['script'])) {
216
+			$js_options['evalScripts'] = $options['script'];
217
+		}
218
+		if (isset($options['with'])) {
219
+			$js_options['callback'] = 'function(form) { return ' . $options['with'] . ' }';
220
+		}
221
+
222
+		$function .= ', ' . $this->_options_for_javascript($js_options) . ' )';
223
+		if ($tag) {
224
+			return $this->tag($function);
225
+		} else {
226
+			return $function;
227
+		}
228
+	}
229
+
230
+	/**
231
+	 * @param      $object
232
+	 * @param null $tag_options
233
+	 * @param null $in_place_editor_options
234
+	 * @return string
235
+	 */
236
+	public function in_place_editor_field($object, $tag_options = null, $in_place_editor_options = null)
237
+	{
238
+		$ret_val = '';
239
+		$ret_val .= '<span id="' . $object . '" class="in_place_editor_field">' . (isset($tag_options['value']) ? $tag_options['value'] : '') . '</span>';
240
+		$ret_val .= $this->in_place_editor($object, $in_place_editor_options);
241
+
242
+		return $ret_val;
243
+	}
244
+
245
+	/**
246
+	 * @param $field_id
247
+	 * @param $options
248
+	 * @return mixed
249
+	 */
250
+	public function auto_complete_field($field_id, $options)
251
+	{
252
+		$function = "var $field_id" . '_auto_completer = new Ajax.Autocompleter(';
253
+		$function .= "'$field_id', ";
254
+		$function .= "'" . (isset($options['update']) ? $options['update'] : $field_id . '_auto_complete') . "', ";
255
+		$function .= "'" . $options['url'] . "'";
256
+
257
+		$js_options = array();
258
+		if (isset($options['tokens'])) {
259
+			$js_options['tokens'] = $this->javascript->_array_or_string_for_javascript($options['tokens']);
260
+		}
261
+		if (isset($options['with'])) {
262
+			$js_options['callback'] = 'function(element, value) { return ' . $options['with'] . ' }';
263
+		}
264
+		if (isset($options['indicator'])) {
265
+			$js_options['indicator'] = "'" . $options['indicator'] . "'";
266
+		}
267
+		if (isset($options['select'])) {
268
+			$js_options['select'] = "'" . $options['select'] . "'";
269
+		}
270
+
271
+		foreach (array('on_show' => 'onShow', 'on_hide' => 'onHide', 'min_chars' => 'min_chars') as $var => $val) {
272
+			if (isset($options[$var])) {
273
+				$js_options['$val'] = $options['var'];
274
+			}
275
+		}
276
+
277
+		$function .= ', ' . $this->_options_for_javascript($js_options) . ' )';
278
+
279
+		return $this->tag($function);
280
+	}
281
+
282
+	/**
283
+	 * @param      $entries
284
+	 * @param      $field
285
+	 * @param null $phrase
286
+	 */
287
+	public function auto_complete_results($entries, $field, $phrase = null)
288
+	{
289
+		if (!is_array($entries)) {
290
+			return;
291
+		}
292
+		$ret_val = '<ul>';
293
+		//  Complete this function
294
+	}
295
+
296
+	/**
297
+	 * @param      $object
298
+	 * @param null $tag_options
299
+	 * @param null $completion_options
300
+	 * @return string
301
+	 */
302
+	public function text_field_with_auto_complete($object, $tag_options = null, $completion_options = null)
303
+	{
304
+		$ret_val = isset($completion_options['skip_style']) ? '' : $this->_auto_complete_stylesheet();
305
+		$ret_val .= '<input autocomplete="off" id="' . $object . '" name="' . $object . '" size="' . (isset($tag_options['size']) ? $tag_options['size'] : 30) . '" type="text" value="' . (isset($tag_options['size']) ? $tag_options['value'] : '') . '" ' . (isset($tag_options['class']) ? 'class = "' . $tag_options['class'] . '" ' : '') . '/>';
306
+
307
+		$ret_val .= '<div id="' . $object . '_auto_complete" class="auto_complete"></div>';
308
+		$ret_val .= $this->auto_complete_field($object, $completion_options);
309
+
310
+		return $ret_val;
311
+	}
312
+
313
+	/**
314
+	 * @return string
315
+	 */
316
+	public function _auto_complete_stylesheet()
317
+	{
318
+		return '<style> div.auto_complete {
319 319
                   width: 350px;
320 320
                   background: #fff;
321 321
                  }
@@ -339,5 +339,5 @@  discard block
 block discarded – undo
339 339
                    padding:0;
340 340
                  }
341 341
                  </style>';
342
-    }
342
+	}
343 343
 }
Please login to merge, or discard this patch.
include/rating.rate.php 1 patch
Indentation   +47 added lines, -47 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
 // defined('XOOPS_ROOT_PATH') || exit('XOOPS root path not defined');
10 10
 
11 11
 if (!defined('SMARTOBJECT_URL')) {
12
-    include_once(XOOPS_ROOT_PATH . '/modules/smartobject/include/common.php');
12
+	include_once(XOOPS_ROOT_PATH . '/modules/smartobject/include/common.php');
13 13
 }
14 14
 include_once(SMARTOBJECT_ROOT_PATH . 'class/rating.php');
15 15
 include_once(SMARTOBJECT_ROOT_PATH . 'include/functions.php');
@@ -23,53 +23,53 @@  discard block
 block discarded – undo
23 23
 $smartobjectPluginHandler = new SmartPluginHandler();
24 24
 $pluginObj                  = $smartobjectPluginHandler->getPlugin($module_dirname);
25 25
 if ($pluginObj) {
26
-    $rating_item = $pluginObj->getItem();
27
-    if ($rating_item) {
28
-        $rating_itemid = $pluginObj->getItemIdForItem($rating_item);
29
-        $stats         = $smartobjectRatingHandler->getRatingAverageByItemId($rating_itemid, $module_dirname, $rating_item);
30
-        $xoopsTpl->assign('smartobject_rating_stats_total', $stats['sum']);
31
-        $xoopsTpl->assign('smartobject_rating_stats_average', $stats['average']);
32
-        $xoopsTpl->assign('smartobject_rating_item', $rating_item);
33
-        if (is_object($xoopsUser)) {
34
-            $ratingObj = $smartobjectRatingHandler->already_rated($rating_item, $rating_itemid, $module_dirname, $xoopsUser->getVar('uid'));
35
-            $xoopsTpl->assign('smartobject_user_can_rate', true);
36
-        }
37
-        if (isset($ratingObj) && is_object($ratingObj)) {
38
-            $xoopsTpl->assign('smartobject_user_rate', $ratingObj->getVar('rate'));
39
-            $xoopsTpl->assign('smartobject_rated', true);
40
-        } else {
41
-            $xoopsTpl->assign('smartobject_rating_dirname', $module_dirname);
42
-            $xoopsTpl->assign('smartobject_rating_itemid', $rating_itemid);
43
-            $urls = smart_getCurrentUrls();
44
-            $xoopsTpl->assign('smartobject_rating_current_page', $urls['full']);
45
-            if (isset($xoTheme) && is_object($xoTheme)) {
46
-                $xoTheme->addStylesheet(SMARTOBJECT_URL . 'assets/css/module.css');
47
-            } else {
48
-                //probleme d'inclusion de css apres le flashplayer. Style plac� dans css du theme
49
-                //$xoopsTpl->assign('smartobject_css',"<link rel='stylesheet' type='text/css' href='".XOOPS_URL."/modules/smartobject/assets/css/module.css' />");
50
-            }
51
-        }
52
-    }
26
+	$rating_item = $pluginObj->getItem();
27
+	if ($rating_item) {
28
+		$rating_itemid = $pluginObj->getItemIdForItem($rating_item);
29
+		$stats         = $smartobjectRatingHandler->getRatingAverageByItemId($rating_itemid, $module_dirname, $rating_item);
30
+		$xoopsTpl->assign('smartobject_rating_stats_total', $stats['sum']);
31
+		$xoopsTpl->assign('smartobject_rating_stats_average', $stats['average']);
32
+		$xoopsTpl->assign('smartobject_rating_item', $rating_item);
33
+		if (is_object($xoopsUser)) {
34
+			$ratingObj = $smartobjectRatingHandler->already_rated($rating_item, $rating_itemid, $module_dirname, $xoopsUser->getVar('uid'));
35
+			$xoopsTpl->assign('smartobject_user_can_rate', true);
36
+		}
37
+		if (isset($ratingObj) && is_object($ratingObj)) {
38
+			$xoopsTpl->assign('smartobject_user_rate', $ratingObj->getVar('rate'));
39
+			$xoopsTpl->assign('smartobject_rated', true);
40
+		} else {
41
+			$xoopsTpl->assign('smartobject_rating_dirname', $module_dirname);
42
+			$xoopsTpl->assign('smartobject_rating_itemid', $rating_itemid);
43
+			$urls = smart_getCurrentUrls();
44
+			$xoopsTpl->assign('smartobject_rating_current_page', $urls['full']);
45
+			if (isset($xoTheme) && is_object($xoTheme)) {
46
+				$xoTheme->addStylesheet(SMARTOBJECT_URL . 'assets/css/module.css');
47
+			} else {
48
+				//probleme d'inclusion de css apres le flashplayer. Style plac� dans css du theme
49
+				//$xoopsTpl->assign('smartobject_css',"<link rel='stylesheet' type='text/css' href='".XOOPS_URL."/modules/smartobject/assets/css/module.css' />");
50
+			}
51
+		}
52
+	}
53 53
 }
54 54
 
55 55
 if (isset($_POST['smartobject_rating_submit'])) {
56
-    // The rating form has just been posted. Let's save the info
57
-    $ratingObj = $smartobjectRatingHandler->create();
58
-    $ratingObj->setVar('dirname', $module_dirname);
59
-    $ratingObj->setVar('item', $rating_item);
60
-    $ratingObj->setVar('itemid', $rating_itemid);
61
-    $ratingObj->setVar('uid', $xoopsUser->getVar('uid'));
62
-    $ratingObj->setVar('date', time());
63
-    $ratingObj->setVar('rate', $_POST['smartobject_rating_value']);
64
-    if (!$smartobjectRatingHandler->insert($ratingObj)) {
65
-        if ($xoopsDB->errno() == 1062) {
66
-            $message = _SOBJECT_RATING_DUPLICATE_ENTRY;
67
-        } else {
68
-            $message = _SOBJECT_RATING_ERROR;
69
-        }
70
-    } else {
71
-        $message = _SOBJECT_RATING_SUCCESS;
72
-    }
73
-    redirect_header('', 3, $message);
74
-    exit;
56
+	// The rating form has just been posted. Let's save the info
57
+	$ratingObj = $smartobjectRatingHandler->create();
58
+	$ratingObj->setVar('dirname', $module_dirname);
59
+	$ratingObj->setVar('item', $rating_item);
60
+	$ratingObj->setVar('itemid', $rating_itemid);
61
+	$ratingObj->setVar('uid', $xoopsUser->getVar('uid'));
62
+	$ratingObj->setVar('date', time());
63
+	$ratingObj->setVar('rate', $_POST['smartobject_rating_value']);
64
+	if (!$smartobjectRatingHandler->insert($ratingObj)) {
65
+		if ($xoopsDB->errno() == 1062) {
66
+			$message = _SOBJECT_RATING_DUPLICATE_ENTRY;
67
+		} else {
68
+			$message = _SOBJECT_RATING_ERROR;
69
+		}
70
+	} else {
71
+		$message = _SOBJECT_RATING_SUCCESS;
72
+	}
73
+	redirect_header('', 3, $message);
74
+	exit;
75 75
 }
Please login to merge, or discard this patch.
include/version.php 1 patch
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -1,12 +1,12 @@
 block discarded – undo
1 1
 <?php
2 2
 /**
3
- * Contains the version information of the SmartObject Framework
4
- *
5
- * @license    GNU
6
- * @author     marcan <[email protected]>
7
- * @link       http://smartfactory.ca The SmartFactory
8
- * @package    SmartObject
9
- * @subpackage SmartObjectCore
10
- */
3
+	 * Contains the version information of the SmartObject Framework
4
+	 *
5
+	 * @license    GNU
6
+	 * @author     marcan <[email protected]>
7
+	 * @link       http://smartfactory.ca The SmartFactory
8
+	 * @package    SmartObject
9
+	 * @subpackage SmartObjectCore
10
+	 */
11 11
 
12 12
 define('SMARTOBJECT_VERSION', 1.0);
Please login to merge, or discard this patch.
include/customtag.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -10,16 +10,16 @@
 block discarded – undo
10 10
 
11 11
 function smart_customtag_initiate()
12 12
 {
13
-    global $xoopsTpl, $smartobjectCustomtagHandler;
14
-    if (is_object($xoopsTpl)) {
15
-        foreach ($smartobjectCustomtagHandler->objects as $k => $v) {
16
-            $xoopsTpl->assign($k, $v->render());
17
-        }
18
-    }
13
+	global $xoopsTpl, $smartobjectCustomtagHandler;
14
+	if (is_object($xoopsTpl)) {
15
+		foreach ($smartobjectCustomtagHandler->objects as $k => $v) {
16
+			$xoopsTpl->assign($k, $v->render());
17
+		}
18
+	}
19 19
 }
20 20
 
21 21
 if (!defined('SMARTOBJECT_URL')) {
22
-    include_once(XOOPS_ROOT_PATH . '/modules/smartobject/include/common.php');
22
+	include_once(XOOPS_ROOT_PATH . '/modules/smartobject/include/common.php');
23 23
 }
24 24
 
25 25
 smart_loadLanguageFile('smartobject', 'customtag');
Please login to merge, or discard this patch.
include/projax/projax.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -14,15 +14,15 @@
 block discarded – undo
14 14
  */
15 15
 
16 16
 if (!class_exists('Projax')) {
17
-    include __DIR__ . '/classes/JavaScript.php';
18
-    include 'classes/Prototype.php';
19
-    include 'classes/Scriptaculous.php';
17
+	include __DIR__ . '/classes/JavaScript.php';
18
+	include 'classes/Prototype.php';
19
+	include 'classes/Scriptaculous.php';
20 20
 
21
-    // For $projax = new Projax();
22
-    /**
23
-     * Class projax
24
-     */
25
-    class projax extends Scriptaculous
26
-    {
27
-    }
21
+	// For $projax = new Projax();
22
+	/**
23
+	 * Class projax
24
+	 */
25
+	class projax extends Scriptaculous
26
+	{
27
+	}
28 28
 }
Please login to merge, or discard this patch.
include/projax/classes/JavaScript.php 1 patch
Indentation   +75 added lines, -75 removed lines patch added patch discarded remove patch
@@ -15,90 +15,90 @@
 block discarded – undo
15 15
  */
16 16
 class JavaScript
17 17
 {
18
-    /**
19
-     * @param       $name
20
-     * @param  null $function
21
-     * @return string
22
-     */
23
-    public function button_to_function($name, $function = null)
24
-    {
25
-        return '<input type="button" value="' . $name . '" onclick="' . $function . '" />';
26
-    }
18
+	/**
19
+	 * @param       $name
20
+	 * @param  null $function
21
+	 * @return string
22
+	 */
23
+	public function button_to_function($name, $function = null)
24
+	{
25
+		return '<input type="button" value="' . $name . '" onclick="' . $function . '" />';
26
+	}
27 27
 
28
-    /**
29
-     * @param $javascript
30
-     * @return mixed|string
31
-     */
32
-    public function escape($javascript)
33
-    {
34
-        $javascript = addslashes($javascript);
35
-        $javascript = str_replace(array("\r\n", "\n", "\r"), array("\n"), $javascript);
28
+	/**
29
+	 * @param $javascript
30
+	 * @return mixed|string
31
+	 */
32
+	public function escape($javascript)
33
+	{
34
+		$javascript = addslashes($javascript);
35
+		$javascript = str_replace(array("\r\n", "\n", "\r"), array("\n"), $javascript);
36 36
 
37
-        return $javascript;
38
-    }
37
+		return $javascript;
38
+	}
39 39
 
40
-    /**
41
-     * @param $content
42
-     * @return string
43
-     */
44
-    public function tag($content)
45
-    {
46
-        return '<script type="text/javascript">' . $content . '</script>';
47
-    }
40
+	/**
41
+	 * @param $content
42
+	 * @return string
43
+	 */
44
+	public function tag($content)
45
+	{
46
+		return '<script type="text/javascript">' . $content . '</script>';
47
+	}
48 48
 
49
-    /**
50
-     * @param       $name
51
-     * @param       $function
52
-     * @param  null $html_options
53
-     * @return string
54
-     */
55
-    public function link_to_function($name, $function, $html_options = null)
56
-    {
57
-        return '<a href="' . (isset($html_options['href']) ? $html_options['href'] : '#') . '" onclick="' . (isset($html_options['onclick']) ? $html_options['onclick'] . ';' : '') . $function . '; return false;" />' . $name . '</a>';
58
-    }
49
+	/**
50
+	 * @param       $name
51
+	 * @param       $function
52
+	 * @param  null $html_options
53
+	 * @return string
54
+	 */
55
+	public function link_to_function($name, $function, $html_options = null)
56
+	{
57
+		return '<a href="' . (isset($html_options['href']) ? $html_options['href'] : '#') . '" onclick="' . (isset($html_options['onclick']) ? $html_options['onclick'] . ';' : '') . $function . '; return false;" />' . $name . '</a>';
58
+	}
59 59
 
60
-    /////////////////////////////////////////////////////////////////////////////////////
61
-    //                             Private functions
62
-    /////////////////////////////////////////////////////////////////////////////////////
60
+	/////////////////////////////////////////////////////////////////////////////////////
61
+	//                             Private functions
62
+	/////////////////////////////////////////////////////////////////////////////////////
63 63
 
64
-    /**
65
-     * @param $option
66
-     * @return string
67
-     */
68
-    public function _array_or_string_for_javascript($option)
69
-    {
70
-        $return_val = '';
71
-        if (is_array($option)) {
72
-            foreach ($option as $value) {
73
-                if (!empty($return_val)) {
74
-                    $ret_val .= ', ';
75
-                }
76
-                $return_val .= $value;
77
-            }
64
+	/**
65
+	 * @param $option
66
+	 * @return string
67
+	 */
68
+	public function _array_or_string_for_javascript($option)
69
+	{
70
+		$return_val = '';
71
+		if (is_array($option)) {
72
+			foreach ($option as $value) {
73
+				if (!empty($return_val)) {
74
+					$ret_val .= ', ';
75
+				}
76
+				$return_val .= $value;
77
+			}
78 78
 
79
-            return '[' . $return_val . ']';
80
-        }
79
+			return '[' . $return_val . ']';
80
+		}
81 81
 
82
-        return "'$option'";
83
-    }
82
+		return "'$option'";
83
+	}
84 84
 
85
-    /**
86
-     * @param $options
87
-     * @return string
88
-     */
89
-    public function _options_for_javascript($options)
90
-    {
91
-        $return_val = '';
85
+	/**
86
+	 * @param $options
87
+	 * @return string
88
+	 */
89
+	public function _options_for_javascript($options)
90
+	{
91
+		$return_val = '';
92 92
 
93
-        if (is_array($options)) {
94
-            foreach ($options as $var => $val) {
95
-                if (!empty($return_val)) {
96
-                    $return_val .= ', ';
97
-                }
98
-                $return_val .= "$var:$val";
99
-            }
100
-        }
93
+		if (is_array($options)) {
94
+			foreach ($options as $var => $val) {
95
+				if (!empty($return_val)) {
96
+					$return_val .= ', ';
97
+				}
98
+				$return_val .= "$var:$val";
99
+			}
100
+		}
101 101
 
102
-        return '{' . $return_val . '}';
103
-    }
102
+		return '{' . $return_val . '}';
103
+	}
104 104
 }
Please login to merge, or discard this patch.
include/projax/classes/Prototype.php 1 patch
Indentation   +448 added lines, -448 removed lines patch added patch discarded remove patch
@@ -15,452 +15,452 @@
 block discarded – undo
15 15
  */
16 16
 class Prototype extends JavaScript
17 17
 {
18
-    public $CALLBACKS = array(
19
-        'uninitialized',
20
-        'loading',
21
-        'loaded',
22
-        'interactive',
23
-        'complete',
24
-        'failure',
25
-        'success'
26
-    );
27
-
28
-    public $AJAX_OPTIONS = array(
29
-        'before',
30
-        'after',
31
-        'condition',
32
-        'url',
33
-        'asynchronous',
34
-        'method',
35
-        'insertion',
36
-        'position',
37
-        'form',
38
-        'with',
39
-        'update',
40
-        'script',
41
-        'uninitialized',
42
-        'loading',
43
-        'loaded',
44
-        'interactive',
45
-        'complete',
46
-        'failure',
47
-        'success'
48
-    );
49
-
50
-    /**
51
-     * @return string
52
-     */
53
-    public function evaluate_remote_response()
54
-    {
55
-        return 'eval(request.responseText)';
56
-    }
57
-
58
-    /**
59
-     * @param $options
60
-     * @return string
61
-     */
62
-    public function form_remote_tag($options)
63
-    {
64
-        $options['form'] = true;
65
-
66
-        return '<form action="' . $options['url'] . '" onsubmit="' . $this->remote_function($options) . '; return false;" method="' . (isset($options['method']) ? $options['method'] : 'post') . '"  >';
67
-    }
68
-
69
-    /**
70
-     * @param       $name
71
-     * @param  null $options
72
-     * @param  null $html_options
73
-     * @return string
74
-     */
75
-    public function link_to_remote($name, $options = null, $html_options = null)
76
-    {
77
-        return $this->link_to_function($name, $this->remote_function($options), $html_options);
78
-    }
79
-
80
-    /**
81
-     * @param       $field_id
82
-     * @param  null $options
83
-     * @return string
84
-     */
85
-    public function observe_field($field_id, $options = null)
86
-    {
87
-        if (isset($options['frequency']) && $options['frequency'] > 0) {
88
-            return $this->_build_observer('Form.Element.Observer', $field_id, $options);
89
-        } else {
90
-            return $this->_build_observer('Form.Element.EventObserver', $field_id, $options);
91
-        }
92
-    }
93
-
94
-    /**
95
-     * @param       $form_id
96
-     * @param  null $options
97
-     * @return string
98
-     */
99
-    public function observe_form($form_id, $options = null)
100
-    {
101
-        if (isset($options['frequency'])) {
102
-            return $this->_build_observer('Form.Observer', $form_id, $options);
103
-        } else {
104
-            return $this->_build_observer('Form.EventObserver', $form_id, $options);
105
-        }
106
-    }
107
-
108
-    /**
109
-     * @param  null $options
110
-     * @return string
111
-     */
112
-    public function periodically_call_remote($options = null)
113
-    {
114
-        $frequency = isset($options['frequency']) ? $options['frequency'] : 10;
115
-        $code      = 'new PeriodicalExecuter(function() {' . $this->remote_function($options) . '},' . $frequency . ')';
116
-
117
-        return $code;
118
-    }
119
-
120
-    /**
121
-     * @param $options
122
-     * @return string
123
-     */
124
-    public function remote_function($options)
125
-    {
126
-        $javascript_options = $this->_options_for_ajax($options);
127
-
128
-        $update = '';
129
-
130
-        if (isset($options['update']) && is_array($options['update'])) {
131
-            $update = isset($options['update']['success']) ? 'success: ' . $options['update']['success'] : '';
132
-            $update .= empty($update) ? '' : ',';
133
-            $update .= isset($options['update']['failure']) ? 'failure: ' . $options['update']['failure'] : '';
134
-        } else {
135
-            $update .= isset($options['update']) ? $options['update'] : '';
136
-        }
137
-
138
-        $ajax_function = empty($update) ? 'new Ajax.Request(' : 'new Ajax.Updater(\'' . $update . '\',';
139
-
140
-        $ajax_function .= "'" . $options['url'] . "'";
141
-        $ajax_function .= ',' . $javascript_options . ')';
142
-
143
-        $ajax_function = isset($options['before']) ? $options['before'] . ';' . $ajax_function : $ajax_function;
144
-        $ajax_function = isset($options['after']) ? $ajax_function . ';' . $options['after'] : $ajax_function;
145
-        $ajax_function = isset($options['condition']) ? 'if (' . $options['condition'] . ') {' . $ajax_function . '}' : $ajax_function;
146
-        $ajax_function = isset($options['confirm']) ? 'if ( confirm(\'' . $options['confirm'] . '\' ) ) { ' . $ajax_function . ' } ' : $ajax_function;
147
-
148
-        return $ajax_function;
149
-    }
150
-
151
-    /**
152
-     * @param $name
153
-     * @param $value
154
-     * @param $options
155
-     * @return string
156
-     */
157
-    public function submit_to_remote($name, $value, $options)
158
-    {
159
-        if (isset($options['with'])) {
160
-            $options['with'] = 'Form.serialize(this.form)';
161
-        }
162
-
163
-        return '<input type="button" onclick="' . $this->remote_function($options) . '" name="' . $name . '" value ="' . $value . '" />';
164
-    }
165
-
166
-    /**
167
-     * @param      $element_id
168
-     * @param null $options
169
-     * @param      $block
170
-     */
171
-    public function update_element_function($element_id, $options = null, $block)
172
-    {
173
-        $content = isset($options['content']) ? $options['content'] : '';
174
-        $content = $this->escape($content);
175
-    }
176
-
177
-    /**
178
-     * @param $block
179
-     */
180
-    public function update_page($block)
181
-    {
182
-    }
183
-
184
-    /**
185
-     * @param $block
186
-     * @return string
187
-     */
188
-    public function update_page_tag(& $block)
189
-    {
190
-        return $this->tag($block);
191
-    }
192
-
193
-    /////////////////////////////////////////////////////////////////////////////////////
194
-    //                             Private functions
195
-    /////////////////////////////////////////////////////////////////////////////////////
196
-
197
-    /**
198
-     * @param $options
199
-     * @return array
200
-     */
201
-    public function _build_callbacks($options)
202
-    {
203
-        $callbacks = array();
204
-        foreach ($options as $callback => $code) {
205
-            if (in_array($callback, $this->CALLBACKS)) {
206
-                $name             = 'on' . ucfirst($callback);
207
-                $callbacks[$name] = 'function(request){' . $code . '}';
208
-            }
209
-        }
210
-
211
-        return $callbacks;
212
-    }
213
-
214
-    /**
215
-     * @param       $klass
216
-     * @param       $name
217
-     * @param  null $options
218
-     * @return string
219
-     */
220
-    public function _build_observer($klass, $name, $options = null)
221
-    {
222
-        if (isset($options['with']) && false === strpos($options['with'], '=')) {
223
-            $options['with'] = '\'' . $options['with'] . '=\' + value';
224
-        } elseif (isset($options['with']) && isset($options['update'])) {
225
-            $options['with'] = 'value';
226
-        }
227
-
228
-        $callback = $options['function'] ?: $this->remote_function($options);
229
-
230
-        $javascript = "new $klass('$name', ";
231
-        $javascript .= isset($options['frequency']) ? $options['frequency'] . ', ' : '';
232
-        $javascript .= 'function (element,value) { ';
233
-        $javascript .= $callback;
234
-        $javascript .= isset($options['on']) ? ', ' . $options['on'] : '';
235
-        $javascript .= '})';
236
-
237
-        return $javascript;
238
-    }
239
-
240
-    /**
241
-     * @param $method
242
-     * @return string
243
-     */
244
-    public function _method_option_to_s($method)
245
-    {
246
-        return strstr($method, "'") ? $method : "'$method'";
247
-    }
248
-
249
-    /**
250
-     * @param $options
251
-     * @return string
252
-     */
253
-    public function _options_for_ajax($options)
254
-    {
255
-        $js_options = is_array($options) ? $this->_build_callbacks($options) : array();
256
-
257
-        if (isset($options['type']) && $option['type'] === 'synchronous') {
258
-            $js_options['asynchronous'] = 'false';
259
-        }
260
-
261
-        if (isset($options['method'])) {
262
-            $js_options['method'] = $this->_method_option_to_s($options['method']);
263
-        }
264
-
265
-        if (isset($options['position'])) {
266
-            $js_options['insertion'] = 'Insertion.' . ucfirst($options['position']);
267
-        }
268
-
269
-        $js_options['evalScripts'] = isset($options['script']) ? $options['script'] : 'true';
270
-
271
-        if (isset($options['form'])) {
272
-            $js_options['parameters'] = 'Form.serialize(this)';
273
-        } elseif (isset($options['parameters'])) {
274
-            $js_options['parameters'] = 'Form.serialize(\'' . $options['submit'] . '\')';
275
-        } elseif (isset($options['with'])) {
276
-            $js_options['parameters'] = $options['with'];
277
-        }
278
-
279
-        return $this->_options_for_javascript($js_options);
280
-    }
281
-
282
-    /////////////////////////////////////////////////////////////////////////////////////
283
-    //                            Mergerd Javascript Generator helpers
284
-    /////////////////////////////////////////////////////////////////////////////////////
285
-
286
-    /**
287
-     * @param $javascript
288
-     */
289
-    public function dump($javascript)
290
-    {
291
-        echo $javascript;
292
-    }
293
-
294
-    /**
295
-     * @param       $id
296
-     * @param  null $extend
297
-     * @return string
298
-     */
299
-    public function ID($id, $extend = null)
300
-    {
301
-        return "$('$id')" . (!empty($extend)) ? '.' . $extend . '()' : '';
302
-    }
303
-
304
-    /**
305
-     * @param $message
306
-     * @return string
307
-     */
308
-    public function alert($message)
309
-    {
310
-        return $this->call('alert', $message);
311
-    }
312
-
313
-    /**
314
-     * @param $variable
315
-     * @param $value
316
-     * @return string
317
-     */
318
-    public function assign($variable, $value)
319
-    {
320
-        return "$variable = $value;";
321
-    }
322
-
323
-    /**
324
-     * @param       $function
325
-     * @param  null $args
326
-     * @return string
327
-     */
328
-    public function call($function, $args = null)
329
-    {
330
-        $arg_str = '';
331
-        if (is_array($args)) {
332
-            foreach ($args as $arg) {
333
-                if (!empty($arg_str)) {
334
-                    $arg_str .= ', ';
335
-                }
336
-                if (is_string($arg)) {
337
-                    $arg_str .= "'$arg'";
338
-                } else {
339
-                    $arg_str .= $arg;
340
-                }
341
-            }
342
-        } else {
343
-            if (is_string($args)) {
344
-                $arg_str .= "'$args'";
345
-            } else {
346
-                $arg_str .= $args;
347
-            }
348
-        }
349
-
350
-        return "$function($arg_str)";
351
-    }
352
-
353
-    /**
354
-     * @param  int    $seconds
355
-     * @param  string $script
356
-     * @return string
357
-     */
358
-    public function delay($seconds = 1, $script = '')
359
-    {
360
-        return "setTimeout( function() { $script } , " . ($seconds * 1000) . ' )';
361
-    }
362
-
363
-    /**
364
-     * @param $id
365
-     * @return string
366
-     */
367
-    public function hide($id)
368
-    {
369
-        return $this->call('Element.hide', $id);
370
-    }
371
-
372
-    /**
373
-     * @param       $position
374
-     * @param       $id
375
-     * @param  null $options_for_render
376
-     * @return string
377
-     */
378
-    public function insert_html($position, $id, $options_for_render = null)
379
-    {
380
-        $args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
381
-
382
-        return $this->call('new Insertion.' . ucfirst($position), $args);
383
-    }
384
-
385
-    /**
386
-     * @param $location
387
-     * @return string
388
-     */
389
-    public function redirect_to($location)
390
-    {
391
-        return $this->assign('window.location.href', $location);
392
-    }
393
-
394
-    /**
395
-     * @param $id
396
-     * @return string
397
-     */
398
-    public function remove($id)
399
-    {
400
-        if (is_array($id)) {
401
-            $arr_str = '';
402
-            foreach ($id as $obj) {
403
-                if (!empty($arg_str)) {
404
-                    $arg_str .= ', ';
405
-                }
406
-                $arg_str .= "'$arg'";
407
-            }
408
-
409
-            return "$A[$arg_str].each(Element.remove)";
410
-        } else {
411
-            return "Element.remove('$id')";
412
-        }
413
-    }
414
-
415
-    /**
416
-     * @param $id
417
-     * @param $options_for_render
418
-     * @return string
419
-     */
420
-    public function replace($id, $options_for_render)
421
-    {
422
-        $args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
423
-
424
-        return $this->call('Element.replace', $args);
425
-    }
426
-
427
-    /**
428
-     * @param $id
429
-     * @param $options_for_render
430
-     * @return string
431
-     */
432
-    public function replace_html($id, $options_for_render)
433
-    {
434
-        $args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
435
-
436
-        return $this->call('Element.update', $args);
437
-    }
438
-
439
-    /**
440
-     * @param       $pattern
441
-     * @param  null $extend
442
-     * @return string
443
-     */
444
-    public function select($pattern, $extend = null)
445
-    {
446
-        return "$$('$pattern')" . (!empty($extend)) ? '.' . $extend : '';
447
-    }
448
-
449
-    /**
450
-     * @param $id
451
-     * @return string
452
-     */
453
-    public function show($id)
454
-    {
455
-        return $this->call('Element.show', $id);
456
-    }
457
-
458
-    /**
459
-     * @param $id
460
-     * @return string
461
-     */
462
-    public function toggle($id)
463
-    {
464
-        return $this->call('Element.toggle', $id);
465
-    }
18
+	public $CALLBACKS = array(
19
+		'uninitialized',
20
+		'loading',
21
+		'loaded',
22
+		'interactive',
23
+		'complete',
24
+		'failure',
25
+		'success'
26
+	);
27
+
28
+	public $AJAX_OPTIONS = array(
29
+		'before',
30
+		'after',
31
+		'condition',
32
+		'url',
33
+		'asynchronous',
34
+		'method',
35
+		'insertion',
36
+		'position',
37
+		'form',
38
+		'with',
39
+		'update',
40
+		'script',
41
+		'uninitialized',
42
+		'loading',
43
+		'loaded',
44
+		'interactive',
45
+		'complete',
46
+		'failure',
47
+		'success'
48
+	);
49
+
50
+	/**
51
+	 * @return string
52
+	 */
53
+	public function evaluate_remote_response()
54
+	{
55
+		return 'eval(request.responseText)';
56
+	}
57
+
58
+	/**
59
+	 * @param $options
60
+	 * @return string
61
+	 */
62
+	public function form_remote_tag($options)
63
+	{
64
+		$options['form'] = true;
65
+
66
+		return '<form action="' . $options['url'] . '" onsubmit="' . $this->remote_function($options) . '; return false;" method="' . (isset($options['method']) ? $options['method'] : 'post') . '"  >';
67
+	}
68
+
69
+	/**
70
+	 * @param       $name
71
+	 * @param  null $options
72
+	 * @param  null $html_options
73
+	 * @return string
74
+	 */
75
+	public function link_to_remote($name, $options = null, $html_options = null)
76
+	{
77
+		return $this->link_to_function($name, $this->remote_function($options), $html_options);
78
+	}
79
+
80
+	/**
81
+	 * @param       $field_id
82
+	 * @param  null $options
83
+	 * @return string
84
+	 */
85
+	public function observe_field($field_id, $options = null)
86
+	{
87
+		if (isset($options['frequency']) && $options['frequency'] > 0) {
88
+			return $this->_build_observer('Form.Element.Observer', $field_id, $options);
89
+		} else {
90
+			return $this->_build_observer('Form.Element.EventObserver', $field_id, $options);
91
+		}
92
+	}
93
+
94
+	/**
95
+	 * @param       $form_id
96
+	 * @param  null $options
97
+	 * @return string
98
+	 */
99
+	public function observe_form($form_id, $options = null)
100
+	{
101
+		if (isset($options['frequency'])) {
102
+			return $this->_build_observer('Form.Observer', $form_id, $options);
103
+		} else {
104
+			return $this->_build_observer('Form.EventObserver', $form_id, $options);
105
+		}
106
+	}
107
+
108
+	/**
109
+	 * @param  null $options
110
+	 * @return string
111
+	 */
112
+	public function periodically_call_remote($options = null)
113
+	{
114
+		$frequency = isset($options['frequency']) ? $options['frequency'] : 10;
115
+		$code      = 'new PeriodicalExecuter(function() {' . $this->remote_function($options) . '},' . $frequency . ')';
116
+
117
+		return $code;
118
+	}
119
+
120
+	/**
121
+	 * @param $options
122
+	 * @return string
123
+	 */
124
+	public function remote_function($options)
125
+	{
126
+		$javascript_options = $this->_options_for_ajax($options);
127
+
128
+		$update = '';
129
+
130
+		if (isset($options['update']) && is_array($options['update'])) {
131
+			$update = isset($options['update']['success']) ? 'success: ' . $options['update']['success'] : '';
132
+			$update .= empty($update) ? '' : ',';
133
+			$update .= isset($options['update']['failure']) ? 'failure: ' . $options['update']['failure'] : '';
134
+		} else {
135
+			$update .= isset($options['update']) ? $options['update'] : '';
136
+		}
137
+
138
+		$ajax_function = empty($update) ? 'new Ajax.Request(' : 'new Ajax.Updater(\'' . $update . '\',';
139
+
140
+		$ajax_function .= "'" . $options['url'] . "'";
141
+		$ajax_function .= ',' . $javascript_options . ')';
142
+
143
+		$ajax_function = isset($options['before']) ? $options['before'] . ';' . $ajax_function : $ajax_function;
144
+		$ajax_function = isset($options['after']) ? $ajax_function . ';' . $options['after'] : $ajax_function;
145
+		$ajax_function = isset($options['condition']) ? 'if (' . $options['condition'] . ') {' . $ajax_function . '}' : $ajax_function;
146
+		$ajax_function = isset($options['confirm']) ? 'if ( confirm(\'' . $options['confirm'] . '\' ) ) { ' . $ajax_function . ' } ' : $ajax_function;
147
+
148
+		return $ajax_function;
149
+	}
150
+
151
+	/**
152
+	 * @param $name
153
+	 * @param $value
154
+	 * @param $options
155
+	 * @return string
156
+	 */
157
+	public function submit_to_remote($name, $value, $options)
158
+	{
159
+		if (isset($options['with'])) {
160
+			$options['with'] = 'Form.serialize(this.form)';
161
+		}
162
+
163
+		return '<input type="button" onclick="' . $this->remote_function($options) . '" name="' . $name . '" value ="' . $value . '" />';
164
+	}
165
+
166
+	/**
167
+	 * @param      $element_id
168
+	 * @param null $options
169
+	 * @param      $block
170
+	 */
171
+	public function update_element_function($element_id, $options = null, $block)
172
+	{
173
+		$content = isset($options['content']) ? $options['content'] : '';
174
+		$content = $this->escape($content);
175
+	}
176
+
177
+	/**
178
+	 * @param $block
179
+	 */
180
+	public function update_page($block)
181
+	{
182
+	}
183
+
184
+	/**
185
+	 * @param $block
186
+	 * @return string
187
+	 */
188
+	public function update_page_tag(& $block)
189
+	{
190
+		return $this->tag($block);
191
+	}
192
+
193
+	/////////////////////////////////////////////////////////////////////////////////////
194
+	//                             Private functions
195
+	/////////////////////////////////////////////////////////////////////////////////////
196
+
197
+	/**
198
+	 * @param $options
199
+	 * @return array
200
+	 */
201
+	public function _build_callbacks($options)
202
+	{
203
+		$callbacks = array();
204
+		foreach ($options as $callback => $code) {
205
+			if (in_array($callback, $this->CALLBACKS)) {
206
+				$name             = 'on' . ucfirst($callback);
207
+				$callbacks[$name] = 'function(request){' . $code . '}';
208
+			}
209
+		}
210
+
211
+		return $callbacks;
212
+	}
213
+
214
+	/**
215
+	 * @param       $klass
216
+	 * @param       $name
217
+	 * @param  null $options
218
+	 * @return string
219
+	 */
220
+	public function _build_observer($klass, $name, $options = null)
221
+	{
222
+		if (isset($options['with']) && false === strpos($options['with'], '=')) {
223
+			$options['with'] = '\'' . $options['with'] . '=\' + value';
224
+		} elseif (isset($options['with']) && isset($options['update'])) {
225
+			$options['with'] = 'value';
226
+		}
227
+
228
+		$callback = $options['function'] ?: $this->remote_function($options);
229
+
230
+		$javascript = "new $klass('$name', ";
231
+		$javascript .= isset($options['frequency']) ? $options['frequency'] . ', ' : '';
232
+		$javascript .= 'function (element,value) { ';
233
+		$javascript .= $callback;
234
+		$javascript .= isset($options['on']) ? ', ' . $options['on'] : '';
235
+		$javascript .= '})';
236
+
237
+		return $javascript;
238
+	}
239
+
240
+	/**
241
+	 * @param $method
242
+	 * @return string
243
+	 */
244
+	public function _method_option_to_s($method)
245
+	{
246
+		return strstr($method, "'") ? $method : "'$method'";
247
+	}
248
+
249
+	/**
250
+	 * @param $options
251
+	 * @return string
252
+	 */
253
+	public function _options_for_ajax($options)
254
+	{
255
+		$js_options = is_array($options) ? $this->_build_callbacks($options) : array();
256
+
257
+		if (isset($options['type']) && $option['type'] === 'synchronous') {
258
+			$js_options['asynchronous'] = 'false';
259
+		}
260
+
261
+		if (isset($options['method'])) {
262
+			$js_options['method'] = $this->_method_option_to_s($options['method']);
263
+		}
264
+
265
+		if (isset($options['position'])) {
266
+			$js_options['insertion'] = 'Insertion.' . ucfirst($options['position']);
267
+		}
268
+
269
+		$js_options['evalScripts'] = isset($options['script']) ? $options['script'] : 'true';
270
+
271
+		if (isset($options['form'])) {
272
+			$js_options['parameters'] = 'Form.serialize(this)';
273
+		} elseif (isset($options['parameters'])) {
274
+			$js_options['parameters'] = 'Form.serialize(\'' . $options['submit'] . '\')';
275
+		} elseif (isset($options['with'])) {
276
+			$js_options['parameters'] = $options['with'];
277
+		}
278
+
279
+		return $this->_options_for_javascript($js_options);
280
+	}
281
+
282
+	/////////////////////////////////////////////////////////////////////////////////////
283
+	//                            Mergerd Javascript Generator helpers
284
+	/////////////////////////////////////////////////////////////////////////////////////
285
+
286
+	/**
287
+	 * @param $javascript
288
+	 */
289
+	public function dump($javascript)
290
+	{
291
+		echo $javascript;
292
+	}
293
+
294
+	/**
295
+	 * @param       $id
296
+	 * @param  null $extend
297
+	 * @return string
298
+	 */
299
+	public function ID($id, $extend = null)
300
+	{
301
+		return "$('$id')" . (!empty($extend)) ? '.' . $extend . '()' : '';
302
+	}
303
+
304
+	/**
305
+	 * @param $message
306
+	 * @return string
307
+	 */
308
+	public function alert($message)
309
+	{
310
+		return $this->call('alert', $message);
311
+	}
312
+
313
+	/**
314
+	 * @param $variable
315
+	 * @param $value
316
+	 * @return string
317
+	 */
318
+	public function assign($variable, $value)
319
+	{
320
+		return "$variable = $value;";
321
+	}
322
+
323
+	/**
324
+	 * @param       $function
325
+	 * @param  null $args
326
+	 * @return string
327
+	 */
328
+	public function call($function, $args = null)
329
+	{
330
+		$arg_str = '';
331
+		if (is_array($args)) {
332
+			foreach ($args as $arg) {
333
+				if (!empty($arg_str)) {
334
+					$arg_str .= ', ';
335
+				}
336
+				if (is_string($arg)) {
337
+					$arg_str .= "'$arg'";
338
+				} else {
339
+					$arg_str .= $arg;
340
+				}
341
+			}
342
+		} else {
343
+			if (is_string($args)) {
344
+				$arg_str .= "'$args'";
345
+			} else {
346
+				$arg_str .= $args;
347
+			}
348
+		}
349
+
350
+		return "$function($arg_str)";
351
+	}
352
+
353
+	/**
354
+	 * @param  int    $seconds
355
+	 * @param  string $script
356
+	 * @return string
357
+	 */
358
+	public function delay($seconds = 1, $script = '')
359
+	{
360
+		return "setTimeout( function() { $script } , " . ($seconds * 1000) . ' )';
361
+	}
362
+
363
+	/**
364
+	 * @param $id
365
+	 * @return string
366
+	 */
367
+	public function hide($id)
368
+	{
369
+		return $this->call('Element.hide', $id);
370
+	}
371
+
372
+	/**
373
+	 * @param       $position
374
+	 * @param       $id
375
+	 * @param  null $options_for_render
376
+	 * @return string
377
+	 */
378
+	public function insert_html($position, $id, $options_for_render = null)
379
+	{
380
+		$args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
381
+
382
+		return $this->call('new Insertion.' . ucfirst($position), $args);
383
+	}
384
+
385
+	/**
386
+	 * @param $location
387
+	 * @return string
388
+	 */
389
+	public function redirect_to($location)
390
+	{
391
+		return $this->assign('window.location.href', $location);
392
+	}
393
+
394
+	/**
395
+	 * @param $id
396
+	 * @return string
397
+	 */
398
+	public function remove($id)
399
+	{
400
+		if (is_array($id)) {
401
+			$arr_str = '';
402
+			foreach ($id as $obj) {
403
+				if (!empty($arg_str)) {
404
+					$arg_str .= ', ';
405
+				}
406
+				$arg_str .= "'$arg'";
407
+			}
408
+
409
+			return "$A[$arg_str].each(Element.remove)";
410
+		} else {
411
+			return "Element.remove('$id')";
412
+		}
413
+	}
414
+
415
+	/**
416
+	 * @param $id
417
+	 * @param $options_for_render
418
+	 * @return string
419
+	 */
420
+	public function replace($id, $options_for_render)
421
+	{
422
+		$args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
423
+
424
+		return $this->call('Element.replace', $args);
425
+	}
426
+
427
+	/**
428
+	 * @param $id
429
+	 * @param $options_for_render
430
+	 * @return string
431
+	 */
432
+	public function replace_html($id, $options_for_render)
433
+	{
434
+		$args = array_merge(array($id), (is_array($options_for_render) ? $options_for_render : array($options_for_render)));
435
+
436
+		return $this->call('Element.update', $args);
437
+	}
438
+
439
+	/**
440
+	 * @param       $pattern
441
+	 * @param  null $extend
442
+	 * @return string
443
+	 */
444
+	public function select($pattern, $extend = null)
445
+	{
446
+		return "$$('$pattern')" . (!empty($extend)) ? '.' . $extend : '';
447
+	}
448
+
449
+	/**
450
+	 * @param $id
451
+	 * @return string
452
+	 */
453
+	public function show($id)
454
+	{
455
+		return $this->call('Element.show', $id);
456
+	}
457
+
458
+	/**
459
+	 * @param $id
460
+	 * @return string
461
+	 */
462
+	public function toggle($id)
463
+	{
464
+		return $this->call('Element.toggle', $id);
465
+	}
466 466
 }
Please login to merge, or discard this patch.