Files
danbooru/app/assets/javascripts/cookie.js
2011-08-07 15:44:54 -04:00

74 lines
1.8 KiB
JavaScript

(function() {
Danbooru.Cookie = {};
Danbooru.Cookie.put = function(name, value, days) {
if (days == null) {
days = 365;
}
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = name + "=" + encodeURIComponent(value) + expires + "; path=/";
}
Danbooru.Cookie.raw_get = function(name) {
var nameEq = name + "=";
var ca = document.cookie.split(";");
for (var i = 0; i < ca.length; ++i) {
var c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1, c.length);
}
if (c.indexOf(nameEq) == 0) {
return c.substring(nameEq.length, c.length);
}
}
return "";
}
Danbooru.Cookie.get = function(name) {
return this.unescape(this.raw_get(name));
}
Danbooru.Cookie.remove = function(name) {
this.put(name, "", -1);
}
Danbooru.Cookie.unescape = function(val) {
return decodeURIComponent(val.replace(/\+/g, " "));
}
Danbooru.Cookie.initialize = function() {
if (location.href.match(/^\/(comment|pool|note|post)/) && this.get("tos") != "1") {
// Setting location.pathname in Safari doesn't work, so manually extract the domain.
var domain = location.href.match(/^(http:\/\/[^\/]+)/)[0];
location.href = domain + "/static/terms_of_service?url=" + location.href;
return;
}
if (this.get("hide-news-ticker") == "1") {
$("#news-ticker").hide();
} else {
$("#close-news-ticker-link").click(function(e) {
$("#news-ticker").hide();
Danbooru.Cookie.put("hide-news-ticker", "1", 1);
return false;
});
}
if (this.get("hide-upgrade-account") != "1") {
$("#upgrade-account").show();
}
}
})();
$(function() {
Danbooru.Cookie.initialize();
});