//リダイレクト先のURL（ファイル名まで）
var url = 'http://www.yazuya.com/cart.cgi';
//urlに追加する最初の文字列
var url_add = '?mode=add&';


//デバッグモード 0:無効 1:主要なものだけ有効 2:全て有効
var debug_mode = 0;


//cart.cgiに渡すURLを整形
function order_next(){
	//格納処理用の配列
	var temp = new Array();

	//カウント用
	var count = new Array();
	count['array_course'] = 0; //フォームからきたコース
	count['temp_course'] = 0; //tempのコース
	count['1'] = 0; //1毎の商品数
	count['3'] = 0; //3毎の商品数
	count['K'] = 0; //都度の商品数
	count['CK'] = 0; //飲むケフィア都度の商品数
	count['C1'] = 0; //飲むケフィア1ヶ月の商品数



	//フォームを全て処理
	for(var i = 0; i < document.forms.length; i++){
		//フォームの接頭辞で絞込み
		re = new RegExp("^" + 'order_form');
		if(document.forms[i].name.match(re)){
			//フォーム名の文字列
			var obj = eval(document.forms[i]);
			if(debug_mode > 1) alert(document.forms[i].name + 'の要素の個数：' + obj.elements.length + '個');
			//各フォームの要素すべてについて処理
			for(var n = 0; n < obj.elements.length; n++){
				if(debug_mode > 1) alert('要素' + n + '個目の処理に入ります');
				//フォームの要素のnameから商品IDを切り出し
				if(obj.elements[n].name.length == 17 || obj.elements[n].name.length == 14){
					var goods_id = obj.elements[n].name.substring(7,8);
				}else{
					var goods_id = obj.elements[n].name.substring(7,9);
				}
				//直前のコースを取得
				if(obj.elements[n].name == 'shohin['+goods_id+'][course]'){
					var temp_course_value = obj.elements[n].value;
				}
				if(debug_mode > 1) alert('要素' + n + '個目のgoods_id : ' + goods_id);
				if(debug_mode > 1) alert(temp_course_value + '毎コースを処理します');
				//そのnameの商品要素が存在するか、またそれが0でないことを確認
				if(obj.elements[n].name == 'shohin['+goods_id+'][num]' && obj.elements[n].value != 0){
					count[temp_course_value]++;
					if(debug_mode > 0)alert(count[temp_course_value]);
					//チェックを通ったものはtempに格納
					if(!!temp[temp_course_value]){
						if(!!temp[temp_course_value][goods_id]){
							temp[temp_course_value][goods_id] += Number(obj.elements[n].value);
							if(debug_mode > 1) alert(temp_course_value + '毎に重複があるため足しました。足した後:' + temp[temp_course_value][goods_id] + '個');
						}else{
							temp[temp_course_value][goods_id] = Number(obj.elements[n].value);
							if(debug_mode > 1) alert(temp_course_value + '毎に重複が無かったため値を挿入しました。最初の個数は:' + temp[temp_course_value][goods_id] + '個');
						}
					}else{
						count['array_course']++; //存在しない場合のみカウント
						temp[temp_course_value] = new Array();
						if(debug_mode > 1) alert('temp()が存在しないため作成します');
						temp[temp_course_value][goods_id] = Number(obj.elements[n].value);
						if(debug_mode > 1) alert('1毎最初の個数は:' + temp[temp_course_value][goods_id] + '個です');
					}
				}
			}
		}
	}
	
	//全て存在しなかった場合は単純にカートにリンク
	if(count['array_course'] == 0){
		if(debug_mode > 1) alert("値を選択して下さい");
		location.href = url;
	}

	//temp配列を展開してURLに加える文字列を形成
	if(debug_mode > 0) alert(count['array_course'] + '←該当コースの数');
	//
	//コースのループ
	for(var key_course in temp){
		count['temp_course']++;
		if(debug_mode > 0) alert('コース' + key_course);
		url_add += 	'cart' + key_course +'_info='
		//コース毎の商品のループ
		count['temp_goods'] = 0;
		for(var key_goods in temp[key_course]){
			count['temp_goods']++;
			if(debug_mode > 0) alert('コース:'+ temp[key_course] +' 商品ID:' + temp[key_course][key_goods]);
			if(debug_mode > 0) alert(temp[key_course].length);
			var i_num = Number(key_goods);
			url_add += 	'-1@'
					+ i_num
					+ '@'
					+ temp[key_course][key_goods];
			//商品の最後の要素以外は,を追加
			if(debug_mode > 0) alert('count[\'temp_goods\']:'+count['temp_goods']+'count[\'key_course\']:'+count[key_course]);
			if(count['temp_goods'] < count[key_course]){
				url_add = url_add + ',';
			}

			if(debug_mode > 0) alert(url_add);
		}
		//コースの最後の要素以外は&を追加
		if(count['temp_course'] < count['array_course']){
			url_add += '&';
		}
	}
	//整形したURLにリダイレクト
	if(debug_mode > 0) alert(url + url_add);
	location.href = url + url_add;
}


