// cookie_get.js // RJM Programming // January, 2017 // Generic cookie functionality for use with games at RJM Programming var globalcookiescount=0; var globalcookies=[]; var divglobalthere=false; var relevantglobalcookies=[]; var relevantglobalcookiesasoptions=""; function cookiemappingsto(tothis) { return tothis.replace(/\=/g,"|"); } function cookiemappingsfrom(fromthis) { return fromthis.replace(/\|/g,"="); } function saveGlobalCookie() { var expiredate = new Date(); var thename = ""; if (document.URL.indexOf('?') != -1) { thename = document.URL.split('#')[0].split('?')[0].split('/')[eval(-1 + document.URL.split('#')[0].split('?')[0].split('/').length)].replace(/\./g,'~'); thename += '_' + (expiredate.toLocaleDateString() + '-' + expiredate.toLocaleTimeString()).replace(/\//g,'-').replace(/:/g,'-').replace(/\ /g,'-'); expiredate.setYear(expiredate.getFullYear()+1); if (recallRelevantGlobalCookies("?" + cookiemappingsto(document.URL.split('#')[0].split('?')[1])) == 0) { //deleteAllRelevantGlobalCookies(''); document.cookie = thename + "=?" + cookiemappingsto(document.URL.split('#')[0].split('?')[1]) + ";expires=" + expiredate.toGMTString() + ';path=/'; } } } function recallRelevantGlobalCookies(exactone) { // thanks to http://stackoverflow.com/questions/179355/clearing-all-cookies-with-javascript var cnameisg, eqPos, eqn=1, cookie, cookies = document.cookie.split("; "); var thename = document.URL.split('#')[0].split('?')[0].split('/')[eval(-1 + document.URL.split('#')[0].split('?')[0].split('/').length)].replace(/\./g,'~') + '_'; relevantglobalcookies=[]; relevantglobalcookiesasoptions=""; for (var i = 0; i < cookies.length; i++) { cookie = cookies[i]; eqPos = cookie.indexOf("="); if (thename == '_') eqn = cookie.indexOf("=?"); cnameisg = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; if (cnameisg.indexOf(thename) == 0 && eqn != -1 && exactone.trim() != '') { if (cookie.substr(eval(1 + eqPos)) != exactone) eqn=-1; } if (cnameisg.indexOf(thename) == 0 && eqn != -1 && cookie.length > eval(1 + eqPos)) { relevantglobalcookies.push(cookiemappingsfrom(cookie.substr(eval(1 + eqPos)))); if (relevantglobalcookiesasoptions.length == 0) { relevantglobalcookiesasoptions = ""; } else { relevantglobalcookiesasoptions = relevantglobalcookiesasoptions.replace("