author | cavaliet@caf4f556-3d62-0410-8435-a86758001935 |
Mon, 25 May 2009 16:23:48 +0000 | |
changeset 35 | a07144f3d8e4 |
parent 7 | 7a5d38af0e65 |
permissions | -rw-r--r-- |
7
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
1 |
// script.aculo.us builder.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006 |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
2 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
3 |
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
4 |
// |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
5 |
// See scriptaculous.js for full license. |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
6 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
7 |
var Builder = { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
8 |
NODEMAP: { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
9 |
AREA: 'map', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
10 |
CAPTION: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
11 |
COL: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
12 |
COLGROUP: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
13 |
LEGEND: 'fieldset', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
14 |
OPTGROUP: 'select', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
15 |
OPTION: 'select', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
16 |
PARAM: 'object', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
17 |
TBODY: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
18 |
TD: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
19 |
TFOOT: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
20 |
TH: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
21 |
THEAD: 'table', |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
22 |
TR: 'table' |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
23 |
}, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
24 |
// note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
25 |
// due to a Firefox bug |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
26 |
node: function(elementName) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
27 |
elementName = elementName.toUpperCase(); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
28 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
29 |
// try innerHTML approach |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
30 |
var parentTag = this.NODEMAP[elementName] || 'div'; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
31 |
var parentElement = document.createElement(parentTag); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
32 |
try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
33 |
parentElement.innerHTML = "<" + elementName + "></" + elementName + ">"; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
34 |
} catch(e) {} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
35 |
var element = parentElement.firstChild || null; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
36 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
37 |
// see if browser added wrapping tags |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
38 |
if(element && (element.tagName != elementName)) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
39 |
element = element.getElementsByTagName(elementName)[0]; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
40 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
41 |
// fallback to createElement approach |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
42 |
if(!element) element = document.createElement(elementName); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
43 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
44 |
// abort if nothing could be created |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
45 |
if(!element) return; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
46 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
47 |
// attributes (or text) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
48 |
if(arguments[1]) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
49 |
if(this._isStringOrNumber(arguments[1]) || |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
50 |
(arguments[1] instanceof Array)) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
51 |
this._children(element, arguments[1]); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
52 |
} else { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
53 |
var attrs = this._attributes(arguments[1]); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
54 |
if(attrs.length) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
55 |
try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707 |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
56 |
parentElement.innerHTML = "<" +elementName + " " + |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
57 |
attrs + "></" + elementName + ">"; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
58 |
} catch(e) {} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
59 |
element = parentElement.firstChild || null; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
60 |
// workaround firefox 1.0.X bug |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
61 |
if(!element) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
62 |
element = document.createElement(elementName); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
63 |
for(attr in arguments[1]) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
64 |
element[attr == 'class' ? 'className' : attr] = arguments[1][attr]; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
65 |
} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
66 |
if(element.tagName != elementName) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
67 |
element = parentElement.getElementsByTagName(elementName)[0]; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
68 |
} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
69 |
} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
70 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
71 |
// text, or array of children |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
72 |
if(arguments[2]) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
73 |
this._children(element, arguments[2]); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
74 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
75 |
return element; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
76 |
}, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
77 |
_text: function(text) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
78 |
return document.createTextNode(text); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
79 |
}, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
80 |
_attributes: function(attributes) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
81 |
var attrs = []; |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
82 |
for(attribute in attributes) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
83 |
attrs.push((attribute=='className' ? 'class' : attribute) + |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
84 |
'="' + attributes[attribute].toString().escapeHTML() + '"'); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
85 |
return attrs.join(" "); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
86 |
}, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
87 |
_children: function(element, children) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
88 |
if(typeof children=='object') { // array can hold nodes and text |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
89 |
children.flatten().each( function(e) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
90 |
if(typeof e=='object') |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
91 |
element.appendChild(e) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
92 |
else |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
93 |
if(Builder._isStringOrNumber(e)) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
94 |
element.appendChild(Builder._text(e)); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
95 |
}); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
96 |
} else |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
97 |
if(Builder._isStringOrNumber(children)) |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
98 |
element.appendChild(Builder._text(children)); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
99 |
}, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
100 |
_isStringOrNumber: function(param) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
101 |
return(typeof param=='string' || typeof param=='number'); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
102 |
}, |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
103 |
dump: function(scope) { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
104 |
if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
105 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
106 |
var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " + |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
107 |
"BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " + |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
108 |
"FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+ |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
109 |
"KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+ |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
110 |
"PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+ |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
111 |
"TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
112 |
|
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
113 |
tags.each( function(tag){ |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
114 |
scope[tag] = function() { |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
115 |
return Builder.node.apply(Builder, [tag].concat($A(arguments))); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
116 |
} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
117 |
}); |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
118 |
} |
7a5d38af0e65
add privtae docs to site
ymh@caf4f556-3d62-0410-8435-a86758001935
parents:
diff
changeset
|
119 |
} |