
var start_flg = 1;


	/* テストデータ */

//		color : {1:"ef889f",2:"a98b81",3:"75a293",4:"ffbc8f",5:"ffde77",6:"a481a8",7:"a1a3a5",8:"758db2"}
// end of テストデータ





$.extend({
	/* 設定 */
	set : {
		matrix_margin_x : 35, // matrixエリアが始まる場所のoffset 
		matrix_margin_y : 15,
		matrix_width : 520, // matrixエリアのサイズ
		matrix_height : 520,
		point_max : 50, // -50 to 50
		point_offset_x : 4, // pointエリアのサイズ/2
		point_offset_y : 4,
		
		keep_max : 10, // keep_areaの数

		tt_opacity : 1

		},
		
	depth : 1, // ツールチップ表示 z-index用
	point_flg : {}, // ポイント表示/非表示管理
	tt_flg : {}, // tt表示/非表示管理
	tt_tmp_open : {}, //cate_chg等の時に一時使用
	detail_off_top: "", // 詳細表示エリアのoff_set記憶
	detail_off_left: "",
	cate_disp : {}, // カテゴリ表示非表示
//	keep_area : 0,	
	keep_list : {}, // keep list
	keep_list_disp : [], // keep list
	sel_axis : "1" // 表示軸	
});

$.fn.extend({
	fn_hide : function(){
		$(this).fadeTo("slow", 0.0);
		return this;
	},
	fn_show : function(){
		$(this).fadeTo("slow", 1.0);
		return this;
	},
	fn_move: function(crd){
		$(this).animate({"top":crd.y,"left":crd.x}, 1500);
		return this;
	},
	fn_bgchg: function(img){
		$(this).fadeOut("normal", function(){
			$(this).css({ "background-image": "url("+img+")"});	
		});
		$(this).fadeIn();
		return this;
	}

});

$.extend({
	fn_tt_on : function(inc_id){
		if(typeof(inc_id)=="object"){ key = inc_id.data;}
		else{key = inc_id;}
		val = $.incenses[key];

//		var crd = eval("_coord(val.x"+$.sel_axis+", val.y"+$.sel_axis+");");
		var crd = _coord(val["x"+$.sel_axis], val["y"+$.sel_axis]);

		if ($("#" + key + "_detail").length == 0) {
			$("#panel").append("<div id='" + key + "_detail' class='detail'></div>");

			if(val.color.indexOf("&") < 0){
				color="<div class='item_color' style='background-color:#"+val.color+"'></div>";
			}
			else{
				color="<div class='item_color1 "+val.color+"' style='background-color:#"+val.color.substr(0,6)+"'></div><div class='item_color2' style='background-color:#"+val.color.substr(6,6)+"'></div>";
			}
			$("#" + key + "_detail").append("<div class='tt_main'><div class='item_no'><a href='#"+val.id+"'>No." + val.id + "</a></div>"+color+"<div class='item_name'>" + val.name + "</div><div class='item_fragrance'>" + val.desc + "</div><div class='item_price'>&yen;" + val.price + "-</div><div class='close_btn'>×</div><div class='keep_btn' name='"+ val.id +"'>Keep</div><div class='detail_btn'><a href='#"+val.id+"'>Shopping</a></div></div><div class='tt_btm'><img src='img/tt_btm.png' class='pngfix' width='175' height='8' /></div>")	
			.css({"top": crd.y -83 + "px","left": crd.x -50 + "px","z-index": $.depth});
			$("#" + key + "_detail .detail_btn").css({cursor:"pointer"}); // 詳細出す
			$("#" + key + "_detail .close_btn").bind("click",key,$.fn_tt_disappear).css({cursor:"pointer"}); // 消す


			if ($.keep_list_disp.length >= $.set.keep_max) {
				$(".detail .keep_btn").addClass("disable").unbind("click");
			}
			else {
				$("#" + key + "_detail .keep_btn").bind("click", key, $.fn_keep_in).css({cursor: "pointer"}); // keep_listに入れる
			}

			
			$("#" + key + "_detail a").bind("click",key,$.show_detail); // 詳細開く
						
			// 並び順変更。クリックされたら最前面に
			$("#" + key + "_detail").bind("click",function(){
				$.depth++;
				$(this).css({
					"z-index":$.depth
				});
			});

			$("#" + key + "_detail").fadeIn("fast");
		}
		else{
			$("#" + key + "_detail").css({
				"top": crd.y -83 + "px",
				"left": crd.x -50 + "px",
				"z-index":$.depth}
			).fadeIn("fast");
		}
		$.depth ++;
	},
	fn_off_all : function(){
		$.each($.incenses,function(key,val){
			if($.point_flg[key] == 1){
//				$("#"+key).fn_hide();
//				$.fn_tt_off({data:key});
				$.fn_tt_disappear({data:key});
				$.fn_tt_unbind(key);		// tt_OFF			
			}
		});
		$.each($.cate_disp,function(key,val){
			if(val){
				chg_cate({"data": key});
				$.cate_disp[key]=0;
			}
		});
	},
	fn_tt_off : function(inc_id){
//		console.log(inc_id);
		if ($("#" + inc_id.data + "_detail").length && ($.tt_flg[inc_id.data]==0||$.tt_flg[inc_id.data]==2)) {
			$("#"+inc_id.data+"_detail").fadeOut("fast");
			$.point_flg[inc_id.data]=0;
		}
	},
	fn_tt_appear : function(inc_id){
//		console.log("appear: "+inc_id.data);
		$.tt_flg[inc_id.data] = 1;
		$.fn_tt_on(inc_id.data);
	},
	fn_tt_disappear : function(inc_id){
//		console.log("disappear: "+inc_id.data);
		$.tt_flg[inc_id.data] = 0;
		$.fn_tt_off({data: inc_id.data});
	},
	fn_tt_bind : function(inc_id){
//		if($.tt_flg[inc_id]==0){
			$("#"+inc_id+" img").bind("mouseover", inc_id , $.fn_tt_on).css({"cursor":"pointer"});
			$("#"+inc_id+" img").bind("mouseout", inc_id , $.fn_tt_off);
			$("#"+inc_id).bind("click", inc_id, $.fn_tt_appear);
//		}
	},
	fn_tt_unbind : function(inc_id){
//		$("#"+inc_id+" img").unbind("mouseover", $.fn_tt_on);
console.log(inc_id);
		$("#"+inc_id+" img").unbind("mouseover").css({"cursor":"default"});
		$("#"+inc_id).unbind("click");
	},
	
	fn_re_show : function(){
		$.each($.tt_open,function(key,val){ // tt再表示
			if(val){	$.fn_tt_on({data:val});}
		});
	},
	
   show_detail: function(id){
		var today = new Date();
	    if(typeof(this)=="function"){
	        get_file = "../item/"+id+".html?"+today.getTime();                 
	    }
	    else if(typeof(this) == "object"){
			tmp = $(this).attr("href").split("#");
	        get_file = "../item/"+tmp[1]+".html?"+today.getTime();
	    } 
       $.get(get_file, function(data){

	   		if(document.getElementById("detail")){
				$("#detail").remove();
			}

               $("#contents").prepend("<div id='detail' style='display:none' class='pngfix'>"+data+"</div>");
               $("#detail").fadeIn();
             
               // detail close
               $("#close_btn,#close_btn_top").bind("click",function(){
                       $("#detail").fadeOut("normal",function(){
                               $("#detail").remove();
                               return false;
                       });
               });       
       });
   },

	fn_detail_hide : function(){
		$("#inc_detail").fadeOut(100);
		location.hash="#all";
		$("#inc_area #zoom").animate({top:$.detail_off_top,left:$.detail_off_left,width:"190px",height:"70px",opacity:"0","-moz-opacity":"0",filter: "alpha(opacity=0)"},500,"swing",function(){
			$("#inc_area").hide();
		});
	},
	fn_keep_view : function(){
		// リストの中身「のみ」表示する
		$.each($.keep_list,function(key,val){
			if(val && !$.tt_flg[key]){
				$("#"+key).fn_show();
				$.fn_tt_bind(key);		// tt_ON
				$.fn_tt_appear({"data":key});
			}
			else if(!val && $.tt_flg[key]){$.fn_tt_disappear({"data":key});}
		});
//		リストの中身を「追加で」表示するならこっち
//		$.each($.keep_list_disp,function(key,val){
//			$.fn_tt_appear({"data":val});
//		});
	},
	fn_keep_show : function(){
		for(i=1;i<=10;i++){
			if($.keep_list_disp[i-1]){
				$("#keep"+i).removeClass("empty")
				.html("<img><span class='product_id' id='keep_"+$.keep_list_disp[i-1]+"'><a href='#"+$.incenses[$.keep_list_disp[i-1]].id+"'>"+$.incenses[$.keep_list_disp[i-1]].name+"</a></span><span class='product_name'>"+$.incenses[$.keep_list_disp[i-1]].desc+"</span>");
				$("#keep"+i+" img").attr({"src": "img/tt_close_btn.png"})
				.hover(function(){$(this).attr({"src":"img/tt_close_btn_o.png"});},function(){$(this).attr({"src":"img/tt_close_btn.png"});})
//				.css({"cursor":"pointer"}).bind("click",$.keep_list_disp[i],$.fn_keep_out);
				.css({"cursor":"pointer"}).bind("click",$.fn_keep_out);
				
				 $("#keep_"+$.keep_list_disp[i-1]+" a").bind("click",$.keep_list_disp[i-1],$.show_detail); // 詳細開く
			}
			else{
				$("#keep"+i).addClass("empty").html("<img src='img/tt_close_btn_n.png' width='18' height='18'>");
				$("#keep"+i+" img").unbind("hover");
			}
		}
	},

	fn_keep_in : function(inc_id){
		if (!$.keep_list[inc_id.data]) {
			$.keep_list[inc_id.data] = 1;
			$.keep_list_disp.push(inc_id.data);
			
			$("#keep"+$.keep_list_disp.length).removeClass("empty")
			.append("<span class='product_id' id='keep_"+inc_id.data+"'><a href='#"+$.incenses[inc_id.data].id+"'>"+$.incenses[inc_id.data].name+"</a></span><span class='product_name'>"+$.incenses[inc_id.data].desc+"</span>");
			$("#keep"+$.keep_list_disp.length+" img").attr({"src": "img/tt_close_btn.png"})
			.hover(function(){$(this).attr({"src":"img/tt_close_btn_o.png"});},function(){$(this).attr({"src":"img/tt_close_btn.png"});})
//			.css({"cursor":"pointer"}).bind("click",$.incenses[inc_id.data].id,$.fn_keep_out);
//			.css({"cursor":"pointer"}).bind("click",inc_id.data,$.fn_keep_out);
			.css({"cursor":"pointer"}).bind("click",$.fn_keep_out);

			 $("#keep_"+inc_id.data+" a").bind("click",inc_id.data,$.show_detail); // 詳細開く
			
			
			if ($.keep_list_disp.length >= $.set.keep_max) {
				$(".detail .keep_btn").addClass("disable").unbind("click");
			}
			$.cookie("keep_list",$.keep_list_disp.join(";"),{ expires: 365 });
			$.fn_tt_disappear({"data": inc_id.data});
		}
	},

	fn_keep_out : function(){
		id = $.keep_list_disp[($(this).parent().attr("id").substr(4)-1)]
		$.keep_list[id] = 0;
		var tmp=0;
		var cnt=0;
		$.each($.keep_list_disp,function(key,val){
			if(val == id){ tmp ++; }
			else if(tmp){ $.keep_list_disp[key-1] = val;}
			cnt ++;
		});
		$.keep_list_disp.pop();

		$.cookie("keep_list",$.keep_list_disp.join(";"),{ expires: 365 });
		
		$.fn_keep_show();

		if ($.keep_list_disp.length < $.set.keep_max) {
			$.each($.tt_flg,function(key,val){
				$("#"+key+"_detail .keep_btn").removeClass("disable").bind("click", key, $.fn_keep_in);				
			});
		}

	},


	fn_chg_axis: function(){
		$.tt_open = new Array();
		$.each($.tt_flg, function(key,val){
			if(val){
				$.tt_flg[key] = 2;
				$.tt_open.push(key);
				$.fn_tt_off({data:key});
			}
		});
		
		if($.sel_axis==1){
			$("#panel").css({"background":"url(../incense/img/bg_002.jpg)"});
			$("#change_axis").hover(function(){
				$(this).attr("src","img/axis_02.jpg");
			},function(){
				$(this).attr("src","img/axis_01.jpg");		
			});

			$.sel_axis = 2;
		}
		else{
			$("#panel").css({"background":"url(../incense/img/bg_001.jpg)"});
			$("#change_axis").hover(function(){
				$(this).attr("src","img/axis_01.jpg");
			},function(){
				$(this).attr("src","img/axis_02.jpg");		
			});

			$.sel_axis = 1;
		}
		$.each($.incenses, function(key, val){
			if($.sel_axis == 1){
				var crd = _coord(val.x1,val.y1);	
			}
			else{
				var crd = _coord(val.x2,val.y2);			
			}
			$("#"+key).fn_move(crd);
		});
		
		$.each($.tt_open, function(key,val){
			$.tt_flg[val] = 1;
			$.fn_tt_on(val);
		});	
		$.tt_open = [];
		
	}
});

_coord = function(x,y){
	ret_x = (((parseInt(x) + $.set.point_max) / ($.set.point_max * 2) * $.set.matrix_width ) + $.set.matrix_margin_x - $.set.point_offset_x);
	ret_y = (((parseInt(y) + $.set.point_max) / ($.set.point_max * 2) * $.set.matrix_height ) + $.set.matrix_margin_y - $.set.point_offset_y);
	return {"x":ret_x,"y":ret_y}
}



function sleep(time){
	setTimeout(function(){},time);	
//	console.log("sleep");
}


$(document).ready(function(){

    $.incenses = incenses;
	$.categories = categories;

	// カテゴリボタン設定

	$.each($.categories,function(key,val){
		$.cate_disp[key] = 1;//初期状態は全カテゴリ表示
		$("#cate"+key+"_btn").css("cursor","pointer");
		$("#cate"+key+"_btn").hover(function(){
			$(this).attr("src","img/"+$(this).attr("alt")+"_o.jpg");
		},function(){
			if ($.cate_disp[key]) {
				$(this).attr("src", "img/" + $(this).attr("alt") + ".jpg");
			}
			else{
				$(this).attr("src", "img/" + $(this).attr("alt") + "_c.jpg");
			}
		});
		$("#cate"+key+"_btn").bind("click",key,chg_cate);
	});

	$.each($.incenses, function(key,val){
		var crd = _coord(val.x1, val.y1); // 固定にしておく
		
//		$("#"+key).css({ "top" : crd.y +"px", "left" : crd.x +"px", "cursor":"pointer"});
//		$("#"+key).animate({ "top" : crd.y +"px", "left" : crd.x +"px"});

		// 表示フラグ管理。
		$.point_flg[key]=1; // ポイントは全て表示
		$.tt_flg[key]=0; // ttは全て非表示
		$.keep_list[key]=0;		// keeplistも非表示
		// ツールチップ表示ON
//		$.fn_tt_bind(key);
	});

	$("#reset_btn").bind("click",$.fn_off_all).css({"cursor":"pointer"});
	
	$("#keep_view_btn").bind("click",$.fn_keep_view).css({"cursor":"pointer"});

	$("#change_axis").hover(function(){
		$(this).attr("src","img/axis_01.jpg");
	},function(){
		$(this).attr("src","img/axis_02.jpg");		
	}).css("cursor","pointer").bind("click",$.fn_chg_axis);


	// location.hash 確認
	if( m = (/detail_(inc_[0-9]{6})/.exec(location.hash)||[])[1]||null){
		$.fn_tt_on({data:m});
		$.fn_detail_show({data:m}); 
	}

	// cookie確認
	if($.cookie("keep_list")){
		tmp = $.cookie("keep_list").split(";");
		$.keep_list_disp = new Array();
		$.each(tmp,function(key,val){
			$.keep_list[val] = 1;
			$.keep_list_disp.push(val);
		});
		$.fn_keep_show();
	}

});




function chg_cate(id){
//	alert(id.data); // 呼び出し元がbind()だからこれでid取る

	$.each($.incenses, function(key,val){
		if(val.category == id.data){
			if($.cate_disp[id.data] == 1){
				$("#"+key).fn_hide();
//				$.fn_tt_off({data:key});
				$.fn_tt_disappear({data:key});
				$.fn_tt_unbind(key);		// tt_OFF			
			}
			else{
				$("#"+key).fn_show();
				$.fn_tt_bind(key);		// tt_ON
			}
		}
 	});
	if($.cate_disp[id.data]==1){
		$("#cate"+id.data+"_btn").attr("src", "img/" + $("#cate"+id.data+"_btn").attr("alt") + "_c.jpg");
		$.cate_disp[id.data]=0;
	}
	else{
		$.cate_disp[id.data]=1;
	}

/*
	$.each($.categories,function(key,val){
		if (key == id.data) {
			$("#cate" + key + "_btn").attr("src", "img/" + $("#cate" + key + "_btn").attr("alt")+"_o.jpg");
		}
		else{
			$("#cate" + key + "_btn").attr("src", "img/" + $("#cate" + key + "_btn").attr("alt")+"_c.jpg");
		}
	});
*/

}




