var InquireManager = Class.create();
InquireManager.prototype = {
	arrTxtID:null,
	lenArrTxtID:0,
	initialize : function () {
		Event.observe($("btnConfirm"), "click", this.ValidateInput.bindAsEventListener(this));
		Event.observe($("btnModify"), "click", this.InputScreen.bindAsEventListener(this));
		Event.observe($("btnSubmit"), "click", this.formSubmit.bindAsEventListener(this));
		this.arrTxtID=["txtName","txtKana","txtAddr","txtAddrRet","txtTel","txtMsg"];
		this.lenArrTxtID=this.arrTxtID.length;
	},
	
	ValidateInput : function () {
		var result = true;
		var telResult = true;
		var mailResult = true;

		this.InitErrorMessage();
		
		var len=this.arrTxtID.length;
		for(var i=0;i<len;i++){
			var id=this.arrTxtID[i];
			var tmp=this.IsInputed(id);
			if(tmp===false){
				result=tmp;
				if((id=="txtAddr")||(id=="txtAddrRet")) mailResult=tmp;
				else if(id=="txtTel") telResult=tmp;
			}
		}

		if (mailResult) {
			if ($("txtAddr").value != $("txtAddrRet").value) {
				$("errAddr").innerHTML = "メールアドレスが一致しません";
				$("errAddrRet").innerHTML = "メールアドレスが一致しません";
				mailResult = false;
				result = false;
			}
		}

		if (mailResult) {
			mailResult = this.IsMailAddr($("txtAddr").value);
			if (mailResult == null) {
				$("errAddr").innerHTML = "メールアドレスの形式が不正です";
				$("errAddrRet").innerHTML = "メールアドレスの形式が不正です";
				result = false;
			}
		}

		if (telResult) {
			telResult = this.IsTel($("txtTel").value);
			if (telResult == null) {
				$("errTel").innerHTML = "電話番号の形式が不正です";
				result = false;
			}
		}
		if (result == true) this.ConfirmScreen();
	},
	
	IsInputed:function(id){
		var ret=true;
		if ($(id).value == "") {
			var errId="err"+id.replace("txt","");
			$(errId).innerHTML = "入力されていません";
			ret=false;
		}
		
		return ret;
	},
	
	InitErrorMessage : function () {
		$("errAddr").innerHTML = "";
		$("errAddrRet").innerHTML = "";
		$("errTel").innerHTML = "";
		$("errMsg").innerHTML = "";
		$("errName").innerHTML = "";
		$("errKana").innerHTML = "";
	},
	
	IsMailAddr : function (val) {
		var regAddr = new RegExp(/^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/);
		return val.match(regAddr);
	},
	
	IsTel : function (val) {
		var regTel = new RegExp(/^\d{2,4}\d{2,4}\d{4}$/);
		return val.match(regTel);
	},
	
	
	changeTextboxMode:function(id,mode){
		var valBorder="";
		var valReadOnly=false;
		var valOnmousedown="";
		
		if(mode=="confirm"){
			valBorder="0px";
			valReadOnly=true;
			valOnmousedown=function(e){
				if(window.ActiveXObject) event.returnValue=false;
				else e.preventDefault();
			}
		}
		
		$(id).style.border=valBorder;
		$(id).readOnly=valReadOnly;
		$(id).onmousedown=valOnmousedown;
	},
	
	ConfirmScreen : function () {
		$("msgAddr").innerHTML = "";
		$("msgTel").innerHTML = "";

		arrIrai = document.getElementsByName("Irai");
		for (i = 0; i < arrIrai.length; i++) {
			if (arrIrai[i].checked) {
				valIrai = arrIrai[i].value;
				$("hideIrai").value = valIrai;
			}
			else arrIrai[i].style.visibility = "hidden";
		}
		
		var len=this.arrTxtID.length;
		for(var i=0;i<len;i++){
			this.changeTextboxMode(this.arrTxtID[i],"confirm");
		}

		$("txtMsg").style.backgroundColor="#cccc99";
		$("hideMsg").value = $("txtMsg").value;
		//alert($("hideMsg").value);
		
		$("btnConfirm").style.visibility = "hidden";
		$("btnSubmit").style.visibility = "";
		$("btnModify").style.visibility = "";
		
		$("imgTitleConfirm").style.visibility = "";
		$("imgTitle").style.visibility = "hidden";
		
	},
	
	InputScreen : function (e) {
		$("msgAddr").innerHTML = "※ミス防止のため、２度入力お願いします。";
		$("msgTel").innerHTML = "※メールが届かなかったり、緊急な場合に使用させて頂きます。";
		
		arrIrai = document.getElementsByName("Irai");
		for (i = 0; i < arrIrai.length; i++) {
			arrIrai[i].style.visibility = "";
		}
		
		for(var i=0;i<this.lenArrTxtID;i++){
			this.changeTextboxMode(this.arrTxtID[i],"input");
		}
		
		$("txtMsg").style.backgroundColor="";

		$("imgTitleConfirm").style.visibility = "hidden";
		$("imgTitle").style.visibility = "";
		
		$("btnConfirm").style.visibility = "";
		$("btnSubmit").style.visibility = "hidden";
		$("btnModify").style.visibility = "hidden";
		
		if (window.ActiveXObject) event.cancelBubble = true;
		else e.preventDefault();
	},
	
	formSubmit:function(e){
		document.frmMail.submit();
	}
	
}


