Javascript で Cookie を読み書き

これまたよく使うのでメモ。
WebkitITPはスルー

//read
window.cookieread = function(c) {
	var ret = '';
	var cn = c + '=';
	var allc = document.cookie;
	var pos = allc.indexOf(cn);
	if(pos != -1) {
		var si = pos + cn.length;
		var ei = allc.indexOf(';', si);
		if(ei == -1) {
			ei = allc.length;
		}
		ret = decodeURIComponent(allc.substring(si, ei));
	}
	return ret;
};
//write
window.cookiewrite = function(cn, val, exp, dom) {
    var value = cn + '=' + encodeURIComponent(val) + '; domain=' + dom + '; path=/;';
    if (exp) {
        var d = new Date();
        d.setDate(d.getDate() + exp);
        var expires = d.toUTCString();
        value = value + ' expires=' + expires;
    }
    document.cookie = value;
};

使い方

//クッキー名, 値, 有効日数(0ならセッション), 有効ドメイン
cookiewrite('hoge', 'foobar', 30, '.kwonline.org');

var hoge = cookieread('hoge');
//foobar

これまたES5の構文だ。