/* Copyright MOGRA DESIGN ver.0.2*/
/* 配列の重複をなくす */
Array.prototype.only=function(b){
	var len = this.length;
	var cnt=0;
	var list={};
	var only=[];
	var repetition=[];
	for(var i=0;i<len;i++){
		if(!list[this[i]]){
			only.push(this[i]);
			list[this[i]]=true;
		}else{
			repetition.push(this[i]);
		}
	}
	return b ? repetition : only;
}
/* 配列の重複しているのだけ残す */
Array.prototype.repetition=function(){
	var ary = this.only(1);
	return ary.only();
}
//

/***********************/
XMLRequestFailed = function (err){
	alert('読み込めませんでした');
}
datatableFromXMLRequest = function (req) {
	
	var xml = req.responseXML; 
	
	var tags = new Object();
	var nodes = getElementsByTagAndClassName("tag",null,xml);
	for (var i = 0; i < nodes.length; i++) { 
		var tag_id = nodes[i].getAttribute('tag_id');
		tags[tag_id] = [];
		var cells = nodes[i].getElementsByTagName("product"); 
		tags[tag_id] = map(function(obj){return obj.getAttribute('product_id')}, cells);
		
	} 
	
	index_obj = tags;
	//snippets
	var pro = new Object();
	var nodes = getElementsByTagAndClassName('snippet',null,xml);
	for (var i = 0; i < nodes.length; i++) { 
		var tag_id = nodes[i].getAttribute('product_id');
		pro[tag_id] = toHTML(nodes[i]);
		
	} 
	product_obj = pro;
	serch_data_list = searchArray()
	getNumberInCategory(serch_data_list);
	//clearSearch();
	updateSearch('latest');
	
};


var index_obj = new Object();
var snippet_obj = new Object();

function addOnLoad(){
	var p_XML = doSimpleXMLHttpRequest("searchData.xml",{'rnd':Math.random()});
	p_XML.addCallback(datatableFromXMLRequest);
}
function getNumberInCategory(_list_ary){
	
	var myf = document.forms['key_fm'];
	for(var i=0; i<myf.length; i++){
		var count = 0;
		var myparent = myf[i].parentNode;
		var span = getElementsByTagAndClassName('span',null,myparent)[0];
		span.innerText = "";
		var str;
		str = index_obj[myf[i].name].join("");
		var count = false;
		for(var h=0;h<_list_ary.length;h++){
			if(str.indexOf(_list_ary[h]) >= 0){
				count = true;
				break;
			}
		}
		if(index_obj[myf[i].name].length == 0 || !count ){
			myf[i].disabled = true;
			setElementClass(myparent, 'disabled');
		}else{
			myf[i].disabled = false;
			removeElementClass(myparent, 'disabled');
		}
		span.innerHTML = " ("+index_obj[myf[i].name].length+")";
	}
}

function searchArray(){
	var myf = document.forms['key_fm'];
	var arr = [];
	var count = 0;
	for(var i=0; i<myf.length; i++){
		if(myf[i].checked){
			arr = arr.concat(index_obj[myf[i].name]);
			if(count>=1){
				arr = arr.repetition();
			}
			count++;
		}
	}
	if(!count){
		arr = arr.concat(index_obj['chair_sofa'],index_obj['table_desk'],index_obj['cabinet_shelf'],index_obj['light'],index_obj['accessory']);
	}
	return  arr.only();
	
}
function setProductHTML(str){
	var it_str = product_obj[str];
	
	if((item_count%4) == 3){
		it_str = it_str.split('anchor-box').join('anchor-box no-margin');
	}
	item_count++;
	return it_str;
}
function clearSearch(_b){
	$('conts-main').style.height = "430px";
	setElementClass('footer', 'key-mode');
	$('index_title').src = 'images/product_title_keyword.gif';
	$('items').innerHTML = "";
	$('items').style.height = "1px";
	if(_b){
		document.forms['key_fm'].reset();
	}
	updateSearchKey();
	if($('key-menu').style.visibility == "hidden"){
		$('key-menu').style.visibility = "visible";
		slideDown('key-menu');
	}
	
}
function updateSearch(_tag){
	//初期化
	$('conts-main').style.height = "auto";
	$('items').innerHTML = "";
	$('key-menu').style.visibility = "hidden";
	removeElementClass('footer', 'key-mode');
	
	serch_data_list = [];
	var nA = 0;
	
	if(_tag == 'key'){
		$('index_title').src = 'images/product_title_keyword.gif';
		serch_data_list = searchArray();
		$('items').innerHTML = '<p style="margin-bottom: 20px"><a href="javascript:clearSearch()" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage(\'btn_b2s\',\'\',\'images/btn_back2search_f2.gif\',0)"><img src="images/btn_back2search.gif" alt="絞り込む条件を変える" name="btn_b2s" width="175" height="20" border="0" id="btn_b2s" /></a></p>';
		
		nA += 50;
	}else{
		$('key-menu').style.display = "none";
		if(typeof(document.forms['key_fm']) != "undefined"){
			document.forms['key_fm'].reset();
		}
		$('index_title').src = 'images/product_title_'+_tag.split('_')[0]+'.gif';
		serch_data_list = index_obj[_tag];
	}
	item_count = 0;
	var a = map(setProductHTML, serch_data_list);
	var b = a.join("");
	var nB = Math.ceil(serch_data_list.length / 4);
	$('conts-main').style.height = (nB*250)+nA+'px';
	$('items').innerHTML += toHTML(b);
}
//chaek of enable btn
function updateSearchKey(){
	serch_data_list = [];
	serch_data_list = searchArray();
	getNumberInCategory(serch_data_list);
}
function searchProducts(){
	slideUp('key-menu', 
			{
				duration:0.5,
				afterFinish:function(){
					updateSearch('key');
				}
			});
}
var item_count = 0;
var serch_data_list;
