/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: Gustav Hatvigsson
  • Date: 2013-05-30 12:02:31 UTC
  • mfrom: (85.1.28 lenasys)
  • Revision ID: gustav.hartvigsson@gmail.com-20130530120231-ttqgqjqw2w8enn7g
Merged Ohlsons changes:
added function to get ssn and name for the registrationspages in the user model.
added the registrationpage for students.
edited the registration page for instructors
edited the css for both the registrationpages
minor fix to registration css

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'