MakeForm = function(){ };
MakeForm.setUnip = function(){ };
MakeForm.cookieId = 'atmailform';
MakeForm.Running = 0;
MakeForm.form = [];
MakeForm.Errors = [];
MakeForm.PUSH = [];

MakeForm.ErrorConfig = 1;
MakeForm.ConfirmConfig = 1;
MakeForm.ErrorMessage = '以下の項目に誤りがあります。';
MakeForm.ConfirmMessage = '送信します。よろしいですか？';
MakeForm.thanksMessage = '送信しました。\nお問い合わせ、ありがとうございます。';
MakeForm.ErrorMesDef = '(未入力)';
MakeForm.ErrorMesEmail_1 = '(形式不備)';
MakeForm.ErrorMesEmail_2 = '(不一致)';
MakeForm.ErrorMesDate = '(存在しない日付)';

MakeForm.data = new Array();
//
MakeForm.data['sei'] = new Array('氏名','name');
MakeForm.data['mei'] = new Array('氏名','name');
MakeForm.data['mail'] = new Array('メールアドレス','mail');
MakeForm.data['_mail'] = new Array('メールアドレス確認','_mail');
MakeForm.data['free_3'] = new Array('お問い合わせ内容','free_3');
MakeForm.p = new Array('sei','mei','mail','_mail','free_3');


MakeForm.chekced = new Array();

MakeForm.check = function(f){
	// 初期化
	MakeForm.Errors = [];
	MakeForm.PUSH = [];
	var results = new Array;
	var element = new Array;
	
	for(i=0;i<f.length;i++){
		var objName = f[i].name;
		var objType = f[i].type;
		var objValue = f[i].value;
		var elems = MakeForm.data[objName];
		var error_message = "";
		
		// チェック済み項目
		MakeForm.chekced[objName] = 1;
		
		// 必須項目以外は除外
		if( !elems ) continue;
		
		var objTitle = elems[0];
		var objExcept = elems[1];
		
		if( objName == 'mail' ){
			if( objValue == '' ){
				error_message =  objTitle + ' ' + MakeForm.ErrorMesDef;
			}else{
				if( !MakeForm.isEmail(objValue) ){
					error_message =  objTitle + ' ' + MakeForm.ErrorMesEmail_1;
				}
			}
		}
		else if( objName == '_mail' ){
			if( objValue == '' ){
				if( f.mail.value != '' ){
					error_message =  objTitle + ' ' + MakeForm.ErrorMesDef;
				}
			}else if( f.mail.value != objValue ){
				error_message = objTitle + ' ' + MakeForm.ErrorMesEmail_2;
			}
		}
		else if( objName == 'zip_2' ){
			var zip1 = f.zip_1.value;
			var zip2 = objValue;
			if( zip1 == '' || objValue == '' ){
				error_message =  objTitle + ' ' + MakeForm.ErrorMesDef;
			}else{
				
				if(!zip1.match("^[0-9]{3}$")){
					error_message = objTitle + ' ' +MakeForm.ErrorMesEmail_1;
				}
				if(!zip2.match("^[0-9]{4}$")){
					error_message = objTitle + ' ' +MakeForm.ErrorMesEmail_1;
				}
			}
		}
		else if( objName == 'day' ){
			if( objValue == '' ){
				error_message =  objTitle + ' ' + MakeForm.ErrorMesDef;
			}else{
				var dateFlag = MakeForm.isDate( f.mon.value, f.day.value );
				if( dateFlag ){
					 error_message = objTitle + ' ' + MakeForm.ErrorMesDate;
				}
			}
		}
		else{
			if( objType == 'text' || objType == 'textarea'){
				if(objValue == '' ) error_message =  objTitle + ' ' + MakeForm.ErrorMesDef;
			}else if( objType == 'select-one' || objType == 'select-multiple' ){
				if(objValue == '' ) error_message =  objTitle + ' ' + MakeForm.ErrorMesDef;
			}else{
				if( f[i].checked == true ) results[objExcept] = 1;
				error_message = (results[objExcept])? '': objTitle + ' ' + MakeForm.ErrorMesDef;
			}
		}
		if( error_message != '' || results[objExcept] ){
		
			if( !MakeForm.Errors[objExcept] ){
				MakeForm.PUSH.push(objExcept);
			}
			MakeForm.Errors[objExcept] = error_message;
		}
		//element[objName] = 1;
	}
	
	
	// 未チェックの項目を検査
	for(var i=0;i<MakeForm.p.length;i++){
		MakeForm.chekced[MakeForm.p[i]] -= 0;
		if( !MakeForm.chekced[MakeForm.p[i]] ){
			var message =  MakeForm.data[MakeForm.p[i]][0] + ' ' + MakeForm.ErrorMesDef;
			if( !MakeForm.Errors[MakeForm.data[MakeForm.p[i]][1]] ){
				MakeForm.PUSH.push(MakeForm.data[MakeForm.p[i]][1]);
			}
			MakeForm.Errors[MakeForm.data[MakeForm.p[i]][1]] = message;
		}
	}
	var total_message = '';
	for(var i=0;i<MakeForm.PUSH.length;i++){
		if( MakeForm.Errors[MakeForm.PUSH[i]] != '' ) total_message += MakeForm.Errors[MakeForm.PUSH[i]] + "\n";
	}
	return total_message;
};

MakeForm.isEmail = function(p){
	if(p.match("^[0-9a-zA-Z\-\_\.\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+\@[0-9a-zA-Z\-\_\.]+$")){
		return 1;
	}else{
		return 0;
	}
};

MakeForm.send = function(f){
	
	if( MakeForm.Running == 1 ){
		return false;
	}
	
	f.send.value = 1;
	MakeForm.form = f;
	
	// エラーチェック
	var error_message = MakeForm.check(f);
	
	MakeForm.submit = function(){
		var f = MakeForm.form;
		
		if( !MakeForm.ErrorConfig ){
			if( error_message ){
				alert( MakeForm.ErrorMessage + "\n" + error_message );
				return false;
			}
		}
		
		if( !MakeForm.ConfirmConfig ){
			var flag = MakeForm.sendConfirm( MakeForm.ConfirmMessage );
			if( flag == true ){
				f.send.value = 2;
			}else{
				return false;
			}
		}
		MakeForm.setUnip(f);
		f.submit();
	};
	
	// 事前チェック（フォーム更新）
	MakeForm.myConn2(f);
	return false;
	
};

MakeForm.sendConfirm = function(msg){
	var what=confirm(msg);
    return what;
};

MakeForm.winLoad = function (func){
	if (window.addEventListener) { //for W3C DOM
		window.addEventListener("load", func, false);
	}else if (window.attachEvent) { //for IE
		window.attachEvent("onload", func);
	}else  {
		window.onload = func;
	}
}

MakeForm.thanks = function(){
	
	var myUniq; //ユニークID
	var Anchor = 0;
	var myhref = location.href;
	
	if( MakeForm.chkCookie() ){
		var uniq = MakeForm.getCookie(MakeForm.cookieId);
		myUniq = uniq;
	}else{
		Anchor = 1;
		var parts = location.href.split("#");
		var params = {};
		if (parts.length == 2) {
			var uniq = parts[1];
			if (uniq.search(/^atmailform/i) != -1) {
		 		myUniq = uniq;
				myhref = parts[0];
			}else{
				Anchor = 0;
			}
		}
	}
	
	//コールバック
	MakeFormCallBack = function( flag ){
		if( flag ){
			alert(MakeForm.thanksMessage);
		}
	}
	
	if( myUniq ){
		MakeForm.myConn(myUniq);
	}
	
	if( Anchor ){
		MakeForm.setUnip = function(obj){
			if( obj.uniq_a.value != '' || obj.uniq_a.value == 'nojs' )
				return;
			var uniq = 'atmailform-' + Math.random();
			obj.uniq_a.value = uniq;
			obj.href.value = myhref;
		};
	}else{
		MakeForm.setUnip = function(obj){
			
			if( obj.uniq_c.value != '' || obj.uniq_c.value == 'nojs' )
				return;
			var uniq = 'atmailform-' + Math.random();
			MakeForm.setCookie(MakeForm.cookieId,uniq);
			obj.uniq_c.value = uniq;
			obj.href.value = myhref;
		};
	}
}

MakeForm.setCookie = function(cookieId,myValue){
	myItem = cookieId + "=" + escape(myValue) + ";";
	document.cookie =  myItem;
}

MakeForm.getCookie = function(cookieId){
	var cookie_name = cookieId + "=";
	myValue = null;
	myStr = document.cookie + ";" ;
	myOfst = myStr.indexOf(cookie_name);
	if (myOfst != -1){
		myStart = myOfst + cookie_name.length;
		myEnd   = myStr.indexOf(";" , myStart);
		myValue = unescape(myStr.substring(myStart,myEnd));
		return myValue;
	}
	return myValue;
}
MakeForm.chkCookie = function(){
	var cookieId = 'myCookieText';
	var str = 1;
	MakeForm.setCookie(cookieId,str);
	var myCookie = MakeForm.getCookie(cookieId);
	if( str == myCookie ){
		MakeForm.setCookie(cookieId,'');
		return 1;
	}
	return 0;
}

MakeForm.myConn = function(uniq){
	var url = 'http://www.fusui-logo.net/form.cgi?mode=jsonp&call=AjaxZipMyCallback&p=';
    var script = document.createElement("script");
    script.charset = "utf-8";
    script.src = url + uniq + '&f=1';
	script.type= "text/javascript";
	document.body.appendChild(script);
}

MakeForm.myConn2 = function(f){
	MakeFormRun = function( run ){
		
		if( run ){
			alert(run);
		}else{
			MakeForm.submit();
		}
		MakeForm.Running = 0;
	}
	MakeForm.Running = 1;
	var url = 'http://www.fusui-logo.net/form.cgi?mode=jsonp&call=AjaxZipMyCallback&p=';
	var rnd = Math.random();
	var fu = '';
	if( f.fu ){
		fu = f.fu.value
	}
	var script = document.createElement("script");
	script.charset = "shift_jis";
	script.src = url + f.id.value + '&r=1' + '&fu=' + fu + '&' + rnd;
	script.type= "text/javascript";
	document.body.appendChild(script);
};

MakeForm.isDate = function(month, day){
	if( month != '' ){
		if( month < 1 || month > 12 ){
			return 1;
		}
		if( day < 1 || day > 31 ){
			return 1;
		}
		var m = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
		month -= 1;
		var d = m[month];
		if( d < day ){
			return 1;
		}
	}
	return 0;
}

MakeForm.winLoad(MakeForm.thanks);
