1 function $(id) { return getId(id); }
3 return document.getElementById(id);
6 function swapCSSClass(obj, old, newc ) {
7 removeCSSClass(obj, old );
8 addCSSClass(obj, newc );
12 function addCSSClass(e,c) {
15 var css_class_string = e.className;
19 css_class_array = css_class_string.split(/\s+/);
21 var string_ip = ""; /*strip out nulls*/
22 for (var css_class in css_class_array) {
23 if (css_class_array[css_class] == c) { return; }
24 if(css_class_array[css_class] !=null)
25 string_ip += css_class_array[css_class] + " ";
28 e.className = string_ip;
31 function removeCSSClass(e, c) {
34 var css_class_string = '';
36 var css_class_array = e.className;
38 css_class_array = css_class_array.split(/\s+/);
41 for (var css_class in css_class_array) {
42 if (css_class_array[css_class] != c) {
44 css_class_string = css_class_array[css_class];
47 css_class_string = css_class_string + ' ' +
48 css_class_array[css_class];
52 e.className = css_class_string;
56 /*returns the character code pressed that caused the event */
57 function grabCharCode(evt) {
58 evt = (evt) ? evt : ((window.event) ? event : null);
60 return (evt.charCode ? evt.charCode :
61 ((evt.which) ? evt.which : evt.keyCode ));
66 /* returns true if the user pressed enter */
67 function userPressedEnter(evt) {
68 var code = grabCharCode(evt);
69 if(code==13||code==3) return true;
75 /* setTimeout because ie sux */
76 setTimeout( function(){ location.href = url; }, 0 );
80 function removeChildren(dom) {
82 while(dom.childNodes[0])
83 dom.removeChild(dom.childNodes[0]);
86 function appendClear(node, child) {
88 node.appendChild(child);
92 function instanceOf(object, constructorFunction) {
95 while (object != null) {
96 if (object == constructorFunction.prototype)
98 object = object.__proto__;
101 while(object != null) {
102 if( object instanceof constructorFunction )
104 object = object.__proto__;
111 /* ------------------------------------------------------------------------------------------- */
112 /* detect my browser */
113 var isMac, NS, NS4, NS6, IE, IE4, IE4mac, IE4plus, IE5, IE5plus, IE6, IEMajor, ver4;
114 function detect_browser() {
116 isMac = (navigator.appVersion.indexOf("Mac")!=-1) ? true : false;
117 NS = (navigator.appName == "Netscape") ? true : false;
118 NS4 = (document.layers) ? true : false;
119 IE = (navigator.appName == "Microsoft Internet Explorer") ? true : false;
120 IEmac = ((document.all)&&(isMac)) ? true : false;
121 IE4plus = (document.all) ? true : false;
122 IE4 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1)) ? true : false;
123 IE5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false;
124 IE6 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? true : false;
125 ver4 = (NS4 || IE4plus) ? true : false;
126 NS6 = (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
128 IE5plus = IE5 || IE6;
132 var start = navigator.appVersion.indexOf("MSIE");
133 var end = navigator.appVersion.indexOf(".",start);
134 IEMajor = parseInt(navigator.appVersion.substring(start+5,end));
135 IE5plus = (IEMajor>=5) ? true : false;
139 /* ------------------------------------------------------------------------------------------- */
143 if(t == null) t = "";
144 return document.createTextNode(t);
147 function elem(name, attrs, txt) {
148 var e = document.createElement(name);
151 if( key == 'id') e.id = attrs[key];
152 else e.setAttribute(key, attrs[key]);
155 if (txt) e.appendChild(text(txt));
160 /* sel is the selector object, sets selected on the
161 option with the given value. case does not matter...*/
162 function setSelector( sel, value ) {
163 if(sel && value != null) {
164 for( var i = 0; i!= sel.options.length; i++ ) {
165 if( sel.options[i] ) {
166 var val = sel.options[i].value;
167 value += ""; /* in case of number */
168 if( val && val.toLowerCase() == value.toLowerCase() ) {
169 sel.selectedIndex = i;
170 sel.options[i].selected = true;
178 /* split on spaces. capitalize the first /\w/ character in
180 function normalize(val) {
185 try {val = val.split(' ');} catch(E) {return val;}
188 for( var c = 0; c < val.length; c++) {
192 for(var x = 0; x != string.length; x++) {
195 var ch = string.charAt(x);
196 if(reg.exec(ch + "")) {
197 newVal += string.charAt(x).toUpperCase();
203 newVal += string.charAt(x).toLowerCase();
205 if(c < (val.length-1)) newVal += " ";
208 newVal = newVal.replace(/\s*\.\s*$/,'');
209 newVal = newVal.replace(/\s*\/\s*\/\s*$/,' / ');
210 newVal = newVal.replace(/\s*\/\s*$/,'');
216 /* returns true if n is null or stringifies to 'undefined' */
218 if( n == null || n == undefined || n.toString().toLowerCase() == "undefined"
219 || n.toString().toLowerCase() == "null" )
225 /* find nodes with an attribute of 'name' that equals nodeName */
227 function $n( root, nodeName ) { return findNodeByName(root,nodeName); }
229 function findNodeByName(root, nodeName) {
230 if( !root || !nodeName) return null;
232 if(root.nodeType != 1) return null;
234 if(root.getAttribute("name") == nodeName || root.name == nodeName )
237 var children = root.childNodes;
239 for( var i = 0; i != children.length; i++ ) {
240 var n = findNodeByName(children[i], nodeName);
248 /* truncates the string at 'size' characters and appends a '...' to the end */
249 function truncate(string, size) {
250 if(string && size != null &&
251 size > -1 && string.length > size)
252 return string.substr(0, size) + "... ";
257 /* style sheets must have a 'name' attribute for these functions to work */
258 function setActivateStyleSheet(name) {
260 for (i = 0; (a = document.getElementsByTagName ("link")[i]); i++) {
261 if (a.getAttribute ("rel").indexOf ("style") != -1 && a.getAttribute ("name")) {
263 if (a.getAttribute ("name").indexOf(name) != -1)
270 /* ----------------------------------------------------- */
271 function scaleFonts(type) {
284 document.body.style.fontSize = size;
285 for (i = 0; (a = document.getElementsByTagName ("td")[i]); i++) a.style.fontSize = size;;
286 for (i = 0; (a = document.getElementsByTagName ("div")[i]); i++) a.style.fontSize = ssize;
287 for (i = 0; (a = document.getElementsByTagName ("option")[i]); i++) a.style.fontSize = ssize;
288 for (i = 0; (a = document.getElementsByTagName ("li")[i]); i++) a.style.fontSize = ssize;
289 for (i = 0; (a = document.getElementsByTagName ("span")[i]); i++) a.style.fontSize = ssize;
293 function sortWordsIgnoreCase(a, b) {