//-------------------------------------------------------------
//必須チェック
// 引数 data:入力文字列
//	    name:項目名
// 戻り値:エラーメッセージ
//		  OKの時は""	
//-------------------------------------------------------------
function checkRequired(data, name) {
	//全角スペースを半角に変換する
	var str = data.replace(/　/, " ");
	//スペースを除いて、入力された文字列の長さが0ならエラー
	if (Trim(str).length != 0) {
		return "";
	} else {
		return name + "を入力してください。";
	}
}

//-------------------------------------------------------------
//必須チェック(セレクトボックス用)
// 引数  elm:Elementオブジェクト(セレクトボックス用)
//	     name:項目名
// 戻り値:エラーメッセージ
//		  OKの時は""	
//-------------------------------------------------------------
function checkSelectRequired(elm, name) {
	var i;
	//valueが0のものを選択したらエラー
	if(elm.options[elm.selectedIndex].value != 0){
		return "";
	}
	return name + "を選択してください。";
}

//-------------------------------------------------------------
//必須チェック(ラジオボタン・チェックボックス用)
// 引数  elm:Elementオブジェクト(ラジオボタン、チェックボックス用)
//	     name:項目名
// 戻り値:エラーメッセージ
//		  OKの時は""	
//-------------------------------------------------------------
function checkRadioRequired(elm, name) {
	var i;
	//checkedがなければエラー
	for(i = 0; i <elm.length; i++){
		if (elm[i].checked) {
			return "";
		}
	}
	return name + "を選択してください。";
}
//------------------------------
//文字数範囲チェック
// 引数：str(文字列)
//       min(最小値)
//       max(最大値)
//	     name:項目名
// 戻り値:エラーメッセージ
//		  OKの時は""	
//------------------------------
function checkMinMaxLength(str, min ,max, name) {
	//両端のスペースを除く
	var strVal = mb_Trim(Trim(str));
	
	if( strVal.length == 0 ){
		return ""; 		//スペースはOK
	}

	if(strVal.length < min){
		return name + "は" + min + "文字以上" + max + "文字以内で入力してください。";
	} else {
		return "";
	}
		
	if(strVal.length > max){
		return name + "は" + min + "文字以上" + max + "文字以内で入力してください。";
	} else {
		return "";
	}
}
//------------------------------
//文字数範囲チェック
// 引数：str(文字列)
//       min(最小値)
//       max(最大値)
//	     name:項目名
// 戻り値:エラーメッセージ
//		  OKの時は""	
//------------------------------
function checkPostLength(str, min ,max, name) {
	//両端のスペースを除く
	var strVal = mb_Trim(Trim(str));
	
	if( strVal.length == 0 ){
		return ""; 		//スペースはOK
	}

	if(strVal.length < min){
		return name + "は7文字で入力してください。";
	} else {
		return "";
	}
		
	if(strVal.length > max){
		return name + "は7文字で入力してください。";
	} else {
		return "";
	}
}

//----------------------
//全角ひらがなチェック
//----------------------
function checkHiragana(str, name) {
    var i, char_length;
    var checkStr=new String("ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん?゛゜ゝゞー－・");
    //全角文字の長さを取得
    var char_length=("あ".length);
    
    //両端のスペースを除く
    var strVal = mb_Trim(Trim(str));
    if( strVal.length == 0 ){
        return true;        //スペースはOK    
    }
    
    for(i=0; i<strVal.length; i=i+char_length) {
        if (checkStr.indexOf(strVal.charAt(i), 0) == -1){
            return name + "は全角ひらがなで入力してください。";
        }
    }
    return "";
}

//-----------------------
//全角カタカナチェック
//-----------------------
function checkKatakana(str, name) {
    var i, char_length;
    var checkStr=new String("ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲン？゛゜ゝゞー－・");
    //全角文字の長さを取得
    var char_length=("あ".length);
    
    //両端のスペースを除く
    var strVal = mb_Trim(Trim(str));
    if( strVal.length == 0 ){
        return name + "";        //スペースはOK    
    }
    
    for(i=0; i<strVal.length; i=i+char_length) {
    	if (strVal.charAt(i) == " ") {
    	} else {
		   	if (strVal.charAt(i) == "　") {
    		} else {
   		
        		if(checkStr.indexOf(strVal.charAt(i), 0) == -1){
           			 return name + "は全角カタカナで入力してください。";
       			 }
       		}
       	}
    }
    return "";
}

//----------------
//半角チェック
//----------------
function checkHankaku(str, name){
    //両端のスペースを除く
    var strVal = mb_Trim(Trim(str));
    
    if( strVal.length == 0 ){
        return "";        //スペースはOK    
    }
    var cnt = ByteCount(strVal);
    
    if(cnt == strVal.length ){
            return "";
    } else {
        return name + "は半角文字で入力してください。";
    }
}

//----------------------------
//半角英数字チェック
//----------------------------
function checkAlphaNum(str, name) {
	
	//両端のスペースを除く
	str = mb_Trim(Trim(str));
	if( str.length == 0 ){
		return "";		//スペースはOK	
	}

	if( str.match(/^[a-zA-Z0-9]+$/) ){
		return "";		
	} else {
		return name + "は半角英数字で入力してください。";
	}	
}
//----------------------------
//半角数字チェック
//----------------------------
function checkNum(str, name) {
	
	//両端のスペースを除く
	str = mb_Trim(Trim(str));
	if( str.length == 0 ){
		return "";		//スペースはOK	
	}

	if( str.match(/^[0-9]+$/) ){
		return "";		
	} else {
		return name + "は半角数字で入力してください。";
	}	
}
//----------------------------------
//日付チェック
//    引数 strYear(年), strMonth(月), strDay(日)
//    戻り値 true:OK(全て空白も含む)
//           flase:NG
//-----------------------------------    
function checkDate(strYear, strMonth, strDay) {
    if (strYear.length == 0 || strMonth.length == 0 || strDay.length == 0) {
        return "日付はすべて入力して下さい。";        
    }
    
    var tmpDat = new Date(strYear, strMonth-1, strDay);
    if (strYear != tmpDat.getFullYear() || (strMonth - 1) != tmpDat.getMonth() 
                    || strDay != tmpDat.getDate()) {
        return "正しい日付を入力して下さい。";
    } else {
        return "";
    }
}

//-----------------------
//禁止文字チェック
//-----------------------
function checkNGChar(str, name){
	//両端のスペースを除く
	var strVal = mb_Trim(Trim(str));
	
	if( strVal.length == 0 ){
		return ""; 		//スペースはOK
	}
	
	if (str.match(/[<>",]/)) {
		return name + "に、「<>&\",」は入力できません。"; 		
	} else {
		return ""; 		
	}	
}
//-----------------------
//URLチェック
//-----------------------
function checkURL(str, name){
	//両端のスペースを除く
	var strVal = mb_Trim(Trim(str));
	
	if( strVal.length == 0 ){
		return ""; 		//スペースはOK
	}
	
	if (str.match(/['<>",]/)) {
		return name + "に、「<>\",'」は入力できません。"; 		
	} else {
		return ""; 		
	}	
}
//-----------------------
//パターンチェック
//-----------------------
function matchCheck(str, ptn, name) {
	//両端のスペースを除く
	var strVal = mb_Trim(Trim(str));
	
	if( strVal.length == 0 ){
		return ""; 		//スペースはOK
	}
	
	regObj = new RegExp(ptn);
	if (str.match(regObj)) {
		return "";
	} else {
		return name + "の形式がちがいます。";	
	}	
} 	
//---------------------
//文字列のトリム(半角)
//---------------------
function Trim(str) {
    return RTrim(LTrim(str));
}
//---------------------
//左トリム(半角)
//---------------------
function LTrim(str) {
    return str.replace(/^\s+/,"");
}
//---------------------
//右トリム(半角)
//---------------------
function RTrim(str) {
    return str.replace(/\s+$/,"");
}
//---------------------
//文字列のトリム(全角)
//---------------------
function mb_Trim(str) {
    return mb_RTrim(mb_LTrim(str));
}
//---------------------
//左トリム(全角)
//---------------------
function mb_LTrim(str) {
    return str.replace(/^　+/,"");
}
//---------------------
//右トリム(全角)
//---------------------
function mb_RTrim(str) {
    return str.replace(/　+$/,"");
}
//---------------
//バイト数カウント
//---------------
function ByteCount(str){
    count = 0;
    for (i=0; i<str.length; i++){
        n = escape(str.charAt(i));
        if (n.length < 4) {
            count++;         //１バイト文字
        } else{
             count+=2;        //２バイト文字
        }     
    }
    return count;
}
///----------------------------------------------------
///フォームテキスト文字全クリア
///フォーム中のinput typeがtextのフィールドをクリアする
///
///引数：formオブジェクト
///                     NetSpeed By Y.Kaji (2007.06.13)
///----------------------------------------------------
function ClearAllText(objForm) {
	var elems = objForm.elements;
	for(i = 0; i < elems.length; i++) {
		elem = elems[i];
		if(elem.type == "text") {
			elem.value = ""
		}
		if(elem.type == "password") {
			elem.value = ""
		}
		if(elem.type == "textarea") {
			elem.value = ""
		}
		//if(elem.type == "radio") {
		//	elem.checked = false;
		//}
		if(elem.name == "shisyacd_s") {
			elem.selectedIndex = 0;
		}
		if(elem.name == "kyotencd_s") {
			elem.selectedIndex = 0;
		}
		if(elem.type == "radio") {
		    elem.checked = false;
		}
		
	}
	
	for(i = 0; i < elems.length; i++) {
		elem = elems[i];
		if(elem.type == "radio") {
		    elem.checked = true;
		    return;
		}
		
	}
}

