/*******************************
Setting
*******************************/


/*******************************
Execution
*******************************/
$(function(){
	//レジページ
	if(page=="regi"){
		xPref();//配送先照合のチェック(選択時)
		xGift();//ギフト情報がある場合は入力表示
		xDeliveryCheck();//配送先チェックボックス
		xOriginalMessage();//ギフト用オリジナルメッセージ入力表示
		$("button#check_btn").click(xCheckView);//値確認・表示
		$("button#edit_btn").click(xEditView);//再編集
		$("button#send_btn").click(xSend);///送信
		xBlockEnter($("form#regi_form"));
	}else if(page=="contact"){
		xSendContact();
	}
});
/*******************************
Function
*******************************/
//cart_naviの切り替え
function xChgCartNavi(n){
	var h=(n-1)*-75;
	$("ul#cart_navi").css("backgroundPosition","0 "+h+"px");
}
//配送先照合のチェック(選択時)
function xPref(){
	var post_cookie=$.cookie("post");
	var current_select="";
	$("#customer_pref").val(post_cookie).change(function(){
		current_select=$(this).val();
		if(current_select!=post_cookie){
			$("#delivery_check").attr("checked",true);
			$("fieldset#delivery_field").slideDown();
		}
	});
}
//ギフト情報がある場合は入力表示
function xGift(){
	if(Number($.cookie("pkg"))) $("fieldset#gift_field").css("display","block");
}

//配送先チェックボックス
function xDeliveryCheck(){
	var target_el=$("fieldset#delivery_field");
	$("#delivery_check").removeAttr("checked").click(function(){
		if($(this).attr("checked")){
			target_el.slideDown();
		}else{
			//指定した配送先とお届け先が一致しない場合
			if($("#customer_pref").val()!=$.cookie("post")){
				alert("お届け先を別に指定されない場合、お客様のご住所欄には、ショッピングカートページで指定した配送先を選択する必要があります。");
				$(this).attr("checked",true);
			}
			else target_el.slideUp();
		}
	});
}

//ギフト用オリジナルメッセージ入力表示
function xOriginalMessage(){
	var target_el=$("textarea#gift_original_message");
	$("input:radio#gift_message1").attr("checked","checked");
	$("input:radio[name='gift_message']","fieldset#gift_field").change(function(){
		if($(this).val()==5) target_el.slideDown();
		else target_el.slideUp();
	});
	
}

//値チェック
function xAllCheck(){
	var b=true;
	//お客様情報
	$.each($(".mail","fieldset#customer_field"),function(){if(!xValueCheck("mail",$(this))) b=false;});
	//if(!xValueCheck("sel",$("select#customer_pref","fieldset#customer_field"))) b=false;
	$.each($(".blank","fieldset#customer_field"),function(){if(!xValueCheck("blank",$(this))) b=false;});
	$.each($(".zip","fieldset#customer_field"),function(){if(!xValueCheck("zip",$(this))) b=false;});
	$.each($(".tel","fieldset#customer_field"),function(){if(!xValueCheck("tel",$(this))) b=false;});
	//お届け先情報
	if($("input#delivery_check").attr("checked")){
		$.each($(".blank","fieldset#delivery_field"),function(){if(!xValueCheck("blank",$(this))) b=false;});
		$.each($(".zip","fieldset#delivery_field"),function(){if(!xValueCheck("zip",$(this))) b=false;});
		$.each($(".tel","fieldset#delivery_field"),function(){if(!xValueCheck("tel",$(this))) b=false;});
	}
	//ギフト項目
	if($("input[@type='radio']:checked","fieldset#gift_field").val()==5&&$.cookie("pkg")){
		if(!xValueCheck("blank",$("textarea#gift_original_message"))) b=false;
	}
	if(!b) xValueError();
	return b;
}

//送信
function xSend(){
	var myForms=$("form#regi_form");
	$("button#edit_btn").hide();
	$("button#send_btn").hide();
	$("p#ssl_message").hide();
	xPageTopFix();
	$("div#send_area").html("").show();
	$("div#send_area").html("<h3 style='display:block;background:transparent url(../wp-content/themes/pu-pi/images/share/loader.gif) no-repeat;text-indent:50px;'>送信中です...</h3><p id='send_message'>しばらくお待ちください。</p>");
	$.ajax({
		url:xGetSSL()+"/wp-content/themes/pu-pi/shop/send.php",
		type:myForms.attr("method"),
		data:myForms.serialize(),
		success:function(m){
			if(m=="1"){
				$("div#send_area").html("<h3>ご注文ありがとうございました。</h3><p id='send_message'>下記の内容にて、ご注文を承りました。<br />pu-piから自動送信のご注文確認メールをお送りします。 <br />お手元に確認メールが届かない場合は、[迷惑メール]フォルダに誤って振り分けられていないかご確認ください。<br />それでもお手元に確認メールが届かない場合は、お手数ですがお問い合わせフォームよりご連絡いただくか、<a href='mailto:contact@pu-pi.com' title='contact@pu-pi.com<'>contact@pu-pi.com</a> までご連絡ください。</p>");
				xChgCartNavi(4);
				xSaveCookie("pu-pi",null);
				xSaveCookie("pkg",null);
				xSaveCookie("post",null);
				xSaveCookie("pay",null);
			}else if(m=="2"){
				$("div#send_area").html("<h3>在庫数が変動しました。</h3><p id='send_message'>お求めいただいた商品数量をお買い上げできなくなりました。<br />恐れ入りますが、今一度商品をご検討ください。</p>");
				alert("お求めいただいた商品数量をお買い上げできなくなりました。恐れ入りますが、今一度商品をご検討ください。");
			}else{
				$("div#send_area").html("<h3>送信エラーです。</h3><p id='send_message'>恐れ入りますが、しばらく経ってからもう一度送信ください。</p>");
				alert("送信エラーです。恐れ入りますが、しばらく経ってからもう一度送信ください。");
			}
		},
		error:function(m){
			$("div#send_area").html("<h3>送信エラーです。</h3><p id='send_message'>恐れ入りますが、しばらく経ってからもう一度送信ください。</p>");
			alert("送信エラーです。恐れ入りますが、しばらく経ってからもう一度送信ください。");
		}
	});
	return false;
}

//チェック画面表示
function xCheckView(){
	if(!$.cookie("pu-pi")){
		alert("この内容は受付済みです。");
		$('html').empty();
		window.location.href='https://ss1.xrea.com/pu-pi.com/cart/';	
	}else if(xAllCheck()){
		var name,name2,kana,kana2,add,add2,mail,mail2,tel,tel2;
		//お客様情報
		name=name2=$("input#customer_name","fieldset#customer_field").val();
		kana=kana2=$("input#customer_kana","fieldset#customer_field").val();
		add=add2="〒"+$("input#customer_zip","fieldset#customer_field").val()+"<br />"+$("option:eq("+$("select#customer_pref","fieldset#customer_field").val()+")","select#customer_pref").text()+$("textarea#customer_add","fieldset#customer_field").val();
		mail=mail2=$("input#customer_mail","fieldset#customer_field").val();
		tel=tel2=$("input#customer_tel","fieldset#customer_field").val();
		$("dd#check_customer_name","div#check_customer_area").text(name);
		$("dd#check_customer_kana","div#check_customer_area").text(kana);
		$("dd#check_customer_add","div#check_customer_area").html(add);
		$("dd#check_customer_mail","div#check_customer_area").text(mail);
		$("dd#check_customer_tel","div#check_customer_area").text(tel);
		//お届け先情報
		if($("input#delivery_check").attr("checked")){
			name2=$("input#delivery_name","fieldset#delivery_field").val();
			kana2=$("input#delivery_kana","fieldset#delivery_field").val();
			add2="〒"+$("input#delivery_zip","fieldset#delivery_field").val()+"<br />"+$("option:eq(0)","select#delivery_pref").text()+$("textarea#delivery_add","fieldset#delivery_field").val();
			mail2=$("input#delivery_mail","fieldset#delivery_field").val();
			tel2=$("input#delivery_tel","fieldset#delivery_field").val();
		}
		$("dd#check_delivery_name","div#check_delivery_area").text(name2);
		$("dd#check_delivery_kana","div#check_delivery_area").text(kana2);
		$("dd#check_delivery_add","div#check_delivery_area").html(add2);
		$("dd#check_delivery_mail","div#check_delivery_area").text(mail2);
		$("dd#check_delivery_tel","div#check_delivery_area").text(tel2);
		//ギフト
		if($.cookie("pkg")){
			var gift_message_el=$("input[@type='radio']:checked","fieldset#gift_field");
			var gift_message=(gift_message_el.val()==5)?$("textarea#gift_original_message","fieldset#gift_field").val():gift_message_el.parent().text();
			$("dd#check_gift_message","div#check_gift_area").text(gift_message);
			$("dd#check_gift_comment","div#check_gift_area").text($("textarea#gift_comment","fieldset#gift_field").val()||"　-　");
		}else{
			$("div#check_gift_area").hide();
		}
		//オプション
		var recipt=($("input#recipt","fieldset#option_field").attr("checked"))?"発行する":"発行しない";
		$("dd#check_recipt","div#check_option_area").text(recipt);
		$("dd#check_comment","div#check_option_area").text($("textarea#comment","fieldset#option_field").val()||"　-　");
		//表示・非表示
		$("a#back_cart").hide();
		$("div#form_area").hide();
		$("div#check_area").show();
		 xChgCartNavi(3);
		 xPageTopFix();
	}
	return false;
}

//編集画面
function xEditView(){
	$("a#back_cart").show();
	$("div#form_area").show();
	$("div#check_area").hide();
	 xChgCartNavi(2);
	xPageTopFix();
	 return false;
}


//ページトップへ
function xPageTopFix(){
	document.documentElement.scrollTop=0;
	document.body.scrollTop=0;
}

//値不正エラー処理
function xValueError(){
	alert("入力内容に誤りがあります。");
	xPageTopFix();
}

//値チェック
function xValueCheck(type,obj){
	var b=false;
	var val=obj.val();
	switch(type){
		case "mail":
			b=(val.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/)==null);break;
			
		case "blank":
			b=(val.match(/\S/) == null);break;
			
		case "tel":
			val=val.replace(/([Ａ-Ｚａ-ｚ０-９＿])/g,function ($0) {return String.fromCharCode($0.charCodeAt(0)-65248)});
			val=val.replace("ー","-");
			obj.val(val);
			var count=0;var b=false;
			for(var i=0;i<val.length;i++){
				var c=val.charAt(i);
				if("0"<=c&&c<="9"){
					count++;
					continue;
				}else{
					if(c=="-")continue;b=true;
				}
			}
			if(count<10)b=true;
			break;
		
		case "zip":
			val=val.replace(/([Ａ-Ｚａ-ｚ０-９＿])/g,function ($0) {return String.fromCharCode($0.charCodeAt(0)-65248)});
			val=val.replace("ー","-");
			b=!(val.length>6 && val.match(/^\d{3}-\d{4}$|^\d{3}-\d{2}$|^\d{3}$/));
			obj.val(val);
			break;
		

		case "sel":
			b=(val=="0")?true:false;break;
		
		default:b=false;
	}
	if(b) obj.parent().addClass("error");
	else obj.parent().removeClass("error");
	return !b;
}

//
function xBlockEnter(myForms){
	var inputTarget = $(":text,:password",myForms);
	//値リセット
	myForms[0].reset();
	$.each(inputTarget,function(){$(this).val("");});
	
	//input要素入力時Enterキー押下動作(送信を無効化、次タブへの移動、onChgngeアクションの実行)
	inputTarget.keypress(function(evt){
		evt=(evt)?evt:event;
		var charCode=(evt.charCode)?evt.charCode:((evt.which)?evt.which:evt.keyCode);
		if(Number(charCode)== 13||Number(charCode)==3){
			return false;
		}else{
			return true;
		}
	});
}
function xSendContact(){
	var myForms=$("form#form_contact_js");
	 xBlockEnter(myForms);
	 $("textarea").text("");
	 $("#caution").remove();
	$("#send").click(function(){
		var str="";
		var b=true;
		if(!xValueCheck("blank",$("#name"))){str="氏名が入力されていません。\n";b=false;}
		if(!xValueCheck("blank",$("#kana"))){str+="フリガナが入力されていません。\n";b=false;}
		if(!xValueCheck("mail",$("#mail"))){str+="メールアドレスの形式が不明です。\n";b=false;}
		if(!xValueCheck("blank",$("#comment"))){str+="お問い合わせ内容が入力されていません。\n";b=false;}
		if(b){
			if(confirm("入力を確定して送信します。")){
				$("#escort").html("<span style='display:block;background:transparent url(../wp-content/themes/pu-pi/images/share/loader.gif) no-repeat;text-indent:50px;'>送信中...</span>しばらくお待ちください。");
				$(".attention").remove();
				$("#form_title").remove();
				$("html,body").scrollTop(0);
				myForms.hide();
				$.ajax({
					url:xGetSSL()+"/wp-content/themes/pu-pi/contents/mail_send.php",
					type:myForms.attr("method"),
					data:myForms.serialize(),
					success:function(m){
						if(m=="1"){
							myForms.remove();
							$("#escort").html("<span>入力された内容は正常に送信されました。</span>お問い合わせありがとうざいました。");
						}else{
							$("#escort").html("<span>送信エラーです！</span>恐れ入りますが、しばらく経ってからもう一度送信ください。");
							alert("送信エラーです。恐れ入りますが、しばらく経ってからもう一度送信ください。");
						}
					},
					error:function(){
						$("#escort").html("<span>送信エラーです！</span>恐れ入りますが、しばらく経ってからもう一度送信ください。");
						alert("送信エラーです。恐れ入りますが、しばらく経ってからもう一度送信ください");
					}
				});
			}
		}else{
			alert(str);			
		}
	});
}

