/*
【検討リスト機能用のJavaScript】
以下のライブラリが必要です。
- prototype.js
- objtree.js
- cookiemanager.js

*/


// 検討リスト用Cookieの有効期限（現在からの日数）
var cookieExpire = 6;

// 検討リストに追加できる仕事情報の件数上限
var checkLimit = 5;

// 連携するXMLファイルのパス
var xml = "/job/itstaffing.xml";



var jobDB = new Object();
function ajaxReq(mode){
	var msec = (new Date()).getTime();
	if (mode==2) {
		$("CHECK_LIST").innerHTML = "<p class=\"center size140 pt20\">しばらくお待ちください...</p>";
	}
	new Ajax.Request(xml, {
		method: "get",
		parameters: "cache="+msec,
		onSuccess:function(httpObj) {
			var source = httpObj.responseText;

			// 受信テキストをJSONに変換
			var xotree = new XML.ObjTree();
			xotree.attr_prefix ="@";
			var tree = xotree.parseXML(source);

			// ハッシュテーブルに変換
			var type = tree.itstaffing.type;
			for (i=0; i<type.length; i++) {
				var job = type[i].job;
				if(job.length) {
					for (j=0; j<job.length; j++) {
						jobDB[job[j]["@number"]] = job[j];
					}
				} else {
					jobDB[job["@number"]] = job;
				}
			}
			outputHTML(mode);
		},
		onFailure:function(httpObj){
			return;
		}
	});
}

function addList(number) {
	var manager = new CookieManager();
	manager.cookieShelfLife = cookieExpire;
	var cookieValue = manager.getCookie("checked");
	var message = "";
	if (cookieValue) {
		if (cookieValue.indexOf(number) == -1) {
			if (cookieValue.split(",").length >= checkLimit) {
				alert("検討リストに追加できるのは" + checkLimit + "件までです。");
			} else {
				manager.setCookie("checked", cookieValue + "," + number);
			}
		} else {
			alert("すでに検討リストに追加済みです。");
		}
	} else {
		manager.setCookie("checked", number);
	}
	outputHTML(1);
}

function removeList(number) {
	var manager = new CookieManager();
	manager.cookieShelfLife = cookieExpire;
	var message = "";
	var cookieValue = manager.getCookie("checked");
	if (cookieValue.indexOf(number) == -1) {
		alert("検討リストに追加されていません。");
	} else {
		var jobs = cookieValue.split(",");
		jobs = jobs.without(number);
		if (jobs.length == 0) {
			manager.clearCookie("checked");
		} else {
			manager.setCookie("checked", jobs.join(","));
		}
	}
	outputHTML(2);
}

function outputHTML(mode) {
	var manager = new CookieManager();
	manager.cookieShelfLife = cookieExpire;
	var cookieValue = manager.getCookie("checked");
	switch(mode) {
		case 1:
			var count = 0;
			var listHTML = "";
			if (cookieValue && cookieValue != "") {
				var checkArray = cookieValue.split(",");
				for (i=0; i<checkArray.length; i++) {
					if (jobDB[checkArray[i]]) {
						listHTML += "<li><span>";
						listHTML += jobDB[checkArray[i]].station;
						listHTML += "（";
						listHTML += jobDB[checkArray[i]]["@number"];
						listHTML += "）";
						listHTML += "</span></li>\n";
						count++;
					}
				}
				if (count > 0) {
					listHTML = "<ul>\n" + listHTML + "</ul>\n";
				} else {
					listHTML = "<p style='padding:10px'>検討リストは空です。</p>";
					manager.clearCookie("checked");
				}
			} else {
				listHTML = "<p style='padding:10px'>検討リストは空です。</p>";
			}
			$("CHECK_LIST").innerHTML = listHTML;
			$("MAX_ITEM").innerHTML = checkLimit;
			$("PRESENT_ITEM").innerHTML = count;

			break;
		case 2:
			var count = 0;
			var listHTML = "";
			if (cookieValue && cookieValue != "") {
				var checkArray = cookieValue.split(",");
				for (i=0; i<checkArray.length; i++) {
					if (jobDB[checkArray[i]]) {
						listHTML += "<!-- 仕事情報ブロック（標準モジュール） -->";
						listHTML += "<div class=\"jobTitle\">";
						listHTML += "<h3>" + jobDB[checkArray[i]].catchcopy + "</h3>";
						listHTML += "<p class=\"condition\">";
						if (jobDB[checkArray[i]].condition["@introduce"] == 1) {
							listHTML += "<img src=\"images/job_icon_temp.gif\" alt=\"紹介予定派遣\" width=\"29\" height=\"29\" />\n";
						}
						if (jobDB[checkArray[i]].condition["@restricted"] == 1) {
							listHTML += "<img src=\"images/job_icon_restricted.gif\" alt=\"期間限定\" width=\"29\" height=\"29\" />\n";
						}
						if (jobDB[checkArray[i]].condition["@novice"] == 1) {
							listHTML += "<img src=\"images/job_icon_novice.gif\" alt=\"未経験OK\" width=\"34\" height=\"30\" />\n";
						}
						if (jobDB[checkArray[i]].condition["@fewovertime"] == 1) {
							listHTML += "<img src=\"images/job_icon_fewovertime.gif\" alt=\"残業少\" width=\"29\" height=\"29\" />\n";
						}
						listHTML += "</p>";
						listHTML += "</div>";
						listHTML += "<div class=\"jobContent\">";
						listHTML += "<p class=\"lead\">" + jobDB[checkArray[i]].lead + "</p>";
						listHTML += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"jobData mt10\" summary=\"仕事情報の詳細(1)\">";
						listHTML += "<tr>";
						listHTML += "<th width=\"8%\">職種</th>";
						listHTML += "<td width=\"30%\" class=\"blueText\">" + jobDB[checkArray[i]].occupation + "</td>";
						listHTML += "<th width=\"8%\">時給</th>";
						listHTML += "<td width=\"20%\" class=\"blueText\">" + jobDB[checkArray[i]].payment + "</td>";
						listHTML += "<th width=\"11%\">最寄り駅</th>";
						listHTML += "<td width=\"28%\" class=\"blueText\">" + jobDB[checkArray[i]].station + "</td>";
						listHTML += "</tr>";
						listHTML += "</table>";
						listHTML += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"jobData mt10\" summary=\"仕事情報の詳細(2)\">";
						listHTML += "<tr>";
						listHTML += "<th width=\"20%\" scope=\"row\">仕事内容</th>";
						listHTML += "<td width=\"80%\">" + jobDB[checkArray[i]].explanation + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">必要スキル</th>";
						while (jobDB[checkArray[i]].skill.indexOf("\n") != -1) {
							jobDB[checkArray[i]].skill = jobDB[checkArray[i]].skill.replace("\n", "<br />");
						}
						listHTML += "<td>" + jobDB[checkArray[i]].skill + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">勤務時間</th>";
						listHTML += "<td>" + jobDB[checkArray[i]].hours + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">期間</th>";
						listHTML += "<td>" + jobDB[checkArray[i]].term + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">交通</th>";
						while (jobDB[checkArray[i]].access.indexOf("\n") != -1) {
							jobDB[checkArray[i]].access = jobDB[checkArray[i]].access.replace("\n", "<br />");
						}
						listHTML += "<td>" + jobDB[checkArray[i]].access + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">おすすめポイント</th>";
						listHTML += "<td>" + jobDB[checkArray[i]].recommendation + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">企業プロフィール</th>";
						listHTML += "<td>" + jobDB[checkArray[i]].profile + "</td>";
						listHTML += "</tr>";
						listHTML += "<tr>";
						listHTML += "<th scope=\"row\">Jobナンバー </th>";
						listHTML += "<td>" + jobDB[checkArray[i]]["@number"] + "</td>";
						listHTML += "</tr>";
						listHTML += "</table>";
						listHTML += "<ul class=\"jobButton\">";
						listHTML += "<li><button onclick=\"removeList('" + jobDB[checkArray[i]]["@number"] + "')\">検討リストから削除する</button></li>";
						listHTML += "</ul>";
						listHTML += "</div>";
						listHTML += "<!-- // 仕事情報ブロック（標準モジュール） -->";
						count++;
					}
				}
				if (count > 0) {
					var jobNoList = cookieValue.split(",");
					var jobQueryStr = new String();
					for (n=0; n<jobNoList.length; n++) {
						jobQueryStr += "&amp;job_no" + (n+1) + "=" + jobNoList[n];
					}
					var entryLink = "<a href=\"https://www.r-staffing.co.jp/sol/op53/sd18/" + jobQueryStr + "&amp;banner_id=itsweb\" target=\"_blank\"><img src=\"images/job_btn_all-entry.gif\" alt=\"まとめてエントリーする\" width=\"218\" height=\"46\" onmouseover=\"this.src='images/job_btn_all-entry_over.gif'\" onmouseout=\"this.src='images/job_btn_all-entry.gif'\" /></a>";
					listHTML =  "<p class=\"center pb20\">" + entryLink + "</p>" + listHTML;
					listHTML += "<p class=\"center pt20\">" + entryLink + "</p>";
				} else {
					listHTML = "<p class=\"center size140 pt20\">検討リストは空です。</p>";
					manager.clearCookie("checked");
				}
			} else {
				listHTML = "<p class=\"center size140 pt20\">検討リストは空です。</p>";
			}
			$("CHECK_LIST").innerHTML = listHTML;
			break;
	}
}

function formFill() {
	if (document.URL.indexOf("jobNo=") != -1) {
		var jobRe = new RegExp("^htt.+jobNo=([0-9A-Z,]+).*$", "gi");
		jobRe.exec(document.URL);
		var jobNo = RegExp.$1;
		if (jobNo != "") {
			$("JOB_NO").value = jobNo;
			$("VIEW_NO").innerHTML = jobNo.split(",").join("<br />");
		}
	}
	var reader = new CookieManager();
	if (reader.getCookie("tel1")) {
		$("TEL1").value = reader.getCookie("tel1");
	}
	if (reader.getCookie("tel2")) {
		$("TEL2").value = reader.getCookie("tel2");
	}
	if (reader.getCookie("tel3")) {
		$("TEL3").value = reader.getCookie("tel3");
	}
	if (reader.getCookie("keitai1")) {
		$("KEITAI1").value = reader.getCookie("keitai1");
	}
	if (reader.getCookie("keitai2")) {
		$("KEITAI2").value = reader.getCookie("keitai2");
	}
	if (reader.getCookie("keitai3")) {
		$("KEITAI3").value = reader.getCookie("keitai3");
	}
	if (reader.getCookie("email")) {
		$("EMAIL").value = reader.getCookie("email");
	}
	if (reader.getCookie("name")) {
		$("NAME").value = unescape(reader.getCookie("name"));
	}
	if (reader.getCookie("kana")) {
		$("KANA").value = unescape(reader.getCookie("kana"));
	}
	if (reader.getCookie("sex") == "M") {
		$("MALE").checked = true;
	}
	if (reader.getCookie("sex") == "F") {
		$("FEMALE").checked = true;
	}
	if (reader.getCookie("regist") == "Y") {
		$("REGIST_Y").checked = true;
	}
	if (reader.getCookie("regist") == "N") {
		$("REGIST_N").checked = true;
	}
}

function entryCheck(mode) {
	var req = true;
	switch(mode) {
		case 1:
			if ($("NAME").value == "") {
				req = false;
			} else if ($("KANA").value == "") {
				req = false;
			} else if ($("MALE").checked == false && $("FEMALE").checked == false ) {
				req = false;
			} else if ($("EMAIL").value == "") {
				req = false;
			} else if ( ($("TEL1").value=="" && $("TEL2").value=="" && $("TEL3").value=="") && ($("KEITAI1").value=="" && $("KEITAI2").value=="" && $("KEITAI3").value=="") ) {
				req = false;
			} else if ($("REGIST_Y").checked == false && $("REGIST_N").checked == false ) {
				req = false;
			}
			break;
		case 2:
			if ($("NAME").value == "") {
				req = false;
			} else if ($("KANA").value == "") {
				req = false;
			} else if ($("MALE").checked == false && $("FEMALE").checked == false ) {
				req = false;
			} else if ($("EMAIL").value == "") {
				req = false;
			} else if ( ($("TEL1").value=="" && $("TEL2").value=="" && $("TEL3").value=="") && ($("KEITAI1").value=="" && $("KEITAI2").value=="" && $("KEITAI3").value=="") ) {
				req = false;
			} else if ($("REGIST_Y").checked == false && $("REGIST_N").checked == false ) {
				req = false;
			} else if ($("CAREER").value == "") {
				req = false;
			} else if ($("SPECIALTY").value == "") {
				req = false;
			} else if ($("LOCATION").value == "") {
				req = false;
			} else if ($("STYLE1").checked == false && $("STYLE2").checked == false && $("STYLE3").checked == false ) {
				req = false;
			} else if ($("YEAR").value == "" && $("MONTH").value == "" && $("DAY").value == "" ) {
				req = false;
			} else if ($("OCCUPATION").value == "") {
				req = false;
			} else if ($("PAYMENT_H").value == "") {
				req = false;
			}
			break;
	}

	if (!req) {
		alert("必須項目が入力されていません");
		return false;
	} else if ($("AGREE").checked == false) {
		alert("個人情報の扱いについて同意されていません");
		return false;
	} else {
		var register = new CookieManager();
		register.cookieShelfLife = cookieExpire;
		register.setCookie("name", escape($("NAME").value));
		register.setCookie("kana", escape($("KANA").value));
		register.setCookie("tel1", $("TEL1").value);
		register.setCookie("tel2", $("TEL2").value);
		register.setCookie("tel3", $("TEL3").value);
		register.setCookie("keitai1", $("KEITAI1").value);
		register.setCookie("keitai2", $("KEITAI2").value);
		register.setCookie("keitai3", $("KEITAI3").value);
		register.setCookie("email", $("EMAIL").value);
		if ($("MALE").checked == true) {
			register.setCookie("sex", "M");
		} else if ($("FEMALE").checked == true) {
			register.setCookie("sex", "F");
		}
		if ($("REGIST_Y").checked == true) {
			register.setCookie("regist", "Y");
		} else if ($("REGIST_N").checked == true) {
			register.setCookie("regist", "N");
		}
		register.clearCookie("checked");
		return true;
	}
}

