
/*********************************************************************************************/
/**                             共通メソッドチェック処理を行う                               */
/*********************************************************************************************/


/**************************************************************** 
* 必須チェック 
* 
* 引数 ： value 項目値
* 戻り値： 空白：false  データあり：true 
* 
****************************************************************/ 
function isRequire(value){
	if(value == ""){
		return false;
	}
	return true;
}

/**************************************************************** 
* メールアドレスの形式チェック 
* 
* 引数 ： param メールアドレス  
* 戻り値： 正しい：true  間違い：false 
* 
****************************************************************/ 
function isEmail(param) {

	if(!param.match(/[!#-9A-~]+@+[a-z0-9]+.+[^.]$/)) {
		return false;
	}
	return true;
}

/**************************************************************** 
* 全角/半角文字判定 
* 
* 引数 ： str チェックする文字列 
* flg 0:半角文字、1:全角文字 
* 戻り値： true:含まれている、false:含まれていない 
* 
****************************************************************/ 
function CheckLength(str,flg) {
    for (var i = 0; i < str.length; i++) { 
        var c = str.charCodeAt(i); 
        // Shift_JIS: 0x0 〜 0x80, 0xa0 , 0xa1 〜 0xdf , 0xfd 〜 0xff 
        // Unicode : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3 
        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { 
            if(!flg) return true; 
        } else { 
            if(flg) return true; 
        } 
    } 
    return false; 
} 

/* ふりがなチェック */
function FuriganaCheck(value) {
   if( value.match( /[^ぁ-んァ-ン　\s]+/ ) ) {
      return false;
   }
   return true;
}


/**************************************************************** 
* ひらがなチェック
* 
* 引数 ： value 項目値 
* 戻り値： ひらがな:true else false
* 
****************************************************************/ 
function HiraCheck(value) {
  if(value.match( /[^ぁ-ん　\s]+/ )){
      // ひらがな、全角スペース以外が入力されている場合
      return false;
  }
  return true;
}

/**************************************************************** 
* カタカナチェック
* 
* 引数 ： value 項目値 
* 戻り値： ひらがな:true else false
* 
****************************************************************/ 
function KataCheck(value) {
  if(value.match( /[^ァ-ン　\s]+/ )){
      // カタカナ、全角スペース以外が入力されている場合
//      window.alert(param + "はカタカナのみで入力して下さい！");
      return false;
  }
  return true;
}


/**************************************************************** 
* 日付の妥当性チェック
* 
* 引数 ： 年、月、日 
* 戻り値： 妥当:true 不妥当：false
* 
****************************************************************/ 
function isValidDate(y,m,d) {
	var di = new Date(y,m-1,d);
	if(di.getFullYear() == y && di.getMonth() == m-1 && di.getDate() == d){
		return true;
	} else {
		return false;
	}
}

/**************************************************************** 
* 半角英文字チェック
* 
* 引数 ： value 対象値 
* 戻り値： 半角英文字:true  以外は：false
* 
****************************************************************/ 
function AlphabetCheck(value) {
   if( value.match( /[^A-Za-z\s.-]+/ ) ) {
//      alert("英語名は、半角英文字のみで入力して下さい。");
      return false;
   }
   return true;
}

/**************************************************************** 
* 半角数字チェック
* 
* 引数 ： value 対象値 
* 戻り値： 半角英文字:true  以外は：false
* 
****************************************************************/ 
function NumberCheck(value) {
   if( value.match( /[^0-9]+/ ) ) {
//      alert("年齢は、半角数字のみで入力して下さい。");
      return false;
   }
   return true;
}


/**
 * 全角であるかをチェックします。
 * 
 * @param チェックする値
 * @return ture : 全角 / flase : 全角以外
 */
function checkIsZenkaku(value) {
  for (var i = 0; i < value.length; ++i) {
    var c = value.charCodeAt(i);
    //  半角カタカナは不許可
    if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) {
      return false;
    }
  }
  return true;
}

/**
 * [関数名] isHan
 * [機　能] 半角チェック
 * [説　明] 文字列の中に半角以外の文字が含まれているか調べる
 * 　　　　 半角スペースも半角文字とみなす
 * [引　数]
 * @param  str テキストボックス値
 * @return true(含まれていない) | false(含まれている)
*/
function isHankaku(str) {
    for (var i=0; i<str.length; i++) {
    	/* 1文字ずつ文字コードをエスケープし、その長さが4文字未満なら半角 */
        var len=escape(str.charAt(i)).length;
        if (len<4){
        }else{
            return false;
        }
    }
    return true;
}


// ボタンイメージ切替
function mouseover(obj,image) {
	obj.src=image;
}
function mouseout(obj,image) {
	obj.src=image;
}

function init() {
	document.forms[0].mailadds1.focus();
	window.moveTo(0,0);
	window.resizeTo(screen.width,screen.height);
}

/**************************************************************** 
* 性別の選択チェック
* 
* 戻り値： ひらがな:true else false
* 
****************************************************************/ 
function sexCheck(){

	var flag = 0;

	// 設定開始
	if(obj.sex.length) { // 選択肢が複数ある場合
		flag = 1;
		for(var i = 0; i < obj.sex.length; i ++){
			if(obj.sex[i].checked){
				flag = 0;
				break;
			}
		}
	} else { // 選択肢が1つだけの場合
		if(!obj.sex.checked){
			flag = 1;
		}
	}
	
	if(flag == "1") {
		return false;
	}
	return true;
}

/**
 * 新規会員登録ボタン入力チェック
 * @return エラーない:true エラー：false
 */
function inputCheck() {

	var obj = document.forms[0];

	// メールアドレス１必須チェック
	if (obj.mailadds1.value == "" )  {
		alert("メールアドレスを入力してください。");
		obj.mailadds1.focus();
		return false;
	}

	// メールアドレス形式チェック(common.js)
	if(!isEmail(obj.mailadds1.value)) {
		alert("メールアドレスが正しくありません。");
		return false;
	}

	// 再確認メールアドレス必須チェック
	if (obj.mailadds2.value == "" )  {
		alert("再確認メールアドレスを入力してください。");
		obj.mailadds2.focus();
		return false;
	}

	// 再確認メールアドレス形式チェック(common.js)
	if(!isEmail(obj.mailadds2.value)) {
		alert("再確認メールアドレスが正しくありません。");
		return false;
	}

	// パスワード必須チェック
	if (obj.password1.value == "" ) {
		alert("パスワードを入力してください。");
		obj.password1.focus();
		return false;
	}

	// 再確認パスワード必須チェック
	if (obj.password2.value == "" ) {
		alert("再確認パスワードを入力してください。");
		obj.password2.focus();
		return false;
	}

	// パスワード一致チェック
	if(obj.password1.value != obj.password2.value) {
		alert("パスワードが一致していません。");
		obj.password2.focus();
		return false;
	}

	// 氏名の全角文字チェック
	if(!checkIsZenkaku(obj.user_name.value)) {
		alert("氏名に全角文字を入力してください。");
		obj.user_name.focus();
		return false;
	}

	// 氏名ふりがなチェック
	if(!FuriganaCheck(obj.user_gana.value)) {
		alert("氏名ふりがなはひらがなのみで入力して下さい！");
		obj.user_gana.focus();
		return false;
	}

	// 表示名の全角文字チェック
//	if(!CheckLength(obj.nick_name.value, "1")) {
//		alert("表示名に全角文字を入力してください。");
//		obj.nick_name.focus();
//		return false;
//	}

	// 表示名ふりがなチェック
//	if(!FuriganaCheck(obj.nick_gana.value)) {
//		alert("表示名ふりがなはひらがなのみで入力して下さい！");
//		obj.nick_gana.focus();
//		return false;
//	}

	// 性別選択チェック
//	if(!sexCheck()) {
//		alert("性別を選択してください。");
//		return false;
//	}

	// 生年月日妥当性チェック
	if(isRequire(obj.birthYear.value) || isRequire(obj.birthYear.value) || isRequire(obj.birthYear.value)) {

		// 生年月日の【年】半角数字チェック
		if(!NumberCheck(obj.birthYear.value)) {
			alert("生年月日の年は、半角数字のみで入力して下さい。");
			return false;
		}

		// 生年月日の【月】半角数字チェック
		if(!NumberCheck(obj.birthMonth.value)) {
			alert("生年月日の月は、半角数字のみで入力して下さい。");
			return false;
		}

		// 生年月日の【日】半角数字チェック
		if(!NumberCheck(obj.birthDay.value)) {
			alert("生年月日の日は、半角数字のみで入力して下さい。");
			return false;
		}

		// 生年月日の日付妥当性チェック
		if(!isValidDate(obj.birthYear.value,obj.birthMonth.value,obj.birthDay.value)) {
			alert("生年月日が正しくありません。");
			return false;
		}
	}

	return true;
}

// テーブル背景の形を設定(四角がサイクル)
function roundTable(objID) {
	var obj = document.getElementById(objID);
	var Parent, objTmp, Table, TBody, TR, TD;
	var bdcolor, bgcolor, Space;
	var trIDX, tdIDX, MAX;
	var styleWidth, styleHeight;

	// get parent node
	Parent = obj.parentNode;
	objTmp = document.createElement('SPAN');
	Parent.insertBefore(objTmp, obj);
	Parent.removeChild(obj);

	// get attribute
	bdcolor = obj.getAttribute('rborder');
	bgcolor = obj.getAttribute('rbgcolor');
	radius = parseInt(obj.getAttribute('radius'));
	if (radius == null || radius < 1) radius = 1;
	else if (radius > 6) radius = 6;

	MAX = radius * 2 + 1;

	/*
	create table {{
	*/
	Table = document.createElement('TABLE');
	TBody = document.createElement('TBODY');

	Table.cellSpacing = 0;
	Table.cellPadding = 0;
	Table.align="center";
	Table.style.fontSize = '12px';
	for (trIDX=0; trIDX < MAX; trIDX++) {
	TR = document.createElement('TR');
	Space = Math.abs(trIDX - parseInt(radius));
	for (tdIDX=0; tdIDX < MAX; tdIDX++) {
	TD = document.createElement('TD');

	styleWidth = '1px'; styleHeight = '1px';
	if (tdIDX == 0 || tdIDX == MAX - 1) styleHeight = null;
	else if (trIDX == 0 || trIDX == MAX - 1) styleWidth = null;
	else if (radius > 2) {
	if (Math.abs(tdIDX - radius) == 1) styleWidth = '2px';
	if (Math.abs(trIDX - radius) == 1) styleHeight = '2px';
	}

	if (styleWidth != null) TD.style.width = styleWidth;
	if (styleHeight != null) TD.style.height = styleHeight;

	if (Space == tdIDX || Space == MAX - tdIDX - 1) TD.style.backgroundColor = bdcolor;
	else if (tdIDX > Space && Space < MAX - tdIDX - 1) TD.style.backgroundColor = bgcolor;

	if (Space == 0 && tdIDX == radius) TD.appendChild(obj);
	TR.appendChild(TD);
	}
	TBody.appendChild(TR);
	}

	/*
	}}
	*/

	Table.appendChild(TBody);

	// insert table and remove original table
	Parent.insertBefore(Table, objTmp);
}


