/*----------------------------------------------------------------------- * cookie֐ * * DEPENDENCIES * - * * @version $Revision$ *----------------------------------------------------------------------- */ // COOKIE擾AݒɊւ` var MEMORYCOOKIE_NAME ="KM_SS"; // cookie var FILECOOKIE_NAME ="KM_ST"; // t@Ccookie var KENCOOKIE_NAME ="KEN_ST"; // t@Ccookie var COOKIE_DOMAIN ="keikotomanabu.net"; // hC var static_escape_char='%'; var static_delimitor_name=':'; var static_delimitor_value='|'; var static_delimitor_cookie=';'; var static_delimitor_cname='='; /* * f~^(:|)񒆂ɂꍇɂ́A%‚ * @param string job ҏW镶 * @return string job ҏW̕ */ function static_escape_string(job) { // job݂ȂꍇA󕶎Ԃ if(job == null) { return ""; } // ҏWi:%:j job = job.replace(static_delimitor_name, static_escape_char+static_delimitor_name); // ҏWi|%|j job = job.replace(static_delimitor_value, static_escape_char+static_delimitor_value); // lԂ return job; } /* * GXP[v(%)ꂽf~^(:|)񒆂ɂꍇɂ́A%O * @param string job ҏW镶 * @return string job ҏW̕ */ function static_unescape_string(job) { // job݂ȂꍇA󕶎Ԃ if(job == null) { return ""; } // ҏWi%::j job = job.replace(static_escape_char+static_delimitor_name, static_delimitor_name); // ҏWi%||j job = job.replace(static_escape_char+static_delimitor_value, static_delimitor_value); // lԂ return job; } /* * NbL[𕪊āAΏۂƂȂ閼O̒lԂ * @param cookie NbL[ * @param name Ώۖ(Array) * @return */ function km_cookie_get_value(cookie, name) { var item; var c_num, c_num2; var i_num; var i, flag; var nname, value; // cookie܂͈name݂ȂꍇANULLԂ if(cookie == null || name == null) { return null; } cookie = unescape(cookie); c_num = 0; flag = 0; for(i = 0; flag == 0; ++i) { c_num2 = c_num; c_num = cookie.indexOf(static_delimitor_cookie, c_num2+1); if(c_num == -1) { c_num = cookie.length; flag = 1; } if(c_num2 != 0) { ++c_num2; } str = cookie.substring(c_num2, c_num); i_num = str.indexOf(static_delimitor_cname); if(i_num != -1) { nname = str.substring(0, i_num); value = str.substring(i_num+1, str.length); if(nname.length > 0) { nname = nname.replace(/^\s+|\s+$/g, ""); } if(value.length > 0) { value = value.replace(/^\s+|\s+$/g, ""); } } if(nname == name) { return value; } } return null; } /* * NbL[l擾 * @param cookie NbL[ * @param name Ώۖ */ function km_cookie_get_unzip(cookie, name) { var nname; var value; var num, num2, num3; var flag = 0; if(cookie == null || name == null) { return null; } // NbL[nameŒT nname = static_escape_string(name); if(nname.length == 0) { return null; } num = cookie.indexOf(nname) ; if(num == -1) { return null; } flag = 1; while(flag == 1) { // nameGXP[vĂȂ`FbN num2 = cookie.indexOf(static_delimitor_name, num); if(cookie.charAt(num2-static_escape_char.length) == static_escape_char) { num = num2+static_delimitor_name.length; flag = 1; } else if(num2 == -1) { flag = 0; } else { num2+=static_delimitor_name.length; flag = 0; } } flag = 1; num = num2; while(flag == 1) { // valueGXP[vĂȂ`FbN num3 = cookie.indexOf(static_delimitor_value, num); if(cookie.charAt(num3-static_escape_char.length) == static_escape_char) { num = num3+static_delimitor_value.length; flag = 1; } else { flag = 0; } } if(num2 <= -1) { return null; } if(num3 <= -1) { num3 = cookie.length; } value = cookie.substring(num2, num3); return static_unescape_string(value); } /* * NbL[p̐ݒ蕶쐬 * @param cookiename NbL[ * @param cookievalue Ώۖ * @param expr Ώێ(nullƖݒj */ function km_cookie_set_value(cookiename, cookievalue, expr) { var str; if(cookiename == null) { return null; } if(cookievalue == null) { cookievalue = ""; } str = cookiename + "=" + escape(cookievalue) + "; domain=" + COOKIE_DOMAIN + "; path=/"; if(expr != null) { str = str + "; Expires="+expr; } return str; } /* * NbL[pExpireԂ𐶐 * R̂QT𐶐 * */ function km_session_expr(str) { var nowtime; var nflag = 0; var datestr; var nmonth; var yobi = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fir", "Sat"); var tuki = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); if(str == null || str.length == 0) { nowtime = new Date(); } else { nowtime = new Date(str); } if(nowtime.getDate() > 25) { nflag = 1; } nowtime.setDate(25); if(nowtime.getMonth() > (8-nflag)) { nowtime.setFullYear(nowtime.getFullYear() + 1); } nmonth=(nowtime.getMonth() + 3 + nflag) % 12; nowtime.setMonth(nmonth); datestr = yobi[nowtime.getDay()]+", "+nowtime.getDate()+"-"+tuki[nowtime.getMonth()]+"-"+nowtime.getFullYear()+" 00:00:00 GMT"; return datestr; } /* * NbL[pExpireԂ𐶐 * 폜p̎ԂԂ * */ function km_session_expr_remove() { return "Thu, 1-Jan-1970 00:00:00 GMT"; } /* * NbL[ɒlݒ肷 * @param cookie NbL[ * @param name Ώۖ */ function km_cookie_zip_touroku(cookie, name, value) { var nname; var num, num2, num3, num4; var flag = 0; var newcookie; if(name == null) { return null; } if(cookie == null) { cookie = ""; } // NbL[nameŒT nname = static_escape_string(name); if(nname.length == 0) { return null; } if(value != null) { value = static_escape_string(value); } num = cookie.indexOf(nname) ; if(num > -1) { // uΏۂƂȂnamełɑ݂ // name:value̕菜 flag = 1; num4 = num; while(flag == 1) { // nameGXP[vĂȂ`FbN num2 = cookie.indexOf(static_delimitor_name, num4); if(cookie.charAt(num2-static_escape_char.length) == static_escape_char) { num4 = num2+static_delimitor_name.length; flag = 1; } else if(num2 == -1) { flag = 0; } else { num2+=static_delimitor_name.length; flag = 0; } } flag = 1; num4 = num2; while(flag == 1) { // valueGXP[vĂȂ`FbN num3 = cookie.indexOf(static_delimitor_value, num4); if(cookie.charAt(num3-static_escape_char.length) == static_escape_char) { num4 = num3+static_delimitor_value.length; flag = 1; } else if(num3 == -1) { flag = 0; } else { num3+=static_delimitor_value.length; flag = 0; } } if(num3 <= -1) { num3 = cookie.length; num-=static_delimitor_value.length; } if(num2 > -1) { newcookie = cookie.substring(0, num) + cookie.substring(num3, cookie.length); } else { newcookie = cookie; } } else { newcookie = cookie; } // valuȅꍇ́Al̍폜 if(value != null) { // NbL[ɒlj if(newcookie.length == 0) { newcookie = nname + static_delimitor_name + value; } else { newcookie = newcookie + static_delimitor_value + nname + static_delimitor_name + value; } } return newcookie; }