[ Index ] |
|
Code source de Dotclear 2.0-beta6 |
1 /* 2 Copyright (c) 2005 Tim Taylor Consulting <http://tool-man.org/> 3 4 Permission is hereby granted, free of charge, to any person obtaining a 5 copy of this software and associated documentation files (the "Software"), 6 to deal in the Software without restriction, including without limitation 7 the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 and/or sell copies of the Software, and to permit persons to whom the 9 Software is furnished to do so, subject to the following conditions: 10 11 The above copyright notice and this permission notice shall be included 12 in all copies or substantial portions of the Software. 13 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20 IN THE SOFTWARE. 21 */ 22 23 var ToolMan = { 24 events : function() { 25 if (!ToolMan._eventsFactory) throw "ToolMan Events module isn't loaded"; 26 return ToolMan._eventsFactory 27 }, 28 29 css : function() { 30 if (!ToolMan._cssFactory) throw "ToolMan CSS module isn't loaded"; 31 return ToolMan._cssFactory 32 }, 33 34 coordinates : function() { 35 if (!ToolMan._coordinatesFactory) throw "ToolMan Coordinates module isn't loaded"; 36 return ToolMan._coordinatesFactory 37 }, 38 39 drag : function() { 40 if (!ToolMan._dragFactory) throw "ToolMan Drag module isn't loaded"; 41 return ToolMan._dragFactory 42 }, 43 44 dragsort : function() { 45 if (!ToolMan._dragsortFactory) throw "ToolMan DragSort module isn't loaded"; 46 return ToolMan._dragsortFactory 47 }, 48 49 helpers : function() { 50 return ToolMan._helpers 51 }, 52 53 cookies : function() { 54 if (!ToolMan._cookieOven) throw "ToolMan Cookie module isn't loaded"; 55 return ToolMan._cookieOven 56 }, 57 58 junkdrawer : function() { 59 return ToolMan._junkdrawer 60 } 61 62 } 63 64 ToolMan._helpers = { 65 map : function(array, func) { 66 for (var i = 0, n = array.length; i < n; i++) func(array[i]) 67 }, 68 69 nextItem : function(item, nodeName) { 70 if (item == null) return false; 71 var next = item.nextSibling 72 while (next != null) { 73 if (next.nodeName == nodeName) return next 74 next = next.nextSibling 75 } 76 return null 77 }, 78 79 previousItem : function(item, nodeName) { 80 var previous = item.previousSibling 81 while (previous != null) { 82 if (previous.nodeName == nodeName) return previous 83 previous = previous.previousSibling 84 } 85 return null 86 }, 87 88 moveBefore : function(item1, item2) { 89 var parent = item1.parentNode 90 parent.removeChild(item1) 91 parent.insertBefore(item1, item2) 92 }, 93 94 moveAfter : function(item1, item2) { 95 var parent = item1.parentNode 96 parent.removeChild(item1) 97 parent.insertBefore(item1, item2 ? item2.nextSibling : null) 98 } 99 } 100 101 /** 102 * scripts without a proper home 103 * 104 * stuff here is subject to change unapologetically and without warning 105 */ 106 ToolMan._junkdrawer = { 107 serializeList : function(list) { 108 var items = list.getElementsByTagName("li") 109 var array = new Array() 110 for (var i = 0, n = items.length; i < n; i++) { 111 var item = items[i] 112 113 array.push(ToolMan.junkdrawer()._identifier(item)) 114 } 115 return array.join('|') 116 }, 117 118 inspectListOrder : function(id) { 119 alert(ToolMan.junkdrawer().serializeList(document.getElementById(id))) 120 }, 121 122 restoreListOrder : function(listID) { 123 var list = document.getElementById(listID) 124 if (list == null) return 125 126 var cookie = ToolMan.cookies().get("list-" + listID) 127 if (!cookie) return; 128 129 var IDs = cookie.split('|') 130 var items = ToolMan.junkdrawer()._itemsByID(list) 131 132 for (var i = 0, n = IDs.length; i < n; i++) { 133 var itemID = IDs[i] 134 if (itemID in items) { 135 var item = items[itemID] 136 list.removeChild(item) 137 list.insertBefore(item, null) 138 } 139 } 140 }, 141 142 _identifier : function(item) { 143 var trim = ToolMan.junkdrawer().trim 144 var identifier 145 146 identifier = trim(item.getAttribute("id")) 147 if (identifier != null && identifier.length > 0) return identifier; 148 149 identifier = trim(item.getAttribute("itemID")) 150 if (identifier != null && identifier.length > 0) return identifier; 151 152 // FIXME: strip out special chars or make this an MD5 hash or something 153 return trim(item.innerHTML) 154 }, 155 156 _itemsByID : function(list) { 157 var array = new Array() 158 var items = list.getElementsByTagName('li') 159 for (var i = 0, n = items.length; i < n; i++) { 160 var item = items[i] 161 array[ToolMan.junkdrawer()._identifier(item)] = item 162 } 163 return array 164 }, 165 166 trim : function(text) { 167 if (text == null) return null 168 return text.replace(/^(\s+)?(.*\S)(\s+)?$/, '$2') 169 } 170 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Fri Feb 23 22:16:06 2007 | par Balluche grâce à PHPXref 0.7 |