
/***********************************************************************************
 グローバル変数設定
***********************************************************************************/

var form_height = 315;
var height;
var opacity = 10;
var ngheight;
var ngopacity = 10;
var ngflg = 0;
var ngsave = '';

/***********************************************************************************
 スムーズスクロール
***********************************************************************************/

function scroll (src){
	var wh, ph;
	var ty = 0;
	if (src){
		var href = src.href.split("#");
		if ((href[1])&&(document.getElementById(href[1]))){
			ty = document.getElementById(href[1]).offsetTop;
		}
	}
	if (document.documentElement.clientHeight){
		ph = document.documentElement.clientHeight;
	}else if (document.body.clientHeight){
		ph = document.body.clientHeight;
	}else if (window.innerHeight){
		ph = window.innerHeight;
	}else{
		ph = 0;
	}
	if (document.documentElement.scrollHeight){
		wh = document.documentElement.scrollHeight;
	}else if (document.body.scrollHeight){
		wh = document.body.scrollHeight;
	}else{
		wh = 0;
	}
	if ((wh > ph)&&((ty + ph) > wh)){
		ty = wh - ph;
	}
	smooth_scroll (1,ty);
}

function smooth_scroll (flg, ty, by){
	var x, y, win, page, timer;
	if (document.documentElement.scrollTop){
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}else if (document.body.scrollTop){
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}else if (window.pageYOffset){
		x = window.pageXOffset;
		y = window.pageYOffset;
	}else{
		x = 0;
		y = 0;
	}
	if ((y == by)||(flg == 1)){
		if (y > ty){
			y -= Math.ceil((y - ty) / 7);
			if (y < ty){
				y = ty;
			}
		}else{
			y += Math.ceil((ty - y) / 7);
			if (y > ty){
				y = ty;
			}
		}
		window.scrollTo (x,y);
		if (y != ty){
			timer = setTimeout ('smooth_scroll (0,' + ty + ',' + y + ')',10);
		}
	}
}

/***********************************************************************************
 検索モードチェック
***********************************************************************************/

function check_mode (){
	if ((document.getElementById('search'))&&(document.getElementById('search_type'))&&(document.getElementById('jsbox'))){
		var val = document.getElementById('search').value;
		if ((val.length >= 8)&&(/[^ 0-9_-]/.test (val) != true)){
			to_code (1);
		}else{
			to_word (1);
		}
	}
}

/***********************************************************************************
 検索ワード→JANコード
***********************************************************************************/

function to_code (flg){
	if (flg == 1){
		document.getElementById('search_type').innerHTML = 'JANコード';
		height = Number (document.getElementById('jsbox').style.height.replace ('px',''));
	}
	height -= 2;
	if (height >= 0){
		if (opacity > 0){
			opacity -= 0.5;
			document.getElementById('jsbox').style.opacity = opacity;
		}
		form_height -= 2;
		if (height == 0){
			document.getElementById('jsbox').style.height = '1px';
		}else{
			document.getElementById('jsbox').style.height = height + 'px';
		}
		document.getElementById('search_form').style.height = form_height + 'px';
		var timer = setTimeout ('to_code ()',1);
	}else{
		document.getElementById('jsbox').style.display = 'none';
	}
}

/***********************************************************************************
 JANコード→検索ワード
***********************************************************************************/

function to_word (flg){
	if (flg == 1){
		document.getElementById('search_type').innerHTML = '検索ワード';
		document.getElementById('jsbox').style.display = 'block';
		height = Number (document.getElementById('jsbox').style.height.replace ('px',''));
	}
	height += 2;
	if (height <= 70){
		if (opacity < 10){
			opacity += 0.5;
			document.getElementById('jsbox').style.opacity = opacity;
		}
		form_height += 2;
		document.getElementById('jsbox').style.height = height + 'px';
		document.getElementById('search_form').style.height = form_height + 'px';
		var timer = setTimeout ('to_word ()',1);
	}
}

/***********************************************************************************
 除外ワード切替
***********************************************************************************/

function change_ng (flg){
	if (flg == 1){
		ngsave = document.getElementById('ngtext').value;
		ngflg = 1;
	}
	ngheight = Number (document.getElementById('ngform').style.height.replace ('px',''));
	document.getElementById('ngword').style.display = 'inline';
	if (ngflg == 0){
		ngsave = document.getElementById('ngtext').value;
		document.getElementById('ngtext').value = '';
		document.getElementById('ngword').innerHTML = '除外ワードを設定する';
		del_ng ();
	}else{
		document.getElementById('ngword').innerHTML = '除外ワードを設定しない';
		document.getElementById('ngform').style.display = 'block';
		view_ng ();
	}
}

/***********************************************************************************
 除外ワード表示
***********************************************************************************/

function view_ng (){
	ngheight += 2;
	if (ngheight <= 56){
		if (ngopacity < 10){
			ngopacity += 0.5;
			document.getElementById('ngform').style.opacity = ngopacity;
		}
		form_height += 2;
		document.getElementById('ngform').style.height = ngheight + 'px';
		document.getElementById('search_form').style.height = form_height + 'px';
		var timer = setTimeout ('view_ng ()',2);
	}else{
		if (ngsave){
			document.getElementById('ngtext').value = ngsave;
		}
		ngflg = 0;
	}
}

/***********************************************************************************
 除外ワード消去
***********************************************************************************/

function del_ng (){
	ngheight -= 2;
	if (ngheight >= 0){
		if (ngopacity > 0){
			ngopacity -= 0.5;
			document.getElementById('ngform').style.opacity = ngopacity;
		}
		form_height -= 2;
		if (ngheight == 0){
			document.getElementById('ngform').style.height = '1px';
		}else{
			document.getElementById('ngform').style.height = ngheight + 'px';
		}
		document.getElementById('search_form').style.height = form_height + 'px';
		var timer = setTimeout ('del_ng ()',2);
	}else{
		document.getElementById('ngform').style.display = 'none';
		ngflg = 1;
	}
}

/***********************************************************************************
 コメント非表示
***********************************************************************************/

function del_cmt (id){
	if (document.getElementById(id + '_cmt')){
		document.getElementById(id + '_cmt').style.display = 'none';
	}
}

/***********************************************************************************
 コメント切り替え
***********************************************************************************/

function change_cmt (id){
	if ((document.getElementById(id + '_lnk'))&&(document.getElementById(id + '_cmt'))){
		if (document.getElementById(id + '_cmt').style.display == 'none'){
			document.getElementById(id + '_lnk').innerHTML = '商品説明を元に戻す';
			document.getElementById(id + '_cmt').style.display = 'block';
		}else{
			document.getElementById(id + '_lnk').innerHTML = '商品説明を見る';
			document.getElementById(id + '_cmt').style.display = 'none';
		}
	}
}

/***********************************************************************************
 画像リサイズ
***********************************************************************************/

function resize_image (src){
	if ((src.width > 128)&&(src.width >= src.height)){
		src.width = 128;
	}else if (src.height > 128){
		src.height = 128;
	}
}

/***********************************************************************************
 プルダウン横幅変更
***********************************************************************************/

function change_select (src,flg){
	if ((window.navigator.userAgent.indexOf('MSIE') != -1)&&(window.navigator.userAgent.indexOf('MSIE 6') == -1)){
		if (flg == 1){
			src.style.width = 'auto';
		}else{
			src.style.width = '115px';
		}
	}
}

/***********************************************************************************
 カテゴリー表示
***********************************************************************************/

function print_category (num){
	var request = createRequest();
	var param = 'category=' + document.getElementById('category' + num).options[document.getElementById('category' + num).selectedIndex].value;
	if (request){
		request.open ('POST','/util/category.php',true);
		request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		request.send(param);
	}
	request.onreadystatechange = function(){
		var html = '';
		if (request.readyState == 4 && request.status == 200){
			var category = request.responseText;
			if (num == 1){
				document.getElementById('category3_wrapper').style.display = 'none';
				document.getElementById('category3_wrapper').innerHTML = '';
				document.getElementById('category4_wrapper').style.display = 'none';
				document.getElementById('category4_wrapper').innerHTML = '';
				if (category){
					html += '<select name="category2" id="category2" onchange="print_category(2);change_select(this,0);" onblur="change_select(this,0);" onmousedown="change_select(this,1);">';
					html += '<option value="">指定しない</option>';
					html += category;
					html += '</select>';
					document.getElementById('category2_wrapper').innerHTML = html;
					document.getElementById('category2_wrapper').style.display = 'inline';
				}else{
					document.getElementById('category2_wrapper').style.display = 'none';
					document.getElementById('category2_wrapper').innerHTML = '';
				}
			}else if (num == 2){
				document.getElementById('category4_wrapper').style.display = 'none';
				document.getElementById('category4_wrapper').innerHTML = '';
				if (category){
					html += '<select name="category3" id="category3" onchange="print_category(3);change_select(this,0);" onblur="change_select(this,0);" onmousedown="change_select(this,1);">';
					html += '<option value="">指定しない</option>';
					html += category;
					html += '</select>';
					document.getElementById('category3_wrapper').innerHTML = html;
					document.getElementById('category3_wrapper').style.display = 'inline';
				}else{
					document.getElementById('category3_wrapper').style.display = 'none';
					document.getElementById('category3_wrapper').innerHTML = '';
				}
			}else if (num == 3){
				if (category){
					html += '<select name="category4" id="category4" onchange="change_select(this,0);" onblur="change_select(this,0);" onmousedown="change_select(this,1);">';
					html += '<option value="">指定しない</option>';
					html += category;
					html += '</select>';
					document.getElementById('category4_wrapper').innerHTML = html;
					document.getElementById('category4_wrapper').style.display = 'inline';
				}else{
					document.getElementById('category4_wrapper').style.display = 'none';
					document.getElementById('category4_wrapper').innerHTML = '';
				}
			}
		}
	}
}

/***********************************************************************************
 サーバー通信
***********************************************************************************/

function createRequest (){
	if (window.ActiveXObject){
		try {
			return new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e1){
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e2){
				return null;
			}
		}
	}else if (window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else{
		return null;
	}
}


