/**f
 * FileName:getCoupinInfo.js
 * @author uniteair.co.jp
 */
var domain = "";
var COUPIN_TEMPLATE_OPEN = '<div class="js-coupin-items"><p class="mb10 ml20 present"><input type="hidden" name="coupon-campaignid" value="${CampaignID}" /><strong>${CampaignDiscription}</strong>&emsp;<input type="image" src="/material/cart/images/btn_ccblock_cancel.gif" value="" alt="取消" class="overImg js-cancel-btn"></p><div class="clmBox"><ul class="js-present-list">';
var COUPIN_TEMPLATE_ITEM = '<li id="PresentID-${PresentID}">${img}<input type="radio" name="sidemenu${CampaignID}" id="sidemenu${id}" value="${PresentMenuID}" ${Pre-checked}>&nbsp;<label for="sidemenu${id}">${CampaignGroupDiscription}</label></li>';
var COUPIN_TEMPLATE_ITEM_IMG = '<img src="${img}" width="110" height="92" alt="${CampaignGroupDiscription}"><br>';
var COUPIN_TEMPLATE_END = '</ul></div></div>';

var SUCCESS_TOOLTIP;	/* 表示用 */

var TEMPLATE_OPEN = '<div id="campaignID-${CampaignID}" class="ccInnerBlock js-${CampaignID}"><div class="inner"><p class="mb5"><input type="radio" name="campaign01" value="${CampaignName}" id="campaign${CampaignID}" class="js-parent-item" ${Cam-checked}>&nbsp;<label for="campaign${CampaignID}"><strong>${CampaignName}&nbsp;${CampaignDiscription}</strong></label></p><div class="clmBox"><ul>';
var TEMPLATE_ITEM = '<li>${img}<input type="radio" name="sidemenu${CampaignID}" id="sidemenu${id}" value="${PresentMenuID}" ${Pre-checked}>&nbsp;<label for="sidemenu${id}">${CampaignGroupDiscription}</label></li>';
var TEMPLATE_ITEM_IMG = '<img src="${img}" width="110" height="92" alt="${CampaignGroupDiscription}"><br>';
var TEMPLATE_END = '</ul></div><!-- /div class inner --></div><!-- /div class ccInnerBlock --></div>';

var addcount=0;
var couponOk=true;

/**
 * @constructor
 * @description クラスの宣言
 */
var getCoupinInfo = function(){
}


getCoupinInfo.prototype = {
/**
 * @class initialize
 */
 	initialize:function(){
		//this.click();
		this.clickCancel();
		//this.getData();
	},

/**
 * @class click
 * @description クリックイベント発生
 */
	click:function(){
		$(".js-couponcode-btn").click(function(){	/* 使用するボタンクリック */
		  if(($(".js-parent-item.js-coupon-flg").attr("checked")) && $(this).prev().val()){
				$(".js-coupin-items").remove();
				var code = $(this).prev().val();
				coupin.ajax(code);
			}
			return false;
		});

		$("input:radio").click(function(){
			var val = $(this).val();

			if($(this).hasClass("js-parent-item")){
				$(".ccInnerBlock").each(function(){
					if($(this).find("input:radio:first").val() != val){
						$(this).find("input:radio").removeAttr("checked");
					}
				});
			}

			if(!($(this).parents(".ccInnerBlock").find("input:radio:first").attr("checked"))){
				$(this).parents(".ccInnerBlock").find("input:radio:first").attr("checked", "checked");
			}
		});

		$('.js-campaign-submit').click(function(){

			if($(".js-parent-item:checked").length != 0){
				var lengthchi = $(".js-parent-item:checked").parents("div.inner")[0].childElementCount;
			}
			else{
				var lengthchi= 0;
			}

			var id = $(".js-parent-item:checked").parents("div[id*='campaignID']").attr("id");

			if(lengthchi==4){
				id = $(".js-parent-item:checked")[0].id;
			}

			if(!id){
				$(".popupAddCart").remove();
				SUCCESS_TOOLTIP = TEMPLATE_TOOLTIP.replace("${msg}", "WEB限定クーポンを選択してください。");
				addCartItem.success($(".js-campaign-submit"));
				return false;
			}
			id = id.slice(id.indexOf("-")+1);

			var select;
			if($(".js-parent-item:checked").hasClass("js-coupon-flg")){
				select = $(".js-present-list input:checked").val();
				if(!select && $(".js-present-list input:radio").length > 0){
					$(".popupAddCart").remove();
					SUCCESS_TOOLTIP = TEMPLATE_TOOLTIP.replace("${msg}", "プレゼントを選択してください。");
					addCartItem.success($(".js-campaign-submit"));
					return false;
				}
			} else if ($(".js-parent-item:checked")) {
				select = $(".clmBox input:checked").val();
				if(!select && lengthchi == 1){
					// clmBoxがない場合（選択なしキャンペーン）
				}
				else if(!select && $(".clmBox input:radio").length > 0){
					$(".popupAddCart").remove();
					SUCCESS_TOOLTIP = TEMPLATE_TOOLTIP.replace("${msg}", "プレゼントを選択してください。");
					addCartItem.success($(".js-campaign-submit"));
					return false;
				}
			}

			var data = "/" + id;

			if(select) data += "/" + select;

			if(addcount==0){
				coupin.addCam(data);
				return false;
			}
		});

	},

/**
 * @class ajax
 * @description キャンペーン追加可能チェック
 */
	addCam:function(data){

		addcount = 1;

		$.ajax({
			type: "PUT",
			url: domain + "/rest/addUsingCampaign" + data,
			success: function(msg){
				coupin.callback(msg);
			}
		});

		//coupin.callback("TRUE");
	},

/**
 * @class ajax
 * @description キャンペーン削除
 */
	delCam:function(){
		$.ajax({
			type: "GET",
			url: domain + "/rest/deleteCampaign/",
			success: function(msg){
				coupin.callback(msg);
			}
		});
	},

/**
 * @class callback
 * @description キャンペーン追加可能チェックコールバック
 */
	callback:function(msg){
		if(msg == "TRUE"){
			$(".js-close").trigger("click");

			setTimeout( function() {
				location.reload(true);
			}, 300);
		}else{
			SUCCESS_TOOLTIP = SUCCESS_TOOLTIP.replace("${msg}", msg);
			addCartItem.success($(".js-campaign-submit"));
		}
	},


/**
 * @class clickCancel
 * @description 取消ボタンクリック
 */
	clickCancel:function(){
		$(".js-cancel-btn").click(function(){	/* 取消ボタンクリック */
			$(".js-coupin-items").remove();
			$(".couponCode").find("input").val("");
			return false;
		});
	},

/**
 * @class ajax
 * @description クーポン使用可能かチェック
 */
	ajax:function(code){
		$.ajax({
			type: "GET",
			url: domain + "/rest/getCoupinInfo/" + code ,
			success: function(xml){
				coupin.display(code,xml);
			}
		});
	},

/**
 * @class display
 * @description クーポン情報を表示
 */
	display:function(code, xml){
		couponOk=true;
		var data = xml;
		var html = "";

		var campaignDATA = $(".campaignID-DATA").text();
		var couponDATA = $(".couponID-DATA").text();
		var presentDATA = $(".presentID-DATA").text();

		if($(".js-coupin-items").css("display") != "block"){
			$(data).find("CampaignList Campaign").each(function(){

				var head = COUPIN_TEMPLATE_OPEN;
				var item = "";

				var CampaignName = $(this).find("mstCampaignHeader CampaignName").text();
				var CampaignID = $(this).find("mstCampaignHeader CampaignID").text();
				var CampaignDiscription = $(this).find("mstCampaignHeader CampaignDiscription").text();

				head = $$.replaceAll(head, "${CampaignID}", CampaignID);
				head = $$.replaceAll(head, "${CampaignName}", CampaignName);
				if(CampaignID == campaignDATA){
					head = $$.replaceAll(head, "${Cam-checked}", "checked");
				}
				else{
					head = $$.replaceAll(head, "${Cam-checked}", "");
				}
				head = head.replace("${CampaignDiscription}", CampaignDiscription);

				$(this).find("mstCampaignDetail record").each(function(){
					var tmp = COUPIN_TEMPLATE_ITEM;

					var id = CampaignID + $(this).find("CampaignGroupSEQ").text();
					var CampaignGroupDiscription = $(this).find("CampaignGroupDiscription").text();
					var img = $(this).find("PresentImagePath").text();
					var PresentMenuID  = $(this).find("PresentMenuID ").text();
					var PresentID = $(this).find("PresentID").text();

					tmp = $$.replaceAll(tmp, "${CampaignID}", CampaignID);
					tmp = $$.replaceAll(tmp, "${id}", id);
					tmp = tmp.replace("${CampaignGroupDiscription}", CampaignGroupDiscription);
					tmp = tmp.replace("${PresentMenuID}", PresentMenuID);
					tmp = tmp.replace("${PresentID}", PresentID);
					if(PresentMenuID == presentDATA){
						tmp = tmp.replace("${Pre-checked}", "checked");
					}
					else{
						tmp = tmp.replace("${Pre-checked}", "");
					}

					if(img){
						var imgSrc = COUPIN_TEMPLATE_ITEM_IMG;
						imgSrc = imgSrc.replace("${img}", img);
						imgSrc = imgSrc.replace("${CampaignGroupDiscription}", CampaignGroupDiscription);
						tmp = tmp.replace("${img}", imgSrc);
					}else{
						tmp = tmp.replace("${img}", "");
					}

					if(CampaignGroupDiscription)item += tmp;

				});

				head += item;
				head += COUPIN_TEMPLATE_END;

				html += head;
				var couponID = "campaignID-" + CampaignID;
				if(campaignDATA == CampaignID){
					$(".ccInnerBlock")[$(".ccInnerBlock").length-1].childNodes[0].childNodes[0].childNodes[0].checked = true;
					$(".couponCode").find("input").val(couponDATA);
				}
				$(".ccInnerBlock")[$(".ccInnerBlock").length-1].childNodes[0].childNodes[0].childNodes[0].id = couponID;
				//$(".ccInnerBlock")[$(".ccInnerBlock").length-1].attr("id", couponID);
				//$(".ccInnerBlock").attr("id", couponID);

			});
			if(!html){
				couponOk=false;
				$(".popupAddCart").remove();
				SUCCESS_TOOLTIP = TEMPLATE_TOOLTIP.replace("${msg}", "該当するWEB限定クーポンがありません。");
				addCartItem.success($(".js-couponcode-btn"));
				return false;
			}
			$(".couponCode").after(html);
		}

		this.clickCancel();
	},

	getData:function(){
		$.ajax({
			type: "GET",
			url: domain + "/rest/getApplyCampaign/",
			success: function(xml){
				coupin.setCampaign(xml);
			}
		});
	},

/**
 * @class setCampaign
 * @description キャンペーン情報を設定
 */
	setCampaign:function(xml){
		var data = xml;
		var html = "";

		var campaignDATA = $(".campaignID-DATA").text();
		var couponDATA = $(".couponID-DATA").text();
		var presentDATA = $(".presentID-DATA").text();

		$(data).find("CampaignList Campaign").each(function(){
			var head = TEMPLATE_OPEN;
			var item = "";

			var CampaignName = $(this).find("mstCampaignHeader CampaignName").text();
			var CampaignID = $(this).find("mstCampaignHeader CampaignID").text();
			var CampaignDiscription = $(this).find("mstCampaignHeader CampaignDiscription").text();

			head = $$.replaceAll(head, "${CampaignID}", CampaignID);
			head = $$.replaceAll(head, "${CampaignName}", CampaignName);
			if(CampaignID == campaignDATA){
				head = $$.replaceAll(head, "${Cam-checked}", "checked");
			}
			else{
				head = $$.replaceAll(head, "${Cam-checked}", "");
			}
			head = head.replace("${CampaignDiscription}", CampaignDiscription);

			$(this).find("mstCampaignDetail record").each(function(){
				var tmp = TEMPLATE_ITEM;

				var id = CampaignID + $(this).find("CampaignGroupSEQ").text();
				var CampaignGroupDiscription = $(this).find("CampaignGroupDiscription").text();
				var PresentMenuID = $(this).find("PresentMenuID").text();
				var img = $(this).find("PresentImagePath").text();

				tmp = $$.replaceAll(tmp, "${CampaignID}", CampaignID);
				tmp = $$.replaceAll(tmp, "${id}", id);
				tmp = tmp.replace("${CampaignGroupDiscription}", CampaignGroupDiscription);
				tmp = tmp.replace("${PresentMenuID}", PresentMenuID);
				if(PresentMenuID == presentDATA){
					tmp = tmp.replace("${Pre-checked}", "checked");
				}
				else{
					tmp = tmp.replace("${Pre-checked}", "");
				}

				if(img){
					var imgSrc = TEMPLATE_ITEM_IMG;
					imgSrc = imgSrc.replace("${img}", img);
					imgSrc = imgSrc.replace("${CampaignGroupDiscription}", CampaignGroupDiscription);
					tmp = tmp.replace("${img}", imgSrc);
				}else{
					tmp = tmp.replace("${img}", "");
				}

				if(CampaignGroupDiscription)item += tmp;
			});

			head += item;
			head += TEMPLATE_END;

			html += head;

			var delstr = '<div class="clmBox"><ul></ul></div>';
			html = html.replace( delstr , "" );
		});

		if(couponDATA != ""){
			coupin.ajax(couponDATA);
		}

		$("#js-CampaignArea").html(html);

		$(".js-coupon-btn").css("display", "block");
	//	this.click();
	}

}

var coupin = new getCoupinInfo();

$(document).ready(function(){
	coupin.initialize();
});

