]> git.sur5r.net Git - contagged/blob - scripts/interface/ittabs.js
Fixed a problem with userlogreq and the tag cloud
[contagged] / scripts / interface / ittabs.js
1 /**\r
2  * Interface Elements for jQuery\r
3  * TTabs\r
4  * \r
5  * http://interface.eyecon.ro\r
6  * \r
7  * Copyright (c) 2006 Stefan Petre\r
8  * Dual licensed under the MIT (MIT-LICENSE.txt) \r
9  * and GPL (GPL-LICENSE.txt) licenses.\r
10  *   \r
11  *\r
12  *\r
13  */\r
14 \r
15 jQuery.iTTabs =\r
16 {\r
17         doTab : function(e)\r
18         {\r
19                 pressedKey = e.charCode || e.keyCode || -1;\r
20                 if (pressedKey == 9) {\r
21                         if (window.event) {\r
22                                 window.event.cancelBubble = true;\r
23                                 window.event.returnValue = false;\r
24                         } else {\r
25                                 e.preventDefault();\r
26                                 e.stopPropagation();\r
27                         }\r
28                         if (this.createTextRange) {\r
29                                 document.selection.createRange().text="\t";\r
30                                 this.onblur = function() { this.focus(); this.onblur = null; };\r
31                         } else if (this.setSelectionRange) {\r
32                                 start = this.selectionStart;\r
33                                 end = this.selectionEnd;\r
34                                 this.value = this.value.substring(0, start) + "\t" + this.value.substr(end);\r
35                                 this.setSelectionRange(start + 1, start + 1);\r
36                                 this.focus();\r
37                         }\r
38                         return false;\r
39                 }\r
40         },\r
41         destroy : function()\r
42         {\r
43                 return this.each(\r
44                         function()\r
45                         {\r
46                                 if (this.hasTabsEnabled && this.hasTabsEnabled == true) {\r
47                                         jQuery(this).unbind('keydown', jQuery.iTTabs.doTab);\r
48                                         this.hasTabsEnabled = false;\r
49                                 }\r
50                         }\r
51                 );\r
52         },\r
53         build : function()\r
54         {\r
55                 return this.each(\r
56                         function()\r
57                         {\r
58                                 if (this.tagName == 'TEXTAREA' && (!this.hasTabsEnabled || this.hasTabsEnabled == false)) {\r
59                                         jQuery(this).bind('keydown', jQuery.iTTabs.doTab);\r
60                                         this.hasTabsEnabled = true;\r
61                                 }\r
62                         }\r
63                 );                      \r
64         }\r
65 };\r
66 \r
67 jQuery.fn.extend (\r
68         {\r
69                 /**\r
70                  * Enable tabs in textareas\r
71                  * \r
72                  * @name EnableTabs\r
73                  * @description Enable tabs in textareas\r
74                  *\r
75                  * @type jQuery\r
76                  * @cat Plugins/Interface\r
77                  * @author Stefan Petre\r
78                  */\r
79                 EnableTabs : jQuery.iTTabs.build,\r
80                 /**\r
81                  * Disable tabs in textareas\r
82                  * \r
83                  * @name DisableTabs\r
84                  * @description Disable tabs in textareas\r
85                  *\r
86                  * @type jQuery\r
87                  * @cat Plugins/Interface\r
88                  * @author Stefan Petre\r
89                  */\r
90                 DisableTabs : jQuery.iTTabs.destroy\r
91         }\r
92 );