/*
*　ページのお気に入り追加処理
*　イメージのalt属性値と表示ページのURLを登録します。
*　altが他ページと同じ場合、新しい方が古い方を上書きします。
*　イメージのidには「fav」を設定しないと動作しません。
*　例：<img src="/img.gif" id="fav">
*　
*　お気に入り出力ID：fav_list
*　例：<div id="fav_list"></div>
*　
*　登録確認メッセージID：fav_msg
*　例：<div id="fav_msg"></div>
*/
max_ins = 10; //登録制限
ins_cnt = 0; //登録件数

function FavoritList() {
	if(document.getElementById("fav")) {
		this.fav = document.getElementById("fav");
		//イベント登録
		this.fav.onclick = function(){ return fav_input(this); };
	}
	if(document.getElementById("fav_list")) {
		this.fav_list = document.getElementById("fav_list");
		this.msg = document.getElementById("msg");

		var fav_txt = '';
		var favList = fav_get();
		var flg=false;
		var cnt_rim = max_ins; //残り登録可能件数
		
		
            
		for(val in favList){
			//fav_txt += "<input type=\"checkbox\" name=\"fav_del\" value="+ val +">";
			//fav_txt += "<a href=\"" + unescape(favList[val]) + "\">" + unescape(val) + "</a><br>";

			fav_txt += '<TABLE cellspacing="0" cellpadding="3" width="680" bgcolor="#3c76b0" border="0"><TBODY>';
			fav_txt += '<TR><TD width="272">\n';
			fav_txt += '<TABLE cellspacing="1" cellpadding="3" width="675" bgcolor="#333333" border="0">\n';
			fav_txt += '<TBODY>';
			fav_txt += '<TR>';
			fav_txt += '<TD bgcolor="#3c76b0" valign="middle" align="center" width="135" height="41">';
			fav_txt += '<span class="click_del" id="' + val + '"><IMG src="img/favlist_del.gif" width="55" height="22" border="0"></span>　　';
			fav_txt += '<a href="' + unescape(favList[val]) + '"><IMG src="img/favlist_des.gif" width="55" height="22" border="0"></a>';
			fav_txt += '</TD>';
			fav_txt += '<TD bgcolor="#ffffff" valign="middle" nowrap width="525" height="41">　<a href="' + unescape(favList[val]) + '">'+ unescape(val) +'</a></TD>';
			fav_txt += '</TR></TBODY></TABLE>';
			fav_txt += '</TD></TR></TBODY></TABLE>';
            fav_txt += '<BR><BR>';
   			flg=true;

		}
		
		if(flg){
			//fav_txt += "<input type=\"button\" name=\"del_btn\" id=\"del_btn\" value=\"お気に入りを削除\">";
			cnt_rim = max_ins - ins_cnt;
			if(cnt_rim == 0){
				msg_txt = "登録できる件数を超えています。リストから削除してください。";
			}else{
				msg_txt  = "現在" + ins_cnt + "件登録されています。";
			}
		}else{
			msg_txt = "現在お気に入りリストに１件も登録されていません。";
		}
		
		this.fav_list.innerHTML = fav_txt;
		if(document.getElementById("cnt")){
			document.getElementById("cnt").innerHTML = cnt_rim + "件";
		}
		if(document.getElementById("msg")){
			document.getElementById("msg").innerHTML = msg_txt;
		}		
		
	}
	
	//削除イベント
	spans = document.getElementsByTagName('span');
	if (spans) {
		results = new Array();
		for (i=0; i<spans.length; i=i+1) {
			if (spans[i].className == 'click_del') {
				results.push(spans[i]);
				spans[i].style.cursor = 'pointer';
			}
		}
		
		for (i=0; i<results.length; i=i+1) {
			results[i].onclick = function(){ 
				myExp = new Date();
				myExp.setTime(myExp.getTime()-(1));
				myItem = "favList_" + this.id + "=;";
				myExpires = "expires="+myExp.toGMTString();
				document.cookie =  myItem + myExpires;
				
				location.reload();
			}
		}
	}
		
		
	if(document.getElementById("del_btn")) {
		this.del_btn = document.getElementById("del_btn");
		//イベント登録
		this.del_btn.onclick = function(){ return fav_del(document.getElementsByName("fav_del")); };
	}
}

function fav_input(the_input) {
	favList = new Array();
	favList = fav_get();
	
	//重複登録チェック
	if(rep_check(escape(the_input.alt))){
		if(ins_cnt < max_ins){
			//クッキーにURL。ALTを登録
			myExp = new Date();
			myExp.setTime(myExp.getTime()+(7*24*60*60*1000));
			myItem = "favList_" + escape(the_input.alt) + "=" + escape(document.URL) + ";";
			myExpires = "expires="+myExp.toGMTString();
			document.cookie =  myItem + myExpires + ";";
			txt = 'お気に入りリストに追加しました。';
		}else{
			txt = '登録できる件数を超えています。リストから削除してください。';
			document.getElementById("fav_msg").style.color = '#FF0000';
		}
	}else{
		txt = 'このページは既に登録済みです。';
		document.getElementById("fav_msg").style.color = '#FF0000';
	}
	
	if(document.getElementById("fav_msg")) {
		document.getElementById("fav_msg").innerHTML = txt;
	}
}


/*
*お気に入りリスト取得関数
*　戻り値：array：お気に入り配列
*/

function fav_get(){
	var cookies = document.cookie.split("; ");
	var favlist = new Array();
	for (var i = 0; i < cookies.length; i++) {
		var str = cookies[i].split("=");
		if(str[0].indexOf('favList_') == 0){
			favlist[str[0].substring(8,str[0].length)] = str[1];
			ins_cnt += 1;
		}
	}
	return favlist;
}

function rep_check(the_input){
	var cookies = document.cookie.split("; ");
	var ret = true;
	
	for (var i = 0; i < cookies.length; i++) {
		var str = cookies[i].split("=");
		if(str[0] == ('favList_' + the_input)){
			ret = false;
		}
	}
	return ret;
}


function fav_del(obj){
	for (var i = 0; i < obj.length; i++) {
		if(obj.item(i).checked == true){
			myExp = new Date();
			myExp.setTime(myExp.getTime()-(1));
			myItem = "favList_" + obj.item(i).value + "=;";
			myExpires = "expires="+myExp.toGMTString();
			document.cookie =  myItem + myExpires;
		}
	}
	location.reload();
}
window.onload = function() {
	FavoritList();
};