var mylist = {
 timeout : null,
 showPopup : function( e ){
  clearTimeout(this.timeout);
  if($(e).style.display == 'none'){
   this.timeout = setTimeout(function(){new Effect.BlindDown(e, {duration:.3, fps:40})},0);
  }
 },
 hidePopup : function(e){
  if($(e).style.display == 'none'){
   clearTimeout(this.timeout);
  }else{
   this.timeout = setTimeout(function(){new Effect.BlindUp(e, {duration:.8, fps:40})},2000);
  }
 },
 hidePopupImmediately : function(e){
  if($(e).style.display == 'none'){
   clearTimeout(this.timeout);
  }else{
   this.timeout = setTimeout(function(){new Effect.BlindUp(e, {duration:.3, fps:40})},100);
  }
 }
 

}

//検討中求人リストに追加
function registMyList(jobOfferId, caDoctorPartTimeId,storeID){

	mylist.showPopup('myListResult_' + jobOfferId + '_' + caDoctorPartTimeId + '_' + storeID );

	//リスト挿入
	MyListAjaxManager.insertMyList(jobOfferId, caDoctorPartTimeId, storeID, registMyListResult);
	
}

//検討中求人リスト追加後の描写
function registMyListResult(myList){
	var divName = 'listcomment_';
	var divNameHead = 'headMessage_';
	var divNameLink = 'listlink_';
	var divName_post = myList.jobOfferId + '_';
	if(myList.caDoctorPartTimeId != "null" && myList.caDoctorPartTimeId != null){
		divName_post += myList.caDoctorPartTimeId;
	}
	divName_post += "_";
	if(myList.storeId != "null" && myList.storeId != null){
		divName_post += myList.storeId;
	}
	divName += divName_post;
	divNameHead += divName_post;
	divNameLink += divName_post;

	var resultDiv = document.getElementById(divName);
	resultDiv.innerHTML = myList.resultStr + "<br/>";
	
	var resultHead = document.getElementById(divNameHead);
	var resultLink = document.getElementById(divNameLink);
	if(myList.resultCd == 1){
		resultHead.innerHTML = '追加しました';
		resultLink.innerHTML = '<A class="blue" href="' + myListURL + '">&gt;&gt;検討中求人リストを見る</A>';
	}else if(myList.resultCd == 2){
		resultHead.innerHTML = '登録済みです';
		resultLink.innerHTML = '<A class="blue" href="' + myListURL + '">&gt;&gt;検討中求人リストを見る</A>';
	}else if(myList.resultCd == -9){
		resultHead.innerHTML = '登録できません';
		resultLink.innerHTML = '<A class="blue" href="' + contactURL + '">&gt;&gt;お問い合わせ</A>';
	}else if(myList.resultCd == 0){
		resultHead.innerHTML = 'ログインが必要です。';
		resultLink.innerHTML = '<A class="blue" href="' + contactURL + '">&gt;&gt;お問い合わせ</A>';
	}
	
	checkMyList(myList.jobOfferId, myList.caDoctorPartTimeId, myList.storeId);
}

//検討中求人リストに追加
function registMyListDetail(jobOfferId, caDoctorPartTimeId,storeID){

	mylist.showPopup('myListResult_' + jobOfferId + '_' + caDoctorPartTimeId + '_' + storeID );

	//登録
	MyListAjaxManager.insertMyList(jobOfferId, caDoctorPartTimeId, storeID, registMyListDetailResult);
	
}

//検討中求人リスト追加後の描写
function registMyListDetailResult(myList){
	var divName = 'listcomment_';
	var divNameHead = 'headMessage_';
	var divNameLink = 'listlink_';
	var divName_post = myList.jobOfferId + '_';
	if(myList.caDoctorPartTimeId != "null" && myList.caDoctorPartTimeId != null){
		divName_post += myList.caDoctorPartTimeId;
	}
	divName_post += "_";
	if(myList.storeId != "null" && myList.storeId != null){
		divName_post += myList.storeId;
	}
	divName += divName_post;
	divNameHead += divName_post;
	divNameLink += divName_post;

	var resultDiv = document.getElementById(divName);
	resultDiv.innerHTML = myList.resultStr + "<br/>";
	
	var resultHead = document.getElementById(divNameHead);
	var resultLink = document.getElementById(divNameLink);
	if(myList.resultCd == 1){
		resultHead.innerHTML = '追加しました';
		resultLink.innerHTML = '<A class="blue" href="' + myListURL + '">&gt;&gt;検討中求人リストを見る</A>';
	}else if(myList.resultCd == 2){
		resultHead.innerHTML = '登録済みです';
		resultLink.innerHTML = '<A class="blue" href="' + myListURL + '">&gt;&gt;検討中求人リストを見る</A>';
	}else if(myList.resultCd == -9){
		resultHead.innerHTML = '登録できません';
		resultLink.innerHTML = '<A class="blue" href="' + contactURL + '">&gt;&gt;お問い合わせ</A>';
	}else if(myList.resultCd == 0){
		resultHead.innerHTML = 'ログインが必要です。';
		resultLink.innerHTML = '<A class="blue" href="' + contactURL + '">&gt;&gt;お問い合わせ</A>';
	}
	
	checkMyList(myList.jobOfferId, myList.caDoctorPartTimeId, myList.storeId);
	checkMyListDetail(myList.jobOfferId, myList.caDoctorPartTimeId, myList.storeId);
}

//検討中求人リストに追加(詳細下部)
function registMyListDetailBottom(jobOfferId, caDoctorPartTimeId,storeID){

	mylist.showPopup('myListResult_' + jobOfferId + '_' + caDoctorPartTimeId + '_' + storeID + '_bottom');

	//登録
	MyListAjaxManager.insertMyList(jobOfferId, caDoctorPartTimeId, storeID, registMyListDetailBottomResult);
	
}

//検討中求人リスト追加後の描写
function registMyListDetailBottomResult(myList){
	var divName = 'listcomment_';
	var divNameHead = 'headMessage_';
	var divNameLink = 'listlink_';
	var divName_post = myList.jobOfferId + '_';
	if(myList.caDoctorPartTimeId != "null" && myList.caDoctorPartTimeId != null){
		divName_post += myList.caDoctorPartTimeId;
	}
	divName_post += "_";
	if(myList.storeId != "null" && myList.storeId != null){
		divName_post += myList.storeId;
	}
	
	divName_post += '_bottom';
	
	divName += divName_post;
	divNameHead += divName_post;
	divNameLink += divName_post;

	var resultDiv = document.getElementById(divName);
	resultDiv.innerHTML = myList.resultStr + "<br/>";
	
	var resultHead = document.getElementById(divNameHead);
	var resultLink = document.getElementById(divNameLink);
	if(myList.resultCd == 1){
		resultHead.innerHTML = '追加しました';
		resultLink.innerHTML = '<A class="blue" href="' + myListURL + '">&gt;&gt;検討中求人リストを見る</A>';
	}else if(myList.resultCd == 2){
		resultHead.innerHTML = '登録済みです';
		resultLink.innerHTML = '<A class="blue" href="' + myListURL + '">&gt;&gt;検討中求人リストを見る</A>';
	}else if(myList.resultCd == -9){
		resultHead.innerHTML = '登録できません';
		resultLink.innerHTML = '<A class="blue" href="' + contactURL + '">&gt;&gt;お問い合わせ</A>';
	}else if(myList.resultCd == 0){
		resultHead.innerHTML = 'ログインが必要です。';
		resultLink.innerHTML = '<A class="blue" href="' + contactURL + '">&gt;&gt;お問い合わせ</A>';
	}
	
	checkMyList(myList.jobOfferId, myList.caDoctorPartTimeId, myList.storeId);
	checkMyListDetail(myList.jobOfferId, myList.caDoctorPartTimeId, myList.storeId);
}


//検討中求人リストに登録済みかどうかのチェック
function checkMyList(jobOfferId, caDoctorPartTimeId,storeID){
	MyListAjaxManager.isJobOfferExists(jobOfferId, caDoctorPartTimeId, storeID, checkMyListResult);
}

//検討中求人リストに登録済みかどうかのチェック後の描写
function checkMyListResult(myList){
	if(myList != null){
		var divName = 'link_span_' + myList.jobOfferId + '_';
		if(myList.caDoctorPartTimeId != "null" && myList.caDoctorPartTimeId != null){
			divName += myList.caDoctorPartTimeId;
		}
		divName += "_";
		if(myList.storeId != "null" && myList.storeId != null){
			divName += myList.storeId;
		}
		var resultDiv = document.getElementById(divName);
		resultDiv.innerHTML = '<A href="' + myListURL + '">検討中求人リスト</A>に登録済み';
	}
}

//求人詳細で検討中求人リストに登録済みかどうかのチェック
function checkMyListDetail(jobOfferId, caDoctorPartTimeId,storeID){
	MyListAjaxManager.isJobOfferExists(jobOfferId, caDoctorPartTimeId, storeID, checkMyListDetailResult);	
}

//求人詳細で検討中求人リストに登録済みかどうかのチェック後の描写
function checkMyListDetailResult(myList){
	if(myList != null){
		var divName = 'icon_List';
		var ddName = 'detailMemo';
		
		if(myList.memo != "null" && myList.memo != null && myList.memo != ""){
			document.getElementById(ddName).innerHTML = escapeHTML(myList.memo);
			var divName = 'icon_List02';
		}
		
		var resultDiv = document.getElementById(divName);
		resultDiv.style.display = '';
		
		
		//検討中求人リスト下部
		var divName = 'link_span_' + myList.jobOfferId + '_';
		if(myList.caDoctorPartTimeId != "null" && myList.caDoctorPartTimeId != null){
			divName += myList.caDoctorPartTimeId;
		}
		divName += "_";
		if(myList.storeId != "null" && myList.storeId != null){
			divName += myList.storeId;
		}
		divName += '_bottom';
		
		var resultDiv = document.getElementById(divName);
		if(resultDiv != null){
			resultDiv.innerHTML = '<A href="' + myListURL + '">検討中求人リスト</A>に登録済み';
		}
	}
}


//詳細を開く
function openDetail(listId){
	var detailDiv = "detail_" + listId;
	if(document.getElementById(detailDiv).style.display == "none"){
		new Effect.BlindDown($(detailDiv),{duration :0.5,queue:{position:'end',scope:'scopename',limit:1}});
		var aTag = "maxminimize_" + listId;
		document.getElementById(aTag).className="btn_close";
	}
}

//詳細を閉じる
function closeDetail(listId){
	var detailDiv = "detail_" + listId;
	if(document.getElementById(detailDiv).style.display != "none"){
		new Effect.BlindUp($(detailDiv),{duration :0.5,queue:{position:'end',scope:'scopename',limit:1}});
		var aTag = "maxminimize_" + listId;
		document.getElementById(aTag).className="btn_open";
	}
}

//詳細を開く
function openDetailForAll(listId){
	var detailDiv = "detail_" + listId;
	if(document.getElementById(detailDiv).style.display == "none"){
		new Effect.BlindDown($(detailDiv),{duration :0.5});
		var aTag = "maxminimize_" + listId;
		document.getElementById(aTag).className="btn_close";
	}
}

//詳細を閉じる
function closeDetailForAll(listId){
	var detailDiv = "detail_" + listId;
	if(document.getElementById(detailDiv).style.display != "none"){
		new Effect.BlindUp($(detailDiv),{duration :0.5});
		var aTag = "maxminimize_" + listId;
		document.getElementById(aTag).className="btn_open";
	}
}

//詳細が開いていたら閉じ、閉じていたら開く
function switchDetail(listId){
	var detailDiv = "detail_" + listId;
	if(document.getElementById(detailDiv).style.display == "none"){
		openDetail(listId);
	}else{
		closeDetail(listId);
	}
}

//タグの登録
function registTags(listId, tags){
	var tagsSpan = "tags_link_" + listId;
	var tagListObj = document.getElementById(tagsSpan);
	tagListObj.innerHTML ='';
	MyListAjaxManager.registTags(listId, tags, registTagsResult);
}

//タグ登録後の描写
function registTagsResult(tagsList){
	redrawTag();
	if(tagsList == null){return;}
	var listId;
	var tags;
	for (var i = 0, len = tagsList.length; i < len; i++) {
		var result = tagsList[i];
		listId = result.rgMyJobOfferListId;
		var tagsSpan = "tags_link_" + listId;
		var tagListObj = document.getElementById(tagsSpan);

		tagListObj.innerHTML += '<a href="javascript:void(0);" onClick="javascript:searchListByTag(\'' + result.escapedTag + '\')">' + result.escapedTag +'</a> ';
		if(i==0){
			tags = result.tag;
		}else{
			tags += "," + result.tag;
		}
	}
	
	var tagName = "tags_" + listId;
	var tagObj = document.getElementById(tagName);
	tagObj.value = tags;
	
}

//タグリストの再描写
function redrawTag(){
	MyListAjaxManager.getUsedTagList(redrawTagList);
}

//タグリストの再描写
function redrawTagList(tagList){
	//タグセレクトボックスの中身をリセット
	document.getElementById("searchTag").length = 1;
	document.getElementById("searchTag").options[ 0 ].text = "全ての求人を表示";
	document.getElementById("searchTag").options[ 0 ].value = "";
	//タグボックスのセレクトボックスをリロード
	dwr.util.addOptions("searchTag",tagList,"tag","tag");
	if(document.getElementById("selectedSearchTag").value != ""){
		document.getElementById("searchTag").value=document.getElementById("selectedSearchTag").value;
	}
	
}

//タグ絞り込み
function searchListByTag(tag){
	document.getElementById("searchTag").value = tag;
	document.getElementById("redrawList").submit();
	return false;
}

//メモ編集
function editMemo(listId){

	divNameView = "memoView_" + listId;
	divNameEdit = "memoEdit_" + listId;
	document.getElementById(divNameView).style.display="none";
	document.getElementById(divNameEdit).style.display="";
	//new Effect.BlindUp($(divNameView));
	//new Effect.BlindDown($(divNameEdit));

}

//メモ編集
function updateMemo(listId){

	inputNameText = "memo_" + listId;
	var memo = document.getElementById(inputNameText).value;
	MyListAjaxManager.updateMemo(listId, memo, updateMemoResult);

}

//メモ編集描写
function updateMemoResult(list){
	
	divNameView = "memoView_" + list.rgMyJobOfferListId;
	divNameEdit = "memoEdit_" + list.rgMyJobOfferListId;
	ddNameText = "memo_text_" + list.rgMyJobOfferListId;
	
	document.getElementById(ddNameText).innerHTML = list.memo;
	
	document.getElementById(divNameEdit).style.display="none";
	document.getElementById(divNameView).style.display="";
	
}

//求人削除
function deleteMyList(listId, companyName){
	if(!confirm("検討中求人リストから「" + companyName + "」を削除します。\nよろしいですか？")){return;}
	MyListAjaxManager.deleteMyList(listId, deleteMyListResult);
	document.getElementById('deleted').value = 1;
}

function deleteMyListResult(list){
	divName = "most_outer_div_" + list.rgMyJobOfferListId;
	new Effect.Fade($(divName));
}

//勤務地開閉
function openAddress(listId){
	shortSpan = "short_address_" + listId;
	longSpan = "long_address_" + listId;
	document.getElementById(shortSpan).style.display="none";
	document.getElementById(longSpan).style.display="";
}

function closeAddress(listId){
	shortSpan = "short_address_" + listId;
	longSpan = "long_address_" + listId;
	document.getElementById(shortSpan).style.display="";
	document.getElementById(longSpan).style.display="none";
}


//===============================================================
/**
 * @brief ある文字列内の指定文字列を別の文字列に置き換える
 *
 * @param _targetStr_ 置換を行う前の文字列
 * @param _searchStr_ 検索する文字列
 * @param _replaceStr_ 検索で見つかった文字列と置き換える文字列
 *
 * @return 置換処理後の文字列
 */
//===============================================================
function replaceAll( _targetStr_, _searchStr_, _replaceStr_ ){ 

    return _targetStr_.split(_searchStr_).join(_replaceStr_);

}

//htmlな文字をエスケープ
function escapeHTML(str) {
  return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}



