//$id関数
function $id(tagId){
	return document.getElementById(tagId);
}

// ロード時にセレクトボックスを作成
window.onload=function(){
	var json_data = getjson();

	if(json_data.item_id_list.length==0){
		try {
			$id("variation_name_1").style.display = "none";
		} catch (e) {}
		try {
			$id("variation_value_1").style.display = "none";
		} catch (e) {}
		try {
			$id("variation_name_2").style.display = "none";
		} catch (e) {}
		try {
			$id("variation_value_2").style.display = "none";
		} catch (e) {}
		try {
			$id("goods_count_name").style.display = "none";
		} catch (e) {}
		try {
			$id("goods_count").style.display = "none";
		} catch (e) {}
		try {
			$id("cart_btn").style.display = "none";
		} catch (e) {}
		try {
			$id("order_btn").style.display = "none";
		} catch (e) {}
		if( json_data.goods_data.name == '' ) {
			show_error(new Array("指定された商品情報がみつかりません。"));
		} else {
			show_error(new Array("申し訳ございませんが、"+json_data.goods_data.name+"の在庫がなくなりました。"));
		}
	} else {
		if(json_data.goods_data.key1==0||json_data.goods_data.name1==""){
			$id("variation_name_1").style.display = "none";
			$id("variation_value_1").style.display = "none";
			$id("variation_name_2").style.display = "none";
			$id("variation_value_2").style.display = "none";
		} else {
			$id("variation_name_1").innerHTML=json_data.goods_data.name1+"：";

			var variation_array_1 = new Array();
			var tmp_array = new Array();
			for(var i=0;i<json_data.item_id_list.length;i++){
				if ((json_data.item_id_list[i].key1 in tmp_array)==false) {
					variation_array_1.push(new Array(json_data.item_id_list[i].key1, json_data.item_id_list[i].txt1));
					tmp_array[json_data.item_id_list[i].key1] = json_data.item_id_list[i].key1;
				}
			}

			var select_element = document.createElement("select");
			select_element.options[0]=new Option("選択してください","");
			for(var i=0;i<variation_array_1.length;i++){
				select_element.options[i+1]=new Option(variation_array_1[i][1],variation_array_1[i][0]);
			}

			select_element.setAttribute("id","select_variation_1");
			$id("variation_value_1").appendChild(select_element);
			$id("select_variation_1").onchange=function(){changeSelect()}

			if(json_data.goods_data.key2==0||json_data.goods_data.name2==""){
				$id("variation_name_2").style.display = "none";
				$id("variation_value_2").style.display = "none";
			} else {
				$id("variation_name_2").innerHTML=json_data.goods_data.name2+"：";
				$id("variation_value_2").innerHTML=json_data.goods_data.name1+"を選択してください";
			}
		}
		setAmount(json_data);
	}

	// プレビュー用に関数を呼び出す
	if(typeof add_load == "function") {
		add_load();
	}
}

function changeSelect() {
	var json_data = getjson();
	if(json_data.goods_data.key2!=0&&json_data.goods_data.name2!=""){
		var select_element = document.createElement("select");

		var cnt = 1;
		select_element.options[0]=new Option("選択してください","");
		for(i=0;i<json_data.item_id_list.length;i++){
			if(json_data.item_id_list[i].key1==$id("select_variation_1")[$id("select_variation_1").selectedIndex].value){
				select_element.options[cnt]=new Option(json_data.item_id_list[i].txt2,json_data.item_id_list[i].key2);
				if(eval($id("select_variation_2")) && $id("select_variation_2")[$id("select_variation_2").selectedIndex].value==json_data.item_id_list[i].key2){
					select_element.options[cnt].setAttribute("selected","selected");
				}
				cnt++;
			}
		}

		if(cnt == 1){
			if($id("select_variation_1")[$id("select_variation_1").selectedIndex].value==""){
				$id("variation_value_2").innerHTML=json_data.goods_data.name1+"を選択してください";
			} else {
				$id("variation_value_2").innerHTML="指定された"+json_data.goods_data.name1+"の"+json_data.goods_data.name2+"がありません";
			}
		} else {
			$id("variation_value_2").innerHTML="";
			select_element.setAttribute("id","select_variation_2");
			$id("variation_value_2").appendChild(select_element);
			$id("select_variation_2").onchange=function(){setAmount(json_data)}
		}
	}

	setAmount(json_data);
}

function setAmount(json_data) {
	var selected_key_1;
	var selected_key_2;

	if(json_data.goods_data.key1!=0&&json_data.goods_data.name1!=""){
		if(eval($id("select_variation_1")) && $id("select_variation_1")[$id("select_variation_1").selectedIndex].value != ""){
			selected_key_1 = $id("select_variation_1")[$id("select_variation_1").selectedIndex].value;
		} else {
			selected_key_1 = "0";
		}
		if(json_data.goods_data.key2!=0&&json_data.goods_data.name2!=""){
			if(eval($id("select_variation_2")) && $id("select_variation_2")[$id("select_variation_2").selectedIndex].value != ""){
				selected_key_2 = $id("select_variation_2")[$id("select_variation_2").selectedIndex].value;
			} else {
				selected_key_2 = "0";
			}
		} else {
			selected_key_2 = "0";
		}
	} else {
		selected_key_1 = "0";
		selected_key_2 = "0";
	}

	var amount="";
	for(i=0;i<json_data.item_id_list.length;i++){
		if(json_data.item_id_list[i].key1==selected_key_1 && json_data.item_id_list[i].key2==selected_key_2){
			document.form1.selected_item.value=json_data.item_id_list[i].item_id;
			amount=json_data.item_id_list[i].stock;
			break;
		}
	}

	var select_element = document.createElement("select");
	select_element.options[0]=new Option("選択してください","");
	if(document.form1.selected_item.value==""){
		cnt=1;
	} else {
		for(cnt=1;cnt<=amount;cnt++){
			select_element.options[cnt]=new Option(cnt,cnt);
		}

		if(cnt>1){
			cnt--;
		}
	}

	if(eval($id("item_amount")) && $id("item_amount").selectedIndex>0 && select_element.length > cnt){
		if($id("item_amount").selectedIndex>cnt){
			select_element.options[cnt].setAttribute("selected","selected");
		} else {
			select_element.options[$id("item_amount").selectedIndex].setAttribute("selected","selected");
		}
	}

	$id("goods_count").innerHTML="";
	select_element.setAttribute("name","item_amount");
	select_element.setAttribute("id","item_amount");
	if( select_element.length > 1 ) {
		$id("goods_count").appendChild(select_element);
	} else {
		var error_message = "";
		if(json_data.goods_data.key1!=0&&json_data.goods_data.name1!=""){
			error_message = json_data.goods_data.name1;
		}
		if(json_data.goods_data.key2!=0&&json_data.goods_data.name2!=""){
			error_message += "、" + json_data.goods_data.name2;
		}

		if( error_message != "" ) {
			error_message += "を選択してください。";
		}

		$id("goods_count").innerHTML=error_message;
	}
}

function error_check(json_data) {
	$id("error_area").innerHTML="";
	var errmsg = new Array(0);

	if(json_data.goods_data.key1!=0&&json_data.goods_data.name1!=""){
		if(eval($id("select_variation_1")) && $id("select_variation_1")[$id("select_variation_1").selectedIndex].value == ""){
			errmsg.push(json_data.goods_data.name1+"を選択してください");
		} else {
			selected_key_1 = $id("select_variation_1")[$id("select_variation_1").selectedIndex].value;
		}
		if(json_data.goods_data.key2!=0&&json_data.goods_data.name2!=""){
			if(!eval($id("select_variation_2")) || $id("select_variation_2")[$id("select_variation_2").selectedIndex].value == ""){
				errmsg.push(json_data.goods_data.name2+"を選択してください");
			} else {
				selected_key_2 = $id("select_variation_2")[$id("select_variation_2").selectedIndex].value;
			}
		} else {
			selected_key_2 = "0";
		}
	} else {
		selected_key_1 = "0";
		selected_key_2 = "0";
	}
	if(eval($id("item_amount")) && $id("item_amount")[$id("item_amount").selectedIndex].value == ""){
		errmsg.push("数量を選択してください");
	}

	return errmsg;
}

function form_submit(mode) {
	var json_data = getjson();
	var errmsg_array=error_check(json_data);

	if(errmsg_array.length==0){
		if(document.form1.selected_item.value==""){
			show_error(new Array("指定された商品は在庫がありません"));
		} else {
			$id("error_area").innerHTML="";
			document.form1.mode.value=mode;
			return true;
		}
	} else {
		show_error(errmsg_array);
		return false;
	}
}

function show_error(errmsg_array) {
	var json_data = getjson();
	var errmsg="";
	for(i=0;i<errmsg_array.length;i++){
		errmsg += '<li>'+errmsg_array[i]+'</li>';
	}

	var error_html = '<div class="error"><ul>'+errmsg+'</ul></div>';
	$id("error_area").innerHTML = error_html;
	location.href="#";
}
