new function () {

var g = {  // グローバル変数用オブジェクト
	cache : new Object()
}

// 読込み時
$(document).ready(function () {
	attachFmcTab();
	heartInit();
});

function attachFmcTab() {
	$(".fmcLst li").click(function () {
		var cds = this.id.split("_");
		var brandCd = cds[0];
		var shashuCd = cds[1];
		var fmcCd = cds[2];

		var tabId = this.id;

		if (!g.cache[tabId]) {
			var param = {b:brandCd, s:shashuCd, f:fmcCd};
			$.getJSON("/kakaku/ajax/info.php", param, function (json) {
				if (!json.result) {
					alert("エラーが発生しました。ブラウザの更新ボタンで更新して下さい。");
					return;
				}
				g.cache[tabId] = json;
				changeFmcItems(tabId);
				if(json.recommend.length != 0){replaceRecommendCar(json.recommend);}
			});
		}else{
			changeFmcItems(tabId);
			if(g.cache[tabId].recommend.length != 0){replaceRecommendCar(g.cache[tabId].recommend);}
		}
	});
}

function changeFmcItems(tabId) {
	$(".onModel").attr("class", "offModel");
	$("#" + tabId).attr("class", "onModel");

	var valId = tabId + "_val";
	var list = $("#" + valId).val().split("|");
	var kikan = "生産期間　" +  list[23] + " 〜 " + list[24];
	$("#sKikan").text(kikan);

	$("#mainImg").attr("src", list[7]);
	$("#bodyType").text(list[10]);
	$("#kudou").text(list[11]);
	$("#teiin").text(list[12]);
	$("#haiki").text(list[13]);

	$("#avgPrice").text(list[20]);
	$("#avgMile").text(list[21]);
	$("#count").text(list[22]);
	$("#bukkenLink").attr("href", list[25]);
	$("#kaidokiPt").text(list[18]);
	$("#when").html('<p class="sub" id="when">（'+ list[19] +'）</p>');
	$("#gAvgPrice").html("平均価格<br>" + list[20]);

	var cache = g.cache[tabId];

	$("#graph").attr("src", cache.graph);
	if (cache.corrList.length == 0) {
		nothingCorrelation();
		return;
	}

	var buttom = "";
	$.each(cache.corrList, function (i, obj) {
		if (i == 0) {
			setHart(obj.rate, obj.arrow);
			var str = [];
			str[0] = '<h2 class="l' + obj.info.cd + '">' + obj.info.name + '</h2>';
			str[1] = '<p class="comment">';
			str[2] = '  <img src="/common/images/kakaku/master' + obj.info.cd + '.gif" alt="' + obj.info.name + '" width="92" height="80">';
			str[3] = '  <strong>' + obj.info.title + '</strong>' + obj.info.comment;
			str[4] = '</p>';
			var high = getHighMuchElement(); 
			high.innerHTML = str.join("\n");
		}else{
			var str = [];
			str[0] = '<div class="much" id="master' + i + '">';
			str[1] = '  <h3 class="m' + obj.info.cd + '">' + obj.info.name + '</h3>';
			str[2] = '  <img src="/common/images/kakaku/master' + obj.info.cd + '.gif" alt="' + obj.info.name + '" width="92" height="80">';
			str[3] = '  <p class="rate"><span class="rateTxt">適合率</span>' + obj.rate + '%</p>';
			str[4] = '  <p class="comment"><strong>' + obj.info.title + '</strong>' + obj.info.comment + '</p>';
			str[5] = '</div>';
			buttom += str.join("\n");
		}
	});
	var box = document.getElementById("bBox");
	box.innerHTML = buttom;
}

function getHighMuchElement() {
	var no = document.getElementById("noMuch");
	if (no) {
		no.id = "highMuch";
		no.clssName = "clf";
		return no;
	}

	return document.getElementById("highMuch");
}

function getNoMuchElement() {
	var high = document.getElementById("highMuch");
	if (high) {
		high.id = "noMuch";
		high.className = "noMuch clf";
		return high;
	}
	return document.getElementById("noMuch");
}

function setHart(percentage, arrow) {
	var yosoku = $("#yosoku");
	var pink = $(document.createElement("p")).attr("id", "rateHart").text(percentage + "%");
	var blue = $(document.createElement("p")).attr("id", "extra").addClass(arrow).text("今後の価格予測");
	$(yosoku).empty().append(pink).append(blue);
}

function nothingCorrelation() {
	var ele = getNoMuchElement();
	ele.innerHTML = '  <p class="noData">このモデルは、価格情報が取得できない、もしくは価格推移パターンとは関連性が薄いため、適合率を計算できませんでした。</p>';
	var box = document.getElementById("bBox");
	box.innerHTML = "";
	$("#yosoku").empty();
}

// おすすめ中古車(朝倉追加)
function replaceRecommendCar(recommend){
	var rcmdBox = $("#rcmdBox")[0];
	if(recommend.length == 0){
		$(rcmdBox).hide();
		return;
	}
	$(".recoCar").remove();
	$.each(recommend.bukken, function (key, val){
		var tags = [];
		tags[0] = '<li class="recoCar '+ val.category +'">';
		tags[1] = '  <a href="'+ val.url +'">';
		tags[2] = '    <img height="90" width="120" alt="'+ val.brand +" "+ val.shashu +'" src="'+ val.img +'">';
		tags[3] = '    <span class="price">価格：'+ val.price2 + '</span>';
		tags[4] = '  </a>';
		tags[5] = '</li>';
		$(rcmdBox).prepend(tags.join("\n"));
	});
	$("#rsnbl a").attr("href", '\/kakaku\/').text("0台");
	$("#avrg a").attr("href", '\/kakaku\/').text("0台");
	$("#expsv a").attr("href", '\/kakaku\/').text("0台");

	var rsnbl = $("#rsnbl");
	var avrg  = $("#avrg");
	var expsv = $("#expsv");
	if(recommend.cntLow > 0){
		$(rsnbl).empty().append($(document.createElement("span")).addClass("bknLnkT").text("ちょっと安めの物件"));
		$(rsnbl).append($(document.createElement("a")).attr("href", recommend.urlLow).text(recommend.cntLow + "台"));
	}else{
		$(rsnbl).empty().append($(document.createElement("span")).addClass("bknLnkT").text("ちょっと安めの物件")).append("0台");
	}
	if(recommend.cntMid > 0){
		$(avrg).empty().append($(document.createElement("span")).addClass("bknLnkT").text("平均的な価格の物件"));
		$(avrg).append($(document.createElement("a")).attr("href", recommend.urlMid).text(recommend.cntMid + "台"));
	}else{
		$(avrg).empty().append($(document.createElement("span")).addClass("bknLnkT").text("平均的な価格の物件")).append("0台");
	}
	if(recommend.cntHigh > 0){
		$(expsv).empty().append($(document.createElement("span")).addClass("bknLnkT").text("ちょっと高めの物件"));
		$(expsv).append($(document.createElement("a")).attr("href", recommend.urlHigh).text(recommend.cntHigh + "台"));
	}else{
		$(expsv).empty().append($(document.createElement("span")).addClass("bknLnkT").text("ちょっと高めの物件")).append("0台");
	}
	$(".bknGo").attr("href", recommend.urlAll);
	$(rcmdBox).show();
}
// ハート切り替え
function heartInit(){
	var onHeart  = "";
	var offHeart = "";
	$("#yosoku").click(function(){
		if(this.className == "rateHart"){
			onHeart = "rateHart";	offHeart = "extra";
		}else if(this.className == "extra"){
			onHeart = "extra";		offHeart = "rateHart";
		}
		$("#" + onHeart).css("zIndex", 30);
		$("#" + offHeart).css("zIndex", 40);
		$(this).removeClass(onHeart).addClass(offHeart);
		return;
	});
}

}

