if ( typeof(HistoryJs) == 'undefined' ) HistoryJs = function() {};

(function(){
//========== 現在のURLをcookieにカンマ区切りで格納 ==========

///// 初期設定 /////

//cookieの有効期限(秒)
var lateSec = 60 * 60 * 24 * 30;//30日で設定

var logNum = 5;//履歴の保存数

var cookieName = 'saveItemUrlLog';//保存する cookie 名

//1つのアイテムで使用できる、cookie の byte サイズ
//Operaは複数のcoockieを保存すると、
//1つあたりの最大サイズに影響があるため、
//他のcookieを考慮し、このプログラムで使用する
//最大サイズを2900Byteに設定

//cookie 名 + アイテムごとの区切り文字3文字
//(id\t画像\tタイトル\t\t)
//のエンコード後のbyte数(1文字3byte)を除き、
//履歴の保存数で割った数
var cookieSizeSingle = Math.floor((2900 - cookieName.length - (logNum * 4 * 3)) / logNum);



HistoryJs.setHistory = function () {
	var pageId = '';
	var pageImg = '';
	var pageTitle = '';
	
	var pathname_ary = window.location.pathname.split('/');
		
	///// HTMLソースを格納
	var htmlSouce = document.getElementsByTagName('body')[0].innerHTML;
	
	if( htmlSouce.match(/<\!\-\- \{ HISTORY_TITLE (.*?) \} \-\->/i) ){
		//詳細ページのディレクトリの比較して問題が無ければ
		
		///// URLを urlPath に格納
		urlPath = window.location.pathname;
		
		///// 求人画像イメージを itemTitle に格納
		var regExpFlag = htmlSouce.match(
			/<\!\-\- \{ HISTORY_IMAGE (.*?) \} \-\->/i
		);
		
		if(regExpFlag){
			pageImg = RegExp.$1;
			if(!pageImg){
				
				pageImg ='http://www.animate-costume.jp/upload_images/noimage_60x60.gif';
				
			}
		}
		
		///// 求人タイトルを itemTitle に格納
		var regExpFlag = htmlSouce.match(
			/<\!\-\- \{ HISTORY_TITLE (.*?) \} \-\->/i
		);
		if(regExpFlag){
			pageTitle = RegExp.$1;
		}
		
		delete htmlSouce; //HTMLソースを削除
		if(urlPath && pageImg && pageTitle){
			///// cookieの書き込み /////
			//cookieの内容を \t\t で分割して、tmpSaveItemUrlLog_aryに格納
			var tmpSaveItemUrlLog_ary = (HistoryJs.getCookie(cookieName)).split("\t\t");
			
			///// cookie の保存 /////
			
			tmpSaveItemUrlLog = urlPath + "\t" + pageImg + "\t" + pageTitle;
			
			//urlPathが既に登録されていないか、確認
			var sameUrlCheckFlag = true;
			for(var i = 0; i < tmpSaveItemUrlLog_ary.length; i++){
				var tmppage_ary = tmpSaveItemUrlLog_ary[i].split("\t");
//alert(tmppage_ary[0] + ' # ' + urlPath);
				if(tmppage_ary[0] == urlPath){
					sameUrlCheckFlag = false;
				}
			}
			
			if(sameUrlCheckFlag){
				/// 履歴の保存数分だけ、過去のデータを,で繋げて格納 ///
				for(var i = 0; i < logNum - 1; i++){
					if(tmpSaveItemUrlLog_ary[i] != undefined){
						tmpSaveItemUrlLog += "\t\t" + tmpSaveItemUrlLog_ary[i];
					}else{
						tmpSaveItemUrlLog += "\t\t";
					}
				}
				
				//cookieの保存
				HistoryJs.setCookie(cookieName, tmpSaveItemUrlLog, HistoryJs.getCookieDate(lateSec));
			}
		}
	}
}



HistoryJs.getHistory = function () {
	
	///// cookie を元に出力 /////
	var cookieFull = HistoryJs.getCookie(cookieName);
	if(HistoryJs.getCookie(cookieName)){
		
		//ページごとの情報が \t\t で区切られているので、分割
		cookieLine_ary = cookieFull.split("\t\t");
		
		document.write(
			'<img src="/cmn/images/etsuranrireki_side.gif" alt="閲覧履歴"><br />' +
			'<div id="history">'
		);
		
		for(var i=0; i < cookieLine_ary.length; i++){
			
			//\tで区切られた、URL・画像・タイトルを分割
			var cookieItem_ary = cookieLine_ary[i].split("\t");
			
			if(cookieItem_ary.length == 3){
				//URLのパスを、 pageId と結合
				var pageUrl = cookieItem_ary[0];
				var pageImg = cookieItem_ary[1];
				var pageTitle = cookieItem_ary[2];
				
				//HTMLに整形して出力
				document.write(
					'<div class="historyItem">' +
					
					'<a href="' + pageUrl + '" class="historyItemImg">' +
					'<img alt="" src="' + pageImg + '" />' +
					'</a>' +
					
					'<p class="historyItemTitle">' +
					'<a href="' + pageUrl + '">' +
					pageTitle +
					'</a>' +
					'</p>' +
					
					'<div style="clear:both;"></div>' +
					'</div>'
				);
			}
		}
		
		document.write(
			'</div>'
		);
	}
}



///// ユーザー関数 /////
//cookieを取得
HistoryJs.getCookie = function (key,  tmp1, tmp2, xx1, xx2, xx3) {
    tmp1 = " " + document.cookie + ";";
    xx1 = xx2 = 0;
    while (xx1 < tmp1.length) {
        xx2 = tmp1.indexOf(";", xx1);
        tmp2 = tmp1.substring(xx1 + 1, xx2);
        xx3 = tmp2.indexOf("=");
        if (tmp2.substring(0, xx3) == key) {
            return(decodeURI(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
        }
        xx1 = xx2 + 1;
    }
    return("");
}
//cookieを保存
HistoryJs.setCookie = function (key, val, cookieLimit, tmp) {
    tmp = key + "=" + encodeURI(val) + "; ";
    //path はルートを設定 tmp += "path=" + location.pathname + "; ";
    tmp += "path=/; ";
    tmp += "expires=" + cookieLimit + "; ";
    document.cookie = tmp;
}
//cookieをクリア
HistoryJs.clearCookie = function (key) {
    document.cookie = key + "=" + "xx; expires=Tue, 1-Jan-1980 00:00:00;";
}

//現在時刻から lateSec 秒後の日付を返す
HistoryJs.getCookieDate = function (lateSec) {
	var monthToStringArray = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
	var wdayToStringArray = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
	
	var dateObj = new Date(Date.parse(new Date()) + (lateSec * 1000));
	
	var year = dateObj.getYear();
	if (year < 1900) year += 1900;
	
	var month = monthToStringArray[dateObj.getMonth()];
	
	var wday = wdayToStringArray[dateObj.getDay()];
	
	var date = dateObj.getDate();
	
	var hour = dateObj.getHours();
	if (hour < 10) hour = "0" + hour;
	
	var min = dateObj.getMinutes();
	if (min < 10) min = "0" + min;
	
	var sec = dateObj.getSeconds();
	if (sec < 10) sec = "0" + sec;
	
	return wday + ", " + date + "-" + month + "-" + year + " " + hour + ":" + min + ":" + sec;
}

})();


