function show(ele) {
    return showSearchOption(ele);
}

function showSearchOption(ele) {
    var srcElement = document.getElementById(ele);
    if(srcElement != null) {
	if(srcElement.style.display == "block") {
		      srcElement.style.display= 'none';
	}
	else {
	    srcElement.style.display='block';
	}
    }
    return false;
}

/* 検索バー */
function goSerachBar(domain_url, items_flag){

	document.getElementById("BarErr").innerHTML = "";
	document.getElementById("OptionErr").innerHTML = "";
	document.getElementById("BarErr").style.display = "none";
	document.getElementById("OptionErr").style.display = "none";

	var sk = document.getElementsByName("sk").item(0).value;
	var ca = document.getElementsByName("ca").item(0).value;
	var get_ca = document.getElementsByName("get_ca").item(0).value;


	/* 検索キーワード 入力チェック */
	if (!checkInput(sk)){
        if (items_flag) {
		  document.getElementById("BarErr").innerHTML = "<h2 class=\"sfd_items_tit_01\">検索ワードが未入力です。</h2><p class=\"sfd_items_txt_m\">検索ワードを入力し、再度検索してください。</p>";
		  document.getElementById("BarErr").style.display = "block";
        } else {
		  document.getElementById("BarErr").innerHTML = "<h2 class=\"tit_01\">検索ワードが未入力です。</h2><p class=\"txt_m\">検索ワードを入力し、再度検索してください。</p>";
		  document.getElementById("BarErr").style.display = "block";
		}
		return false;
	} else {

		var objForm = document.getElementsByName("serach_bar").item(0); 

		/* 「この店舗から」が選択された場合 */
	    reg = new RegExp("^E[0-9]{2}"); 
		if (ca.search(reg) == -1 && ca.length != 0) {

			if (get_ca.length == 0) {
				document.getElementsByName("ca").item(0).value = '';
				for (i = 0 ; i < document.getElementsByName("ca").item(0).length ; i++) {
					if (document.getElementsByName("ca").item(0)[i].value == "") {
						document.getElementsByName("ca").item(0)[i].text = document.getElementsByName("ca").item(0)[0].text
					}
				}
			} else {
				document.getElementsByName("ca").item(0).value = get_ca;
				for (i = 0 ; i < document.getElementsByName("ca").item(0).length ; i++) {
					if (document.getElementsByName("ca").item(0)[i].value == get_ca) {
						document.getElementsByName("ca").item(0)[i].text = document.getElementsByName("ca").item(0)[0].text
					}
				}
			}


			var element = document.createElement('input'); 
			element.type  = "hidden";
			element.name  = "dm";
			element.value = ca;
			objForm.appendChild(element); 

			document.serach_bar.action=domain_url + '/shop_items/index';
			document.serach_bar.method="get";

			return true;
		}

		document.serach_bar.action=domain_url + '/search_results/index';
		document.serach_bar.method="get";

		return true;
	}
}

/* 検索バー オプション */
function goSerach(domain_url ,items_flag){

	document.getElementById("BarErr").innerHTML = "";
	document.getElementById("OptionErr").innerHTML = "";

	document.getElementById("OptionErr").style.display = "none";
	document.getElementById("BarErr").style.display = "none";

	var sk = document.getElementById("sk_option").value;
	var price_mi = document.getElementsByName("mi").item(0).value;
	var price_ma = document.getElementsByName("ma").item(0).value;
	var get_ca = document.getElementsByName("get_ca").item(0).value;
/* 検索バーのCAと区別する為、IDを使用 */
/*	var ca = document.getElementsByName("ca").item(0).value;*/
//	var ca = document.getElementById("ca_option").item(0).value;
        var ca = '';
        var ca_option = document.getElementById('ca_option');
        for (var canum = 0; ca_option.options.length > canum; canum++) {
            if (ca_option.options[canum].selected) {
		ca = ca_option.options[canum].value;
            }
        }

	var errflg = false;

	/* 検索キーワード 入力チェック */
	if (!checkInput(sk)){
        if (items_flag) {
			document.getElementById("OptionErr").innerHTML = "<h2 class=\"sfd_items_tit_01\">検索ワードが未入力です。</h2><p class=\"sfd_items_txt_m\">検索ワードを入力し、再度検索してください。</p>";
        } else {
			document.getElementById("OptionErr").innerHTML = "<h2 class=\"tit_01\">検索ワードが未入力です。</h2><p class=\"txt_m\">検索ワードを入力し、再度検索してください。</p>";
		}
		errflg = true;
	}

	if (checkInput(price_mi)){
		if (!isPrice(price_mi)){
            if (items_flag) {
				document.getElementById("OptionErr").innerHTML = "<h2 class=\"sfd_items_tit_01\">価格入力値が不正です。</h2><p class=\"sfd_items_txt_m\">価格には数字で入力してください。</p>";
            } else {
				document.getElementById("OptionErr").innerHTML = "<h2 class=\"tit_01\">価格入力値が不正です。</h2><p class=\"txt_m\">価格には数字で入力してください。</p>";
			}
			errflg = true;
		}
	}

	if (checkInput(price_ma)){
		if (!isPrice(price_ma)){
		    if (items_flag) {
				document.getElementById("OptionErr").innerHTML = "<h2 class=\"sfd_items_tit_01\">価格入力値が不正です。</h2><p class=\"sfd_items_txt_m\">価格には数字で入力してください。</p>";
		    } else {
				document.getElementById("OptionErr").innerHTML = "<h2 class=\"tit_01\">価格入力値が不正です。</h2><p class=\"txt_m\">価格には数字で入力してください。</p>";
			}
			errflg = true;
		}
	}


	if (checkInput(price_mi) && checkInput(price_ma)){
		if (parseInt(price_mi) > parseInt(price_ma)){
		    if (items_flag) {
				document.getElementById("OptionErr").innerHTML = "<h2 class=\"sfd_items_tit_01\">価格入力値が不正です。</h2><p class=\"sfd_items_txt_m\">価格の範囲指定に誤りがあります。</p>";
		    } else {
				document.getElementById("OptionErr").innerHTML = "<h2 class=\"tit_01\">価格入力値が不正です。</h2><p class=\"txt_m\">価格の範囲指定に誤りがあります。</p>";
			}
			errflg = true;
		}
	}

	if (!errflg){
		var objForm = document.getElementsByName("serach").item(0); 

		/* 「この店舗から」が選択された場合 */
	    reg = new RegExp("^E[0-9]{2}"); 
		if (ca.search(reg) == -1 && ca.length != 0) {
		    objForm.ca.value = get_ca;
			if (get_ca.length == 0) {
/* 				検索バーのCAと区別する為、IDを使用 */
/*				document.getElementsByName("ca").item(0).value = '';*/
				document.getElementById("ca_option").item(0).value = '';

				for (i = 0 ; i < document.getElementsByName("ca").item(0).length ; i++) {
					if (document.getElementsByName("ca").item(0)[i].value == "") {
						document.getElementsByName("ca").item(0)[i].text = document.getElementsByName("ca").item(0)[0].text
					}
				}
			} else {

				document.getElementsByName("ca").item(0).value = get_ca;
				for (i = 0 ; i < document.getElementsByName("ca").item(0).length ; i++) {
					if (document.getElementsByName("ca").item(0)[i].value == get_ca) {
						document.getElementsByName("ca").item(0)[i].text = document.getElementsByName("ca").item(0)[0].text
					}
				}
			}

			var element = document.createElement('input'); 
			element.type  = "hidden";
			element.name  = "dm";
			element.value = ca;
			objForm.appendChild(element); 

			document.serach.action=domain_url + '/shop_items/index';

			document.serach.method="get";

			return true;
		}

		document.serach.action=domain_url + '/search_results/index';
		document.serach.method="get";
		return true;
	} else {
		document.getElementById("OptionErr").style.display = "block";
		return false;
	}

}

/* 絞込み検索 */
function changeRadio(num){
	if (num == 1){
		 document.getElementById("price_shiborikomi").checked = true;
	} else {
		document.getElementById("mi_shiborikomi").value = "";
		document.getElementById("ma_shiborikomi").value = "";
	}
}

/* 絞込み検索 */
function serachNarrow(domain_url,skChk,CategoryName,dmChk){
	var sk = document.getElementById("sk_shiborikomi").value;
	var price_mi = document.getElementById("mi_shiborikomi").value;
	var price_ma = document.getElementById("ma_shiborikomi").value;

	var price_range = document.getElementsByName("price_range").item(0).value;

	document.getElementById("MainErr").style.display = "none";

	var errflg = false;

	/* 検索キーワード 入力チェック */
	if (skChk){
		if (!checkInput(sk)){
			document.getElementById("MainErr").innerHTML = "<h2 class=\"tit_01\">絞込み検索 キーワードが未入力です。</h2><p class=\"txt_m\">検索ワードを入力し、再度検索してください。</p>";
			errflg = true;
		}
	}

	if (checkInput(price_mi)){
		if (!isPrice(price_mi)){
			document.getElementById("MainErr").innerHTML = "<h2 class=\"tit_01\">価格入力値が不正です。</h2><p class=\"txt_m\">価格には数字で入力してください。</p>";
			errflg = true;
		}
	}

	if (checkInput(price_ma)){
		if (!isPrice(price_ma)){
			document.getElementById("MainErr").innerHTML = "<h2 class=\"tit_01\">価格入力値が不正です。</h2><p class=\"txt_m\">価格には数字で入力してください。</p>";
			errflg = true;
		}
	}

	if (checkInput(price_mi) && checkInput(price_ma)){
		if (parseInt(price_mi) > parseInt(price_ma)){
			document.getElementById("MainErr").innerHTML = "<h2 class=\"tit_01\">価格入力値が不正です。</h2><p class=\"txt_m\">価格の範囲指定に誤りがあります。</p>";
			errflg = true;
		}
	}

	if (!errflg){
		if (dmChk){
				document.serachNarrowForm.action=domain_url + '/shop_items/index';
				document.serachNarrowForm.method="get";
				return true;
		} else {
			if (skChk){
				document.serachNarrowForm.action=domain_url + '/search_results/index';
				document.serachNarrowForm.method="get";
				return true;
			} else {
				document.serachNarrowForm.action=domain_url + '/category_items/index';
				document.serachNarrowForm.method="get";
				return true;
			}
		}
	} else {
		document.getElementById("MainErr").style.display = "block";
		return false;
	}

}

/**
 * キーワード検索
 *
 * @param form
 */
function execSearchResults(form)
{
    var search_word  = form.sk.value;
    var query        = new Array();

    var error_box = '';
    if (form.name == 'search_bar') {
        document.getElementById('OptionErr').style.display = 'none';
        error_box = 'BarErr';
    } else if (form.name == 'search') {
        document.getElementById('BarErr').style.display = 'none';
        error_box = 'OptionErr';
    }

    if (!checkInput(search_word)) {
        return outputError(getErrorMessage('sk'), error_box);
    }

    if (typeof form.mi != "undefined") {
        var mi = zen2han(form.mi.value);
        if (checkInput(mi) && false == isPrice(mi)) {
            return outputError(getErrorMessage('price'), error_box);
        } else if (checkInput(mi)) {
	        query.push("mi=" + mi);
        }
    }

    if (typeof form.ma != "undefined") {
        var ma = zen2han(form.ma.value);
        if (checkInput(ma) && false == isPrice(ma)) {
            return outputError(getErrorMessage('price'), error_box);
        } else if (checkInput(ma)) {
	        query.push("ma=" + zen2han(ma));
        }
    }

    if (typeof form.mi != "undefined" && typeof form.ma != "undefined") {
        if (checkInput(form.mi.value) && checkInput(form.ma.value) &&
            parseInt(zen2han(form.mi.value)) > parseInt(zen2han(form.ma.value))) {
            return outputError(getErrorMessage('price_range'), error_box);
        }
    }

    for (var num = 0; num < form.elements.length; num++) {
        var elem = form.elements[num];
        
        if (elem.type == 'checkbox' || elem.type == 'radio') {
            if (true == elem.checked) {
                query.push(elem.name + '=' + encodeURIComponent(elem.value));
            }
	    } else if (elem.type == 'select') {
	        for (var onum = 0; elem.options.length > onum; onum++) {
		        if (elem.options[onum].selected) {
		            query.push(elem.name + '=' + encodeURIComponent(elem.options[onum].value));
		        }
	        }
        } else {
            if (elem.name != 'sk' &&
		        elem.name != 'dm' &&
		        elem.name != 'mi' &&
		        elem.name != 'ma' &&
		        elem.name != 'price_range' &&
                elem.value != null &&
                elem.name.length > 0 &&
                elem.value.length > 0) {
                query.push(elem.name + '=' +  encodeURIComponent(elem.value));
            }
        }
    }

    var url = 'http://shoppingfeed.jp/search/' + encodeURIComponent(search_word) + '/index.html';

    if (query.length > 0) {
       url += '?' + query.join('&');
    }

    document.location.href = url;

    return false;
}

/**
 * 店舗内検索
 * 
 * @param form
 */
function execShopItems(form)
{
    var ca     = '';
    var domain = '';
    if (typeof form.ca != 'undefined') {
        ca = form.ca.value;
        if (0 == ca.length || ca.search(new RegExp("^E[0-9]{2}")) != -1) {
	        return execSearchResults(form);
        } else {
            domain = ca;
        }
    } else {
        domain = form.dm.value;
    }
    var query  = new Array();

    var sk = form.sk.value;

    var error_box = '';

    if (form.name == 'search_bar') {
        document.getElementById('OptionErr').style.display = 'none';
        error_box = 'baby_errorInfo';
    } else if (form.name == 'search') {
        document.getElementById('BarErr').style.display = 'none';
        error_box = 'OptionErr';
    }

    if (!checkInput(sk)) {
        return outputError(getErrorMessage('sk'), error_box);
    }

    if (typeof form.mi != "undefined") {
        var mi = zen2han(form.mi.value);
        if (checkInput(mi) && false == isPrice(mi)) {
            return outputError(getErrorMessage('price'), error_box);
        } else if (checkInput(mi)) {
            query.push("mi=" + mi);
        }
    }

    if (typeof form.ma != "undefined") {
        var ma = zen2han(form.ma.value);
        if (checkInput(ma) && false == isPrice(ma)) {
            return outputError(getErrorMessage('price'), error_box);
        } else if (checkInput(ma)) {
	        query.push("ma=" + ma);
        }
    }

    if (typeof form.mi != "undefined" && typeof form.ma != "undefined") {
        if (checkInput(form.mi.value) && checkInput(form.ma.value) &&
	        parseInt(zen2han(form.mi.value)) > parseInt(zen2han(form.ma.value))) {
            return outputError(getErrorMessage('price_range'), error_box);
        }
    }

    for (var num = 0; num < form.elements.length; num++) {
        var elem = form.elements[num];

        if (elem.type == 'checkbox' || elem.type == 'radio') {
            if (true == elem.checked) {
                query.push(elem.name + '=' + encodeURIComponent(elem.value));
            }
        } else {
            if (elem.name != 'ca' &&
		        elem.name != 'sk' &&
		        elem.name != 'mi' &&
		        elem.name != 'ma' &&
		        elem.name != 'price_range' &&
		        elem.value != null &&
		        elem.name.length > 0 && elem.value.length > 0) {
                query.push(elem.name + '=' +  encodeURIComponent(elem.value));
            }
        }
    }

    var url = 'http://' + document.domain + '/shop/' + encodeURIComponent(form.sk.value) + '/' + domain + '/index.html';

    if (query.length > 0) {
       url += '?' + query.join('&');
    }

    document.location.href = url;

    return false;
}

/**
 * エラーメッセージ返却
 *
 * @param type
 */
function getErrorMessage(type)
{
    var messages = new Array();
    messages['sk']          = ['<h2 class="tit_01">検索ワードが未入力です。</h2>',
                               '<p class="txt_m">検索ワードを入力し、再度検索してください。</p>'].join('');
    messages['price']       = ['<h2 class="tit_01">価格入力値が不正です。</h2>',
                               '<p class="txt_m">価格には数字で入力してください。</p>'].join('');

    messages['price_range'] = ['<h2 class="tit_01">価格入力値が不正です。</h2>',
                               '<p class="txt_m">価格の範囲指定に誤りがあります。</p>'].join('');

    return messages[type];
}

/**
 * 絞込検索
 *
 * @param form
 * @param action
 */
function execNarrowSearch(form, action)
{
    var query = new Array();
    for (var num = 0; num < form.price_range.length; num++) {
        if (form.price_range[num].checked && form.price_range[num].value.length > 0) {
            query.push('price_range=' + encodeURIComponent(form.price_range[num].value));
        }
    }

    if (form.mi.value.length > 0) {
        if (false == isPrice(form.mi.value)) {
            return outputError(getErrorMessage('price'), 'MainErr');
        }
        query.push('mi=' + encodeURIComponent(zen2han(form.mi.value)));
    }

    if (form.ma.value.length > 0) {
        if (false == isPrice(form.ma.value)) {
            return outputError(getErrorMessage('price'), 'MainErr');
        }
        query.push('ma=' + encodeURIComponent(zen2han(form.ma.value)));
    }

    if (checkInput(form.mi.value) && checkInput(form.ma.value) && form.mi.value > form.ma.value) {
        return outputError(getErrorMessage('price_range'), 'MainErr');
    }

    query.push('fid=' + form.fid.value);
    query.push('paid=' + form.paid.value);

    var path = '/' + action;
    if (action == 'shop') {
        if (typeof form.sk != 'undefined') { 
            path += ['/',
                     encodeURIComponent(form.sk.value),
                     '/',
                     encodeURIComponent(form.dm.value),
                     '/index.html'].join('');
        } else {
            path += ['/', encodeURIComponent(form.dm.value), '/index.html'].join('');
        }

        if (typeof form.ca != 'undefined') {
            query.push('ca=' + form.ca.value);
        }

    } else if (action == 'category') {
        var category_dir = form.ca.value.replace(/\-/g, '/');
        if (typeof form.sk != 'undefined' && form.sk.value.length > 0) { 
            path += ['/',
                     encodeURIComponent(form.sk.value),
                     '/',
                     category_dir,
                     '/index.html'].join('');
        } else {
            path += ['/', category_dir, '/index.html'].join('');
        }
    } else if (action == 'search') {
        if (!checkInput(form.sk.value)) {
            return outputError(getErrorMessage('sk'), 'MainErr');
        }
        path += ['/', encodeURIComponent(form.sk.value), '/index.html'].join('');

        if (typeof form.ca != 'undefined') {
            query.push('ca=' + form.ca.value);
        }
    }

    if (checkInput(form.ek.value)) {
        query.push('ek=' + encodeURIComponent(form.ek.value));
    }

    var ot = '';
    for (var otnum = 0; otnum < form.ot.length; otnum++) {
        if (form.ot[otnum].checked) {
            ot = form.ot[otnum].value;
        }
    }
    query.push('ot=' + ot);

    var url = path + '?' + query.join('&');
    document.location.href = url;

    return false;
}

function zen2han(str)
{
    var han = "0123456789";
    var zen = "０１２３４５６７８９";
    var result = "";
    for (var num = 0; num < str.length; num++) {
        var current = str.charAt(num);
        var idx     = zen.indexOf(current, 0);
        if (idx >= 0) {
            current = han.charAt(idx);
        }
        result += current;
    }
    return result; 
}

/**
 * エラー出力
 *
 * @param message
 * @param box
 */
function outputError(message, box)
{
    var error_box = document.getElementById(box);
    error_box.innerHTML = message;
    error_box.style.display = 'block';

    return false;
}

