1 /** 2 *@namespace Sfdc.canvas.cookies 3 *@name Sfdc.canvas.cookies 4 */ 5 (function ($$) { 6 7 "use strict"; 8 9 var module = (function() { 10 11 function isSecure() 12 { 13 return window.location.protocol === 'https:'; 14 } 15 16 /** 17 * @name Sfdc.canvas.cookies#set 18 * @function 19 * @description Create a cookie 20 * @param {String} name Cookie name 21 * @param {String} value Cookie value 22 * @param {Integer} [days] Number of days for the cookie to remain active. 23 If not provided, the cookie never expires 24 */ 25 function set(name, value, days) { 26 var expires = "", date; 27 if (days) { 28 date = new Date(); 29 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 30 expires = "; expires=" + date.toGMTString(); 31 } 32 else { 33 expires = ""; 34 } 35 document.cookie = name + "=" + value + expires + "; path=/" + ((isSecure() === true) ? "; secure" : ""); 36 } 37 38 /** 39 * @name Sfdc.canvas.cookies#get 40 * @function 41 * @description Get the cookie with the specified name 42 * @param {String} name The name of the cookie to retrieve 43 * @returns The value of the cookie if the name is found, otherwise null 44 */ 45 function get(name) { 46 var nameEQ, ca, c, i; 47 48 if ($$.isUndefined(name)) { 49 return document.cookie.split(';'); 50 } 51 52 nameEQ = name + "="; 53 ca = document.cookie.split(';'); 54 for (i = 0; i < ca.length; i += 1) { 55 c = ca[i]; 56 while (c.charAt(0) === ' ') {c = c.substring(1, c.length);} 57 if (c.indexOf(nameEQ) === 0) { 58 return c.substring(nameEQ.length, c.length); 59 } 60 } 61 return null; 62 } 63 64 /** 65 * @name Sfdc.canvas.cookies#remove 66 * @function 67 * @description Remove the specified cookie by setting the expiry date to one day ago 68 * @param {String} name The name of the cookie to remove. 69 */ 70 function remove(name) { 71 set(name, "", -1); 72 } 73 74 return { 75 set : set, 76 get : get, 77 remove : remove 78 }; 79 }()); 80 81 82 $$.module('Sfdc.canvas.cookies', module); 83 84 }(Sfdc.canvas));