var se_cookie_check;
var se_cookies = new Array();

var se_favorite_cookie_name = 'sefavorites';

seCheckCookie();
if ( se_cookie_check ) {
  seParseCookie();//クッキーをパース
}

// お気に入りに追加
function addFavorite( id )
{
	var ids_str = seGetCookie( se_favorite_cookie_name );
	var ids_arr = new Array();
	var ids = new Array();
	var cookie_str = '';
	var i;
	if ( ids_str ) {
		ids_arr = ids_str.split( /_/ );
		for ( i=0; i<ids_arr.length; i++ ) {
			ids[ ids_arr[i] ] = ids_arr[i];
		}
	}
	ids[ id ] = id;
	document.getElementById('add_favorite_button'+id).style.display = 'none';
	document.getElementById('del_favorite_button'+id).style.display = 'block';
	if ( document.getElementById('add_favorite_button2'+id) ) {
		document.getElementById('add_favorite_button2'+id).style.display = 'none';
		document.getElementById('del_favorite_button2'+id).style.display = 'block';
	}
	cookie_str = ids.join( '_' );
	cookie_str = cookie_str.replace( /_+/g, '_' );
	cookie_str = cookie_str.replace( /(^_+|_+$)/g, '' );
	seSetCookie( se_favorite_cookie_name, cookie_str, 365*24*60*60 );
	seParseCookie();
}
// お気に入りから削除
function delFavorite( id )
{
	var ids_str = seGetCookie( se_favorite_cookie_name );
	if ( !ids_str ) {
	  return;
	}
	var ids_arr = ids_str.split( /_/ );
	var ids = new Array();
	var cookie_str = '';
	var i;
	for ( i=0; i<ids_arr.length; i++ ) {
	  if ( ids_arr[i] == id ) {
		  continue;
		}
		ids[ ids_arr[i] ] = ids_arr[i];
	}
	document.getElementById('add_favorite_button'+id).style.display = 'block';
	document.getElementById('del_favorite_button'+id).style.display = 'none';
	if ( document.getElementById('add_favorite_button2'+id) ) {
		document.getElementById('add_favorite_button2'+id).style.display = 'block';
		document.getElementById('del_favorite_button2'+id).style.display = 'none';
	}
	cookie_str = ids.join( '_' );
	cookie_str = cookie_str.replace( /_+/g, '_' );
	cookie_str = cookie_str.replace( /(^_+|_+$)/g, '' );
	seSetCookie( se_favorite_cookie_name, cookie_str, 365*24*60*60 );
	seParseCookie();
}
// お気に入りボタンの状態をセット
function setFavoriteState( id )
{
	var i = 0;
	if ( !document.getElementById('add_favorite_button'+id) || !document.getElementById('del_favorite_button'+id) ) {
		return;
	}
	var exists = false;
	var ids_str = seGetCookie( se_favorite_cookie_name );
	var ids_arr = new Array();
	if ( ids_str ) {
	  ids_arr = ids_str.split( /_/ );
	}
	var ids = new Array();
	var cookie_str = '';
	if ( ids_str ) {
		for ( i=0; i<ids_arr.length; i++ ) {
			if ( ids_arr[i] == id ) {
				exists = true;
				break;
			}
		}
	}
	if ( exists ) {
		document.getElementById('add_favorite_button'+id).style.display = 'none';
		document.getElementById('del_favorite_button'+id).style.display = 'block';
		if ( document.getElementById('add_favorite_button2'+id) ) {
			document.getElementById('add_favorite_button2'+id).style.display = 'none';
			document.getElementById('del_favorite_button2'+id).style.display = 'block';
		}
	} else {
		document.getElementById('add_favorite_button'+id).style.display = 'block';
		document.getElementById('del_favorite_button'+id).style.display = 'none';
		if ( document.getElementById('add_favorite_button2'+id) ) {
			document.getElementById('add_favorite_button2'+id).style.display = 'block';
			document.getElementById('del_favorite_button2'+id).style.display = 'none';
		}
	}
}
//クッキーが有効かどうかをチェック
function seCheckCookie()
{
	seSetCookie( "cookiecheck", "cookiecheck", 5 );
	var cookiecheck = document.cookie;
	if ( cookiecheck.indexOf("cookiecheck") >= 0 ){
		se_cookie_check = true;
	} else {
		se_cookie_check = false;
	}
	return se_cookie_check;
}

//クッキーをセット
function seSetCookie( key, value, seconds, path )
{
  if ( !path ) {
	  path = '/';
	}
	document.cookie = key + "=" + encodeURIComponent(value) + ";path=" + path + ";max-age=" + seconds + ";";
}

//クッキーをパースする
function seParseCookie()
{
  se_cookies = new Array();
	var cookie_str = document.cookie;
	var cookie_strs = cookie_str.split( /\s*;\s*/ );
	for ( i=0; i<cookie_strs.length; i++ ) {
		var pair = cookie_strs[i].split( /=/ );
		//se_cookies[i] = new seCookie( pair[0], decodeURIComponent( pair[1] ) );
		se_cookies[i] = new seCookie( pair[0], pair[1] );
	}
}

//クッキーを取得する
function seGetCookie( key )
{
	for ( i=0; i<se_cookies.length; i++ ) {
		if ( se_cookies[i].key == key ) {
			return se_cookies[i].value;
		}
	}
	return '';
}

//クッキークラス
function seCookie( key, value )
{
	this.key = key;
	this.value = value;
}
