/*
┌─────────────────────────────────
│  Cookie.js v1.01
│  Copyright(C) K2@Factory 2003
│  Mail toro@cside8.com
│  URL  http://toro.cside8.com/
└─────────────────────────────────

更新履歴 -----------------------------------------------------------
	v1.01 03/07 setCookie メソッドを修正、正しい日付分クッキーが保存される様にした
	v1.00 01/08 クッキーを手軽に扱うクラス^^;
*/

function Cookie() {

	var C = Cookie;
	var CC = ClientCheck
	var D = document;

	C.getLength = function(){
		return D.cookie.split(';').length;
	};

	// 「name=value」 の形でクッキーを取得
	C.getCookie = function(){
		var a = arguments, all = new Array(), c;
		switch(a.length){
			case 0 : default : {
				for(c=0; c < D.cookie.split(';').length; c++){
					if(D.cookie.split(';')[c].charAt(0) == ' '){
						all[c] = unescape(D.cookie.split(';')[c].substring(1, D.cookie.split(';')[c].length));
					} else {
						all[c] = unescape(D.cookie.split(';')[c]);
					}
				}
				return all;
				break;
			}
			case 1 : {
				if(typeof(a[0]) == 'number'){
					if(D.cookie.split(';')[a[0]].charAt(0) == ' '){
						return unescape(D.cookie.split(';')[a[0]].substring(1, D.cookie.split(';')[a[0]].length));
					} else {
						return unescape(D.cookie.split(';')[a[0]]);
					}
				}
				break;
			}
		}
	};

	// クッキーを設定する
	C.setCookie = function(name, value, days){
		var d, date;
		if(days){
			date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			d = "; expires=" + date.toGMTString();
		} else {
			d = ';';
		}
		D.cookie = name + '=' + escape(value) + d;
	};

	// 引数＝数字（指定した順番のクッキーの値を返します）
	// 引数＝文字列（指定した名前のクッキーの値を返します）
	// 引数＝なし（全部のクッキーの値を持った配列を返します）
	// 注意！！！クッキーの名前に「;」と「=」の文字は使用できない！！！
	C.getCookieValue = function(){
		var a = arguments;
		var c, j, k, temp='', all = new Array();

		switch(a.length){
			case 0 : default : {
				for(j=0; j < D.cookie.split(';').length; j++){
					for(c=0; c < D.cookie.split(';')[j].length; c++){
						temp = temp + D.cookie.split(';')[j].charAt(c);
						if(D.cookie.split(';')[j].charAt(c) == '='){
							all[j] = D.cookie.split(';')[j].substr(c+1, D.cookie.split(';')[j].length);
							temp = '';
							break;
						}
					}
					//all[j] = D.cookie.split(';')[j].split('=')[1];
				}
				return all;
				break;
			}
			case 1 : {
				if(typeof(a[0]) == 'number'){

					// 一文字目の空白をつめる(やってもやらなくても同じ)
					if(D.cookie.split(';')[a[0]].charAt(0) == ' '){
						temp = D.cookie.split(';')[a[0]].substring(1, D.cookie.split(';')[a[0]].length);
					} else {
						temp = D.cookie.split(';')[a[0]];
					}
					for(c=0; c < temp.length; c++){
						if(temp.charAt(c) == '='){
							return temp.slice(c+1, temp.length);
						}
					}

				} else if(typeof(a[0]) == 'string'){

					for(j=0; j < D.cookie.split(';').length; j++){
						// 一文字目の空白をつめる
						if(D.cookie.split(';')[j].charAt(0) == ' '){
							temp = D.cookie.split(';')[j].substring(1, D.cookie.split(';')[j].length);
						} else {
							temp = D.cookie.split(';')[j];
						}
						for(c=0; c < temp.length; c++){
							if(temp.charAt(c) == '='){
								//「=」前の文字列と引数の文字列を比較
								if(a[0] == temp.substr(0, c)){
									return temp.substring(c+1, temp.length);
								} else {
									break;
								}
							}
						}
					}

				}
				break;
			}
		}
	}

} new Cookie();
