var ksmsa = { xmlHttp : null, xmlCallback : null, createXmlHttp: function() { if (window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP'); else if (window.XMLHttpRequest) return new XMLHttpRequest(); }, asyncRequest: function(url, callback) { this.xmlHttp = this.createXmlHttp(); this.xmlHttp.onreadystatechange = this.callbackInternal; this.xmlCallback = callback; this.xmlHttp.open('GET', url, true); this.xmlHttp.send(null); }, callbackInternal: function() { if (ksmsa.xmlHttp.readyState == 4) { if (ksmsa.xmlHttp.status == 200) { ksmsa.xmlCallback.onSuccess(ksmsa.xmlHttp.responseText); } else { ksmsa.xmlCallback.onError(ksmsa.xmlHttp.responseText); } } }, findPos: function (obj) { var curleft = curtop = 0; if (obj.offsetParent) { do { if (obj.style.position == 'relative') break; curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); } return { x: curleft, y: curtop }; } } function encode(x) { var s = ''; for (i=0; i 128) { var code = x.charCodeAt(i); s += '%' + hex((0xC0 | ((code >> 6) & 0x1F))); s += '%' + hex((0x80 | ((code >> 0) & 0x3F))); } else s += c; } return s; } function getElementOffset(element) { var p = {x: element.offsetLeft, y: element.offsetTop }; var bar = document.getElementById('menuBar'); if (bar != null && (navigator.appVersion.indexOf('MSIE 6') != -1 || navigator.appVersion.indexOf('MSIE 7') != -1)) { p.x += bar.offsetLeft; p.y += bar.offsetTop; } return p; } function setClass(element, cls) { element.setAttribute('class', cls); element.setAttribute('className', cls); } function _getClass(element) { var c = element.getAttribute('class'); if (c == null) c = element.getAttribute('className'); return c; } function addClass(element, cls) { var c = _getClass(element); if (c == null || c == '') setClass(element, cls); else setClass(element, c + ' ' + cls); } function removeClass(element, cls) { var c = _getClass(element); if (c == null || c == '') return; c = c.replace(cls, ''); setClass(element, c); }