/* * cookies.js : * functions for manipulating (creating, retrieving, removing) cookies * Borrowed from http://techpatterns.com/downloads/javascript_cookies.php * * Created 20100512 by GO * Updated 20100513 by GO * * Notes: * - I need to set the domain to "torontopubliclibrary.ca" so it's usable * on all TPL servers * - this won't work on local servers, which hoses testing with default settings ... * */ function setCookie( name, value, expires, path, domain, secure ) { /* For "normal" use, "domain" would remain unset and the cookie would be * valid only for the subdomain (ex. "www.torontopubliclibrary.ca") but * by setting the domain to "torontopubliclibrary.ca" it should be valid * for any TPL subdomain. */ // set time, it's in milliseconds var today = new Date(); today.setTime( today.getTime() ); /* if the expires variable is set, make the correct expires time, the current script below will set it for x number of days, to make it for hours, delete * 24, for minutes, delete * 60 * 24 */ if ( expires ) { expires = expires * 1000 * 60 * 60 * 24; } var expires_date = new Date( today.getTime() + (expires) ); document.cookie = name + "=" +escape( value ) + ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + ( ( path ) ? ";path=" + path : "" ) + ( ( domain ) ? ";domain=" + domain : "" ) + ( ( secure ) ? ";secure" : "" ); } function getCookie( check_name ) { // first we'll split this cookie up into name/value pairs // note: document.cookie only returns name=value, not the other components var a_all_cookies = document.cookie.split( ';' ); var a_temp_cookie = ''; var cookie_name = ''; var cookie_value = ''; var b_cookie_found = false; // set boolean t/f default f for ( i = 0; i < a_all_cookies.length; i++ ) { // now we'll split apart each name=value pair a_temp_cookie = a_all_cookies[i].split( '=' ); // and trim left/right whitespace while we're at it cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ''); // if the extracted name matches passed check_name if ( cookie_name == check_name ) { b_cookie_found = true; // we need to handle case where cookie has no value but exists (no = sign, that is): if ( a_temp_cookie.length > 1 ) { cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); } // note that in cases where cookie is initialized but no value, null is returned return cookie_value; break; } a_temp_cookie = null; cookie_name = ''; } if ( !b_cookie_found ) { return null; } } function deleteCookie( name, path, domain ) { if ( getCookie( name ) ) document.cookie = name + "=" + ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + domain : "" ) + ";expires=Thu, 01-Jan-1970 00:00:01 GMT"; } // This isn't about cookie manipulation and should perhaps be in a // different file ... function updateDefaultUrl() { var currentChoice=getCookie('prefSite'); // Get the URL from the cookie var currentChoiceHtml=document.getElementById('currentChoice'); if (currentChoice) { //var reg_old = new RegExp("http://www"); var reg_new = new RegExp("http://beta"); if (reg_new.test(currentChoice)) { // Check for a valid URL currentChoiceHtml.innerHTML="the new version"; } else { currentChoiceHtml.innerHTML="the old version"; } } }