/* x_style.js compiled from X 4.01 with XC 0.29b. Distributed under GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
/*** @param e - Str/Obj - Element id or object* @param c - Str     - Class name* @return Bool - true successful, false otherwise*/function xAddClass(e, c) {e = xGetElementById(e);if (!e)return false;if (!xHasClass(e, c))e.className += ' '+c;return true;};function xGetCSSRules(ss) { return ss.rules ? ss.rules : ss.cssRules; }function xGetStyleSheetFromLink(cl) { return cl.styleSheet ? cl.styleSheet : cl.sheet; }/*** @param e - Str/Obj - Element id or object* @param c - Str     - Class name* @return Bool - true if found, false otherwise*/function xHasClass(e, c) {e = xGetElementById(e);if (!e || !e.className)return false;return (e.className == c) || e.className.match(new RegExp('\\b'+c+'\\b'));};function xHasStyleSelector(ss) {if (! xHasStyleSheets()) return undefined ;function testSelector(cr) {return cr.selectorText.indexOf(ss) >= 0;}return xTraverseDocumentStyleSheets(testSelector);}function xHasStyleSheets() {return document.styleSheets ? true : false ;}/*** @param e - Str/Obj - Element id or object* @param c - Str - Class name* @return  - Bool - true if successful, else false*/function xRemoveClass(e, c) {e = xGetElementById(e);if (!e)return false;if (xHasClass(e, c))e.className = e.className.replace(new RegExp('(^| )'+c+'($| )','g'), '');return true;};/* Added by DF, 2005-10-11* Toggles a class name on or off for an element*/function xToggleClass(e, c) {if (!(e = xGetElementById(e)))return null;if (!xRemoveClass(e, c) && !xAddClass(e, c))return false;return true;}function xTraverseDocumentStyleSheets(cb) {var ssList = document.styleSheets; if (!ssList) return undefined;for (i = 0; i < ssList.length; i++) {var ss = ssList[i] ; if (! ss) continue;if (xTraverseStyleSheet(ss,cb)) return true;}return false;}function xTraverseStyleSheet(ss,cb) {if (!ss) return false;var rls = xGetCSSRules(ss) ; if (!rls) return undefined ;var result;for (var j = 0; j < rls.length; j++) {var cr = rls[j];if (cr.selectorText) { result = cb(cr); if (result) return true; }if (cr.type && cr.type == 3 && cr.styleSheet) xTraverseStyleSheet(cr.styleSheet,cb);}if (ss.imports) {for (var j = 0 ; j < ss.imports.length; j++) {if (xTraverseStyleSheet(ss.imports[j],cb)) return true;}}return false;}