/**
 * .cookieJar - Cookie Jar Plugin
 *
 * Version: 1.0.1
 * Updated: 2007-08-14
 *
 * Used to store objects, arrays or multiple values in one cookie, under one name
 *
 * Copyright (c) 2007 James Dempster (letssurf@gmail.com, http://www.jdempster.com/category/jquery/cookieJar/)
 *
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 **/
(function($){$.cookieJar=function(name,options){if(!$.parseJSON)return false;if(!$.toJSON)return false;if(!$.cookie)return false;return new function(){function log(s){if(typeof console!='undefined'&&typeof console.log!='undefined'){console.log('cookiejar:'+self.cookieName+' '+s);}else{alert(s);}};function save(){if(self.options.debug)log('save '+$.toJSON(self.cookieObject));return $.cookie(self.cookieName,$.toJSON(self.cookieObject),self.options.cookie);};function load(){var cookieJSON=$.cookie(self.cookieName);if(typeof cookieJSON=='string'){if(self.options.debug)log('load '+cookieJSON);self.cookieObject=$.parseJSON(cookieJSON,true);}else{if(self.options.debug)log('load new');self.cookieObject={};save();}}
this.set=function(name,value){if(self.options.debug)log('set '+name+' = '+value);self.cookieObject[name]=value;return save();};this.get=function(name){if(!self.options.cacheCookie){load();}
if(self.options.debug)log('get '+name+' = '+self.cookieObject[name]);return self.cookieObject[name];};this.remove=function(name){if(self.options.debug)log('remove '+name);if(typeof name!='undefined'){delete(self.cookieObject[name]);}else{self.setFromObject({});}
return save();};this.setFromObject=function(object){if(typeof object=='object'){if(self.options.debug)log('setFromObject');self.cookieObject=object;return save();}};this.toObject=function(){if(self.options.debug)log('toObject');return self.cookieObject;};this.toString=function(){if(self.options.debug)log('toString = '+$.toJSON(self.cookieObject));return $.toJSON(self.cookieObject);};this.destroy=function(){if(self.options.debug)log('destroy');self.cookieObject={};return $.cookie(self.cookieName,null,self.options.cookie);};this.construct=function(name,options){self.options=$.extend({cookie:{expires:365,path:'/'},cacheCookie:true,cookiePrefix:'jqCookieJar_',debug:false},options);self.cookieName=self.options.cookiePrefix+name;load();return self;};var self=this;self.construct(name,options);};};})(jQuery);
