﻿
//--------------------------------------------------
//フリーエリアのテキスト文字数制限
//--------------------------------------------------
//入力文字数を超えたら警告する
function restChar(target,maxlength) {
    if ( target.value.length > maxlength ) {
        alert("入力文字数は改行を含め" + maxlength + "文字以内でお願いします");
        target.value = target.value.substr(0,maxlength);
    }
    target.focus();
}


//--------------------------------------------------
//フォーカル時のフォームカラー変更
//--------------------------------------------------
var colorful = new ColorfulInput;

//フォーカスカラーを無効にしたいオブジェクト
colorful.skip = ['submit'];

//フォーカス時の色（CCFF99：蛍光緑、FFFFAA：蛍光薄黄、FFA5FF：蛍光ピンク）
colorful.color['focus'] = '#FFFFAA';

window.onload = function() {
   colorful.set();
}

function ColorfulInput() {
   this.skip  = [];
   this.color = { 'blur': '#FFFFFF', 'focus': '#FFFFAA' };

   this.set = function() {
      for (var i = 0; i < document.forms.length; i++) {
         for (var f = 0; f < document.forms[i].length; f++) {
            var elm = document.forms[i][f];
            if(!this._checkSkip(elm)) continue;

            this._setColor(elm, 'focus');
            this._setColor(elm, 'blur');
         }
      }
   }

   this._checkSkip = function(elm) {
      for(var i in this.skip) {
         if(elm.type == this.skip[i]) return false;
      }
      return true;
   }

   this._setColor = function(elm, type) { 
      var color = this.color[type];
      var event = function() { elm.style.backgroundColor = color; };

      if(elm.addEventListener) {
         elm.addEventListener(type, event, false);
      } else if(elm.attachEvent) {
         elm.attachEvent('on'+type, event);
      } else {
         elm['on'+type] = event;
      }
   }
}



//--------------------------------------------------
//送信前入力JSチェック、送信後はPHPチェック
//--------------------------------------------------

function check(this_f){
	msg = ''; //エラーメッセージ蓄積用変数
	errorArray = new Array(); //未入力欄の配列:エラー表示後、最初の未入力欄にフォーカスを当てる
//--------------------------------------------------
//alert("ようこそ！");

	//お名前（姓名）
	if(this_f.elements['name1'].value == ""){
		msg = "お名前を入力してください\n";
		errorArray[errorArray.length] = "name1";
	}else{
		if(this_f.elements['name2'].value == ""){
			msg += "お名前(名)を入力してください\n";
			errorArray[errorArray.length] = "name2";
		}
	}

	if(this_f.elements['kana1'].value == ""){
		msg += "フリガナを入力してください\n";
		errorArray[errorArray.length] = "kana1";
	}else{
		if(this_f.elements['kana2'].value == ""){
			msg += "フリガナ(名)を入力してください\n";
			errorArray[errorArray.length] = "kana2";
		}
	}

	//性別(ラジオボタン)
	if((this_f.elements['sex'][0].checked == false) && (this_f.elements['sex'][1].checked == false)){
			msg += "性別を入力してください\n";
			errorArray[errorArray.length] = "sex1";
	}
	//年齢
	//if(this_f.elements['age'].value == ""){
	//	msg += "年齢を入力してください\n";
	//	errorArray[errorArray.length] = "age";
	//}

	//郵便番号
	if(this_f.elements['zip1'].value == ""){
		msg += "郵便番号を入力してください\n";
		errorArray[errorArray.length] = "zip1";
	}else{
		if(this_f.elements['zip2'].value == ""){
		msg += "郵便番号を入力してください\n";
		errorArray[errorArray.length] = "zip2";
		}
	}



	//住所1.2.3
	if(this_f.elements['pref'].value == ""){
		msg += "住所を入力してください\n";
		errorArray[errorArray.length] = "pref";
	}else{
		if(this_f.elements['add1'].value == ""){
		msg += "住所(市区町村)を入力してください\n";
		errorArray[errorArray.length] = "add1";
		}else{
			if(this_f.elements['add2'].value == ""){
			msg += "住所(町名番地)を入力してください\n";
			errorArray[errorArray.length] = "add2";
			}
		}
	}

	//電話番号4.5.6
	if(this_f.elements['tel4'].value == ""){
		msg += "電話番号を入力してください\n";
		errorArray[errorArray.length] = "tel4";
	}else{
		if(this_f.elements['tel5'].value == ""){
		msg += "電話番号を入力してください\n";
		errorArray[errorArray.length] = "tel5";
		}else{
			if(this_f.elements['tel6'].value == ""){
			msg += "電話番号を入力してください\n";
			errorArray[errorArray.length] = "tel6";
			}
		}
	}

	//メールアドレスチェック（正規表現）match（例：0@5.5）
	mailset1 = this_f.elements['email1'].value
	mailset2 = this_f.elements['email1_conf'].value
	//alert(mail);
	if(mailset1 == ""){
		msg += "メールアドレスを入力してください\n";
		errorArray[errorArray.length] = "email1";
	}else{
		if(mailset1.match(/.+@.+\..+/)){ 
			if(mailset1 == mailset2){
				//alert("メールが同じです");
			}else{
				msg += "メールアドレス(確認)が間違ってます\n";
				errorArray[errorArray.length] = "email1_conf";
			}
		}else{
			msg += "メールアドレスを正しく入力してください\n";
			errorArray[errorArray.length] = "email1";
		}
	}


  //--------------------------------------------------
	//errorArrayが1個以上ならばメッセージ表示、フォーカス当て、送信中止
	if(errorArray.length > 0){
		alert(msg);
		this_f.elements[errorArray[0]].focus();
		return false;
	}
	//return confirm("この内容で送信しますか?");

}
//--------------------------------------------------
//関数名： checkKatakana
//機能：　与えられた文字列が全角カタカナの文字列かどうかを判別する(SJISのみ対応)
//引数：　判別する文字列
//返値：　全角カタカナだけの文字列だったらtrue、そうでなければfalseを返す
function checkKana(vars){
  for(i=0; i<vars.length; i++){
    if(vars.charAt(i) < 'ァ' || vars.charAt(i) > 'ヶ'){
      return false;
    }
  }
  return true;
}


/*
------------------------------
項目詳細	型	JS-id
---------------+-------+------
性      	string	name1
名      	string	name2
性      	string	kana1
名      	string	kana2
男性    	-	sex1
女性    	-	sex2
年齢    	int:3	age
郵便前  	int:3	zip1
郵便後  	int:4	zip2
都道府県	-	pref
市区町村	string	add1
町名番地	string	add2
建物名  	string	add3
TEL1    	int:4	tel1
TEL2    	int:4	tel2
TEL3    	int:4	tel3
TEL1    	int:4	tel4
TEL2    	int:4	tel5
TEL3    	int:4	tel6
MAIL1   	英数	email1
MAIL2   	英数	email2
MAIL1   	英数	email1_conf
MAIL2   	英数	email2_conf
---------------------------------
靴専科について	-	q1
フリー   	string	q2
ご利用について	-	q3
店舗    	string	q4
意見・ご質問	string	q5
---------------------------------
エラー   	英数	-
area    	英数	-
days    	英数	-
------------------------------
*/