	function insert_cart(cm_id, cm_count){
		if(check_duplicated_itemcd(cm_id)==false){
			var cmId =cm_id;
			var cmCount = cm_count;
			if(isValidNumWithMassage(cmCount, '1以上の整数値を半角で入力してください')){
				if (checkStock(cmId, cmCount)) {
					if (checkLimit(cmId, cmCount)) {
						PtanoDwr.insertCart(cmId, cmCount, update_cart_infomation);
						showSuccessDialog('カートに追加しました');
					} else {
						showErrorDialog('カートに入れられる上限個数を超えています');
					}
				} else {
					showErrorDialog('在庫が足りません');
				}
			}
		}
	}

	function checkStock(cmId, cmCount){
		var res;
		PtanoDwr.checkStock(cmId, cmCount, {callback: 
			function(data){
				res = data;
			}, async:false});
		return res;
	}
	
	function checkLimit(cmId, cmCount){
		var res;
		PtanoDwr.checkLimit(cmId, cmCount, {callback: 
			function(data){
				res = data;
			}, async:false});
		return res;
	}
	
	function checkStatus(cmId){
		var res;
		PtanoDwr.checkStatus(cmId, {callback: 
			function(data){
				res = data;
			}, async:false});
		return res;
	}

	function insert_cart_ex(cmid){
		var str = "item_count_" + cmid;
		var count = document.getElementById(str).value;
		insert_cart(cmid, count);
	}

	function insert_cart_ex2(cmid, count_name){
		var str = count_name;
		var count = document.getElementById(str).value;;
		insert_cart(cmid, count);
	}

	//チェックをつけた商品のカートへの一括インサート
	function insert_cart_ikkatsu(checkbox_name, amount_prefix){
		var obj=document.getElementsByName(checkbox_name);
		var check_count=0;
		var cm_id;
		var elem;
		var str;
		var count;
		var map = new Object();
		var list = new Array();
		
		for(var i=0;i<obj.length;i++){
			if(obj.item(i).checked==true){
				cm_id=obj.item(i).value;
				str=amount_prefix+cm_id;
				elem=document.getElementById(str);
				if(elem==null){
					showErrorDialog('カラーサイズのバリエーション商品が含まれています。<br />一覧ページからカートに入れることができませんので、商品詳細ページからカラーサイズをご選択後、カート投入をお願いいたします。');
					check_count=0;
					break;
				}
				count=document.getElementById(str).value;
				
				//1以上の数値かどうか
				if(isValidNumWithMassage(count,'1以上の整数値を半角で入力してください')==false){
					check_count=0;
					document.getElementById(str).focus();
					break;
				}

				//在庫は足りているか
				if (checkStock(cm_id, count)==false) {
					showErrorDialog('在庫が足りません');
					check_count=0;
					document.getElementById(str).focus();
					break;
				}
				
				//制限個数は足りているか
				if (checkLimit(cm_id, count)==false) {
					showErrorDialog('カートに入れられる上限個数を超える商品があります');
					check_count=0;
					document.getElementById(str).focus();
					break;
				}
				
				map[cm_id] = count;	//MAPに格納
				list[check_count] = cm_id;	//EDPチェック用に作成
				check_count++;
			}
		}

		if(check_count>0){
			if(check_duplicated_itemcd_list(list)==false){
				PtanoDwr.insertCartBySeq(list, map, update_cart_infomation);
				showSuccessDialog('カートに追加しました');
				return "";
			}
		}
	}
	
	//チェックをつけた商品がカート投入可能かチェック
	function check_cart_ikkatsu(checkbox_name, cart_status_map){
		var obj=document.getElementsByName(checkbox_name);
		var cm_id;
		var status = 1;
		var flg = true;
		
		for(var i=0;i<obj.length;i++){
			if(obj.item(i).checked==true){
				cm_id=obj.item(i).value;
				status = cart_status_map[cm_id];
				if(status!=1){
					showErrorDialog('販売終了の商品が含まれております。<br />ご確認をお願いいたします。');
					flg = false;
					break;
				}
			}
		}
		return flg;
	}
	
	//カート情報のAjax更新
	function update_cart_infomation(map){
		var elem;
		var totalPrice = map["TotalPrice"];
		var itemCount = map["ItemCount"];
		var cmCount = map["CmCount"];
		var freePayShip = map["FreePayShip"];
		var shipPay = map["shipPay"];
		var weightFlag = map["weightFlag"];
		
		elem = document.getElementById("total_price");
		//ページ上にログインBOXがない場合は何もしない。
		if(elem!=null){
			elem.innerHTML = "￥" + add_figure(totalPrice);
			elem = document.getElementById("item_count");
			elem.innerHTML = itemCount;
			elem = document.getElementById("cm_count");
			elem.innerHTML = cmCount;
			
			elem = document.getElementById("cart_is_filled");
			elem.style.display="block";
			
			elem = document.getElementById("cart_is_empty");
			elem.style.display="none";
			
			//送料表示欄
			if(weightFlag=='true'){
				elem = document.getElementById("carriage_1");
				elem.style.display="none";
				elem = document.getElementById("carriage_2");
				elem.style.display="none";
				elem = document.getElementById("carriage_3");
				elem.style.display="block";
			}
			else{
				if(freePayShip>0){
					elem = document.getElementById("carriage_1");
					elem.style.display="block";
					elem = document.getElementById("carriage_2");
					elem.style.display="none";
				}
				else{
					elem = document.getElementById("carriage_1");
					elem.style.display="none";
					if (shipPay>0) {
						elem = document.getElementById("carriage_2");
						elem.style.display="none";
					} else {
						elem = document.getElementById("carriage_2");
						elem.style.display="block";
					}
				}				
				elem = document.getElementById("carriage_3");
				elem.style.display="none";
			}
			elem = document.getElementById("free_pay_ship");
			elem.innerHTML = add_figure(freePayShip);
			
			//アイテムリスト欄
			var elemStr, itemURL, itemName, itemAmout, itemPrice;
			for(i=0;i<4;i++){
				if(i<cmCount){
					
					itemURL = map["ItemURL"+i];
					elemStr = "item_url" + i;
					elem = document.getElementById(elemStr)
					elem.href = itemURL;

					itemName = map["ItemName"+i];
					elemStr = "item_name" + i;
					elem = document.getElementById(elemStr)
					elem.innerHTML = itemName;

					elemStr = "item_amount" + i;
					elem = document.getElementById(elemStr)
					itemAmount = map["ItemAmount"+i];
					elem.innerHTML = itemAmount;
				
					elemStr = "item_price" + i;
					elem = document.getElementById(elemStr)
					itemPrice = map["ItemPrice"+i];
					elem.innerHTML = "￥ " + add_figure(itemPrice);
				}
			}
			//続きを見るの部分
			elemStr = "cart_continue";
			elem = document.getElementById(elemStr);
			if(cmCount>4){
				elem.style.display="block";
			}
			else{
				elem.style.display="none";
			}
		}
	}

	//金額表示にする
	function add_figure(str) {
		var num = new String(str).replace(/,/g, "");
		while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
		return num;
	}

	//有効な整数値かどうか判定する
	function isValidNumWithMassage(val, message){
		reg = new RegExp('^[1-9][0-9]*$');
		if(!reg.exec(val)){
			showErrorDialog(message);
			return false;
		}
		return true;
	}
	
	//お気に入りの追加
	function insert_fvrtdata(cm_id){
		var cmId =cm_id;
		PtanoDwr.insertFvrtData(cmId);
		showSuccessDialog('お気に入りに追加しました');
	}
	
	//ポイントカートに追加（個数の取得）
	function insert_cart_pt_ex(cmid){
		var str = "item_count_" + cmid;
		var count = document.getElementById(str).value;
		insert_cart_pt(cmid, count);
	}
	
	//ポイントカートに追加
	function insert_cart_pt(cm_id, cm_count){
		var cmId = cm_id;
		var cmCount = cm_count;
		var result_type = 0;
		var result_cart_num = 0;
		var elem;
		
		if(isValidNumWithMassage(cmCount, '1以上の整数値を半角で入力してください')){
			PtanoDwr.insertCartPt(cm_id, cm_count, {callback: 
			function(data){
				result_type = data["result_type"];
				result_cart_num = data["result_cart_num"];
			}, async:false});
			
			switch(result_type){
			case 0:
				showSuccessDialog('ポイントカートに追加しました');
				break;
			case 1:
				showErrorDialog('ご利用可能なポイントを超えております');
				break;
			case 2:
				showErrorDialog('ご利用可能なポイントの桁数を超えております');
				break;
			default:
				break;
			}
			
			if (result_cart_num > 0){
				elem = document.getElementById("point_cart_box1");
				elem.style.display="block"
				elem = document.getElementById("point_cart_box2");
				elem.style.display="block"
			}else{
				elem = document.getElementById("point_cart_box1");
				elem.style.display="none"
				elem = document.getElementById("point_cart_box2");
				elem.style.display="none"
			}
		}
	}
	
	//商品コードからCMIDを返す
	function get_cmid_from_cmcd(cmcd){
		PtanoDwr.getCmIdByCmCd(cmcd, cmid_callback);
	}
	
	function cmid_callback(cmid){
		if(cmid<0){
			showErrorDialog('該当する商品がありません');
		}
		else{
			showErrorDialog('商品ID=' + cmid);
		}
	}
	
	//比較表のアイテム数を取得
	function get_comparison_item_count(){
		var count;
		PtanoDwr.getComparisonItemCount({callback:function(data){count=data;},async:false});
		return count;
	}
	
	//カート内商品とのEDPコード重複チェック(単一商品)
	function check_duplicated_itemcd(cm_id){
		var flg;
		PtanoDwr.checkDuplicatedItemCdInCart(cm_id, {callback: 
			function(data){
				if(data.length>0){
					flg = true;
				}
				else{
					flg = false;
				}
			}, async:false});
		
		if(flg==true){
			showErrorDialog('単品商品とまとめ商品を同時に注文することはできません');
			return true;
		}
		else{
			return false;
		}
	}
	
	//カート内商品とのEDPコード重複チェック(複数商品)
	function check_duplicated_itemcd_list(list){
		var flg;
		var cm_nm_list;
		
		PtanoDwr.checkDuplicatedItemCdInCart2(list, {callback: 
			function(data){
				cm_nm_list = data;
				if(data.length>0){
					flg = true;
				}
				else{
					flg = false;
				}
			}, async:false});
		
		if(flg==true){
			showErrorDialog('単品商品とまとめ商品を同時に注文することはできません（' + cm_nm_list[0] + '）');
			return true;
		}
		else{
			return false;
		}
	}
	

	function message_duplicate(list){
		if(list.length>0){
			showErrorDialog('単品商品とまとめ商品を同時に注文することはできません')
			return false;
		}
		else{
			return true;
		}
	}
	
	
