/////////////////////////////////////
//
// このスクリプトではブラウザ間の差異を吸収するため json2.js を使用する
// また、キーワード文字列の処理に utf.js を使用する
//
/////////////////////////////////////
var my_cookie = "BaibaiSearchParams";

// 10進数配列を16進文字列に変換
function to_hex(_array)
{
	var ret = '';
	for ( var i=0; i<_array.length; i++ )
	{
		ret += _array[i].toString(16);
	}
	return ret;
}


// 指定されたクッキーの値を返す
// ※指定されたクッキーが見つからない場合は空文字列 ("") を返す。値として空文字列を持つ場合と区別しない点に注意。
function getCookie(cookie_name)
{
	if ( document.cookie )
	{
		var cookies = document.cookie.split("; ");
		for ( var i=0; i<cookies.length; i++ )
		{
			var str = cookies[i].split("=");
			if ( str[0] == cookie_name )
			{
				return decodeURIComponent(str[1]);	// COOKIE 値を返す
			}
		}
	}
	return "";	// クッキーが見つからなかった場合は空文字列を返す
}
// ハッシュで与えられた検索パラメータを JSON 形式文字列に変換する
function serialize(param_hash)
{
	return JSON.stringify(param_hash);
}
// JSON 形式文字列をハッシュに変換する
function unserialize(json_str)
{
	return JSON.parse(json_str);
}
// 検索パラメータをクッキーに追加 (クッキー内にパラメータが既存の場合はその部分だけを上書き)
function setSearchParameters(param_hash)
{
	var value = getCookie(my_cookie);
	if ( value && value != '' )
	{
		value = unserialize(value);
	}
	else
	{
		value = {};
	}
/****************
	if ( value == '' )
		value = {};	// クッキーが存在しない、または値が空文字列なら空のハッシュ
	else
		value = unserialize(value);	// クッキーが存在する場合は値をデコードしたハッシュ
***************/
//alert('value: ', value);

	// 既存の検索パラメータハッシュに新しい値を追加または上書き
	for ( key in param_hash )
	{
		if ( param_hash[key] == '' || param_hash[key] == null )
		{
			if ( key in value )
			{
				delete value[key];
			}
		}
		else
		{
			value[key] = param_hash[key];
		}
	}
	// 新しい検索パラメータをシリアル化してクッキーに保存
	value = serialize(value);
	document.cookie = my_cookie + '=' + value + '; path=/;';
}
// パラメータを全て空白にし、クッキーもクリアする
function resetParams(my_reload)
{
	document.cookie = my_cookie + '={}';
	if ( my_reload )
	{
		location.reload();
	}
}

