//URL
var url = 'http://www.yazuya.com/cart.cgi';
var url_add = '?mode=add&';

var Cart = function(obj, id) {
	
	//商品番号（単品注文／まとめて注文）
	var gcd = id;
	var gcd_multi = Array();
	
	//コース（単品注文／まとめて注文）
	var course;
	var course_multi = Array();
	
	//個数（単品注文／まとめて注文）
	var num;
	var num_multi = Array();
	
	//まとめて注文
	if (gcd == "all") {
		this.matomete = true;
		
		//ページ内の全てのformを取得
		var form = $("form");
		var gcd_array = Array();
		for (var i = 0; i < form.length; i++) {
			//個数リストボックスの name属性を取得
			var name = $("form[name='" + form[i].name + "'] select[name^='num']")[0].name;
			//ページ内の全ての個数リストボックスの name属性から商品番号部分を取得
			gcd_array[i] = name.substring(name.lastIndexOf("[") + 1, name.lastIndexOf("]"));
		}
		
		var cnt = 0;
		for (var i = 0; i < gcd_array.length; i++) {
			course = $("input[type='radio'][name='course[" + gcd_array[i] + "]']:checked").attr("value");
			num = $("select[name='num[" + gcd_array[i] + "]'] option:selected").attr("value");
			
			if ( (course != undefined) && (num != undefined) && (num != "0") ) {
				gcd_multi[cnt] = gcd_array[i];
				course_multi[cnt] = course;
				num_multi[cnt] = num;
				cnt++;
			}
		}
		this.gcd_multi = gcd_multi;
		this.course_multi = course_multi;
		this.num_multi = num_multi;
		
	} else {
		var form_name = $(obj).parents("form:first").attr("name");
		
		//単品注文
		this.matomete = false;
		
		//コースを取得
		course = $("form[name='" + form_name + "'] input[type='radio'][name='course[" + gcd + "]']:checked").attr("value");
		//注文個数を取得
		num = $("form[name='" + form_name + "'] select[name='num[" + gcd + "]'] option:selected").attr("value");
		
		this.form_name = form_name;
		this.gcd = gcd;
		this.course = course;
		this.num = num;

	}
}

Cart.prototype = {
	
	//入力チェック
	validate : function() {
		//個別注文の場合
		if (!this.matomete) {
			if (this.gcd == undefined) {
				//商品番号が不足
				return false;
			} else {
				if (this.course == undefined) {
					//コース未選択
					alert("コースを選択してください");
					return false;
					
				} else if ((this.num == undefined) || (this.num == "0") ) {
					//個数未選択
					alert("個数を選択してください");
					return false;
				}
			}
		}
		return true;
	},
	//カート内の商品をコースごとにまとめる
	create : function() {
		
		var course_1 = new Array();	//毎月
		var course_3 = new Array();	//３毎
		var course_K = new Array();	//１回
		var course_CK = new Array();	//飲むケフィア１回
		var course_C1 = new Array();	//飲むケフィア毎月
		
		if (this.matomete) {
			
			for(var i = 0; i < this.gcd_multi.length; i++) {
				gcd = this.gcd_multi[i];
				course = this.course_multi[i];
				num = this.num_multi[i];
				
				switch (course) {
					case "1":
						course_1[gcd] = num;
						break;
						
					case "3":
						course_3[gcd] = num;
						break;
						
					case "K":
						course_K[gcd] = num;
						break;
						
					case "CK":
						course_CK[gcd] = num;
						break;
						
					case "C1":
						course_C1[gcd] = num;
						break;
				}
			}
			
		} else {
			var gcd = this.gcd;
			var course = this.course;
			var num = this.num;
			
			switch (course) {
				case "1":
					course_1[gcd] = num;
					break;
					
				case "3":
					course_3[gcd] = num;
					break;
					
				case "K":
					course_K[gcd] = num;
					break;
					
				case "CK":
					course_CK[gcd] = num;
					break;
					
				case "C1":
					course_C1[gcd] = num;
					break;
			}
		}
		
		this.course_1 = course_1;
		this.course_3 = course_3;
		this.course_K = course_K;
		this.course_CK = course_CK;
		this.course_C1 = course_C1;
	},
	URL : function() {
		
		var course_1 = this.course_1;
		var course_3 = this.course_3;
		var course_K = this.course_K;
		var course_CK = this.course_CK;
		var course_C1 = this.course_C1
		var param_array = new Array();
		
		//毎月
		if (course_1.length > 0) {
			param_1  = "cart1_info=";
			for (var key in course_1) {//連想配列のkeyを取得
				//パラメータを[cart{コース番号}_info=-1@{商品番号}@{注文個数}]の形式作成
				param_1 += "-1@" + key + "@" + course_1[key] + ",";//末尾に必ずカンマを付ける（後で削除）
			}
			//末尾のカンマを削除
			param_1 = param_1.substring(0, param_1.length - 1);
			//配列に格納
			param_array.push(param_1);
		}
		
		//３毎
		if (course_3.length > 0) {
			param_3  = "cart3_info=";
			for (var key in course_3) {//連想配列のkeyを取得
				//パラメータを[cart{コース番号}_info=-1@{商品番号}@{注文個数}]の形式作成
				param_3 += "-1@" + key + "@" + course_3[key] + ",";//末尾に必ずカンマを付ける（後で削除）
			}
			//末尾のカンマを削除
			param_3 = param_3.substring(0, param_3.length - 1);
			//配列に格納
			param_array.push(param_3);
		}
		
		//１回
		if (course_K.length > 0) {
			param_K  = "cartK_info=";
			for (var key in course_K) {//連想配列のkeyを取得
				//パラメータを[cart{コース番号}_info=-1@{商品番号}@{注文個数}]の形式作成
				param_K += "-1@" + key + "@" + course_K[key] + ",";//末尾に必ずカンマを付ける（後で削除）
			}
			//末尾のカンマを削除
			param_K = param_K.substring(0, param_K.length - 1);
			//配列に格納
			param_array.push(param_K);
		}
		
		//飲むケフィア１回
		if (course_CK.length > 0) {
			param_CK = "cartCK_info=";
			for (var key in course_CK) {//連想配列のkeyを取得
				//パラメータを[cart{コース番号}_info=-1@{商品番号}@{注文個数}]の形式作成
				param_CK += "-1@" + key + "@" + course_CK[key] + ",";//末尾に必ずカンマを付ける（後で削除）
			}
			//末尾のカンマを削除
			param_CK = param_CK.substring(0, param_CK.length - 1);
			//配列に格納
			param_array.push(param_CK);
		}
		
		//飲むケフィア毎月
		if (course_C1.length > 0) {
			param_C1 = "cartC1_info=";
			for (var key in course_C1) {//連想配列のkeyを取得
				//パラメータを[cart{コース番号}_info=-1@{商品番号}@{注文個数}]の形式作成
				param_C1 += "-1@" + key + "@" + course_C1[key] + ",";//末尾に必ずカンマを付ける（後で削除）
			}
			//末尾のカンマを削除
			param_C1 = param_C1.substring(0, param_C1.length - 1);
			//配列に格納
			param_array.push(param_C1);
		}
		
		//パラメータ配列の中身を１つずつ取り出す
		var param = "";
		for (var i = 0; i < param_array.length; i++) {
			param += param_array[i] + "&";
			//alert("配列の中身[" + i + "] = " + param_array[i]);
		}
		
		//オプトイン番号引継ぎ
		var did = $("input[type='hidden'][id='did']").val();
		var cid = $("input[type='hidden'][id='cid']").val();
		
		if (did != undefined && did != "" && cid != undefined && cid != "") {
			param += "did=" + did + "&cid=" + cid;
		} else {
			param = param.substring(0, param.length - 1);
		}
		
		return param;
	}
}


$(document).ready(function() {
	
	//「個別商品注文」がクリックされた場合
	$("a[class='order']").click(function() {

		//カートを作成（商品追加）
		var id = $(this).attr("id");
		var cart = new Cart(this, id.substring(id.lastIndexOf("_") + 1));
		
		//入力チェック
		if (!cart.validate()) {
			return false;
		}
		
		//カート内の商品をコースごとにまとめる
		cart.create();
		
		//URL作成
		var param = cart.URL();
		if (param != "") {
			location.href = url + url_add + param;
			return false;
		} else {
			alert("商品を選択してください");
			return false;
		}
	});
	
	//「まとめて商品注文」がクリックされた場合
	$("a[class='all']").click(function() {

		//カートを作成（商品追加）
		var cart = new Cart(this, "all");
		
		//入力チェック
		if (!cart.validate()) {
			return false;
		}
		
		//カート内の商品をコースごとにまとめる
		cart.create();
		
		//URL作成
		var param = cart.URL();
		if (param != "") {
			location.href = url + url_add + param;
			return false;
		} else {
			alert("商品を選択してください");
			return false;
		}
	});

});

