/*
	入力された文字列をチェックする関数たち
*/

//未入力チェック
function isNotNull(val) {
	if(val == ""){
		return false; 
	} else {
		var transTarget = val.replace(/[ 　]/g, "");
		if(transTarget.length == 0) {
			return false;
		}
		return true;
	}
}
//半角数字かどうか
function isNumeric(val){
	if(isNaN(val)){
		return false;
	} else {
		if(!isNotNull(val)){
			return false;
		}
		return true;
	}
}
//半角英数かどうか
function isHankaku(strValue) {
	var i , transTarget;
	var checkStr = /[^A-Za-z0-9]/;
	transTarget = strTarget.replace(/ /g, "");
	if(transTarget.length == 0){
		return false;
	} else if(transTarget.search(checkStr)>=0) {
		return false;
	} else {
		return true;
	}	
}

//全角カタカナかどうか
function isZenKana(strValue) {
	var i ,  char_length;
	var checkStr = new String(
		"ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾ" +
		"タダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモ" +
		"ャヤュユョヨラリルレロヮワヰヱヲン゛゜ー・"
	);
	char_length = ("ア".length);
	
	transTarget = strValue.replace(/[ 　]/g, "");
	for(i=0; i<transTarget.length; i=i+char_length){
		if(checkStr.indexOf(transTarget.charAt(i), 0)==-1){
			return false;
		}
	}
	return true;
}


//emailかどうか
function checkEmail(strValue){
	var emailPat=/^(.+)@(.+)$/;
	var matchArray=strValue.match(emailPat);
    if (matchArray==null) {
    	return false;
    }
	var user=matchArray[1];
	var domain=matchArray[2];
	
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			return false;
		}
	}
    for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			return false;
		}
	}
	matchArray = domain.split(".");
	if(matchArray.length == 1 ){
		return false;
	}
	if(strValue.match(/[!"#$%&'\(\)=\\|,:;^\[\]\{\}`*?+><]/)) {
		return false;
	}
	
	return true;
}

//氏名
function checkInputName(name1 , name2){
	val1 = document.getElementById(name1).value;
	val2 = document.getElementById(name2).value;
	if(!isNotNull(val1)){
		alert("姓が入力されていません");
		document.getElementById(name1).focus();
		return false;
	}
	if(!isNotNull(val2)){
		alert("名が入力されていません");
		document.getElementById(name2).focus();
		return false;
	}
}

//フリガナ
function checkInputNameKana(name1 , name2){
	val1 = document.getElementById(name1).value;
	val2 = document.getElementById(name2).value;
	if(!isNotNull(val1)){
		alert("姓のフリガナが入力されていません");
		document.getElementById(name1).focus();
		return false;
	}
	if(!isNotNull(val2)){
		alert("名のフリガナが入力されていません");
		document.getElementById(name2).focus();
		return false;
	}
	if(!isZenKana(val1)){
		alert("姓のフリガナには全角のカタカナを入力してください");
		document.getElementById(name1).focus();
		return false;
	}
	if(!isZenKana(val2)){
		alert("名のフリガナには全角のカタカナを入力してください");
		document.getElementById(name2).focus();
		return false;
	}
}

//郵便番号
function checkInputZipNumber(name1 , name2) {
	val1 = document.getElementById(name1).value;
	val2 = document.getElementById(name2).value;
	if(!isNotNull(val1) ){
		alert("郵便番号が入力されていません");
		document.getElementById(name1).focus();		
		return false;
	}
	if(!isNotNull(val2) ){
		alert("郵便番号が入力されていません");
		document.getElementById(name2).focus();		
		return false;
	}
	if(!isNumeric(val1)){
		alert("郵便番号は半角数字で入力してください");
		document.getElementById(name1).focus();
		return false;
	}
	if(!isNumeric(val2)){
		alert("郵便番号は半角数字で入力してください");
		document.getElementById(name2).focus();
		return false;
	}
}

//電話番号
function checkInputTelNumber(name1 , name2 , name3){
	val1 = document.getElementById(name1).value;
	val2 = document.getElementById(name2).value;
	val3 = document.getElementById(name3).value;
	if(!isNotNull(val1) ){
		alert("電話番号が入力されていません");
		document.getElementById(name1).focus();		
		return false;
	}
	if(!isNotNull(val2) ){
		alert("電話番号が入力されていません");
		document.getElementById(name2).focus();		
		return false;
	}
	if(!isNotNull(val3) ){
		alert("電話番号が入力されていません");
		document.getElementById(name3).focus();		
		return false;
	}
	if(!isNumeric(val1)){
		alert("電話番号は半角数字で入力してください");
		document.getElementById(name1).focus();
		return false;
	}
	if(!isNumeric(val2)){
		alert("電話番号は半角数字で入力してください");
		document.getElementById(name2).focus();
		return false;
	}
	if(!isNumeric(val3)){
		alert("電話番号は半角数字で入力してください");
		document.getElementById(name3).focus();
		return false;
	}
	
	return true;
}
//FAX番号
function checkInputFaxNumber(name1 , name2 , name3){
	val1 = document.getElementById(name1).value;
	val2 = document.getElementById(name2).value;
	val3 = document.getElementById(name3).value;
	if(isNotNull(val1) || isNotNull(val2) || isNotNull(val3)){
		if(!isNotNull(val1)) {
			alert("FAX番号が入力されていません");
			document.getElementById(name1).focus();		
			return false;
		}
		if(!isNotNull(val2)) {
			alert("FAX番号が入力されていません");
			document.getElementById(name2).focus();		
			return false;
		}
		if(!isNotNull(val3)) {
			alert("FAX番号が入力されていません");
			document.getElementById(name3).focus();		
			return false;
		}
		if(!isNumeric(val1)){
			alert("FAX番号は半角数字で入力してください");
			document.getElementById(name1).focus();
			return false;
		}
		if(!isNumeric(val2)){
			alert("FAX番号は半角数字で入力してください");
			document.getElementById(name2).focus();
			return false;
		}
		if(!isNumeric(val3)){
			alert("FAX番号は半角数字で入力してください");
			document.getElementById(name3).focus();
			return false;
		}
	}
}
//eメール
function checkInputEMail(name1){
	val1 = document.getElementById(name1).value;
	if(!isNotNull(val1)){
		alert("メールアドレスが入力されていません");
		document.getElementById(name1).focus();
		return false;
	}
	if(!checkEmail(val1)){
		alert("メールアドレスが正しい形式で入力されていません");
		document.getElementById(name1).focus();
		return false;
	}
	return true;
}
//リマインダーのID忘れの時のチェック
function checkInputId(){
	//Eメール
	if(checkInputEMail("email") == false) return false;				
	//電話番号
	if(checkInputTelNumber("tel1" , "tel2" , "tel3") == false) return false;
	
	return true;
}
//ユーザーID
function checkUserId(name){
	val1 = document.getElementById(name).value;
	if(!isNotNull(val1)){
		alert("ユーザーIDが入力されていません");
		document.getElementById(name).focus();
		return false;
	}
}


//入力チェック（ユーザー情報用）
function checkInput( formName ) {	
	var val1 , val2 , val3;
	//氏名
	if(checkInputName("name1" , "name2") == false) return false;
	
	//フリガナ
	if(checkInputNameKana("kana1" , "kana2") == false) return false;
	
	//会社名
	val1 = document.getElementById("company").value;
	if(!isNotNull(val1)){
		alert("会社名が入力されていません");
		document.getElementById("company").focus();
		return false;
	}

	//郵便番号
	if(checkInputZipNumber("zip1" , "zip2") == false) return false;
	
	//都道府県
	val1 = document.getElementById("prefecture").value;
	if(!isNotNull(val1)){
		alert("都道府県が選択されていません");
		document.getElementById("prefecture").focus();		
		return false;
	}
	
	//住所
	val1 = document.getElementById("address1").value;
	if(!isNotNull(val1)){
		alert("住所1が入力されていません");
		document.getElementById("address1").focus();		
		return false;
	}
		
	//電話番号
	if(checkInputTelNumber("tel1" , "tel2"  , "tel3") == false) return false;
	
	//FAX番号
	if(checkInputFaxNumber("fax1" , "fax2" , "fax3") == false) return false;
	
	//eメール
	if(checkInputEMail("email") == false) return false;
	
	
	//勤務先業種
	if(document.getElementById("iscompany1").checked){
		val1 = document.getElementById("gyoushu").value;
		if(!isNotNull(val1)){
			alert("法人の場合、勤務先業種は選択してください");
			document.getElementById("gyoushu").focus();
			return false;
		}
	}
	
	//ユーザーID
	if(formName == "UserEntry"){
		if(checkUserId("userid") == false) return false;
		val1 = document.getElementById("userid").value;
		if(val1.length < 6 || val1.length > 12 ){
			alert("ユーザーIDは6文字以上12文字以下で入力してください");
			document.getElementById("userid").focus();
			return false;
		}
	}
	
	//パスワード
	val1 = document.getElementById("pswd1").value;
	if(formName == "UserEntry"){
		if(!isNotNull(val1)){
			alert("パスワードが入力されていません");
			document.getElementById("pswd1").focus();
			return false;
		}
	}
	if(formName == "UserEntry" || (formName == "UserUpdate" && val1 != "")){
		//パスワード2
		val2 = document.getElementById("pswd2").value;
		if(!isNotNull(val2)){
			alert("パスワードが再入力されていません");
			document.getElementById("pswd2").focus();
			return false;
		}
		//パスワード両方確認
		if(val1 != val2) {
			alert("パスワードが異なっています");
			document.getElementById("pswd2").focus();
			return false;
		}
		
		if(val1.length < 6 ){
			alert("パスワードは6文字以上で入力してください");
			document.getElementById("pswd1").focus();
			return false;
		}
	}
	//秘密の質問
	val1 = document.getElementById("question").value;
	if(!isNotNull(val1)){
		alert("秘密の質問が選択されていません");
		document.getElementById("question").focus();
		return false;
	}
	//秘密の答え
	val1 = document.getElementById("answer").value;
	if(!isNotNull(val1)){
		alert("秘密の質問の答えが入力されていません");
		document.getElementById("answer").focus();
		return false;
	}
}

//入力チェック（ビジネス決済用）
function checkInputBusiness(){
	var val1 , val2 , val3;
	//ユーザーID
	if(checkUserId("userid") == false) return false;
	
	//パスワード
	val1 = document.getElementById("pswd").value;
	if(!isNotNull(val1)){
		alert("パスワードが入力されていません");
		document.getElementById("pswd").focus();
		return false;
	}
	
	//会社名
	val1 = document.getElementById("company").value;
	if(!isNotNull(val1)){
		alert("会社名が入力されていません");
		document.getElementById("company").focus();
		return false;
	}
	
	//会社名フリガナ
	val1 = document.getElementById("company_kana").value;
	if(!isNotNull(val1)){
		alert("会社名のフリガナが入力されていません");
		document.getElementById("company_kana").focus();
		return false;
	}
	
	//郵便番号
	if(checkInputZipNumber("zip1" , "zip2") == false) return false;
	
	//都道府県
	val1 = document.getElementById("prefecture").value;
	if(!isNotNull(val1)){
		alert("都道府県が選択されていません");
		document.getElementById("prefecture").focus();		
		return false;
	}
	//住所
	val1 = document.getElementById("address1").value;
	if(!isNotNull(val1)){
		alert("住所1が入力されていません");
		document.getElementById("address1").focus();		
		return false;
	}
		
	//電話番号
	if(checkInputTelNumber("tel1" , "tel2" , "tel3") == false) return false;
	//FAX番号
	if(checkInputFaxNumber("fax1" , "fax2" , "fax3") == false) return false;
	
	//代表者氏名
	val1 = document.getElementById("representative").value;
	if(!isNotNull(val1)){
		alert("代表者氏名が入力されていません");
		document.getElementById("representative").focus();		
		return false;
	}
	//従業員数
	val1 = document.getElementById("employee").value;
	if(!isNotNull(val1)){
		alert("従業員数を入力してください");
		document.getElementById("employee").focus();		
		return false;
	}
	
	//TOBコード
	//if(document.getElementById("tob_flag").checked){
	//	val1 = document.getElementById("tob").value;
	//	if(!isHankaku(val1)){
	//		alert("TOBコードを半角英数字で入力してください");
	//		document.getElementById("tob").focus();
	//		return false;
	//	}
	//}
	
	//設立年月日
	val1 = document.getElementById("establish_date").value;
	if(!isNotNull(val1)){
		alert("設立年月日を入力してください");
		document.getElementById("establish_date").focus();		
		return false;
	}
	
	//資本金
	val1 = document.getElementById("capital").value;
	if(!isNotNull(val1)){
		alert("資本金を入力してください");
		document.getElementById("capital").focus();		
		return false;
	}
	
	//事業内容
	//val1 = document.getElementById("task").value;
	//if(!isNotNull(val1)){
	//	alert("事業内容を入力してください");
	//	document.getElementById("task").focus();		
	//	return false;
	//}
	//前年度売上高
	val1 = document.getElementById("sales").value;
	if(!isNotNull(val1)){
		alert("前年度売上高を入力してください");
		document.getElementById("sales").focus();		
		return false;
	}
	//主な取引先
	//val1 = document.getElementById("customer").value;
	//if(!isNotNull(val1)){
	//	alert("前年度売上高を入力してください");
	//	document.getElementById("customer").focus();		
	//	return false;
	//}
	
	//登録会員情報と同じでない
	if(!document.getElementById("bill_name_flag").checked){
		//請求先氏名
		if(checkInputName("bill_name1" , "bill_name2") == false) return false;
		
		//請求先フリガナ
		if(checkInputNameKana("bill_kana_name1" , "bill_kana_name2") == false) return false;
		
		//請求先メール
		if(checkInputEMail("email") == false) return false;
	}
	
	//上記入力情報と同じでない
	if(!document.getElementById("bill_address_flag").checked ){	
		//請求先郵便番号
		if(checkInputZipNumber("bill_zip1" , "bill_zip2") == false) return false;
		
		//請求先都道府県
		val1 = document.getElementById("bill_prefecture").value;
		if(!isNotNull(val1)){
			alert("都道府県が選択されていません");
			document.getElementById("bill_prefecture").focus();		
			return false;
		}
		
		//請求先住所1
		if(!isNotNull("bill_address1")){
			alert("請求先住所が入力されていません");
			document.getElementById("bill_address1").focus();
			return false;
		}
		
		//請求先電話番号
		if(checkInputTelNumber("bill_tel1" , "bill_tel2" , "bill_tel3") == false) return false;
		//請求先FAX番号
		if(checkInputFaxNumber("bill_fax1" , "bill_fax2" , "bill_fax3") == false) return false;
		
	}
	
}

//入力チェック（ポイント交換用）
function checkInputPoint(  ) {	
	var val1 , val2 , val3;
	//氏名
	if(checkInputName("name1" , "name2") == false) return false;
	
	//フリガナ
	if(checkInputNameKana("kana1" , "kana2") == false) return false;
	
	//会社名
	val1 = document.getElementById("company").value;
	if(!isNotNull(val1)){
		alert("会社名が入力されていません");
		document.getElementById("company").focus();
		return false;
	}

	//郵便番号
	if(checkInputZipNumber("zip1" , "zip2") == false) return false;
	
	//都道府県
	val1 = document.getElementById("prefecture").value;
	if(!isNotNull(val1)){
		alert("都道府県が選択されていません");
		document.getElementById("prefecture").focus();		
		return false;
	}
	
	//住所
	val1 = document.getElementById("address1").value;
	if(!isNotNull(val1)){
		alert("住所1が入力されていません");
		document.getElementById("address1").focus();		
		return false;
	}
		
	//電話番号
	if(checkInputTelNumber("tel1" , "tel2"  , "tel3") == false) return false;
	
	//FAX番号
	if(checkInputFaxNumber("fax1" , "fax2" , "fax3") == false) return false;
	
	//eメール
	if(checkInputEMail("email") == false) return false;
	
}

function checkInputContactForm() {
	var val1 , val2;
	//氏名
	val1 = document.getElementById("userNameFld").value;
	if(!isNotNull(val1)){
		alert("氏名が入力されていません");
		document.getElementById("userNameFld").focus();		
		return false;
	}
	//メールアドレス
	if(checkInputEMail("mailaddressFld") == false) return false;
	if(checkInputEMail("mailaddressFld2") == false) return false;
	val1 = document.getElementById("mailaddressFld").value;
	val2 = document.getElementById("mailaddressFld2").value;
	if(val1 != val2){
		alert("確認のために再入力していただいたメールアドレスが異なっています。");
		document.getElementById("mailaddressFld2").focus();		
		return false;
	}
	
	//お探しのイメージについて
	val1 = document.getElementById("searchImageditailFld").value;
	if(!isNotNull(val1)){
		alert("お探しのイメージについて入力されていません");
		document.getElementById("searchImageditailFld").focus();		
		return false;
	}
	
}