/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/system/libraries/javascript/Jquery.php

  • Committer: galaxyAbstractor
  • Date: 2013-04-10 15:49:32 UTC
  • mto: (19.1.5 lenasys)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: galaxyabstractor@gmail.com-20130410154932-4vizlzk0ar5gykvi
* Added an simple admin panel to the codeviewer-cmssy stuff
* Redesigned a bit like the mockups - still stuff to come
* Implemented the codeviewer + admin panel again using the Framework CodeIgniter instead 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
2
 
 
3
/**
 
4
 * CodeIgniter
 
5
 *
 
6
 * An open source application development framework for PHP 4.3.2 or newer
 
7
 *
 
8
 * @package             CodeIgniter
 
9
 * @author              ExpressionEngine Dev Team
 
10
 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
 
11
 * @license             http://www.codeigniter.com/user_guide/license.html
 
12
 * @link                http://www.codeigniter.com
 
13
 * @since               Version 1.0
 
14
 * @filesource
 
15
 */
 
16
 
 
17
/**
 
18
 * Jquery Class
 
19
 *
 
20
 * @package             CodeIgniter
 
21
 * @subpackage  Libraries
 
22
 * @author              ExpressionEngine Dev Team
 
23
 * @category    Loader
 
24
 * @link                http://www.codeigniter.com/user_guide/libraries/javascript.html
 
25
 */
 
26
 
 
27
class CI_Jquery extends CI_Javascript {
 
28
 
 
29
        var $_javascript_folder = 'js';
 
30
        var $jquery_code_for_load = array();
 
31
        var $jquery_code_for_compile = array();
 
32
        var $jquery_corner_active = FALSE;
 
33
        var $jquery_table_sorter_active = FALSE;
 
34
        var $jquery_table_sorter_pager_active = FALSE;
 
35
        var $jquery_ajax_img = '';
 
36
 
 
37
        public function __construct($params)
 
38
        {
 
39
                $this->CI =& get_instance();    
 
40
                extract($params);
 
41
 
 
42
                if ($autoload === TRUE)
 
43
                {
 
44
                        $this->script();                        
 
45
                }
 
46
                
 
47
                log_message('debug', "Jquery Class Initialized");
 
48
        }
 
49
        
 
50
        // --------------------------------------------------------------------  
 
51
        // Event Code
 
52
        // -------------------------------------------------------------------- 
 
53
 
 
54
        /**
 
55
         * Blur
 
56
         *
 
57
         * Outputs a jQuery blur event
 
58
         *
 
59
         * @access      private
 
60
         * @param       string  The element to attach the event to
 
61
         * @param       string  The code to execute
 
62
         * @return      string
 
63
         */
 
64
        function _blur($element = 'this', $js = '')
 
65
        {
 
66
                return $this->_add_event($element, $js, 'blur');
 
67
        }
 
68
        
 
69
        // --------------------------------------------------------------------
 
70
        
 
71
        /**
 
72
         * Change
 
73
         *
 
74
         * Outputs a jQuery change event
 
75
         *
 
76
         * @access      private
 
77
         * @param       string  The element to attach the event to
 
78
         * @param       string  The code to execute
 
79
         * @return      string
 
80
         */
 
81
        function _change($element = 'this', $js = '')
 
82
        {
 
83
                return $this->_add_event($element, $js, 'change');
 
84
        }
 
85
        
 
86
        // --------------------------------------------------------------------
 
87
        
 
88
        /**
 
89
         * Click
 
90
         *
 
91
         * Outputs a jQuery click event
 
92
         *
 
93
         * @access      private
 
94
         * @param       string  The element to attach the event to
 
95
         * @param       string  The code to execute
 
96
         * @param       boolean whether or not to return false
 
97
         * @return      string
 
98
         */
 
99
        function _click($element = 'this', $js = '', $ret_false = TRUE)
 
100
        {
 
101
                if ( ! is_array($js))
 
102
                {
 
103
                        $js = array($js);
 
104
                }
 
105
 
 
106
                if ($ret_false)
 
107
                {
 
108
                        $js[] = "return false;";
 
109
                }
 
110
 
 
111
                return $this->_add_event($element, $js, 'click');
 
112
        }
 
113
 
 
114
        // --------------------------------------------------------------------
 
115
        
 
116
        /**
 
117
         * Double Click
 
118
         *
 
119
         * Outputs a jQuery dblclick event
 
120
         *
 
121
         * @access      private
 
122
         * @param       string  The element to attach the event to
 
123
         * @param       string  The code to execute
 
124
         * @return      string
 
125
         */
 
126
        function _dblclick($element = 'this', $js = '')
 
127
        {
 
128
                return $this->_add_event($element, $js, 'dblclick');
 
129
        }
 
130
 
 
131
        // --------------------------------------------------------------------
 
132
        
 
133
        /**
 
134
         * Error
 
135
         *
 
136
         * Outputs a jQuery error event
 
137
         *
 
138
         * @access      private
 
139
         * @param       string  The element to attach the event to
 
140
         * @param       string  The code to execute
 
141
         * @return      string
 
142
         */
 
143
        function _error($element = 'this', $js = '')
 
144
        {
 
145
                return $this->_add_event($element, $js, 'error');
 
146
        }
 
147
 
 
148
        // --------------------------------------------------------------------
 
149
        
 
150
        /**
 
151
         * Focus
 
152
         *
 
153
         * Outputs a jQuery focus event
 
154
         *
 
155
         * @access      private
 
156
         * @param       string  The element to attach the event to
 
157
         * @param       string  The code to execute
 
158
         * @return      string
 
159
         */
 
160
        function _focus($element = 'this', $js = '')
 
161
        {
 
162
                return $this->_add_event($element, $js, 'focus');
 
163
        }
 
164
 
 
165
        // --------------------------------------------------------------------
 
166
        
 
167
        /**
 
168
         * Hover
 
169
         *
 
170
         * Outputs a jQuery hover event
 
171
         *
 
172
         * @access      private
 
173
         * @param       string  - element
 
174
         * @param       string  - Javascript code for mouse over
 
175
         * @param       string  - Javascript code for mouse out
 
176
         * @return      string
 
177
         */
 
178
        function _hover($element = 'this', $over, $out)
 
179
        {
 
180
                $event = "\n\t$(" . $this->_prep_element($element) . ").hover(\n\t\tfunction()\n\t\t{\n\t\t\t{$over}\n\t\t}, \n\t\tfunction()\n\t\t{\n\t\t\t{$out}\n\t\t});\n";
 
181
 
 
182
                $this->jquery_code_for_compile[] = $event;
 
183
 
 
184
                return $event;
 
185
        }
 
186
 
 
187
        // --------------------------------------------------------------------
 
188
        
 
189
        /**
 
190
         * Keydown
 
191
         *
 
192
         * Outputs a jQuery keydown event
 
193
         *
 
194
         * @access      private
 
195
         * @param       string  The element to attach the event to
 
196
         * @param       string  The code to execute
 
197
         * @return      string
 
198
         */
 
199
        function _keydown($element = 'this', $js = '')
 
200
        {
 
201
                return $this->_add_event($element, $js, 'keydown');
 
202
        }
 
203
 
 
204
        // --------------------------------------------------------------------
 
205
        
 
206
        /**
 
207
         * Keyup
 
208
         *
 
209
         * Outputs a jQuery keydown event
 
210
         *
 
211
         * @access      private
 
212
         * @param       string  The element to attach the event to
 
213
         * @param       string  The code to execute
 
214
         * @return      string
 
215
         */
 
216
        function _keyup($element = 'this', $js = '')
 
217
        {
 
218
                return $this->_add_event($element, $js, 'keyup');
 
219
        }       
 
220
 
 
221
        // --------------------------------------------------------------------
 
222
        
 
223
        /**
 
224
         * Load
 
225
         *
 
226
         * Outputs a jQuery load event
 
227
         *
 
228
         * @access      private
 
229
         * @param       string  The element to attach the event to
 
230
         * @param       string  The code to execute
 
231
         * @return      string
 
232
         */
 
233
        function _load($element = 'this', $js = '')
 
234
        {
 
235
                return $this->_add_event($element, $js, 'load');
 
236
        }       
 
237
        
 
238
        // --------------------------------------------------------------------
 
239
        
 
240
        /**
 
241
         * Mousedown
 
242
         *
 
243
         * Outputs a jQuery mousedown event
 
244
         *
 
245
         * @access      private
 
246
         * @param       string  The element to attach the event to
 
247
         * @param       string  The code to execute
 
248
         * @return      string
 
249
         */
 
250
        function _mousedown($element = 'this', $js = '')
 
251
        {
 
252
                return $this->_add_event($element, $js, 'mousedown');
 
253
        }
 
254
 
 
255
        // --------------------------------------------------------------------
 
256
        
 
257
        /**
 
258
         * Mouse Out
 
259
         *
 
260
         * Outputs a jQuery mouseout event
 
261
         *
 
262
         * @access      private
 
263
         * @param       string  The element to attach the event to
 
264
         * @param       string  The code to execute
 
265
         * @return      string
 
266
         */
 
267
        function _mouseout($element = 'this', $js = '')
 
268
        {
 
269
                return $this->_add_event($element, $js, 'mouseout');
 
270
        }
 
271
 
 
272
        // --------------------------------------------------------------------
 
273
        
 
274
        /**
 
275
         * Mouse Over
 
276
         *
 
277
         * Outputs a jQuery mouseover event
 
278
         *
 
279
         * @access      private
 
280
         * @param       string  The element to attach the event to
 
281
         * @param       string  The code to execute
 
282
         * @return      string
 
283
         */
 
284
        function _mouseover($element = 'this', $js = '')
 
285
        {
 
286
                return $this->_add_event($element, $js, 'mouseover');
 
287
        }
 
288
 
 
289
        // --------------------------------------------------------------------
 
290
 
 
291
        /**
 
292
         * Mouseup
 
293
         *
 
294
         * Outputs a jQuery mouseup event
 
295
         *
 
296
         * @access      private
 
297
         * @param       string  The element to attach the event to
 
298
         * @param       string  The code to execute
 
299
         * @return      string
 
300
         */
 
301
        function _mouseup($element = 'this', $js = '')
 
302
        {
 
303
                return $this->_add_event($element, $js, 'mouseup');
 
304
        }
 
305
 
 
306
        // --------------------------------------------------------------------
 
307
 
 
308
        /**
 
309
         * Output
 
310
         *
 
311
         * Outputs script directly
 
312
         *
 
313
         * @access      private
 
314
         * @param       string  The element to attach the event to
 
315
         * @param       string  The code to execute
 
316
         * @return      string
 
317
         */
 
318
        function _output($array_js = '')
 
319
        {
 
320
                if ( ! is_array($array_js))
 
321
                {
 
322
                        $array_js = array($array_js);
 
323
                }
 
324
                
 
325
                foreach ($array_js as $js)
 
326
                {
 
327
                        $this->jquery_code_for_compile[] = "\t$js\n";
 
328
                }
 
329
        }
 
330
 
 
331
        // --------------------------------------------------------------------
 
332
 
 
333
        /**
 
334
         * Resize
 
335
         *
 
336
         * Outputs a jQuery resize event
 
337
         *
 
338
         * @access      private
 
339
         * @param       string  The element to attach the event to
 
340
         * @param       string  The code to execute
 
341
         * @return      string
 
342
         */
 
343
        function _resize($element = 'this', $js = '')
 
344
        {
 
345
                return $this->_add_event($element, $js, 'resize');
 
346
        }
 
347
 
 
348
        // --------------------------------------------------------------------
 
349
 
 
350
        /**
 
351
         * Scroll
 
352
         *
 
353
         * Outputs a jQuery scroll event
 
354
         *
 
355
         * @access      private
 
356
         * @param       string  The element to attach the event to
 
357
         * @param       string  The code to execute
 
358
         * @return      string
 
359
         */
 
360
        function _scroll($element = 'this', $js = '')
 
361
        {
 
362
                return $this->_add_event($element, $js, 'scroll');
 
363
        }
 
364
        
 
365
        // --------------------------------------------------------------------
 
366
 
 
367
        /**
 
368
         * Unload
 
369
         *
 
370
         * Outputs a jQuery unload event
 
371
         *
 
372
         * @access      private
 
373
         * @param       string  The element to attach the event to
 
374
         * @param       string  The code to execute
 
375
         * @return      string
 
376
         */
 
377
        function _unload($element = 'this', $js = '')
 
378
        {
 
379
                return $this->_add_event($element, $js, 'unload');
 
380
        }
 
381
 
 
382
        // --------------------------------------------------------------------  
 
383
        // Effects
 
384
        // -------------------------------------------------------------------- 
 
385
        
 
386
        /**
 
387
         * Add Class
 
388
         *
 
389
         * Outputs a jQuery addClass event
 
390
         *
 
391
         * @access      private
 
392
         * @param       string  - element
 
393
         * @return      string
 
394
         */
 
395
        function _addClass($element = 'this', $class='')
 
396
        {
 
397
                $element = $this->_prep_element($element);
 
398
                $str  = "$({$element}).addClass(\"$class\");";
 
399
                return $str;
 
400
        }
 
401
 
 
402
        // --------------------------------------------------------------------
 
403
 
 
404
        /**
 
405
         * Animate
 
406
         *
 
407
         * Outputs a jQuery animate event
 
408
         *
 
409
         * @access      private
 
410
         * @param       string  - element
 
411
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
412
         * @param       string  - Javascript callback function
 
413
         * @return      string
 
414
         */
 
415
        function _animate($element = 'this', $params = array(), $speed = '', $extra = '')
 
416
        {
 
417
                $element = $this->_prep_element($element);
 
418
                $speed = $this->_validate_speed($speed);
 
419
                
 
420
                $animations = "\t\t\t";
 
421
                
 
422
                foreach ($params as $param=>$value)
 
423
                {
 
424
                        $animations .= $param.': \''.$value.'\', ';
 
425
                }
 
426
 
 
427
                $animations = substr($animations, 0, -2); // remove the last ", "
 
428
 
 
429
                if ($speed != '')
 
430
                {
 
431
                        $speed = ', '.$speed;
 
432
                }
 
433
                
 
434
                if ($extra != '')
 
435
                {
 
436
                        $extra = ', '.$extra;
 
437
                }
 
438
                
 
439
                $str  = "$({$element}).animate({\n$animations\n\t\t}".$speed.$extra.");";
 
440
                
 
441
                return $str;
 
442
        }
 
443
 
 
444
        // --------------------------------------------------------------------
 
445
                
 
446
        /**
 
447
         * Fade In
 
448
         *
 
449
         * Outputs a jQuery hide event
 
450
         *
 
451
         * @access      private
 
452
         * @param       string  - element
 
453
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
454
         * @param       string  - Javascript callback function
 
455
         * @return      string
 
456
         */
 
457
        function _fadeIn($element = 'this', $speed = '', $callback = '')
 
458
        {
 
459
                $element = $this->_prep_element($element);      
 
460
                $speed = $this->_validate_speed($speed);
 
461
                
 
462
                if ($callback != '')
 
463
                {
 
464
                        $callback = ", function(){\n{$callback}\n}";
 
465
                }
 
466
                
 
467
                $str  = "$({$element}).fadeIn({$speed}{$callback});";
 
468
                
 
469
                return $str;
 
470
        }
 
471
                
 
472
        // --------------------------------------------------------------------
 
473
        
 
474
        /**
 
475
         * Fade Out
 
476
         *
 
477
         * Outputs a jQuery hide event
 
478
         *
 
479
         * @access      private
 
480
         * @param       string  - element
 
481
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
482
         * @param       string  - Javascript callback function
 
483
         * @return      string
 
484
         */
 
485
        function _fadeOut($element = 'this', $speed = '', $callback = '')
 
486
        {
 
487
                $element = $this->_prep_element($element);
 
488
                $speed = $this->_validate_speed($speed);
 
489
                
 
490
                if ($callback != '')
 
491
                {
 
492
                        $callback = ", function(){\n{$callback}\n}";
 
493
                }
 
494
                
 
495
                $str  = "$({$element}).fadeOut({$speed}{$callback});";
 
496
                
 
497
                return $str;
 
498
        }
 
499
 
 
500
        // --------------------------------------------------------------------
 
501
 
 
502
        /**
 
503
         * Hide
 
504
         *
 
505
         * Outputs a jQuery hide action
 
506
         *
 
507
         * @access      private
 
508
         * @param       string  - element
 
509
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
510
         * @param       string  - Javascript callback function
 
511
         * @return      string
 
512
         */
 
513
        function _hide($element = 'this', $speed = '', $callback = '')
 
514
        {
 
515
                $element = $this->_prep_element($element);      
 
516
                $speed = $this->_validate_speed($speed);
 
517
                
 
518
                if ($callback != '')
 
519
                {
 
520
                        $callback = ", function(){\n{$callback}\n}";
 
521
                }
 
522
                
 
523
                $str  = "$({$element}).hide({$speed}{$callback});";
 
524
 
 
525
                return $str;
 
526
        }
 
527
        
 
528
        // --------------------------------------------------------------------
 
529
 
 
530
        /**
 
531
         * Remove Class
 
532
         *
 
533
         * Outputs a jQuery remove class event
 
534
         *
 
535
         * @access      private
 
536
         * @param       string  - element
 
537
         * @return      string
 
538
         */
 
539
        function _removeClass($element = 'this', $class='')
 
540
        {
 
541
                $element = $this->_prep_element($element);
 
542
                $str  = "$({$element}).removeClass(\"$class\");";
 
543
                return $str;
 
544
        }
 
545
 
 
546
        // --------------------------------------------------------------------
 
547
                        
 
548
        /**
 
549
         * Slide Up
 
550
         *
 
551
         * Outputs a jQuery slideUp event
 
552
         *
 
553
         * @access      private
 
554
         * @param       string  - element
 
555
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
556
         * @param       string  - Javascript callback function
 
557
         * @return      string
 
558
         */
 
559
        function _slideUp($element = 'this', $speed = '', $callback = '')
 
560
        {
 
561
                $element = $this->_prep_element($element);      
 
562
                $speed = $this->_validate_speed($speed);
 
563
                
 
564
                if ($callback != '')
 
565
                {
 
566
                        $callback = ", function(){\n{$callback}\n}";
 
567
                }
 
568
                
 
569
                $str  = "$({$element}).slideUp({$speed}{$callback});";
 
570
                
 
571
                return $str;
 
572
        }
 
573
                
 
574
        // --------------------------------------------------------------------
 
575
        
 
576
        /**
 
577
         * Slide Down
 
578
         *
 
579
         * Outputs a jQuery slideDown event
 
580
         *
 
581
         * @access      private
 
582
         * @param       string  - element
 
583
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
584
         * @param       string  - Javascript callback function
 
585
         * @return      string
 
586
         */
 
587
        function _slideDown($element = 'this', $speed = '', $callback = '')
 
588
        {
 
589
                $element = $this->_prep_element($element);
 
590
                $speed = $this->_validate_speed($speed);
 
591
                
 
592
                if ($callback != '')
 
593
                {
 
594
                        $callback = ", function(){\n{$callback}\n}";
 
595
                }
 
596
                
 
597
                $str  = "$({$element}).slideDown({$speed}{$callback});";
 
598
                
 
599
                return $str;
 
600
        }
 
601
 
 
602
        // --------------------------------------------------------------------
 
603
        
 
604
        /**
 
605
         * Slide Toggle
 
606
         *
 
607
         * Outputs a jQuery slideToggle event
 
608
         *
 
609
         * @access      public
 
610
         * @param       string  - element
 
611
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
612
         * @param       string  - Javascript callback function
 
613
         * @return      string
 
614
         */
 
615
        function _slideToggle($element = 'this', $speed = '', $callback = '')
 
616
        {
 
617
                $element = $this->_prep_element($element);
 
618
                $speed = $this->_validate_speed($speed);
 
619
                
 
620
                if ($callback != '')
 
621
                {
 
622
                        $callback = ", function(){\n{$callback}\n}";
 
623
                }
 
624
                
 
625
                $str  = "$({$element}).slideToggle({$speed}{$callback});";
 
626
                
 
627
                return $str;
 
628
        }
 
629
                
 
630
        // --------------------------------------------------------------------
 
631
        
 
632
        /**
 
633
         * Toggle
 
634
         *
 
635
         * Outputs a jQuery toggle event
 
636
         *
 
637
         * @access      private
 
638
         * @param       string  - element
 
639
         * @return      string
 
640
         */
 
641
        function _toggle($element = 'this')
 
642
        {
 
643
                $element = $this->_prep_element($element);
 
644
                $str  = "$({$element}).toggle();";
 
645
                return $str;
 
646
        }
 
647
        
 
648
        // --------------------------------------------------------------------
 
649
        
 
650
        /**
 
651
         * Toggle Class
 
652
         *
 
653
         * Outputs a jQuery toggle class event
 
654
         *
 
655
         * @access      private
 
656
         * @param       string  - element
 
657
         * @return      string
 
658
         */
 
659
        function _toggleClass($element = 'this', $class='')
 
660
        {
 
661
                $element = $this->_prep_element($element);
 
662
                $str  = "$({$element}).toggleClass(\"$class\");";
 
663
                return $str;
 
664
        }
 
665
        
 
666
        // --------------------------------------------------------------------
 
667
        
 
668
        /**
 
669
         * Show
 
670
         *
 
671
         * Outputs a jQuery show event
 
672
         *
 
673
         * @access      private
 
674
         * @param       string  - element
 
675
         * @param       string  - One of 'slow', 'normal', 'fast', or time in milliseconds
 
676
         * @param       string  - Javascript callback function
 
677
         * @return      string
 
678
         */
 
679
        function _show($element = 'this', $speed = '', $callback = '')
 
680
        {
 
681
                $element = $this->_prep_element($element);      
 
682
                $speed = $this->_validate_speed($speed);
 
683
                
 
684
                if ($callback != '')
 
685
                {
 
686
                        $callback = ", function(){\n{$callback}\n}";
 
687
                }
 
688
                
 
689
                $str  = "$({$element}).show({$speed}{$callback});";
 
690
                
 
691
                return $str;
 
692
        }
 
693
 
 
694
        // --------------------------------------------------------------------
 
695
 
 
696
        /**
 
697
         * Updater
 
698
         *
 
699
         * An Ajax call that populates the designated DOM node with 
 
700
         * returned content
 
701
         *
 
702
         * @access      private
 
703
         * @param       string  The element to attach the event to
 
704
         * @param       string  the controller to run the call against
 
705
         * @param       string  optional parameters
 
706
         * @return      string
 
707
         */
 
708
        
 
709
        function _updater($container = 'this', $controller, $options = '')
 
710
        {       
 
711
                $container = $this->_prep_element($container);
 
712
                
 
713
                $controller = (strpos('://', $controller) === FALSE) ? $controller : $this->CI->config->site_url($controller);
 
714
                
 
715
                // ajaxStart and ajaxStop are better choices here... but this is a stop gap
 
716
                if ($this->CI->config->item('javascript_ajax_img') == '')
 
717
                {
 
718
                        $loading_notifier = "Loading...";
 
719
                }
 
720
                else
 
721
                {
 
722
                        $loading_notifier = '<img src=\'' . $this->CI->config->slash_item('base_url') . $this->CI->config->item('javascript_ajax_img') . '\' alt=\'Loading\' />';
 
723
                }
 
724
                
 
725
                $updater = "$($container).empty();\n"; // anything that was in... get it out
 
726
                $updater .= "\t\t$($container).prepend(\"$loading_notifier\");\n"; // to replace with an image
 
727
 
 
728
                $request_options = '';
 
729
                if ($options != '')
 
730
                {
 
731
                        $request_options .= ", {";
 
732
                        $request_options .= (is_array($options)) ? "'".implode("', '", $options)."'" : "'".str_replace(":", "':'", $options)."'";
 
733
                        $request_options .= "}";
 
734
                }
 
735
 
 
736
                $updater .= "\t\t$($container).load('$controller'$request_options);";
 
737
                return $updater;
 
738
        }
 
739
 
 
740
 
 
741
        // --------------------------------------------------------------------
 
742
        // Pre-written handy stuff
 
743
        // --------------------------------------------------------------------
 
744
         
 
745
        /**
 
746
         * Zebra tables
 
747
         *
 
748
         * @access      private
 
749
         * @param       string  table name
 
750
         * @param       string  plugin location
 
751
         * @return      string
 
752
         */
 
753
        function _zebraTables($class = '', $odd = 'odd', $hover = '')
 
754
        {
 
755
                $class = ($class != '') ? '.'.$class : '';
 
756
                
 
757
                $zebra  = "\t\$(\"table{$class} tbody tr:nth-child(even)\").addClass(\"{$odd}\");";
 
758
 
 
759
                $this->jquery_code_for_compile[] = $zebra;
 
760
 
 
761
                if ($hover != '')
 
762
                {
 
763
                        $hover = $this->hover("table{$class} tbody tr", "$(this).addClass('hover');", "$(this).removeClass('hover');");
 
764
                }
 
765
 
 
766
                return $zebra;
 
767
        }
 
768
 
 
769
 
 
770
 
 
771
        // --------------------------------------------------------------------
 
772
        // Plugins
 
773
        // --------------------------------------------------------------------
 
774
        
 
775
        /**
 
776
         * Corner Plugin
 
777
         *
 
778
         * http://www.malsup.com/jquery/corner/
 
779
         *
 
780
         * @access      public
 
781
         * @param       string  target
 
782
         * @return      string
 
783
         */
 
784
        function corner($element = '', $corner_style = '')
 
785
        {
 
786
                // may want to make this configurable down the road
 
787
                $corner_location = '/plugins/jquery.corner.js';
 
788
 
 
789
                if ($corner_style != '')
 
790
                {
 
791
                        $corner_style = '"'.$corner_style.'"';
 
792
                }
 
793
 
 
794
                return "$(" . $this->_prep_element($element) . ").corner(".$corner_style.");";
 
795
        }
 
796
        
 
797
        // --------------------------------------------------------------------
 
798
 
 
799
        /**
 
800
         * modal window
 
801
         *
 
802
         * Load a thickbox modal window
 
803
         *
 
804
         * @access      public
 
805
         * @return      void
 
806
         */
 
807
        function modal($src, $relative = FALSE)
 
808
        {       
 
809
                $this->jquery_code_for_load[] = $this->external($src, $relative);
 
810
        }
 
811
 
 
812
        // --------------------------------------------------------------------
 
813
 
 
814
        /**
 
815
         * Effect
 
816
         *
 
817
         * Load an Effect library
 
818
         *
 
819
         * @access      public
 
820
         * @return      void
 
821
         */
 
822
        function effect($src, $relative = FALSE)
 
823
        {
 
824
                $this->jquery_code_for_load[] = $this->external($src, $relative);
 
825
        }
 
826
 
 
827
        // --------------------------------------------------------------------
 
828
 
 
829
        /**
 
830
         * Plugin
 
831
         *
 
832
         * Load a plugin library
 
833
         *
 
834
         * @access      public
 
835
         * @return      void
 
836
         */
 
837
        function plugin($src, $relative = FALSE)
 
838
        {
 
839
                $this->jquery_code_for_load[] = $this->external($src, $relative);
 
840
        }
 
841
 
 
842
        // --------------------------------------------------------------------
 
843
 
 
844
        /**
 
845
         * UI
 
846
         *
 
847
         * Load a user interface library
 
848
         *
 
849
         * @access      public
 
850
         * @return      void
 
851
         */
 
852
        function ui($src, $relative = FALSE)
 
853
        {
 
854
                $this->jquery_code_for_load[] = $this->external($src, $relative);
 
855
        }
 
856
        // --------------------------------------------------------------------
 
857
 
 
858
        /**
 
859
         * Sortable
 
860
         *
 
861
         * Creates a jQuery sortable
 
862
         *
 
863
         * @access      public
 
864
         * @return      void
 
865
         */
 
866
        function sortable($element, $options = array())
 
867
        {
 
868
 
 
869
                if (count($options) > 0)
 
870
                {
 
871
                        $sort_options = array();
 
872
                        foreach ($options as $k=>$v)
 
873
                        {
 
874
                                $sort_options[] = "\n\t\t".$k.': '.$v."";
 
875
                        }
 
876
                        $sort_options = implode(",", $sort_options);
 
877
                }
 
878
                else
 
879
                {
 
880
                        $sort_options = '';
 
881
                }
 
882
 
 
883
                return "$(" . $this->_prep_element($element) . ").sortable({".$sort_options."\n\t});";
 
884
        }
 
885
 
 
886
        // --------------------------------------------------------------------
 
887
 
 
888
        /**
 
889
         * Table Sorter Plugin
 
890
         *
 
891
         * @access      public
 
892
         * @param       string  table name
 
893
         * @param       string  plugin location
 
894
         * @return      string
 
895
         */
 
896
        function tablesorter($table = '', $options = '')
 
897
        {
 
898
                $this->jquery_code_for_compile[] = "\t$(" . $this->_prep_element($table) . ").tablesorter($options);\n";
 
899
        }
 
900
        
 
901
        // --------------------------------------------------------------------
 
902
        // Class functions
 
903
        // --------------------------------------------------------------------
 
904
 
 
905
        /**
 
906
         * Add Event
 
907
         *
 
908
         * Constructs the syntax for an event, and adds to into the array for compilation
 
909
         *
 
910
         * @access      private
 
911
         * @param       string  The element to attach the event to
 
912
         * @param       string  The code to execute
 
913
         * @param       string  The event to pass
 
914
         * @return      string
 
915
         */     
 
916
        function _add_event($element, $js, $event)
 
917
        {
 
918
                if (is_array($js))
 
919
                {
 
920
                        $js = implode("\n\t\t", $js);
 
921
 
 
922
                }
 
923
 
 
924
                $event = "\n\t$(" . $this->_prep_element($element) . ").{$event}(function(){\n\t\t{$js}\n\t});\n";
 
925
                $this->jquery_code_for_compile[] = $event;
 
926
                return $event;
 
927
        }
 
928
 
 
929
        // --------------------------------------------------------------------
 
930
 
 
931
        /**
 
932
         * Compile
 
933
         *
 
934
         * As events are specified, they are stored in an array
 
935
         * This funciton compiles them all for output on a page
 
936
         *
 
937
         * @access      private
 
938
         * @return      string
 
939
         */
 
940
        function _compile($view_var = 'script_foot', $script_tags = TRUE)
 
941
        {
 
942
                // External references
 
943
                $external_scripts = implode('', $this->jquery_code_for_load);
 
944
                $this->CI->load->vars(array('library_src' => $external_scripts));
 
945
 
 
946
                if (count($this->jquery_code_for_compile) == 0 )
 
947
                {
 
948
                        // no inline references, let's just return
 
949
                        return;
 
950
                }
 
951
 
 
952
                // Inline references
 
953
                $script = '$(document).ready(function() {' . "\n";
 
954
                $script .= implode('', $this->jquery_code_for_compile);
 
955
                $script .= '});';
 
956
                
 
957
                $output = ($script_tags === FALSE) ? $script : $this->inline($script);
 
958
 
 
959
                $this->CI->load->vars(array($view_var => $output));
 
960
 
 
961
        }
 
962
        
 
963
        // --------------------------------------------------------------------
 
964
        
 
965
        /**
 
966
         * Clear Compile
 
967
         *
 
968
         * Clears the array of script events collected for output
 
969
         *
 
970
         * @access      public
 
971
         * @return      void
 
972
         */
 
973
        function _clear_compile()
 
974
        {
 
975
                $this->jquery_code_for_compile = array();
 
976
        }
 
977
 
 
978
        // --------------------------------------------------------------------
 
979
        
 
980
        /**
 
981
         * Document Ready
 
982
         *
 
983
         * A wrapper for writing document.ready()
 
984
         *
 
985
         * @access      private
 
986
         * @return      string
 
987
         */
 
988
        function _document_ready($js)
 
989
        {
 
990
                if ( ! is_array($js))
 
991
                {
 
992
                        $js = array ($js);
 
993
 
 
994
                }
 
995
                
 
996
                foreach ($js as $script)
 
997
                {
 
998
                        $this->jquery_code_for_compile[] = $script;
 
999
                }
 
1000
        }
 
1001
 
 
1002
        // --------------------------------------------------------------------
 
1003
 
 
1004
        /**
 
1005
         * Script Tag
 
1006
         *
 
1007
         * Outputs the script tag that loads the jquery.js file into an HTML document
 
1008
         *
 
1009
         * @access      public
 
1010
         * @param       string
 
1011
         * @return      string
 
1012
         */
 
1013
        function script($library_src = '', $relative = FALSE)
 
1014
        {
 
1015
                $library_src = $this->external($library_src, $relative);
 
1016
                $this->jquery_code_for_load[] = $library_src;
 
1017
                return $library_src;
 
1018
        }
 
1019
        
 
1020
        // --------------------------------------------------------------------
 
1021
 
 
1022
        /**
 
1023
         * Prep Element
 
1024
         *
 
1025
         * Puts HTML element in quotes for use in jQuery code
 
1026
         * unless the supplied element is the Javascript 'this'
 
1027
         * object, in which case no quotes are added
 
1028
         *
 
1029
         * @access      public
 
1030
         * @param       string
 
1031
         * @return      string
 
1032
         */
 
1033
        function _prep_element($element)
 
1034
        {
 
1035
                if ($element != 'this')
 
1036
                {
 
1037
                        $element = '"'.$element.'"';
 
1038
                }
 
1039
                
 
1040
                return $element;
 
1041
        }
 
1042
        
 
1043
        // --------------------------------------------------------------------
 
1044
 
 
1045
        /**
 
1046
         * Validate Speed
 
1047
         *
 
1048
         * Ensures the speed parameter is valid for jQuery
 
1049
         *
 
1050
         * @access      private
 
1051
         * @param       string
 
1052
         * @return      string
 
1053
         */     
 
1054
        function _validate_speed($speed)
 
1055
        {
 
1056
                if (in_array($speed, array('slow', 'normal', 'fast')))
 
1057
                {
 
1058
                        $speed = '"'.$speed.'"';
 
1059
                }
 
1060
                elseif (preg_match("/[^0-9]/", $speed))
 
1061
                {
 
1062
                        $speed = '';
 
1063
                }
 
1064
        
 
1065
                return $speed;
 
1066
        }
 
1067
 
 
1068
}
 
1069
 
 
1070
/* End of file Jquery.php */
 
1071
/* Location: ./system/libraries/Jquery.php */
 
 
b'\\ No newline at end of file'