Your IP : 18.219.40.177
//Cookie module
App.Cookie = (function () {
"use strict";
var init = function () {
EventMgr.bind('menuTypeChanged', updateMenuType);
EventMgr.bind('groupChanged', updateMenu);
EventMgr.bind('loadPage', beginCookie);
EventMgr.bind('menuPositionChanged', updateMenuPos);
},
// get began cookie
beginCookie = function () {
var menupane = getCookie('menupane'),
mbar = getCookie('mbar'),
menupos = getCookie('menupos'),
cookie = {
menupane: menupane,
mbar: mbar,
menupos: menupos
};
EventMgr.trigger('readCookie', cookie);
},
//update cookie menu type
updateMenuType = function (e, data) {
//check data?
var name = 'mbar',
re = new RegExp(pageInfo.product + '-' + pageInfo.level + '-' + '(all|popular|favorite)'),
value = pageInfo.product + '-' + pageInfo.level + '-' + data,
curCookie = getCookie(name);
if (curCookie.match(re)) {
value = curCookie.replace(re, value);
} else {
value = curCookie + ':' + value;
}
setCookie(name, value, 600);
},
// update cookie menu status items
updateMenu = function (e, data) {
//check data?
//new method for toogle?
var groups = data.groups,
value,
name = 'menupane',
curCookie = getCookie(name),
re,
keyVar;
curCookie = curCookie.replace(/:+/g,":");
/* jslint forin:true */
for (keyVar in groups) {
re = new RegExp(groups[keyVar].level + '_' + groups[keyVar].id + '-' + '[01]');
value = groups[keyVar].level + '_' + groups[keyVar].id + '-' + groups[keyVar].status;
if (curCookie.match(re)) {
curCookie = curCookie.replace(re, value);
} else {
if (curCookie !== '') {
curCookie += ':' + value;
} else {
curCookie += value;
}
}
}
setCookie(name, curCookie, 600);
},
// update cookie menu position
updateMenuPos = function (e, data) {
//check data?
var name = 'menupos',
re = new RegExp(pageInfo.product + '-' + pageInfo.level + '-' + '(open|closed)'),
value = pageInfo.product + '-' + pageInfo.level + '-' + data.menupos,
curCookie = getCookie(name);
if (curCookie.match(re)) {
value = curCookie.replace(re, value);
} else {
value = curCookie + ':' + value;
}
setCookie(name, value, 600);
};
return {
init: init
};
}());