var FanMail = {
	
	/* 定数
	==================================================================================================== */
	formId:"#form",
	helpId:"#help",
	sendingId:"#sending",
	errorId:"#error",
	completeId:"#complete",
	
	helpOpenBtId:"#hopen",
	helpCloseBtId:"#hclose",
	sendBtId:"#send>img",
	msgbxId:"#msg",
	
	fadeTime:500,
	
	
	/* 初期化
	==================================================================================================== */
	init:function(){
		$(window).bind("load",FanMail.setEvent);
	},
	
	
	/* クロスフェード
	==================================================================================================== */
	crossFade:function(target1,target2,time,callback){
		if(target1!=null) target1.fadeOut(time,callback);
		if(target2!=null) target2.fadeIn(time);
	},
	
	
	/* ヘルプの表示切替
	==================================================================================================== */
	helpToggle:function(e){
		if(e.data.flag==true){
			FanMail.crossFade($(FanMail.formId),$(FanMail.helpId),FanMail.fadeTime);
			FanMail.crossFade($(FanMail.helpOpenBtId),$(FanMail.helpCloseBtId),FanMail.fadeTime);
		}else{
			FanMail.crossFade($(FanMail.helpId),$(FanMail.formId),FanMail.fadeTime);
			FanMail.crossFade($(FanMail.helpCloseBtId),$(FanMail.helpOpenBtId),FanMail.fadeTime);
		}
		return false;
	},
	
	
	/* 送信準備
	==================================================================================================== */
	sendReady:function(){
		//メッセージ未入力または、文字が無ければ終了
		if(FanMail.getMsg().match(/[^ 　\f\n\r\t\v]/)==null){
			alert("メッセージを入力して下さい。");
			return false;
		}
		//『？』ボタンの消去
		FanMail.crossFade($(FanMail.helpOpenBtId),null,FanMail.fadeTime);
		//『フォーム』の消去と『送信中』の表示
		FanMail.crossFade($(FanMail.formId),$(FanMail.sendingId),FanMail.fadeTime,FanMail.send);
	},
	
	
	/* 送信
	==================================================================================================== */
	send:function(){
		//送信オブジェクトの作成
		var sendObj = {
			type     :"post",
			url      :"fanmail/fanmail.php",
			data     :{ "message":FanMail.getMsg() },
			success  :FanMail.success,
			error    :FanMail.failure
		};
		//送信
		$.ajax(sendObj);
	},
	
	
	/* 送信完了成功
	==================================================================================================== */
	success:function(d,dt){
		switch(d){
			case "1":
				//送信完了処理
				FanMail.sendComplete();
				break;
			case "0":
				//送信エラー処理
				FanMail.sendError();
				break;
			case "-1":
				//送信エラー処理
				FanMail.sendError();
				break;
		}
	},
	
	
	/* 送信失敗（プログラムファイルが存在しない場合）
	==================================================================================================== */
	failure:function(XMLHttpRequest,textStatus,errorThrown){
		//送信エラー処理
		FanMail.sendError();
	},
	
	
	/* 送信完了
	==================================================================================================== */
	sendComplete:function(){
		//『送信中』の消去と『送信完了』の表示
		FanMail.crossFade($(FanMail.sendingId),$(FanMail.completeId),FanMail.fadeTime);
		setTimeout(function(){
														//メッセージ記入欄を空に
														$(FanMail.msgbxId).val("");
														//『送信完了』の消去と『フォーム』の表示
														FanMail.crossFade($(FanMail.completeId),$(FanMail.formId),FanMail.fadeTime);
														//『？』ボタンの表示
														FanMail.crossFade(null,$(FanMail.helpOpenBtId),FanMail.fadeTime);
													},5000);
	},
	
	
	/* 送信エラー
	==================================================================================================== */
	sendError:function(){
		//『送信中』の消去と『送信エラー』の表示
		FanMail.crossFade($(FanMail.sendingId),$(FanMail.errorId),FanMail.fadeTime);
		setTimeout(function(){
														//『送信エラー』の消去と『フォーム』の表示
														FanMail.crossFade($(FanMail.errorId),$(FanMail.formId),FanMail.fadeTime);
														//『？』ボタンの表示
														FanMail.crossFade(null,$(FanMail.helpOpenBtId),FanMail.fadeTime);
													},5000);
	},
	
	
	/* 入力メッセージの取得
	==================================================================================================== */
	getMsg:function(){
		return $(this.msgbxId).val();
	},
	
	
	/* IE専用調整処理
	==================================================================================================== */
	adjustIE:function(){
		//jpgに差換え
		$(FanMail.sendBtId/*+">img"*/)[0].src  = "img/funmail_bt_send_off.jpg";
		$(FanMail.helpOpenBtId+">img")[0].src  = "img/funmail_ic_help.jpg";
		$(FanMail.helpCloseBtId+">img")[0].src = "img/funmail_ic_close.jpg";
	},
	
	
	/* イベント設定
	==================================================================================================== */
	setEvent:function(){
		var ie = (/*@cc_on!@*/false);
		if(ie==true){ FanMail.adjustIE(); }
		$(FanMail.sendBtId).bind("click",FanMail.sendReady);
		$(FanMail.helpOpenBtId).bind("click",{ flag:true },FanMail.helpToggle);
		$(FanMail.helpCloseBtId).bind("click",{ flag:false },FanMail.helpToggle);
		$("#fanmail").css("display","block");
	}
	
};
FanMail.init();
