var search_url = '/is.cgi';
var imgsearch_url = '/lk.cgi';
var tagsearch_url = '/cs.cgi';
var detail_url = '/detail.cgi';
var init_session_url = '/user/init_session.cgi';
var add_myalbum_url = '/user/add_into_session.cgi';
var regist_url = '/user/index.cgi';
var ipp = 16;  // images per a page.
var categoryMax = 8;
var searchTagMax = 13;

/* CGI return JSON type */
var imgDataSet;
var imgDataList;
var recommendList;

var cpage;
var category;
var id = '';
var taste = '';
var tc = '';
var tid = '';
var mid = '';
var imgsearch_flag = false;
var tagsearch_flag = false;
var session_flag = 0;

var timerID;
var detailCategory;

function initHistory() {
	var isIE = (navigator.appName.indexOf("Microsoft") != -1);
	if (isIE) {
		if (document.URL.indexOf('#') == -1) {
			window.location.replace(document.URL + '#category=1&cpage=1');
		}
	} else {
		if (window.location.hash == '') {
			if(detailCategory){
				//Safariのhash書き込みで重大なエラーがあるのでそれを回避する分岐
				window.location.hash = 'category=' + detailCategory + '&cpage=1';
			}else{
				window.location.hash = 'category=1&cpage=1';
			}
		}
	}
	
	timerID = setTimeout(startHistory, 1000);
}

function categorySetHash(myCategory){
	//alert(myCategory);
	var isIE = (navigator.appName.indexOf("Microsoft") != -1);
	if(isIE) {
		if (document.URL.indexOf('#') == -1) {
			window.location.replace(document.URL + '#category=' + myCategory + '&cpage=1');
		}else{
			//alert('hogehoge');
		}
	}else{
		if (window.location.hash == '') {
			if(!checkB.SAF){
			window.location.hash = 'category=' + myCategory +'&cpage=1';
			//alert(window.location.hash);
			}else{
				//Safariで詳細ページにhash無しで飛んできた時の処理。initHistoryに繋ぐ
				detailCategory = myCategory;
			}
		}else{
			
		}
	}
}

function startHistory() {
	clearTimeout(timerID);
	
	if ($('history')) {
		$('history').src = 'history.html?' + (new Date()).getTime();
	}
}


function initTasteFilter() {
	var i, j;
	var elm;
	var graph = $('tasteGraph');
	if (graph) {
		for (i=0;i<10;i++) {
			for (j=0;j<10;j++) {
				elm = document.createElement('a');
				elm.id = 'tm' + (i + 1) + (10 - j);
				elm.href = 'javascript:selectTaste(' + (i + 1) + ',' +  (10 - j) + ');';
				elm.innerHTML = '<span class="hidden">' + (i + 1) + ',' +  (10 - j) + '</span>';
				setClass(elm, 'tasteMarker');
				if (10-j == 6) {
					elm.style.marginLeft = '3px';
				}
				if (i+1 == 5) {
					elm.style.marginTop = '3px';	
				}
				
				graph.appendChild(elm);
			}
		}
		
		graph.appendChild(setDivClear());
		graph.setAttribute('value', '');
		
		setMappingTaste();
	}
}

function replaceBadChars(str){
	str = str.replace(/[\<\>\"\$\*]/, "");
	str = str.replace('javascript:', "");
	return str;
}

function setNewURL(q_str) {
	var isIE = (navigator.appName.indexOf("Microsoft") != -1);
	if (isIE) {
		//$('history').src = 'history.html#' + q_str;
	}
	
	window.location.hash = q_str;
}

function setSelectedOption(formObj, keyValue) {
	var i, j, elm;
	var length = formObj.length;
	for (i=0;i<length;i++) {
		elm = formObj.elements[i];
		if (elm.type.toLowerCase().indexOf('select') != - 1) {
			for (j=1;j<elm.options.length;j++) {
				if (elm.options[j].value == keyValue) {
					elm.options[j].selected = true;
					break;
				}
			}
		}
	}	
}

function searching(param) {
	var hashKey, cname, i, j, formObj;
	var hashSet = param.split('&');
	var precat = category;
	var prepage = cpage;
	var preid = id;
	var pretaste = taste;
	var pretc = tc;
	var pretid = tid;
	var premid = mid;
	
	for (i=0;i<hashSet.length;i++) {
		hashKey = hashSet[i].split('=');
		this[hashKey[0]] = hashKey[1];
		
		if (hashKey[0].indexOf('tid') != -1) {
			for (j=1;j<searchTagMax;j++) {
				formObj = document['searchTag' + j];
				if (formObj) {
					if (param.indexOf('tc=' + document['searchTag' + j].tagCat.value) != -1) {
						setSelectedOption(formObj, hashKey[1]);
					}
				}
			}
		}
		if (hashKey[0].indexOf('mid') != -1) {
			//formObj = document['searchBrand'];
			//setSelectedOption(formObj, hashKey[1]);
		}
	}
	
	for (i=1;i<categoryMax;i++) {
		if (i == category) {
			//setClass($('sortBox' + i), 'Box');
			$('sortBox' + i).style.display = 'block';
			setClass($('naviA' + i), 'current');
			setClass($('maker' + i), 'makerBoxshow');
			//setClass($('ranking' + i), 'ranking');
			//$('brandTag' + i).style.display = 'block';
		} else {
			//setClass($('sortBox' + i), 'hidden');
			$('sortBox' + i).style.display = 'none';
			setClass($('naviA' + i), '');
			setClass($('maker' + i), 'makerBox');
			//setClass($('ranking' + i), 'hidden');
			//$('brandTag' + i).style.display = 'none';
		}
	}
	setClass($('naviA0'), '');
	
	switch (category) {
		case '1':
			cname = 'searchHouse';
			break;
		case '2':
			cname = 'searchFurni';
			break;
		case '3':
			cname = 'searchEquip';
			break;
		case '4':
			cname = 'searchArchi';
			break;
		case '5':
			cname = 'searchReform';
			break;
		case '6':
			cname = 'searchSanitary';
			break;
		case '7':
			cname = 'searchOrder';
			break;
		default:
			cname = '';
			break;
	}
	setClass($('menuTabBorder'), cname);
	if(category == '7') {
		$('orderFurnitureConceptCopy').style.display = 'block';
	} else {
		$('orderFurnitureConceptCopy').style.display = 'none';
	}
	
	if ((param.indexOf('&id=') != -1 && !(imgsearch_flag)) || (imgsearch_flag && preid != id)) {
		$('rNumber').innerHTML = '';
		$('rNumber2').innerHTML = '';
		$('paging').innerHTML = '';
		$('paging2').innerHTML = '';
		$('resetBtn').style.display = 'none';
		imgsearch_flag = true;
		tagsearch_flag = false;
		cpage = (cpage == null) ? 1 : cpage;
		resetTag();
		setOverlay(0.05);
		searchImg(imgsearch_url, param);
	} else if (param.indexOf('&taste=') != -1 || param.indexOf('&tid=') != -1 || param.indexOf('&mid=') != -1 || param.indexOf('&tc=') != -1) {
		if ((pretaste != taste || pretid != tid || premid != mid || pretc != tc)) {
			$('rNumber').innerHTML = '';
			$('rNumber2').innerHTML = '';
			$('paging').innerHTML = '';
			$('paging2').innerHTML = '';
			$('resetBtn').style.display = 'none';
			imgsearch_flag = false;
			tagsearch_flag = true;
			id = '';
			cpage = (cpage == null) ? 1 : cpage;
			disappearImg();
			searchImg(tagsearch_url, param);
		} else if (prepage != cpage) {
			cngPage(cpage);	
		}
	} else if (precat != category || (precat == category && cpage == 1)) {
		$('rNumber').innerHTML = '';
		$('rNumber2').innerHTML = '';
		$('paging').innerHTML = '';
		$('paging2').innerHTML = '';
		$('resetBtn').style.display = 'none';
		if (param.indexOf('&id=') != -1) {
			imgsearch_flag = true;
			tagsearch_flag = false;
			cpage = (cpage == null) ? 1 : cpage;
			resetTag();
			searchImg(imgsearch_url, param);
		} else {
			imgsearch_flag = false;
			tagsearch_flag = false;
			id = '';
			taste = '';
			tid = '';
			mid= '';
			resetTag();
			resetTaste();
			disappearImg();
			searchImg(search_url, 'category=' + category);
		}
	} else if (prepage != cpage) {
		cngPage(cpage);
	}
}

function searchImg(path, param){
    var tagleAjax  = new Ajax.Request(path, {
        method : 'get',
        parameters : param,
        onComplete : showItem, /* 完了時の処理 */
		onFailure : showItemFailed, /* 失敗時の処理 */
        onException : showItemExcept
    });

    return false;
}

function showItemFailed(request) {
    alert('Error:Loading XML data failed.\n');
	
	var paging = $('paging');
	var paging2 = $('paging2');
	var result = $('resultArea');
	
	removeChildNodes(result);
	
	paging.innerHTML = '';
	paging2.innerHTML = '';
	
	result.appendChild(setSearchResetMsg());
		
	paging2.style.display = 'none';
		
	removeOverlay();
}

function showItemExcept(request) {
    //alert('Error:Loading XML data failed.\n');
	
	var paging = $('paging');
	var paging2 = $('paging2');
	var result = $('resultArea');
	
	removeChildNodes(result);
	
	paging.innerHTML = '';
	paging2.innerHTML = '';
	
	result.appendChild(setSearchResetMsg());
		
	paging2.style.display = 'none';
		
	removeOverlay();
}

function showItem(request){
	eval('var dataSet = ' + request.responseText);
	
	imgDataSet = dataSet;
	imgDataList = imgDataSet.imgDataList;
	recommendList = imgDataSet.recommend;
	if (cpage == null) {
		cpage = 1;
	}
	
	setImgData(imgDataList);
	
	if (category != 2)
		setRecommend(recommendList);
	else
		$('sameTasteArea').hide();
}

function cngPage(currentPage) {
	var i;
	var result = $('resultArea');
	var tmp = result.childNodes;
	//var taste = selectedTaste();
	//var tag = selectedTagList();
	var str = replaceBadChars(window.location.hash);
	var index = str.indexOf('&cpage=');
	
	cpage = String(currentPage);
	/*if (!(imgsearch_flag)) {
		setNewURL('category=' + category + taste + tag + '&cpage=' + cpage);
	} else {*/
		setNewURL(str.substring(1, index) + '&cpage=' + cpage);
	//}
	
	setOverlay(0.05);
	
	for (i=0;i<tmp.length-1;i++) {
		if (tmp[i].id != this.id) {
			if (i < tmp.length-2) {
				new Effect.Opacity(tmp[i].id, { duration:0.1*(i+1), from:1.0, to:0.01, fps:40});
			} else {
				new Effect.Opacity(tmp[i].id, { duration:0.1*(i+1), from:1.0, to:0.01, fps:40, afterFinish:function(){setImgData(imgDataList);}});
			}
		}
	}
}

function setMappingTaste(iid) {
	var taste1, taste2, marker;
	var tasteList;
	var elm = (iid != null) ? $(iid) : null;
	var graph = $('tasteGraph');
	if (elm != null) {
		taste1 = elm.getAttribute('taste1');
		taste2 = elm.getAttribute('taste2');
		marker = $('tm' + taste1 + taste2);
		setClass(marker, 'tasteMarker3');
		
		graph.setAttribute('value', taste1 + ',' + taste2);
	} else if (taste != '') {
		tasteList = taste.split(',');
		marker = $('tm' + tasteList[0] + tasteList[1]);
		setClass(marker, 'tasteMarker2');
		
		graph.setAttribute('value', tasteList[0] + ',' + tasteList[1]);
	}
}

function startLikeSearch(category, iid) {
	var i;
	var result = $('resultArea');
	var tmp = result.childNodes;
	var graph = $('tasteGraph');
	var tmValue = graph.getAttribute('value');
	var elm = $(iid);
	var linkElm = $(iid + 'Link');
	
	if (window.location.hash.substr(1) != 'category=' + category + '&id=' + iid + '&cpage=1') {
		setOverlay(0.05);
	}
	
	if (tmValue != '') {
		var str = tmValue.split(',');
		setClass($('tm' + str[0] + str[1]), 'tasteMarker');
	}
	
	if (elm) {
		setImgBGColor(elm);
		setClass(linkElm, 'current');
		new Effect.Pulsate(linkElm.id, { duration:3, from:0.5, pulses:5 });
		
		//setClass($('tm' + linkElm.getAttribute('taste1') + linkElm.getAttribute('taste2')), '');
		//setMappingTaste(iid);
	}
	
	if (window.location.hash.substr(1) != 'category=' + category + '&id=' + iid + '&cpage=1') {
		setNewURL('category=' + category + '&id=' + iid + '&cpage=1');
	
		for (i=0;i<tmp.length-1;i++) {
			if (tmp[i].id != iid) {
				new Effect.Opacity(tmp[i].id, { duration:0.1*(i+1), from:1.0, to:0.01, fps:40});
			}
		}
	}
}

function selectedTagList(target, fid) {
	var tag = '';
	var elm;
	var length;
	var i, j;
	for (j=1;j<=searchTagMax;j++) {
	        if (document['searchTag' + j]) {
			length = document['searchTag' + j].length;
			for (i=0;i<length;i++) {
				elm = document['searchTag' + j].elements[i];
				if (elm.type.toLowerCase().indexOf('select') != - 1) {
					if (j == fid || fid == null) {
						if (elm.options[elm.selectedIndex].value != 0) {
							if (elm.name.indexOf('mtag') != -1) {
								tag += '&mid=' + elm.options[elm.selectedIndex].value;
							} else if (elm.name.indexOf('tag') != -1) {
								tag += '&tid=' + elm.options[elm.selectedIndex].value;
							
								if (tag.indexOf('tc=' + document['searchTag' + j].tagCat.value) == -1) {
									tag = '&tc=' + document['searchTag' + j].tagCat.value + tag;
								}
							
								/*else {
									if (target.name.indexOf('mtag') == -1) {
										elm.selectedIndex = 0;
									} 
								}*/
							}
						}
					} else {
						elm.selectedIndex = 0;
					}
				}
			}
		}
	}
	/*
	length = document.searchBrand.length;
	for (i=0;i<length;i++) {
		elm = document.searchBrand.elements[i];
		if (elm.type.toLowerCase().indexOf('select') != - 1) {
			if (elm.options[elm.selectedIndex].value != 0) {
				if (elm.name.indexOf('mtag') != -1) {
					tag += '&mid=' + elm.options[elm.selectedIndex].value;
				}
			}
		}
	}
	*/
	
	return tag;
}

function selectTag(target, fid) {
	var taste = selectedTaste();
	var tag = selectedTagList(target, fid);
	
	setNewURL('category=' + category + taste + tag + '&cpage=1');
}

function selectedTaste() {
	var taste = '';
	if ($('tasteGraph').getAttribute('value') != '') {
		taste = '&taste=' + $('tasteGraph').getAttribute('value');
	}
	
	return taste;
}

function selectTaste(taste1, taste2) {
	var taste;
	var graph = $('tasteGraph');
	var tmValue = graph.getAttribute('value');
	var tag = selectedTagList();
	
	if (tmValue != '') {
		var str = tmValue.split(',');
		setClass($('tm' + str[0] + str[1]), 'tasteMarker');
	}
	setClass($('tm' + taste1 + taste2), 'tasteMarker2');
	graph.setAttribute('value', taste1 + ',' + taste2);
	taste = selectedTaste();
	
	setNewURL('category=' + category + taste + tag + '&cpage=1');
}


function resetTag() {
	var elm, i, j, length;
	for (j=1;j<=searchTagMax;j++) {
		if (document['searchTag' + j]) {
			length = document['searchTag' + j].length;
			for (i=0;i<length;i++) {
				elm = document['searchTag' + j].elements[i];
				if (elm.type.toLowerCase().indexOf('select') != - 1) {
					if (elm.name.indexOf('tag') != -1) {
						elm.options[0].selected = true;
					}
				}
			}
		}
	}
	/*
	length = document.searchBrand.length;
	for (i=0;i<length;i++) {
		elm = document.searchBrand.elements[i];
		if (elm.type.toLowerCase().indexOf('select') != - 1) {
			if (elm.name.indexOf('tag') != -1) {
				elm.options[0].selected = true;
			}
		}
	}
	*/
}

function resetTaste() {
	var graph = $('tasteGraph');
	var tmValue = graph.getAttribute('value');
	if (tmValue != '' && tmValue != null) {
		var str = tmValue.split(',');
		setClass($('tm' + str[0] + str[1]), 'tasteMarker');
	}
	graph.setAttribute('value', '');
}

function setImgData(dataList) {
	var i, maxNum, startPage, _pages;
	var total = imgDataSet.n;
	var imgDataLength = dataList.length;
	var pages = Math.ceil(imgDataLength/ipp);
	var paging = $('paging');
	var paging2 = $('paging2');
	var result = $('resultArea');
	var pagingSpaces = document.all? "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" : "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
	
	if (!imgsearch_flag && mid == '' && taste == '' && tid == '') {
		$('rNumber').innerHTML = '<strong>イメージ検索が、類似イメージを集めます</strong>';
		$('rNumber2').innerHTML = '好きなイメージが見つからない時は、次へ';
		$('resetBtn').style.display = 'none';
	} else {
		$('rNumber').innerHTML = '該当するイメージは<strong>' + total + '枚</strong>です';
		$('rNumber2').innerHTML = '好きなイメージが見つからない時は、次へ';
		$('resetBtn').style.display = 'block';
		$('resetBtn').href = 'javascript:resetSearch();';
	}
	
	removeChildNodes(result);
	
	paging.innerHTML = '';
	paging2.innerHTML = '';
	
	if (Number(total) > 0) {
		if (cpage != 1) {
			paging.innerHTML = '<a href="javasctipt:void(0);" class="arrowL" onclick="cngPage(' + (Number(cpage) - 1) + ');return false;">' + pagingSpaces + '</a>';
		}
		
		startPage = Math.floor(Number(cpage)/11)*10 + 1;
		
		if (pages > startPage+9) {
			_pages = startPage+9;
		} else {
			_pages = pages;
		}
		
		for (i=startPage;i<=_pages;i++) {
			if (cpage == i) {
				paging.innerHTML +=	'<a href="javasctipt:void(0);" class="current" onclick="cngPage(' + i+ ');return false;">' + i + '</a>';
			} else {
				paging.innerHTML +=	'<a href="javasctipt:void(0);" onclick="cngPage(' + i+ ');return false;">' + i + '</a>';
			}
		}
		if (cpage != pages && Number(total) != 0) {
			paging.innerHTML += '<a href="javasctipt:void(0);" class="arrowR" onclick="cngPage(' + (Number(cpage) + 1) + ');return false;">' + pagingSpaces + '</a>';
		} else {
			$('rNumber2').innerHTML = '';
		}
		
		paging2.style.display = 'block';
		paging2.innerHTML = paging.innerHTML;
		
		maxNum = cpage*ipp;
		if (maxNum > imgDataLength) {
			maxNum = imgDataLength;	
		}
		for (i=(cpage-1)*ipp;i<maxNum;i++) {
			result.appendChild(setImg(dataList[i].id, dataList[i].fn, dataList[i].mid, dataList[i].pid, dataList[i].nreg, dataList[i].tst, dataList[i].curl, dataList[i].ctype, dataList[i].lurl));	
		}
		
		result.appendChild(setDivClear());
		
		appearImg();
	} else {
		result.appendChild(setSearchResetMsg());
		
		paging2.style.display = 'none';
		
		removeOverlay();
	}	
}

function setImg(iid, fn, mid, pid, nreg, tst, curl, ctype, lurl) {
	var resultBox, imgBox, imgLink, stock, detail, stockBtn, catalog, imgURL;
	var hash = replaceBadChars(window.location.hash).substr(1);
	imgURL = '/images/' + mid + '/' + pid + '/tnL/' + fn;
	
	resultBox = document.createElement('div');
	resultBox.id = iid;
	setClass(resultBox, 'resultBox');
	
	resultBox.setAttribute('taste1', tst[0]);
	resultBox.setAttribute('taste2', tst[1]);
	
	imgBox = document.createElement('div');
	setClass(imgBox, 'imgBox');
	//imgBox.style['backgroundImage'] = 'url(' + uri + ')';
	//imgBox.style['backgroundRepeat'] = 'no-repeat';
	
	imgLink = document.createElement('a');
	imgLink.id = iid + 'Link';
	imgLink.href = "javascript:startLikeSearch('" + category + "', '" + iid + "');";
	if (resultBox.id == this.id) {
		setClass(imgLink, 'current');
	}
	//imgLink.innerHTML = '<img src="' + imgURL + '" width="130" height="104" alt="" />';
	imgLink.style.background = 'url(' + imgURL + ')';
	imgLink.setAttribute('taste1', tst[0]);
	imgLink.setAttribute('taste2', tst[1]);
	imgLink.onmouseover = function (event) {
		// Win IE
		if (!event) event = window.event;
		
		if (!event) {
			return true;
		} else {
			var taste1 = this.getAttribute('taste1');
			var taste2 = this.getAttribute('taste2');
			if (Number(taste1) >= 0 && Number(taste2) >= 0) {
				setClass($('tm' + taste1 + taste2), 'tasteMarker4');
			}
			
			showImgsearchBtn(this);
			
			return false;
		}
	}
	imgLink.onmouseout = function (event) {
		// Win IE
		if (!event) event = window.event;
		
		if (!event) {
			return true;
		} else {
			var taste1 = this.getAttribute('taste1');
			var taste2 = this.getAttribute('taste2');
			if (Number(taste1) >= 0 && Number(taste2) >= 0) {
				if (id != '' && this.id.indexOf(id) != -1 && taste == '') {
						setClass($('tm' + taste1 + taste2), 'tasteMarker3');
				} else {
					if (id != '') {
						var imgbox = $(id);
						if (imgbox) {
							if (imgbox.getAttribute('taste1') == taste1 && imgbox.getAttribute('taste2') == taste2) {
								setClass($('tm' + taste1 + taste2), 'tasteMarker3');
							} else {
								setClass($('tm' + taste1 + taste2), 'tasteMarker');	
							}
						}
					} else if (taste == $('tasteGraph').getAttribute('value')) {
						if (taste != '') {
							var str = taste.split(',');
							setClass($('tm' + str[0] + str[1]), 'tasteMarker2');
						}
						if (taste != taste1 + ',' + taste2) {
							setClass($('tm' + taste1 + taste2), 'tasteMarker');
						}
					} else {
						setClass($('tm' + taste1 + taste2), 'tasteMarker');
					}
				}
			}
			
			hideImgsearchBtn();
			
			return false;
		}
	}
	
	
	/*stock = document.createElement('div');
	setClass(stock, 'stockNum fLeft');
	stock.appendChild(document.createTextNode(nreg));*/
	
	detail = document.createElement('p');
	setClass(detail, 'detail size10');
	detail.innerHTML = '<a href="/products/' + category + '/' + pid + '/' + iid + '.html#' + hash + '"><span class="hidden">詳細ページ</span></a>';
	
	stockBtn = document.createElement('p');
	setClass(stockBtn, 'myalbum size10');
	stockBtn.innerHTML = '<a href="javasctipt:void(0);" onclick="addIntoSession(\'' + add_myalbum_url + '\', \'id=' + iid + '&category=' + category + '\');return false;"><span class="hidden">マイアルバムにストック</span></a>';
	
	imgBox.appendChild(imgLink);
	resultBox.appendChild(imgBox);
	//resultBox.appendChild(stock);
	resultBox.appendChild(detail);
	
	switch (Number(category)) {
		case 1:
			if (curl != 'undefined' && curl != null) {
				catalog = document.createElement('p');
				if (Number(ctype) == 1) {
					setClass(catalog, 'catalog size10');
					catalog.innerHTML = '<a href="' + curl + '"><span class="hidden">カタログ請求する</span></a>';
				} else if (Number(ctype) == 2) {
					setClass(catalog, 'catalogBlank size10');
					catalog.innerHTML = '<a href="' + curl + '" target="_blank"><span class="hidden">カタログ請求する</span></a>';
				}
				resultBox.appendChild(catalog);
			}
			break;
		case 2:
			setClass(stockBtn, 'myalbum2 size10');
		/* set shopping btn
			if (lurl != 'undefined' && lurl != null) {
				catalog = document.createElement('p');
				setClass(catalog, 'shop size10');
				catalog.innerHTML = '<a href="javascript:void(0);" onclick="cc(\'' + iid + '\', 2, 2); window.open(\'' + lurl + '\');"><span class="hidden">ショッピングサイトへ</span></a>';
				resultBox.appendChild(catalog);
			}
			*/
			break;
		case 3:
			setClass(stockBtn, 'myalbum2 size10');
			break;
		case 4:
			setClass(stockBtn, 'myalbum2 size10');
			break;
		case 5:
			setClass(stockBtn, 'myalbum2 size10');
			break;
		case 6:
			setClass(stockBtn, 'myalbum2 size10');
			break;
		case 7:
			setClass(stockBtn, 'myalbum2 size10');
			break;
		default:
			break;
	}
	
	resultBox.appendChild(stockBtn);
	
	resultBox.appendChild(setDivClear());
	
	/*if (!checkB.SAF) {
		resultBox.setOpacity(0.0);
	}*/
	if (resultBox.id != this.id) {
		resultBox.style["display"] = 'none';
	} else {
		setImgBGColor(resultBox);
	}
	
	return resultBox;
}

function setImgBGColor(elm) {
	switch (Number(this.category)) {
		case 1 :
			elm.style.backgroundColor = '#C18185';
			break;
		case 2 :
			elm.style.backgroundColor = '#84C5C3';
			break;
		case 3 :
			elm.style.backgroundColor = '#96B9A4';
			break;
		case 4 :
			elm.style.backgroundColor = '#DE9A67';
			break;
		case 5 :
			elm.style.backgroundColor = '#E8DFC5';
			break;
		case 6 :
			elm.style.backgroundColor = '#7AA8A9';
			break;
		case 7 :
			elm.style.backgroundColor = '#8A852F';
			break;
		default:
			break;
	}
}

function setRecommend(dataList) {
		var i;
		var title;
		var tagTitle;
		var imgURL;
		var tmp = 1;
		var sameTaste = $('sameTasteArea');
		sameTaste.innerHTML = '';
		sameTaste.innerHTML += '<p class="tasteTitle">テイストが共通のイメージ</p>';
		
		for (i=0;i<dataList.length;i++) {
			if (dataList[i] == null) {
				continue;
			}
			
			switch (dataList[i].category){
				case 1:
					title = '住宅メーカー';
					break;
				case 4:
					title  = '建築家';
					break;
				case 2:
					if(tmp == 1){
						title = '家具';
						++tmp;
					}else{
						title = '照明';
					}
					break;
				case 3:
					title = 'キッチン';
					break;
				case 5:
					title = 'リフォーム';
					break;
				case 6:
					title = 'サニタリー';
					break;
				case 7:
					title = 'オーダー家具';
					break;
				default:
					break;
			}
			
			if(i%2==0){
				tagTitle = '<dl class="listHead"><dt>' + title + '</dt>';
			}else{
				tagTitle = '<dl><dt>' + title + '</dt>';
			}
			
			imgURL = '/images/' + dataList[i].imgDataList[0].mid + '/' + dataList[i].imgDataList[0].pid + '/tnM/' + dataList[i].imgDataList[0].fn;
			
			sameTaste.innerHTML += tagTitle + '<dd><a href="#category=' + dataList[i].category + '&id=' + dataList[i].imgDataList[0].id + '&cpage=1" onclick="disappearImg()"><img src="' + imgURL +'" alt="" width="75" height="60" /></a></dd></dl>';
		}
		sameTaste.show();
}

function setSearchResetMsg() {
	var msgArea = document.createElement('div');
	var msgBox = document.createElement('div');
	
	msgArea.id = 'msgArea';
	setClass(msgArea, 'resetMsgArea');
	
	msgBox.id = 'msgBox';
	setClass(msgBox, 'resetMsgBox');
	
	msgBox.innerHTML = '<p class="size14">指定の検索条件では、該当するイメージは見つかりませんでした。</p>';
	msgBox.innerHTML += '<p class="btn size14"><a href="javascript:resetSearch();">→検索リセット</a></p>';
	
	msgArea.appendChild(msgBox);
	
	return msgArea;
}

function resetSearch() {
	id = '';
	imgsearch_flag = false;
	
	if (Number(imgDataSet.n) > 0) {
		disappearImg();
	} else {
		$('msgBox').innerHTML = '';
		removeChildNodes($('resultArea'));
	}
	
	setNewURL('category=' + category + '&cpage=1');
	
	searchImg(search_url, 'category=' + category);
}

function appearImg() {	
	var result = $('resultArea');
	for (i=0;i<result.childNodes.length-1;i++) {
		//new Effect.Opacity(result.childNodes[i].id, { duration:0.2*(i+1), from:0.0, to:1.0, fps:40});
		if (result.childNodes[i].id != this.id) {
			if (i == result.childNodes.length-2) {
				Effect.Appear(result.childNodes[i].id, { duration:0.1*(i+1), from:0.0, to:1.0, fps:40, afterFinish:function(){ removeOverlay(); } });
			} else {
				Effect.Appear(result.childNodes[i].id, { duration:0.1*(i+1), from:0.0, to:1.0, fps:40});
			}
		} else {
			setMappingTaste(this.id);
			new Effect.Pulsate(result.childNodes[i].id + 'Link', { from:0.5, pulses:3 });	
		}
	}
}

function disappearImg() {
	setOverlay(0.05);
	
	var result = $('resultArea');
	if (result.childNodes.length > 1) {
		for (i=0;i<result.childNodes.length-1;i++) {
			new Effect.Opacity(result.childNodes[i].id, { duration:0.1*(i+1), from:1.0, to:0.01, fps:40});
		}
	}
}

function setOverlay(alpha) {
	var yScroll;
	var pagesize;
	var overlay;
	if (!($('overlay'))) {
		yScroll = getYscroll();
		pagesize = getPageSize();
		overlay = document.createElement('div');
		overlay.id = 'overlay';
		setClass(overlay, 'overlay');
		
		document.body.appendChild(overlay);
		
		if (overlay) {
			if (pagesize[1] > yScroll) {
				overlay.style.height = pagesize[1] + 'px';
			} else {
				overlay.style.height = yScroll + 'px';
			}
		}
		
		overlay.style.display = 'none';
		Effect.Appear(overlay.id, { duration:1, from:0.0, to:alpha, fps:40 });
	}
}

function removeOverlay() {
	var overlay = $('overlay');
	if (overlay) {
		document.body.removeChild(overlay);
	}	
}

function removeChildNodes(parent) {
	var i=0;	
	while (parent.childNodes.length > 0) {
		parent.removeChild(parent.firstChild);	
	}
}

function backPage() {
	var hash = replaceBadChars(window.location.hash).substr(1);
	if (hash != "") {
		window.location.href = '/search/#' + hash;
	} else {
		history.back();
	}
}



/* For myalbum
____________________________________________________________*/
function initLogin() {
	new Ajax.Request(init_session_url, {
        method : 'get',
        parameters : '',
        onComplete : answerLogin,
        onException : showError
    });

    return false;
}

function showError(request) {
	
}

function answerLogin(request) {
	eval('var dataSet = ' + request.responseText);
	session_flag = dataSet.status;
	addIntoSession(add_myalbum_url, '');
}

function initMyAlbum(){
	addIntoSession(add_myalbum_url, '');
}

function addIntoSession(path, param){
    new Ajax.Request(path, {
        method : 'get',
        parameters : param,
        onComplete : showMyAlbum,
        onException : showMyAlbumError
    });

    return false;
}

function showMyAlbum(request){
	eval('var MyAlbum = ' + request.responseText);
	setMyAlbum(MyAlbum);
}

function showMyAlbumError(request) {
	
}

function setMyAlbum(dataList) {
	var albumGuestMsg = $('albumGuestMsg');
	var myalbumArea = $('myalbumArea');
	if (!session_flag) {
		albumGuestMsg.innerHTML = 'イメージを保存するためには、<a href="javascript:void(0);" onclick="isSession();">ログイン</a>または<a href="' + regist_url + '">ユーザ登録</a>が必要です。';
		albumGuestMsg.style.display = 'block';
	} else {
		albumGuestMsg.innerHTML = '';
		albumGuestMsg.style.display = 'none';
	}
	myalbumArea.innerHTML = '';
	for (var i=0; i<dataList.list.length; i++) {
		if (dataList.list[i].mid) {
			var data = dataList.list[i];
			myalbumArea.innerHTML += '<dt id="myalbum1'+ data.iid +'" class="fLeft"><a href="/products/'+ data.m_category +'/'+ data.pid +'/'+ data.iid +'.html"><img src="/images/'+ data.mid +'/'+ data.pid +'/tnS/'+ data.uri +'" alt="" width="35" height="28" /></a></dt>';
			myalbumArea.innerHTML += '<dd id="myalbum2'+ data.iid +'">'+ data.c_name +'<br />'+ data.p_name +'</dd>';
		}
	}
	if (dataList.mode == 'add') {
		new Effect.Pulsate(myalbumArea.childNodes[0].id, { pulses: 3 });
		new Effect.Pulsate(myalbumArea.childNodes[1].id, { pulses: 3 });
	}
}

addEvent(window, 'load', initTasteFilter, false);
addEvent(window, 'load', initLogin, false);
addEvent(window, 'load', initHistory, false);