// ================================================================
//  cookie function
// ================================================================
//  動作確認ブラウザ:
//  ・Firefox 3.5
//  ・Opera 10.0
//  ・Windows Safari 4.0
//  ・Internet Explorer 6.0
// ================================================================
// 

/**
 * cookieを登録する
 * 
 * @param{String} cookie name
 * @param{String} cookie value
 * @param{String} cookie path
 * @param{int}    cookie time ex:1000 * 60 * 60 * 24 * 365(有効期限1年の場合)
 *                指定しない場合はsession cookie
 * @return void
 */
function setcookie(cookie_name, cookie_value, cookie_path, cookie_time) {
    var value = encodeURIComponent(cookie_value);

    // cookie用文字列に整形
    var cookie = [cookie_name];
    cookie.push("=");
    cookie.push(value);
    cookie.push("; path=");
    cookie.push(cookie_path);
    cookie.push(";");

    if (cookie_time) {
        var exp = new Date();
        exp.setTime(exp.getTime() + cookie_time);
        cookie.push(" expires=");
        cookie.push(exp.toGMTString());
    }
    
    // cookieを登録する
    document.cookie = cookie.join("");
}


/**
 * cookieを取得する
 * 
 * @param{String} cookie name
 * @return{String} cookie value or @return undefined
 */
function getcookie(cookie_name) {
    var regexp = new RegExp('; ' + cookie_name + '(=([^;]*))?;');
    var match  = ('; ' + document.cookie + ';').match(regexp);

    return match ? match[2] : undefined;
}


/**
 * cookieを削除する
 * 
 * @param{String} cookie name
 * @param{String} cookie path
 * @return void
 */
function deletecookie(cookie_name, cookie_path) {
    // cookie用文字列に整形
    var cookie = [cookie_name];
    cookie.push("=; path=");
    cookie.push(cookie_path);
    cookie.push("; expires=Fri, 31-Dec-1999 23:59:59 GMT");
    
    // cookieを削除
    document.cookie = cookie.join("");
}
