﻿//クッキー読み書き------------------------------------------
//write_cookie(クッキー名,値,日数,パス) :Cookieに書込む関数-
//値の型は、number/string/boolean/undefined                -
//                /object(b.constructor == Array)の物ならOK-
//read_cookie(引数１) :Cookieを読み込む関数-----------------
var PatiTion_StRing = "*@%*";

function write_cookie(a,b,c,d){
  if(arguments.length < 3){
    alert("引数が足りません");
    return false;
  }
  if(typeof(c) != "number"){
    alert("３番目の引数は数字を指定して下さい");
    return false;
  }
  if((typeof(b) == "object") && (b.constructor == Array)){
    var value = b;
    var str = "";
    for (var i=0; i<value.length; i++){
      str += value[i] + PatiTion_StRing;
    }
    str = str.slice(0,str.length - PatiTion_StRing.length);
  }else if((typeof(b) == "number") || (typeof(b) == "string") || (typeof(b) == "boolean") || (typeof(b) == "undefined")){
    var str = b;
  }else{
    return false;
  }
  var setDay = new Date();
  setDay.setTime(setDay.getTime() + (c*1000*60*60*24));
  if(typeof(d) == "undefined"){
    document.cookie = a + "=" + escape(str) + ";expires=" + setDay.toGMTString();
  }else{
    document.cookie = a + "=" + escape(str) + ";expires=" + setDay.toGMTString() + ";path=" + d;
  }
  return true;
}


function read_cookie(a){
  if(document.cookie.length > 0){
    var all_cookies = unescape(document.cookie);
    var sep_cookies = all_cookies.split(";");
    for(var i=0; i<sep_cookies.length; i++){
      var judge = sep_cookies[i].indexOf(a);
      if((judge==1) || (judge==0)){
        if(judge == 0){
          var cookie = sep_cookies[i].slice(a.length + 1);
        }else if(judge == 1){
          var cookie = sep_cookies[i].slice(a.length + 2);
        }
          return cookie.split(PatiTion_StRing);
      }
    }
  }
  return false;
}

//cookieの4kB制限を越えた場合にalertを出す。
function write_cookie_ck(a,b,c,d){
    var before_cookie = read_cookie(a);
    write_cookie(a,b,c,d);
    var after_cookie = read_cookie(a);
    if(escape(b) != escape(after_cookie)){
        write_cookie(a,before_cookie,c,d);
        alert("cookieの容量を超えた為、書き込めませんでした。");
    }
}