﻿/*********************************************
* KAI Touch Project!
* Form Content
* 
* extend JQuery
* @version  : 0.2
* @author   : s.hirota
*********************************************/
$.fn.KaiForm = 
{
	phpPath   : "http://www.kai-group.com/jp/kaitouch/mail.php", //../../mail.php
	area      : $("#homeContactForm"),
	_clickFlg : false,
	_blog     : " ",
	_nickName : " ",
	_mail     : " ",
	_comment  : " ",
	_captcha   : " ",
	
	/**
	* 初期化
	*/
	formInit : function()
	{
		$().KaiForm._clickFlg = false;
		$("#contactConfBtn").click(function(){
			var commentCheck = $().KaiForm.checkComment();
			var captchaCheck = $().KaiForm.checkCaptcha();
			var mailCheck = $().KaiForm.mailCheck();
			////確認画面表示
			if(commentCheck == " " && captchaCheck == " " && mailCheck)
			{
				
				var _params = 
				{
						cmd      : 1,
						captcha  : $("#captcha").val()
				};
				////FOR TEST
				/* $().KaiForm.setData();
				$().KaiForm.refresh();
				$().KaiForm.confirm();
				$().KaiForm.setBackBtn();
				$().KaiForm.setSendBtn();
				 */
				jQuery.post($().KaiForm.phpPath, _params, function(event, status)
				{
					//$().KaiForm._clickFlg = false;
					document.getElementById("commentError").innerHTML = " ";
					if(event == 1)
					{
						$().KaiForm.setData();
						$().KaiForm.refresh();
						$().KaiForm.confirm();
						$().KaiForm.setBackBtn();
						$().KaiForm.setSendBtn();
					}
					else
					{
						document.getElementById("captchaError").innerHTML = "※一致しませんでした";
					}
				});
			}
			else
			{//エラー出力
				document.getElementById("commentError").innerHTML = commentCheck;
				document.getElementById("captchaError").innerHTML = captchaCheck;
				if(!mailCheck)
					document.getElementById("mailError").innerHTML = $().KaiForm.isMail() ? "※入力形式が正しくありません" : "※メールアドレスをご記入ください";
				else
					document.getElementById("mailError").innerHTML = " ";
			}
		});
	},
	
	/**
	* PHPにデータを送る
	*/
	sendToPHP : function()
	{
		if($().KaiForm._clickFlg) return;
		$().KaiForm._clickFlg = true;
		
		var _params = 
		{
				blog     : this._blog,
				nickName : this._nickName,
				mail     : this._mail,
				captcha  : this._captcha,
				comment  : this._comment
		};
		
		////FOR TEST
		//$().KaiForm.resultRender();
		jQuery.post($().KaiForm.phpPath, _params, function(event, status)
		{
			if(event == 1)
			{
				$().KaiForm.resultRender();
			}
			else if(event == 2)
			{
				$().KaiForm.sendCaptchaError();
			}
			else
			{
				$().KaiForm.sendError();
			}
		});
		
	},
	
	/**
	* データをセットする
	*/
	setData : function()
	{
		this._blog = $("#contactBlog").val();
		this._nickName = $("#contactName").val();
		this._captcha = $("#captcha").val();
		this._mail = $("#contactMail").val();
		this._comment = $("#contactComment").val();
	},
	/**
	* コメント記入チェック
	*/
	checkComment : function()
	{
		var result = " ";
		if( $("#contactComment").val() == undefined || $("#contactComment").val() == "" || $("#contactComment").val() == " ")
			result += " ※「コメント」をご記入ください";
		return result;
	},
	
	/**
	* キャプチャ記入チェック
	*/
	checkCaptcha : function()
	{
		//if($().KaiForm._clickFlg) return;
		//$().KaiForm._clickFlg = true;
		
		var result = " ";
		var captcha = $("#captcha").val();
		if( captcha == "" || captcha == undefined)
			result += "※入力して下さい";
		return result;
		
	},
	
	/**
	* メールチェック
	*/
	mailCheck : function()
	{
		var $data = $("#contactMail").val();
		
		if($data == "") return false;
		if ($data.match(/^([.0-9a-z_+-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,})$/i))
			return true;
		else
			return false;
	},
	
	isMail : function()
	{
		var $data = $("#contactMail").val();
		if($data == "") return false;
		else return true;
	},
	
	/**
	* 描画領域のリフレッシュ
	*/
	refresh : function()
	{
		$("#homeContactForm").html(" ");
	},
	
	/**
	* 確認画面表示
	*/
	confirm : function()
	{
		var html = '<div>内容をご確認の上、<br />よろしければ送信ボタンを押してください。</div> ';
		html += '<div class="confParagraph">*ブログURL（持っている方のみ）</div>';
		html += '<div>' + this._blog + '</div>';
		html += '<div class="confParagraph">*ニックネーム</div>';
		html += '<div>' + this._nickName + '</div>';
		html += '<div class="confParagraph">*メールアドレス（プレゼント発表のご連絡先）</div>';
		html += '<div>' + this._mail + '</div>';
		html += '<div class="confParagraph">*コメント（任意）</div>';
		html += '<div class="commentArea"><pre>' + this._comment + '</pre></div>';
		html += '<div id="homeSendBtn2">';
		html += '<input id="contactBackBtn" type="image" name="back" value="戻る" src="img/home/home_send_btn3.gif" />&nbsp;';
		html += '<input id="contactSendBtn" type="image" name="send" value="送信" src="img/home/home_send_btn2.gif" /></div>';
		document.getElementById("homeContactForm").innerHTML = html;
		//$("#homeContactForm").html(html);
	},
	
	/**
	* 初期表示に戻す
	* @param $blog, $name, $mail, $comment 初期値
	*/
	resetNode : function($blog, $name, $mail, $comment)
	{
		var html = '<div>ブログURL（持っている方のみ）</div>';
		html += '<div class="homeInputArea"><input type="text" id="contactBlog" name="blog" value="' + $blog + '" /></div>';
		html += '<div>ニックネーム（任意）</div>';
		html += '<div class="homeInputArea"><input type="text" id="contactName" name="name" value="' + $name + '" /></div>';
		html += '<div>メールアドレス（※必須） <div id="mailError">　</div></div>';
		html += '<div class="homeInputArea"><input type="text" id="contactMail" name="email" value="' + $mail + '" /></div>';
		html += '<div>コメント（※必須） <div id="commentError">　</div></div>';
		html += '<div class="homeInputArea"><textarea rows="5" id="contactComment" name="comment">' + $comment + '</textarea></div>';
		html += '<div>画像の文字を入力してください（※必須） <div id="captchaError">　</div></div>';
		html += '<div><img id="imgCaptcha" src="create_image.php" />&nbsp;<input id="captcha" type="text" value="" maxlength="10" size="20" /></div>'
		
		html += '<div id="homeSendBtn"><input id="contactConfBtn" type="image" name="conf" value="確認" src="img/home/home_send_btn.gif" /></div>';
		$("#homeContactForm").html(html);
		$().KaiForm.formInit();
	},
	
	/**
	* 戻るボタンの設定
	*/
	setBackBtn : function()
	{
		$("#contactBackBtn").click(function()
		{
			$().KaiForm.resetNode($().KaiForm._blog, $().KaiForm._nickName, $().KaiForm._mail, $().KaiForm._comment);
		});
	},
	
	/**
	* 送るボタンの設定
	*/
	setSendBtn : function()
	{
		$("#contactSendBtn").click(function()
		{
			$().KaiForm.sendToPHP();
		});
	},
	
	/**
	* エラー出力
	*/
	errorRender : function(nameError)
	{
		$("#nameError").html(nameError);
	},
	
	/**
	* 送信完了後
	*/
	resultRender : function()
	{
		var html = '<div class="sendError sendResult"><span style="color:#000000;font-weight:bold;">お問い合せ内容を送信いたしました。</span></div>';
		html += '<div class="sendResult">後日あらためて担当者からご連絡しますので、<br />今しばらくお待ちください。</div>';
		$("#homeContactForm").html(html);
		
		$(".sendResult").fadeTo(6000, 1, function()
		{
			$(".sendResult").fadeOut(1000, function()
			{
				$().KaiForm.resetNode("", "", "", "");
				$().KaiForm.formInit();
			})
		})
	},
	
	/**
	* 送信エラー
	*/
	sendError : function()
	{
		var html = '<div class="sendError"><span style="font-weight:bold">通信エラーが発生しました。</span><br />お手数ですが再度送信してください。</div>';
		html += '<div id="homeSendBtn"><input id="contactBackBtn" type="image" name="back" value="戻る" src="img/home/home_send_btn3.gif" /></div>';
		$("#homeContactForm").html(html);
		$().KaiForm.setBackBtn();
	},
	
	/**
	* キャプチャエラー
	*/
	sendCaptchaError : function()
	{
		var html = '<div class="sendError"><span style="font-weight:bold">画像内の文字列と一致しませんでした。</span><br />お手数ですが再度送信してください。</div>';
		html += '<div id="homeSendBtn"><input id="contactBackBtn" type="image" name="back" value="戻る" src="img/home/home_send_btn3.gif" /></div>';
		$("#homeContactForm").html(html);
		$().KaiForm.setBackBtn();
	}
}
$(function()
{
	$().KaiForm.formInit();
});
