function lLib () { return this; } lLib.instance = null; lLib.getInstance = function () { if(! lLib.instance) { lLib.instance = new lLib(); } return lLib.instance; }; lLib.md5 = function (s) { function Z(n,c){return(n<>>(32-c))} function Y(q,a,b,x,s,t){return X(Z(X(X(a,q),X(x,t)),s),b)} function A(a,b,c,d,x,s,t){return Y((b&c)|((~b)&d),a,b,x,s,t)} function B(a,b,c,d,x,s,t){return Y((b&d)|(c&(~d)),a,b,x,s,t)} function C(a,b,c,d,x,s,t){return Y(b^c^d,a,b,x,s,t)} function D(a,b,c,d,x,s,t){return Y(c^(b|(~d)),a,b,x,s,t)} function X(x,y){var l=(x&0xFFFF)+(y&0xFFFF),m=(x>>16)+(y>>16)+(l>>16);return(m<<16)|(l&0xFFFF)} var w=s.length*8,i,hx="0123456789abcdef",L=(((w+64)>>>9)<<4)+15,x=Array(L+15); for(i=0;i>5]|=(s.charCodeAt(i/8)&255)<<(i%32); x[w>>5]|=0x80<<((w)%32); x[L-1]=w; var a=1732584193,b=-271733879,c=-1732584194,d=271733878; for(i=0;i>2]>>((i%4)*8+4))&0xF)+hx.charAt((b[i>>2]>>((i%4)*8))&0xF); return s } lLib.includeJS = includeJS; lLib.getRandomPlacer = function () { var placerObj = document.body.firstChild; do { if(placerObj.nodeType == 1) { return placerObj; break; } } while(placerObj = placerObj.nextSibling); return false; } lLib.createVoidContainer = function () { // var placerObj = lLib.getRandomPlacer(); var contObj = document.createElement("div"); return document.body.appendChild(contObj); }; lLib.prototype.is_loaded = false; lLib.prototype.onLoadEvents = new Array(); lLib.prototype.requestStack = new Array(); lLib.prototype.base64_encode = function(sStr, bUrlMode) { if (typeof(bUrlMode) === 'undefined') var bUrlMode = false; if (!bUrlMode) bUrlMode = false; // var sWinChrs = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' if (bUrlMode) { // for base64url mode var sBase64Chrs = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_' } else { var sBase64Chrs = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' } var arrBase64 = sBase64Chrs.split('') var a = new Array(); var i = 0; for(i=0; i127) { cch=sWinChrs.indexOf(sStr.charAt(i))+163; if(cch<163) continue; } a.push(cch) }; var s=Array(), lPos = a.length - a.length % 3 for (i=0; i>18)&0x3f]+arrBase64[(t>>12)&0x3f]+arrBase64[(t>>6)&0x3f]+arrBase64[t&0x3f] ) } switch (a.length-lPos) { case 1 : var t=a[lPos]<<4; s.push(arrBase64[(t>>6)&0x3f]+arrBase64[t&0x3f]+'=='); break case 2 : var t=(a[lPos]<<10)+(a[lPos+1]<<2); s.push(arrBase64[(t>>12)&0x3f]+arrBase64[(t>>6)&0x3f]+arrBase64[t&0x3f]+'='); break } return s.join('') } lLib.prototype.attachOnLoadEvent = function (handler) { if(typeof handler == "function") { this.onLoadEvents[this.onLoadEvents.length] = handler; } else { return false; } }; lLib.prototype.makeRequest = function (url, handler) { var requestId = this.requestStack.length; this.requestStack[requestId] = handler; var s_delim = "?"; if (url.indexOf('?') !== -1) s_delim = '&'; url += s_delim + "requestId=" + requestId + "&rnd=" + Math.random(); lLib.includeJS(url); return requestId; }; lLib.prototype.makeResponse = function (response) { if(typeof response != "object") { return false; } var requestHandler; var requestId = response.id; if(typeof this.requestStack[requestId] == "undefined") { return false; } else { requestHandler = this.requestStack[requestId]; requestHandler(response); this.requestStack[requestId] = undefined; return true; } }; lLib.getAbsoluteLocation = function (obj, mode) { var pX = 0, pY = 0; if(!mode) { mode = false; } if(!obj) { return false; } var oParent = obj.offsetParent; while (oParent) { pX += oParent.offsetLeft; pY += oParent.offsetTop; if(mode) { if(!this.isIframeChild(oParent)) { break; } } oParent = oParent.offsetParent; } return { x: pX + obj.offsetLeft, y: pY + obj.offsetTop }; } function lLibResponse(requestId) { this.id = requestId; } lLibResponse.prototype.id = null; function is_safari() { return (navigator.userAgent.indexOf("Safari") != -1); } function includeJS(src) { if(document.getElementsByTagName && document.createElement) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = src; script.charset = "utf-8"; head.appendChild(script); return true; } else { return false; } } function includeCSS(src) { if(document.getElementsByTagName && document.createElement) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('link'); script.setAttribute('rel', "stylesheet"); script.setAttribute('href', src); head.appendChild(script); return true; } else { return false; } }