$(document).ready(function(){
	$("div#ESTIMATE-ALT").css("display","none");
	$("div#ESTIMATE").css("display","block");
	//----------------------------------------
	// 設定
	//----------------------------------------
	//選択し一覧
	var answers = [
		["MT","AT"],
		["NO","FOURWHEEL","TWOWHEEL"],
		["ORDINARY","STUDENT"],
		["FULLDAY","DAY"],
		["NO","YES"]
	];
	//入力チェックファンクション
	var check = [
		{ MT:checkQ1_MT, AT:checkQ1_AT },
		{NO:checkQ2_NO, FOURWHEEL:checkQ2_FOURWHEEL, TWOWHEEL:checkQ2_TWOWHEEL },
		{ },
		{ },
		{ }
	];
	//コールバックファンクション
	var changed = [
		null,
		changedQ2,
		null,
		null,
		null
	];
	//計算式
	var calc = [
		{ MT:0, AT:-12600 },
		{NO:0, FOURWHEEL:calcFourwheel, TWOWHEEL:-55545 },
		{ORDINARY:0, STUDENT:-5000 },
		{FULLDAY:0, DAY:-10500 },
		{NO:0, YES:calcMedical }
	];
	//複数選択可
	var multiple = [false,true,false,false,false];
	//デフォルト
	var dStatus = ["MT","NO","ORDINARY","FULLDAY","NO"];
	//金額
	var basePrice = 294155;
	var resultPrice = basePrice;
	//プリロードする画像
	var preloadImages = [
		"/images/estimatenormal/at-over.gif",
		"/images/estimatenormal/mt-over.gif",
		"/images/estimatenormal/check-01-over.gif",
		"/images/estimatenormal/check-02-over.gif",
		"/images/estimatenormal/check-no-over.gif",
		"/images/estimatenormal/ordinary-over.gif",
		"/images/estimatenormal/student-over.gif",
		"/images/estimatenormal/fulltime-over.gif",
		"/images/estimatenormal/daytime-over.gif",
		"/images/estimatenormal/yes-over.gif",
		"/images/estimatenormal/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#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]();
		//スクロール
		if ( ! multiple[parseInt(q)-1] ) scrollToNext($(this),q);
		//計算実行
		calculate();
		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#Q1 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() {
		if ( !selectCheck() ) {
			$("span#TOTAL-PRICE").empty();
			return;
		}
		var c;
		var done = false;
		resultPrice = basePrice;
		for ( var i=0; i<calc.length; i++ ) {
			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-FOURWHEEL").removeClass("selected");
			$("a#Q2-FOURWHEEL").hide();
			return true;
	}
	
	function checkQ1_MT() {
			$("a#Q2-FOURWHEEL").show();
			return true;
	}
	
	function checkQ2_FOURWHEEL() {
		if ( !$("a#Q2-FOURWHEEL").hasClass("selected") ) {
			$("a#Q2-NO").removeClass("selected");
			if ( $("a#Q1-AT").hasClass("selected") ) {
				$("div#Q1 a").removeClass("selected");
				$("a#Q1-MT").addClass("selected");
				alert("既にAT限定普通四輪車の免許をお持ちの方はマニュアル（MT）の免許（限定解除）しか取得できませんので、マニュアル（MT）を選択しました。");
			}
		}
		return true;
	}
	
	function checkQ2_TWOWHEEL() {
		if ( !$("a#Q2-TWOWHEEL").hasClass("selected") ) {
			$("a#Q2-NO").removeClass("selected");
		}
		return true;
	}
	
	function checkQ2_NO() {
		if ( !$("a#Q2-NO").hasClass("selected") ) {
			$("a#Q2-FOURWHEEL, a#Q2-TWOWHEEL").removeClass("selected");
		}
		return true;
	}
	
	//----------------------------------------
	// 変更が発生した際のコールバックファンクション
	//----------------------------------------
	
	function changedQ2() {
		$("div#Q1, div#Q3, div#Q4, div#Q5").show();
		if ( !$("div#Q2 a").hasClass("selected") ) {
			$("a#Q2-NO").addClass("selected");
			return;
		}
		if ( $("a#Q2-FOURWHEEL").hasClass("selected") ) {
			$("div#Q3, div#Q4, div#Q5").hide();
		} else if ( $("a#Q2-TWOWHEEL").hasClass("selected") ) {
			$("div#Q5").hide();
		}
		if ( $("a#Q2-NO").hasClass("selected") ) scrollToNext($("a#Q2-NO"),"2")
	}
	
	//----------------------------------------
	// 個別計算ファンクション
	//----------------------------------------
	function calcFourwheel() {
		if ( $("a#Q1-AT").hasClass("selected") ) {
			$("div#Q1 a").removeClass("selected");
			$("a#Q1-MT").addClass("selected");
			alert("既にAT限定普通四輪車の免許をお持ちの方はマニュアル（MT）の免許（限定解除）しか取得できませんので、マニュアル（MT）を選択しました。");
		}
		resultPrice = 56700;
		return true;
	}
	
	function calcMedical() {
		if ( !$("a#Q2-TWOWHEEL").hasClass("selected") ) {
			resultPrice -= 6142;
		}
		return false;
	}
});
