//----------------------------------------------------------------------------- // COOKIE MANAGEMENT - nom nom nom nom - //----------------------------------------------------------------------------- function LolCookie() { } function LolCookieDays(m_name, m_value, m_expire_days) { var cookie = new LolCookie(); cookie.m_name = m_name; cookie.m_value = m_value; cookie.m_expire_date = new Date(); cookie.m_expire_date.setDate(cookie.m_expire_date.getDate() + m_expire_days); return cookie; } function LolCookieDate(m_name, m_value, m_expire_date) { var cookie = new LolCookie(); cookie.m_name = m_name; cookie.m_value = m_value; cookie.m_expire_date = m_expire_date; return cookie; } //Set a cookie function StoreLolCookie(cookie) { GetLolCookie(cookie.m_name, true); var enc_value = escape(cookie.m_value) + ";"; //Add expire days if (cookie.m_expire_date) enc_value += " expires=" + cookie.m_expire_date.toUTCString() + ";"; enc_value = cookie.m_name + "=" + enc_value; //Store cookies document.cookie = enc_value; } //Get a cookie function GetLolCookie(name, remove) { var cki_doc = document.cookie; var cookie = null; var cki_start = cki_doc.indexOf(name + "="); if (cki_start > -1) { cookie = new LolCookie(); cookie.m_name = name; cookie.m_expire_date = null; //Retrieve value var val_start = cki_doc.indexOf("=", cki_start) + 1; var val_end = cki_doc.indexOf(";", cki_start); if (val_end < 0) val_end = cki_doc.length; cookie.m_value = unescape(cki_doc.substring(val_start, val_end)); if (remove) document.cookie = name + "=; expires=0;"; } return cookie; } //Check the existence of a cookie function DoesLolCookieExist(name) { var cki_doc = document.cookie; if (cki_doc.indexOf(name + "=") > -1) return true; return false; } //----------------------------------------------------------------------------- // FILE MANAGEMENT //----------------------------------------------------------------------------- //Dynamic load function DynLoadFile(filename) { var filetype = filename.match(/\.[a-zA-Z]+$/); //if filename is a external JavaScript file if (filetype == ".js") { var fileref = document.createElement('script'); fileref.setAttribute("type","text/javascript"); fileref.setAttribute("src", filename); } //if filename is an external CSS file else if (filetype == ".css") { var fileref = document.createElement("link"); fileref.setAttribute("rel", "stylesheet"); fileref.setAttribute("type", "text/css"); fileref.setAttribute("href", filename); } if (fileref) document.getElementsByTagName("head")[0].appendChild(fileref); } //Dynamic remove function DynRemoveFile(filename) { var filetype = filename.match(/\.[a-zA-Z]+$/); var targetelement = "none"; var targetattr = "none"; //Determine element type to create nodelist from and corresponding attribute to test for if (filetype==".js") { targetelement = "script"; targetattr = "src"; } else if (filetype == ".css") { targetelement = "link"; targetattr = "href"; } var allsuspects = document.getElementsByTagName(targetelement); //Search backwards within nodelist for matching elements to remove for (var i = allsuspects.length; i >= 0; i--) if (allsuspects[i] && allsuspects[i].getAttribute(targetattr) && allsuspects[i].getAttribute(targetattr).indexOf(filename) != -1) allsuspects[i].parentNode.removeChild(allsuspects[i]); //remove element by calling parentNode.removeChild() }