//Copyright (C) 2007 poet All Rights Reserved.
//Blog    : ぽえっとの葉っぱたち : http://poetleaf.seesaa.net/
//Create  : 2007/01/23(Tue)
//Update  : 2007/01/23(Tue)
//Version : 1.2.0

//  **  Cookie  **
/*
//  データ仕様(version 01："v01")
//  識別コード"MEC"		：3バイト固定文字列
//  バージョン"v01"		：3バイト固定文字列（バージョンは変動）
//  					：フォーマット変更時にバージョンアップする。
//  					：メジャーのバージョンのみ。マイナーバージョンは無し。
//  ※データと値の繰り返し
//  code					：Cookieのデータ識別用コード
//  selectY				：（未使用）選択年
//  selectM				：（未使用）選択月
//  selectD				：（未使用）選択日
//  dispY				：表示年（yyyy）
//  dispM				：表示月（mm）
//  dispEvent			：表示イベント種類（n）0~4：デフォルト0
//  dispServer			：表示サーバ（n）0~6：デフォルト0
//  dispKind			：表示カレンダー種類（n）0~1：デフォルト0
//  dispSort			：表示ソート順（n）0~3：デフォルト0
//  custom				：表示カスタムON/OFF（n）0/1：デフォルト0
//  dispStart			：（未使用）表示開始月差分（n）：デフォルト0
//  dispRange			：表示開始月差分（n）：デフォルト1
//  dispWKind			：曜日表示種類（n）0/1：デフォルト3
//  dispWBegin			：開始曜日（n）0/1：デフォルト1

*/
CD_CODE      = "MEC";		// コード用識別コード
CD_VERSION   = "v01";		// コードバージョン
CK_DATAKEY   = CD_CODE + "_DATA";	// クッキーのKey（スキルデータ）

/**
 * クッキーを読み込む。
 * 
 * @param flag  問い合わせフラグ。（初期設定時はfalseを設定）
 */
function loadCookie(flag) {

	if (flag != null && flag != false && checkCookie()) {
		if (!confirm("[マビノギイベントカレンダー]\n" + 
				"編集中のデータを失いますが" + 
				"Cookieのデータを読み込んでもいいですか？") ) {
			return;
		}
	}

	var key = CK_DATAKEY + "=";
	if(document.cookie.length > 0) {
		adr = document.cookie.indexOf(key);
		if( adr != -1 ){
			adr += key.length;
			end = document.cookie.indexOf( ";" , adr );
			if( end == -1 )	end = document.cookie.length;
			str = document.cookie.substring( adr , end );
			//alert(str);
			s = unescape(str.substring(0));
			if (s.length > 0) {
				s += "&autosave=1";
			} else {
				s = "autosave=1";
			}
//alert("s = " + s);
			urlParams = s.split("&");
		}
	}
}

/**
 * クッキーを保存する。
 * 
 * @param flag  問い合わせフラグ。（初期設定時はfalseを設定）
 */
function saveCookie(flag) {

	if (flag != null && flag != false && checkCookie()) {
		if (!confirm("[マビノギイベントカレンダー]\n" + 
				"Cookieのデータを上書きしてもいいですか？") ) {
			return;
		}
	}

	var str = CK_DATAKEY + "=" + 
			escape("code=" + CD_CODE + CD_VERSION) + "&" + 
			escape(createCondition());
	//alert(str);
	document.cookie = str + "; expires=" + getExpires(30) + "; ";	// 30日保存

	if (flag != null && flag != false) {
		alert("[マビノギイベントカレンダー]\n" + 
				"Cookieが保存されました。\n" + 
				"現在から30日間保持されます。");
	}
}

/**
 * クッキーを削除する。
 */
function deleteCookie() {

	if (checkCookie()) {
		if (!confirm("[マビノギイベントカレンダー]\n" + 
				"Cookieのデータを削除してもいいですか？") ) {
			return;
		}
	} else {
		alert("[マビノギイベントカレンダー]\n" + 
				"Cookieは保存されていません。");
		return;
	}

	var str = CK_DATAKEY + "=dummy";
	//alert(str);
	document.cookie = str + "; expires=" + getExpires(-1) + "; ";	// 削除対象

	alert("[マビノギイベントカレンダー]\n" + 
			"Cookieを削除しました。");
}

/**
 * 既存Cookieデータのチェック。
 * 
 * @return      true データが存在する。/false
 */
function checkCookie() {
	// 既存Cookieのチェック
	var key = CK_DATAKEY + "=";
	if(document.cookie.length > 0) {
		adr = document.cookie.indexOf(key);
		if ( adr != -1 ) {
			return true;
		}
	}
	return false;
}

/**
 * 保存期間を取得する。
 *
 * @param range     期間（日）
 * @return          保存期間の文字列
 */
function getExpires(range) {
	expires = new Date();
	expires.setTime(expires.getTime() + 1000 * 60 * 60 * 24 * range);
	return expires.toGMTString();
}

