var inquiry;

var onInquiryClickFormButton = function() {
	inquiry.onClickFormButton();
}
var onInquiryClickBackButton = function() {
	inquiry.onClickBackButton();
}
var onInquiryClickConfirmButton = function() {
	inquiry.onClickConfirmButton();
}
var onSuccessSendInputs = function() {
	inquiry.onSuccessSendInputs();
}

//--------------------- InquiryInputs ---------------------//
var InquiryInputs = function() {
	this.inq1 = '';
	this.inq2 = '';
	this.inq3 = '';
	this.inq4 = '';
	this.inq5 = '';
	this.inq6 = '';
	this.inq7 = '';
}
InquiryInputs.prototype.update = function() {
	this.inq1 = $('input[name=inq1]:checked').val();
	this.inq2 = $('input[name=inq2]').val();
	this.inq3 = $('input[name=inq3]').val();
	this.inq4 = $('input[name=inq4]').val();
	this.inq5 = $('input[name=inq5]').val();
	this.inq6 = $('input[name=inq6]').val();
	this.inq7 = $('#inq7').val();
}
InquiryInputs.prototype.toObject = function() {
	return {
		'inq1':this.inq1,
		'inq2':this.inq2,
		'inq3':this.inq3,
		'inq4':this.inq4,
		'inq5':this.inq5,
		'inq6':this.inq6,
		'inq7':this.inq7
	};
}
//--------------------- InquiryInputs ---------------------//


//--------------------- Inquiry ---------------------//
var Inquiry = function() {
	this.readElement = $('#inquiry_read');
	this.formRadioButton = $('#inquiry_nav');
	this.formElement = $('#inquiry_form');
	this.confirmElement = $('#inquiry_confirm');
	this.thanksElement = $('#inquiry_thanks');
	this.errorElement = $('#inquiry_error');
	this.errorContainerElement = $('#inquiry_error > .ullist');
	this.error;
	this.inputs = new InquiryInputs;
	
	this.isFocusedTextarea = false;
	
	this.init();
}
Inquiry.prototype.init = function() {
	this.confirmElement.hide();
	this.thanksElement.hide();
	this.errorElement.hide();
	
	this.clearError();
	
	$('#inquiry_form_button').click(onInquiryClickFormButton);
	$('#inquiry_back_button').click(onInquiryClickBackButton);
	$('#inquiry_confirm_button').click(onInquiryClickConfirmButton);
	
	//press enter
	$("#inquiry_form").keypress(function(event) {
		if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) {
			if (!inquiry.isFocusedTextarea) inquiry.onClickFormButton();
		}
	});
	$("#inq7").focus(function() {
		inquiry.isFocusedTextarea = true;
	});
	$("#inq7").blur(function() {
		inquiry.isFocusedTextarea = false;
	});
}
Inquiry.prototype.onClickFormButton = function() {
	this.clearError();
	this.inputs.update();
	this.checkInputs();
	
	if (this.error.length > 0) {
		for (var i=0; i<this.error.length; i++) {
			this.errorContainerElement.append(this.error[i]);
		}
		this.errorElement.fadeIn(1000);
	}
	else {
		this.clearError();
		this.showConfirm();
	}
}
Inquiry.prototype.onClickBackButton = function() {
	this.showForm();
}
Inquiry.prototype.onClickConfirmButton = function() {
	this.sendInputs();
}
Inquiry.prototype.showForm = function() {
	this.readElement.fadeIn(400);
	this.formRadioButton.fadeIn(400);
	this.formElement.fadeIn(400);
	this.confirmElement.fadeOut(200);
}
Inquiry.prototype.showConfirm = function() {
	var inq7 = this.inputs.inq7;
	inq7 = inq7.replace(/\r\n/g, '<br />');
	inq7 = inq7.replace(/(\n|\r)/g, '<br />');
	
	$('#inq1_confirm').empty().append(this.inputs.inq1);
	$('#inq2_confirm').empty().append(this.inputs.inq2);
	$('#inq3_confirm').empty().append(this.inputs.inq3);
	$('#inq4_confirm').empty().append(this.inputs.inq4);
	$('#inq5_confirm').empty().append(this.inputs.inq5);
	$('#inq6_confirm').empty().append(this.inputs.inq6);
	$('#inq7_confirm').empty().append(inq7);
	
	this.readElement.fadeOut(200);
	this.formRadioButton.fadeOut(200);
	this.formElement.fadeOut(200);
	this.confirmElement.fadeIn(400);
}
Inquiry.prototype.showThanks = function() {
	this.confirmElement.fadeOut(200);
	this.thanksElement.fadeIn(400);
}
Inquiry.prototype.checkInputs = function() {
	if (this.inputs.inq2 == '') this.error.push('<li>「お名前」を入力して下さい。</li>');
	if (this.inputs.inq3 == '') this.error.push('<li>「メールアドレス」を入力して下さい。</li>');
	else if (!this.inputs.inq3.match(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/)) this.error.push('<li>「メールアドレス」を正しく入力して下さい。</li>');
	if (this.inputs.inq7 == '') this.error.push('<li>「お問い合わせ内容詳細」を入力して下さい。</li>');
}
Inquiry.prototype.clearError = function() {
	this.error = new Array;
	this.errorElement.hide();
	
	this.errorContainerElement.empty();
}
Inquiry.prototype.sendInputs = function() {
	$.post('./___server.php',
	inquiry.inputs.toObject(),
	function(data) {
		inquiry.onSuccessSendInputs(data);
	});
}
Inquiry.prototype.onSuccessSendInputs = function(data) {
	this.showThanks();
}
//--------------------- Inquiry ---------------------//




