/*
 * 自動お見積もりシステム
 * [llp-llc.jp用]
 *
 * 更新履歴：2007/12/28	d.ishikawa	新規作成
 *
 */

//会社設立コース
//配列項目内用：new Array(id,名称,金額)
var g_courseList = new Array();
g_courseList[0] = new Array(1, '定款作成', 3800);
g_courseList[1] = new Array(2, '格安設立代行', 15800);
g_courseList[2] = new Array(3, '設立代行パーフェクト[メールコンサルティング]', 22800);
g_courseList[3] = new Array(4, '設立代行パーフェクト[面談コンサルティング]', 37800);
g_courseList[4] = new Array(5, '1日高速設立', 67800);

//オプション
//配列項目内用：new Array(id,名称,割引金額)
//※複数選択しても割引は1回のみの場合、idを同じ値にする。
var g_optionList = new Array();
g_optionList[0] = new Array(1, '記帳代行・税務顧問', -11000);
g_optionList[1] = new Array(2, '国民生活金融公庫融資サポート', -3000);
g_optionList[2] = new Array(3, '助成金申請サポート', -3000);
g_optionList[3] = new Array(4, '社会保険', -3000);
g_optionList[4] = new Array(4, '労働保険', -3000);

//「会社設立コース」のフォーム項目名
g_courseName = 'course';
//「オプション」のフォーム項目名
g_optionName = 'option';
					

//「会社設立コース」を表示するdivのid
var g_courseId = null;
//「オプション」を表示するdivのid
var g_optionId = null;
//「見積結果」を表示するdivのid
var g_resultId = null;
//フォーム名
var g_formName = null;

/**
 * [初期設定(自動お見積もりシステム用)]
 * 自動お見積もりシステムの「会社設立コース」、「オプション」、「見積結果」を表示する。
 *
 * @param   string	「会社設立コース」を表示するdivのid
 * @param   string	「オプション」を表示するdivのid
 * @param   string	「見積結果」を表示するdivのid
 * @param   string	フォーム名
 *
 * @return  boolean true:正常/false:エラー
 */
function init4estimate(courseId, optionId, resultId, formName) {

	if (courseId == '') {
		alert('「会社設立コース」を表示するdivのid = "'+courseId+'"が不正です。');
		return false;
	}
	if (optionId == '') {
		alert('「オプション」を表示するdivのid = "'+optionId+'"が不正です。');
		return false;
	}
	if (resultId == '') {
		alert('「見積結果」を表示するdivのid = "'+resultId+'"が不正です。');
		return false;
	}
	if (formName == '') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}
	
	if (document.getElementById(courseId) == null) {
		alert('「会社設立コース」を表示するdivのid = "'+courseId+'"が不正です。');
		return false;
	}
	if (document.getElementById(optionId) == null) {
		alert('「オプション」を表示するdivのid = "'+optionId+'"が不正です。');
		return false;
	}
	if (document.getElementById(resultId) == null) {
		alert('「見積結果」を表示するdivのid = "'+resultId+'"が不正です。');
		return false;
	}
	if (typeof(document.forms[formName]) == 'undefined') {
		alert('フォーム名 = "'+formName+'"が不正です。');
		return false;
	}
	
	g_courseId = courseId;
	g_optionId = optionId;
	g_resultId = resultId;
	g_formName = formName;

	//「会社設立コース」を設定する。
	var courseCheckbox = '';
	var len = g_courseList.length;
	for (var i = 0; i < len; i++) {
		var cId = 'c' + i;
		if (courseCheckbox != '') courseCheckbox += '<br />';
		courseCheckbox += '<input type="radio" name="' + g_courseName + '" value="' + g_courseList[i][0] + '" id="' + cId + '">';
		courseCheckbox += '<label for="' + cId + '">';
		courseCheckbox += '<span class="green">' + g_courseList[i][1] + '</span>';
		courseCheckbox += '&nbsp;&nbsp;';
		courseCheckbox += '(単品料金&nbsp;<strong>\\' + formatNumber(g_courseList[i][2]) + '</strong>)';
		courseCheckbox += '</label>';
	}

	//「オプション」を設定する。
	var optionCheckbox = '';
	var len = g_optionList.length;
	for (var i = 0; i < len; i++) {
		var oId = 'o' + i;
		if (optionCheckbox != '') optionCheckbox += '<br />';
		optionCheckbox += '<input type="checkbox" name="' + g_optionName + '[]" value="' + g_optionList[i][0] + '" id="' + oId + '">';
		optionCheckbox += '<label for="' + oId + '">';
		optionCheckbox += '' + g_optionList[i][1] + '';
		optionCheckbox += '</label>';
	}
	
	//「見積結果」を設定する。
	var resultText = '';
	resultText += '<b style="font-family: \'ヒラギノ角ゴ Pro W3\',\'ＭＳ Ｐゴシック\', Osaka; font-size: 1.3em;">';
	resultText += 'LLC／LLP設立コース、オプションを選んで、「お見積もり」ボタンを押して下さい。';
	resultText += '</b>';
	
	
	//「会社設立コース」を表示する。
	document.getElementById(courseId).innerHTML = courseCheckbox;
	//「オプション」を表示する。
	document.getElementById(optionId).innerHTML = optionCheckbox;
	//「見積結果」を表示する。
	document.getElementById(resultId).innerHTML = resultText;
	
	return true;
}

/**
 * お見積もりを実行する。
 *
 * @return  boolean
 */
function estimate() {

	var form = document.forms[g_formName];
	
	//「会社設立コース」が選択されているかチェックする。
	var courseRadios = form.elements[g_courseName];
	var courseRadiosCount = (typeof(courseRadios.length) != 'undefined')?courseRadios.length:0;
	var courseId = null;
	var courseIndex = null;
	if (courseRadiosCount) {
        for (var i = 0; i < courseRadiosCount; i++) {
            if (courseRadios[i].checked == true) {
				courseId = courseRadios[i].value;
				courseIndex = i;
            }
        }		
	} else {
        if (courseRadios.checked  == true) {
			courseId = courseRadios.value;
			courseIndex = courseRadiosCount;
        }
	}
	
	if (courseId == null) {
		alert('「会社設立コース」を選択して下さい。');
		return false;
	}

	//「見積結果」を表示する。
	document.getElementById(g_resultId).innerHTML = '計算中・・・';	
	
	//「会社設立コース」の料金を設定する。
	var coursePrice = g_courseList[courseIndex][2];
	
	
	//「オプション」の選択されている項目をチェックする。
	var optionCheckboxes = form.elements[g_optionName + '[]'];
	var optionCheckboxesCount = (typeof(optionCheckboxes.length) != 'undefined')?optionCheckboxes.length:0;
	//「オプション」の料金を設定する。
	var optionPrice = 0;
	var optionIdList = new Array();
	
	if (optionCheckboxesCount) {
        for (var i = 0; i < optionCheckboxesCount; i++) {
            if (optionCheckboxes[i].checked == true) {
				//オプションの中には、複数選択しても1つ分の割引しか行わない項目がある。そのため、割引済みかをチェックする。
				if (optionIdList[optionCheckboxes[i].value] == null) {
					//「オプション」の料金を加算する。
					optionPrice += g_optionList[i][2];
					
					//割引済みは、配列に追加する。
					optionIdList[optionCheckboxes[i].value] = true;
				}　else {
				}
            }
        }		
	} else {
        if (optionCheckboxes.checked  == true) {
			//「オプション」の料金を加算する。
			optionPrice += g_optionList[optionCheckboxesCount][2];
			optionIdList[optionCheckboxes.value] = true;
		}
	}

	//料金を合計する。	
	var totalPrice = coursePrice + optionPrice;
/*	
	alert('coursePrice='+coursePrice);
	alert('optionPrice='+optionPrice);
	alert('totalPrice='+totalPrice);
*/	
	if (totalPrice < 0) totalPrice = 0;
	
	//「見積結果」を設定する。
	var resultText = '';
	resultText += '<b style="font-family: \'ヒラギノ角ゴ Pro W3\',\'ＭＳ Ｐゴシック\', Osaka; font-size: 1.3em;">';
	resultText += '会社設立報酬 ：';
	resultText += '</b>';
	resultText += '&nbsp;&nbsp;';
	resultText += '<b style="font-family: \'ヒラギノ角ゴ Pro W3\',\'ＭＳ Ｐゴシック\', Osaka; font-size: 1.8em;">';
	resultText += '￥&nbsp;' + formatNumber(totalPrice);
	resultText += '</b>';
	resultText += '&nbsp;&nbsp;&nbsp;';
	resultText += '+&nbsp;&nbsp;実費';
	
	//「見積結果」を表示する。
	document.getElementById(g_resultId).innerHTML = resultText;
	
	return true;
}
/**
 * 数値編集
 *
 * @param   int	数値
 *
 * @return  string フォーマット後の数値
 */
function formatNumber(val) {
	var res = '';

	if (val > 0) {
		var re = new RegExp('([0-9]+)([0-9]+[0-9]+[0-9]+)');
		res = val.toString();
		while (re.test(res)) {
			res = res.replace(re, '$1,$2');
		}
	} else {
		res = val;
	}
	
	return res;
}