//メールフォーム


//送信ボタンが押されたとき
function send(){
	checkVar();
	stripTag();

}



/*********件名（フォーカスが外れたとき）**********/
function sbjCheck(){
	sbjSelect();
}

//リロードしたとき用!
function sbjLoad(){
	if ($('f_subject').value == 5) {
		$('other').innerHTML = '<input type=text id="f_other" size ="35" maxlength="20" onKeyUp="otherCheck()">';
		return true;
	} else {
		$('other').innerHTML = '';
		return true;
	}
}

//件名で「その他」が選ばれたとき
function sbjSelect(){
	if ($('f_subject').value == 5) {
		$('other').innerHTML = '<input type=text id="f_other" size ="35" maxlength="20" onKeyUp="otherCheck()">';
		return true;
	} else {
		$('other').innerHTML = '';
		return true;
	}
}


function otherCheck() {
		halfkanaChange($('f_other')); 
}



/*********よみがな（入力されたとき）**********/
function kanaCheck(){
	halfkanaChange($('f_kana')); 
	if(checkPattern($('f_kana'),"[^ぁ-ん 　\s]+")) {
		$('erm2').innerHTML = '<br />※ひらがなのみで入力してください';
		return false;
	} else {
		$('erm2').innerHTML = '';
		return true;
	}
}



/*********ご氏名（入力されたとき）**********/
function nameCheck(){
	halfkanaChange($('f_name')); 
	if (isNotNum($('f_name'))){
		$('erm3').innerHTML = '<br />※日本語または英字で入力してください';
		return false;
	} else {
		$('erm3').innerHTML = '';
		return true;
	}
}



/*********郵便番号（入力されたとき）*********/
//郵便番号判定
function zipsearch() {
	halfkanaChange($('f_zip')); 
	fullhalfChange($('f_zip'));
	var str = $('f_zip').value;
	
	if (checkPattern($('f_zip'),"[^0-9-]")) {
		$('erm4').innerHTML = '※使用できない文字が含まれています';
		return false;
	} else if (checkPattern($('f_zip'),"[0-9-]")) {
		if (checkPattern($('f_zip'),"^[0-9]{3}-\?[0-9]{4}$")) {
			var target = document.createElement('script');
			target.charset = 'utf-8';
			target.src = 'http://groovetechnology.co.jp/ZipSearchService/v1/zipsearch?zipcode='+encodeURIComponent( str )+'&callback=callback';
			document.body.appendChild(target);
			$('erm4').innerHTML = '';
			return true;
		} else {
			$('erm4').innerHTML = '「000-0000」または「0000000」の形式で入力してください';
			return false;
		}
	} else {
		$('erm4').innerHTML = '';
		return true;
	}
}

//住所自動挿入
function callback(data) {
	halfkanaChange($('f_zip')); 
	fullhalfChange($('f_zip'));
	var obj = $('f_zip');
	if (data.zipcode["a1"] != undefined) {
		if ( data.zipcode["a1"].zipcode.match(/[0-9]{5}00$/)) {
			$('f_address').value = data.zipcode["a1"].prefecture + data.zipcode["a1"].city;
		} else {
			$('f_address').value = data.zipcode["a1"].prefecture + data.zipcode["a1"].city + data.zipcode["a1"].town;
		}
	} else if (data.office["o1"] != undefined) {
		$('f_address').value = data.office["o1"].prefecture + data.office["o1"].city + data.office["o1"].town + data.office["o1"].street + "  " + data.office["o1"].office_name;
	} else {
		return false;
	}
}




/*********住所*********/
function addCheck() {
	halfkanaChange($('f_address')); 
	if (isNotLen($('f_address'), 300)) {
		$('erm5').innerHTML = '<br />※300文字以内で入力してください';
		return false;
	} else {
		$('erm5').innerHTML = '';
		return true;
	}

}



/*********電話番号*********/
function phoneCheck() {
	halfkanaChange($('f_phone')); 
	fullhalfChange($('f_phone'));
	var str = $('f_phone').value;
	if (checkPattern($('f_phone'),"[^0-9-]")) {
		$('erm6').innerHTML = '<br />※使用できない文字が含まれています';
		return false;
	} else if (checkPattern($('f_phone'), "[0-9-]")) {
		if (checkPattern($('f_phone'), "^[0-9]{2,4}-\?[0-9]{2,4}-\?[0-9]{4}$")) {
			$('erm6').innerHTML = '';
			return true;
		} else if (checkPattern($('f_phone'), "^[0-9]{2,4}-\?[0-9]{4}$")) {
			$('erm6').innerHTML = '';
			return true;
		} else {
			$('erm6').innerHTML = '<br />※間違った形式の可能性があります、ご確認ください';
			return false;
		}
	} else {
		$('erm6').innerHTML = '';
		return true;
	}
}



/*********FAX番号*********/
function faxCheck() {
	halfkanaChange($('f_fax')); 
	fullhalfChange($('f_fax'));
	var str = $('f_fax').value;
	if (checkPattern($('f_fax'),"[^0-9-]")) {
		$('erm7').innerHTML = '<br />※使用できない文字が含まれています';
		return false;
	} else if (checkPattern($('f_fax'),"[0-9-]")) {
		if (checkPattern($('f_fax'),"^[0-9]{2,4}-\?[0-9]{2,4}-\?[0-9]{4}$")) {
			$('erm7').innerHTML = '';
			return true;
		} else if (checkPattern($('f_fax'), "^[0-9]{2,4}-\?[0-9]{4}$")) {
			$('erm7').innerHTML = '';
			return true;
		} else {
			$('erm7').innerHTML = '<br />※間違った形式の可能性があります、ご確認ください';
			return false;
		}
	} else {
		$('erm7').innerHTML = '';
		return true;
	}
}



/*********メールアドレス*********/
function mailCheck(){
	halfkanaChange($('f_mail')); 
	if (checkPattern($('f_mail'), "[^\\w.@*&'%/$#^{}`!+-]")) {
		$('erm8').innerHTML = '<br />※メールアドレスに使用できない文字が含まれています';
		return false;
	} else if (checkPattern($('f_mail'), "[\\w.@*&'%/$#^{}`!+-]")) {
		if (checkPattern($('f_mail'), "^[A-Za-z0-9]+[\\w.*&'%/$#^{}`!+-]+@[\\w.*&'%/$#^{}`!+-]+\\.{1}[\\w]{2,}$")){
			$('erm8').innerHTML = '';
			return true;
		} else {
			$('erm8').innerHTML = '<br />※メールアドレスの形式と違う可能性があります、ご確認ください';
			return false;
		}
	} else {
		$('erm8').innerHTML = '';
		return true;
	}
}



/*********内容*********/
function contentsCheck(){
	halfkanaChange($('f_contents')); 
	if (isNotLen($('f_contents'), 200)) {
		$('erm9').innerHTML = '<br />※200文字以内で入力してください';
		return false;
	} else {
		$('erm9').innerHTML = '';
		return true;
	}
}



/*********希望返信方法*********/
function getReturn(){
	var elm = document.forms["mailform"].elements["r_radio"].length;
	for (var i = 0; i < elm; i++) {
		if (document.forms["mailform"].elements["r_radio"][i].checked) {
			return document.forms["mailform"].elements["r_radio"][i].value;
		}
	}
}

function radioCheck(){
	faxCheck();
	var radio = getReturn();
	if (radio == "fax") {
		if (!isNotEmpty($('f_fax'))) {
			$('erm10').innerHTML = '※FAX番号が入力されていません';
			return false;
		} else if (faxCheck() == true) {
			$('erm10').innerHTML = '';
			return true;
		} else {
			$('erm10').innerHTML = '※正しくFAX番号を入力してください';
			return false;
		}
	} else {
		$('erm10').innerHTML = '';
		return true;
	}
}



/*********************************************/
//文字列が"str"に該当するとき(正規表現判定）
function checkPattern(elem,str) {
	var value = elem.value;
	var rObj = new RegExp(str);
	if (!value.match(rObj)) {
		return false;
	}
	return true;
}


//数字のみ
function isNotNum(elem){
	var str = elem.value;
	if (!str.match(/\d/)) {
		return false;
	} else {
		return true;
	}
}

//文字数制限
function isNotLen(elem, maxlength) {
	var str = elem.value;
	if (str.length <= maxlength) {
		return false;
	} else {
		return true;
	}
}

//フィールドの文字列が１文字以上の文字列を含むことを検証する
function isNotEmpty(elem) {
	var str = elem.value;
	if (str == null || str.length == 0) {
		return false;
	} else {
		return true;
	}
}


//全角数字→半角数字
function fullhalfChange(elem) {
	var full_num = new Array("１","２","３","４","５","６","７","８","９","０","－","‐");
	var half_num = new Array("1","2","3","4","5","6","7","8","9","0","-","-");
	while (elem.value.match(/[０-９－‐]/)) {
		for (var count = 0; count < full_num.length; count++) {
			elem.value = elem.value.replace(full_num[count], half_num[count]);
		}
	}
}


//半角カタカナ→全角カタカナ
function halfkanaChange(elem) {
	var half_char = new Array("ｶﾞ","ｷﾞ","ｸﾞ","ｹﾞ","ｺﾞ","ｻﾞ","ｼﾞ","ｽﾞ","ｾﾞ","ｿﾞ","ﾀﾞ","ﾁﾞ","ﾂﾞ","ﾃﾞ","ﾄﾞ","ﾊﾞ","ﾋﾞ","ﾌﾞ","ﾍﾞ","ﾎﾞ","ﾊﾟ","ﾋﾟ","ﾌﾟ","ﾍﾟ","ﾎﾟ","ｦ","ｧ","ｨ","ｩ","ｪ","ｫ","ｬ","ｭ","ｮ","ｯ","ｰ","ｱ","ｲ","ｳ","ｴ","ｵ","ｶ","ｷ","ｸ","ｹ","ｺ","ｻ","ｼ","ｽ","ｾ","ｿ","ﾀ","ﾁ","ﾂ","ﾃ","ﾄ","ﾅ","ﾆ","ﾇ","ﾈ","ﾉ","ﾊ","ﾋ","ﾌ","ﾍ","ﾎ","ﾏ","ﾐ","ﾑ","ﾒ","ﾓ","ﾔ","ﾕ","ﾖ","ﾗ","ﾘ","ﾙ","ﾚ","ﾛ","ﾜ","ﾝ");
	var full_char = new Array("ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ヲ","ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ー","ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ン");
	while (elem.value.match(/[ｦ-ﾝ]/)) {
		for (var count = 0; count < half_char.length; count++) {
			elem.value = elem.value.replace(half_char[count], full_char[count]);
		}
	}
}


//「送信」ボタンを押したとき、tag消去
function stripTag(){
	//＊件名
	
	if ($('f_other')) {  //「その他」用のフレームがあるとき
		$('f_other').value = $('f_other').value.stripTags();
	}
	//＊ふりがな
	$('f_kana').value = $('f_kana').value.stripTags();
	//＊ご氏名
	$('f_name').value = $('f_name').value.stripTags();
	//郵便番号
	$('f_zip').value = $('f_zip').value.stripTags();
	//ご住所
	$('f_address').value = $('f_address').value.stripTags();
	//＊電話番号
	$('f_phone').value = $('f_phone').value.stripTags();
	//FAX番号
	$('f_fax').value = $('f_fax').value.stripTags();
	//＊E-mail
	$('f_mail').value = $('f_mail').value.stripTags();
	//＊お問い合わせ内容
	$('f_contents').value = $('f_contents').value.stripTags();
}



function checkVar(){
	var notEmpty = 0;
	//＊件名
	if ($('f_subject').value == 0) {
		notEmpty++;
		$('f_subject').style.backgroundColor = '#ffffdd';
	} else {
		$('f_subject').style.backgroundColor = '#ffffff';
	}
	if ($('f_other')) {  //「その他」用のフレームがあるとき
		if (!isNotEmpty($('f_other'))) {
		notEmpty++;
		$('f_other').style.backgroundColor = '#ffffdd';
		} else {
		$('f_other').style.backgroundColor = '#ffffff';
		}
	}
	//＊ふりがな
	if (!isNotEmpty($('f_kana')) || kanaCheck() == false) {
		notEmpty++;
		$('f_kana').style.backgroundColor = '#ffffdd';
	} else {
		$('f_kana').style.backgroundColor = '#ffffff';
	}
	//＊ご氏名
	if (!isNotEmpty($('f_name'))) {
		notEmpty++;
		$('f_name').style.backgroundColor = '#ffffdd';
	} else {
		$('f_name').style.backgroundColor = '#ffffff';
	}
	//郵便番号
	if (zipsearch() == false) {
		notEmpty++;
		$('f_zip').style.backgroundColor = '#ffffdd';
	} else {
		$('f_zip').style.backgroundColor = '#ffffff';
	}
	//ご住所
	if (addCheck() == false) {
		notEmpty++;
		$('f_address').style.backgroundColor = '#ffffdd';
	} else {
		$('f_address').style.backgroundColor = '#ffffff';
	}
	//＊電話番号
	if (!isNotEmpty($('f_phone')) || phoneCheck() == false) {
		notEmpty++;
		$('f_phone').style.backgroundColor = '#ffffdd';
	} else {
		$('f_phone').style.backgroundColor = '#ffffff';
	}
	//FAX番号
	if (faxCheck() == false) {
		notEmpty++;
		$('f_fax').style.backgroundColor = '#ffffdd';
	} else {
		$('f_fax').style.backgroundColor = '#ffffff';
	}
	//＊E-mail
	if (!isNotEmpty($('f_mail')) || mailCheck() == false) {
		notEmpty++;
		$('f_mail').style.backgroundColor = '#ffffdd';
	} else {
		$('f_mail').style.backgroundColor = '#ffffff';
	}
	//＊お問い合わせ内容
	if (!isNotEmpty($('f_contents'))) {
		notEmpty++;
		$('f_contents').style.backgroundColor = '#ffffdd';
	} else {
		$('f_contents').style.backgroundColor = '#ffffff';
	}
	//希望返信方法
	if (radioCheck() == false) {
		notEmpty++;
	}
	//空チェック
	if (notEmpty > 0) {
		$('erm11').innerHTML = "※色が変わったところを正しく入力してください";
	} else {
		$('erm11').innerHTML = "";
		$('mailform').submit();
	}
}



//フォームのリセット確認
function resetConf() {
	if (confirm("フォームの内容をリセットします。\nよろしいですか？")) {
		$('other').innerHTML = "";
		$('erm2').innerHTML = "";
		$('erm3').innerHTML = "";
		$('erm4').innerHTML = "";
		$('erm5').innerHTML = "";
		$('erm6').innerHTML = "";
		$('erm7').innerHTML = "";
		$('erm8').innerHTML = "";
		$('erm9').innerHTML = "";
		$('erm10').innerHTML = "";
		$('erm11').innerHTML = "";
		$('f_subject').style.backgroundColor = '#ffffff';
		if ($('f_other')) {  //「その他」用のフレームがあるとき
			$('f_other').style.backgroundColor = '#ffffff';
		}
		$('f_kana').style.backgroundColor = '#ffffff';
		$('f_name').style.backgroundColor = '#ffffff';
		$('f_zip').style.backgroundColor = '#ffffff';
		$('f_address').style.backgroundColor = '#ffffff';
		$('f_phone').style.backgroundColor = '#ffffff';
		$('f_mail').style.backgroundColor = '#ffffff';
		$('f_fax').style.backgroundColor = '#ffffff';
		$('f_contents').style.backgroundColor = '#ffffff';
		return true;
	} else {
		return false;
	}
}

