$(document).ready(function(){
	$("div#ESTIMATE-ALT").css("display","none");
	$("div#ESTIMATE").css("display","block");
	//----------------------------------------
	// 設定
	//----------------------------------------
	
	//選択肢一覧
	var answers = [
		["MT","AT"],
		["A01","A02","A03"],
		["A01","A02","A03","A04","A05"],
		["NORMAL","ATNORMAL"],
		["ORDINARY","STUDENT"],
		["FULLDAY","DAY"],
		["NO","YES"]
	];
	//入力チェックファンクション
	var check = [
		{ MT:checkQ1_MT, AT:checkQ1_AT },
		{ A01:check_Q2, A02:check_Q2, A03:check_Q2_A03 },
		{ A01:check_Q3, A02:check_Q3, A03:check_Q3, A04:check_Q3, A05:check_Q3_A05 },
		{ },
		{ },
		{ },
		{ }
	];
	//コールバックファンクション
	var changed = [
		null,
		changed_Q2,
		changed_Q3,
		null,
		null,
		null,
		null
	];
	//計算式
	var calc = [
		{ MT:0, AT:0 },
		{ A01:calc_Q2_A01, A02:calc_Q2_A02, A03:0 },
		{ A01:-56174, A02:calc_Q3 , A03:calc_Q3 , A04:calc_Q3 , A05:0 },
		{ NORMAL:-12600, ATNORMAL:0 },
		{ ORDINARY:0, STUDENT:-3000 },
		{FULLDAY:0, DAY:-5000 },
		{NO:0, YES:-5040 }
	];
	//複数選択可
	var multiple = [false,true,true,false,false,false,false];
	//金額
	var basePrice = 0;
	var resultPrice = basePrice;
	//プリロードする画像
	var preloadImages = [
		"/images/estimatemotorcycle/at-over.gif",
		"/images/estimatemotorcycle/atnormal-over.gif",
		"/images/estimatemotorcycle/check-atnormal-over.gif",
		"/images/estimatemotorcycle/check-atsmall-over.gif",
		"/images/estimatemotorcycle/check-fourwheel-over.gif",
		"/images/estimatemotorcycle/check-no-over.gif",
		"/images/estimatemotorcycle/check-small-over.gif",
		"/images/estimatemotorcycle/mt-over.gif",
		"/images/estimatemotorcycle/ordinary-over.gif",
		"/images/estimatemotorcycle/student-over.gif",
		"/images/estimatemotorcycle/fulltime-over.gif",
		"/images/estimatemotorcycle/daytime-over.gif",
		"/images/estimatemotorcycle/yes-over.gif",
		"/images/estimatemotorcycle/no-over.gif"
	];
	
	
	//----------------------------------------
	// 画像のプリロード
	//----------------------------------------
	preLoadImg(preloadImages);
	function preLoadImg(srcArr) {
		var pl;
		var i = 0;
		for ( i=0; i<srcArr.length; i++ ) {
			pl = new Image();
			pl.src = srcArr[i];
		}
	}
	//----------------------------------------
	// 種別選択
	//----------------------------------------
	//始めは非表示に
	$("div#Q1, div#Q2, div#Q3, div#Q4, div#Q5, div#Q6, div#Q7").hide();
	$("div.table-wrapp01").hide();
	
	//普通自動二輪
	$("div#Q0 a").click(function(){
		var id = $(this).attr("id");
		var rg = id.match(/^Q([0-9])-(.+)$/);
		var q = rg[1];
		var a = rg[2];
		$("div#Q0 a").removeClass("selected");
		$(this).addClass("selected");
		//質問の表示きりかえ
		$("div#QUESTIONS>div").show();
		if ( a == "NORMAL" ) $("div#Q2, div#Q4").hide();
		else if ( a == "SMALL" ) $("div#Q4, div#Q3").hide();
		else if ( a == "BIG" ) $("div#Q1, div#Q2, div#Q3, div#Q7").hide();
		
		$("div#Q1 a, div#Q2 a, div#Q3 a, div#Q4 a, div#Q5 a, div#Q6 a, div#Q7 a").removeClass("selected");
		//スクロール
		var s = document.documentElement.scrollTop || document.body.scrollTop;
		var t = s + $(a=="BIG" ? "div#Q4 a":"div#Q1 a").offset().top - $(this).offset().top;
		$("div#QUESTIONS h4").removeClass("selected");
		$(a=="BIG" ? "div#Q4 h4":"div#Q1 h4").addClass("selected");
		$("html,body").animate({scrollTop: t}, 500);
		//結果部分の表示
		$("div.table-wrapp01").show();
		return false;
	});
	
	function calcBasePrice() {
		basePrice = 0;
		if ( $("a#Q0-NORMAL").hasClass("selected") ) {
			if ( $("a#Q1-MT").hasClass("selected") ) basePrice = 164955;
			else if ( $("a#Q1-AT").hasClass("selected") ) basePrice = 152355;
		} else if ( $("a#Q0-SMALL").hasClass("selected") ) {
			if ( $("a#Q1-MT").hasClass("selected") ) basePrice = 142905;
			else if ( $("a#Q1-AT").hasClass("selected") ) basePrice = 133455;
		} else if ( $("a#Q0-BIG").hasClass("selected") ) {
			basePrice = 109201;
		}
	}
	
	//----------------------------------------
	// イベント設定
	//----------------------------------------
	
	$("div#QUESTIONS a").click(function(){
		var id = $(this).attr("id");
		var rg = id.match(/^Q([0-9])-(.+)$/);
		var q = rg[1];
		var a = rg[2];
		//個別の入力チェックファンクション実行
		//alert("a="+a+" q="+q+" check[parseInt(q)-1][a]="+check[parseInt(q)-1][a]);
		if ( check[parseInt(q)-1][a] ) if ( ! check[parseInt(q)-1][a]() ) return false;
		//選択表示
		$("div#QUESTIONS h4").removeClass("selected");
		if ( ! multiple[parseInt(q)-1] ) {
			$("div#Q"+q+" a").removeClass("selected");
			$(this).addClass("selected");
		} else {
			$(this).toggleClass("selected");
			$("div#Q"+q+" h4").addClass("selected");
		}
		//コールバックファンクション
		if ( changed[parseInt(q)-1] ) changed[parseInt(q)-1]();
		//計算実行
		calculate();
		//スクロール
		if ( ! multiple[parseInt(q)-1] ) scrollToNext($(this),q);
		return false;
	});
	
	function scrollToNext($a,q) {
		if ( $("div#Q"+(parseInt(q)+1)+", span#TOTAL-PRICE").length ) {
			var s = document.documentElement.scrollTop || document.body.scrollTop;
			var t;
			for ( var i=0; i<calc.length; i++ ) {
				if ( $("div#Q"+(i+1)).css("display") == "none" ) continue; 
				if ( !$("div#Q"+(i+1)+" a").hasClass("selected") ) {
					$("div#Q"+(i+1)+" h4").addClass("selected");
					t = s + $("div#Q"+(i+1)+" a").offset().top -$a.offset().top;
					break;
				}
			}
			if ( !t ) t = s + $("span#TOTAL-PRICE").offset().top - $a.offset().top;
			$("html,body").animate({scrollTop: t}, 500);
		}
	}
	
	
	//----------------------------------------
	// デフォルト選択
	//----------------------------------------
	/*
	for ( var i=0; i<dStatus.length; i++ ) {
		if ( dStatus[i] ) $("a#Q"+(i+1)+"-"+dStatus[i]).trigger("click");
	}
	calculate();
	*/
	$("div#Q0 h4").addClass("selected");
	
	//----------------------------------------
	// 選択チェック
	//----------------------------------------
	function selectCheck() {
		var checked = true;
		for ( var i=0; i<calc.length; i++ ) {
			if ( $("div#Q"+(i+1)).css("display") == "none" ) continue; 
			if ( !$("div#Q"+(i+1)+" a").hasClass("selected") ) checked = false;
		}
		return checked;
	}
	
	//----------------------------------------
	// 計算
	//----------------------------------------
	function calculate() {
		calcBasePrice();
		if ( !selectCheck() || !basePrice ) {
			$("span#TOTAL-PRICE").empty();
			return;
		}
		var c;
		var done = false;
		resultPrice = basePrice;
		for ( var i=0; i<calc.length; i++ ) {
			if ( $("div#Q"+(i+1)).css("display") == "none" ) continue; 
			for ( var j in calc[i] ) {
				if ( $("a#Q"+(i+1)+"-"+j).hasClass("selected") ) {
					 c = calc[i][j];
					 if ( typeof(c) != "function" ) resultPrice += c;	//割引適用
					 else if ( c() ) done = true;									//個別の計算ファンクション
				}
				if ( done ) break;
			}
			if ( done ) break;
		}
		
		$("span#TOTAL-PRICE").empty();
		$("span#TOTAL-PRICE").append((resultPrice+"").replace(/([0-9]{3})$/,",$1"));
		var $p = $("span#TOTAL-PRICE").parent();
		$p.fadeOut(200,function(e) {$p.fadeIn(200,function(e) {$p.fadeOut(200,function(e) {$p.fadeIn(200);});});});
	}
	
	//----------------------------------------
	// 個別チェックファンクション
	//----------------------------------------
	
	function checkQ1_AT() {
			$("a#Q2-A02, a#Q3-A02").removeClass("selected");
			$("a#Q2-A02, a#Q3-A02").hide();
			return true;
	}
	
	function checkQ1_MT() {
			$("a#Q2-A02, a#Q3-A02").show();
			return true;
	}
	
	function check_Q2() {
		if ( !$(this).hasClass("selected") ) {
			$("a#Q2-A03").removeClass("selected");
		}
		return true;
	}
	
	function check_Q2_A03() {
		if ( !$("a#Q2-A03").hasClass("selected") ) {
			$("div#Q2 a").removeClass("selected");
		}
		return true;
	}
	
	function check_Q3() {
		if ( !$(this).hasClass("selected") ) {
			$("a#Q3-A05").removeClass("selected");
		}
		return true;
	}
	
	function check_Q3_A05() {
		if ( !$("a#Q3-A05").hasClass("selected") ) {
			$("div#Q3 a").removeClass("selected");
		}
		return true;
	}
	
	//----------------------------------------
	// 変更が発生した際のコールバックファンクション
	//----------------------------------------
	
	function changed_Q2() {
		if ( $("a#Q2-A02").hasClass("selected") ) {
			if ( $("a#Q1-AT").hasClass("selected") ) {
				$("div#Q1 a").removeClass("selected");
				$("a#Q1-MT").addClass("selected");
				alert("既にAT小型限定普通二輪の免許をお持ちの方はマニュアル（MT）の免許（限定解除）しか取得できませんので、マニュアル（MT）を選択しました。");
			}
			$("div#Q5, div#Q6, div#Q7").hide();
		} else {
			$("div#Q5, div#Q6").show();
			if ( $("a#Q2-A01").hasClass("selected") ) $("div#Q7").hide();
			else $("div#Q7").show();
		}
		if ( $("a#Q2-A03").hasClass("selected") ) scrollToNext($("a#Q2-A03"),"2")
	}
	
	function changed_Q3() {
		if ( $("a#Q3-A02, a#Q3-A03, a#Q3-A04").hasClass("selected") ) {
			$("div#Q5, div#Q6, div#Q7").hide();
		} else {
			$("div#Q5, div#Q6").show();
			if ( $("a#Q3-A01").hasClass("selected") ) $("div#Q7").hide();
			else  $("div#Q7").show();
		}
		if ( $("a#Q3-A05").hasClass("selected") ) scrollToNext($("a#Q3-A05"),"3")
	}
	
	//----------------------------------------
	// 個別計算ファンクション
	//----------------------------------------
	function calc_Q2_A01() {
		if ( $("a#Q1-MT").hasClass("selected") ) resultPrice -= 56174;
		else if ( $("a#Q1-AT").hasClass("selected") ) resultPrice -= 53024;
		return false;
	}
	
	function calc_Q2_A02() {
		resultPrice = 55650;
		return true;
	}
	
	function calc_Q3() {
		if ( $("a#Q1-AT").hasClass("selected") && $("a#Q3-A03").hasClass("selected") ) {
			resultPrice = 52500;
			return true;
		}
		if ( $("a#Q1-AT").hasClass("selected") && $("a#Q3-A04").hasClass("selected") ) {
			resultPrice = 58800;
			return true;
		}
		if ( $("a#Q1-MT").hasClass("selected") && $("a#Q3-A04").hasClass("selected") && !$("a#Q3-A03, a#Q3-A02").hasClass("selected") ) {
			resultPrice = 68250;
			return true;
		}
		if ( $("a#Q1-MT").hasClass("selected") && $("a#Q3-A02").hasClass("selected") && $("a#Q3-A03").hasClass("selected") ) {
			resultPrice = 52500;
			return true;
		}
		if ( $("a#Q1-MT").hasClass("selected") && $("a#Q3-A02, a#Q3-A03, a#Q3-A04").hasClass("selected") ) {
			resultPrice = 58800;
			return true;
		}
		return false;
	}
});
