/**
 * js/entryCheck.js
 * Revision 1.0
 * Date 2004/01/21
 */

/**
 * emailCheck（メールアドレスの入力チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetAddress（メールアドレス）
 */
function emailCheck(targetAddress) {

	var newstr;
	var at;
	var dot;
	
	newstr = "";
	at = false;
	dot = false;

	if (targetAddress.indexOf("@") != -1) {
		at = true;
	} else if (targetAddress.indexOf(".") != -1) {
		dot = true;
	}
	
	for (var i = 0; i < targetAddress.length; i++) {
		ch = targetAddress.substring(i, i + 1)
		if ((ch >= "A" && ch <= "Z") || 
			(ch >= "a" && ch <= "z") || 
			(ch == "@") || (ch == ".") || 
			(ch == "_") || (ch == "-") || 
			(ch >= "0" && ch <= "9")) {
				newstr += ch;
				if (ch == "@") {
					at = true;
				}
				if (ch == ".") {
					dot = true;
				}
		}
	}
	
	if ((at == true) && (dot == true)) {
		return newstr;
	} else {
		alert ("入力されたメールアドレスは\n不正なアドレスのようです。\n再度入力し直してください。");
		return targetAddress;
	}
	
}


/**
 * alphaCheck（英字チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 */
function alphaCheck(targetString) {

	var newString;
	var ch;

	newString = "";
	
    for (i = 0; i < targetString.length; i++) {
        ch = targetString.substring(i, i + 1);
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z" )) {
            newString += ch;
        }
    }
	
   	return checkString(newString, targetString," 英字");
	
}


/**
 * alphanumberCheck（英数字チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 */
function alphanumberCheck(targetString) {

	var newString;
	var ch;

	newString = "";
	
    for (i = 0; i < targetString.length; i++) {
        ch = targetString.substring(i, i + 1);
        if ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") || (ch >= "0" && ch <= "9")) {
            newString += ch;
        }
    }
	
   	return checkString(newString, targetString, "英数字");
	
}


/**
 * alphanumericCheck（英数字・記号チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 */
function alphanumericCheck(targetString) {

	var newString;
	var ch;

	newString = "";
	
	for (i = 0; i < targetString.length; i++) {
		ch = targetString.substring(i, i + 1);
		if (ch >= " " && ch <= "~") {
			newString += ch;
		}
	}
	
	return checkString(newString, targetString, "英数字・記号");
	
}

/**
 * floatCheck（浮動小数点チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 */
function floatCheck(targetString) {

	var newString;
	var ch;

	newString = "";
	
	for (i = 0; i < targetString.length; i++) {
		ch = targetString.substring(i, i + 1);
        if ((ch >= "0" && ch <= "9") || (ch == ".")) {
			newString += ch;
		}
	}
	
	return checkString(newString, targetString, "浮動小数点数");
	
}


/**
 * integerCheck（数字チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 */
function integerCheck(targetString) {

	var newString;
	var ch;

	newString = "";
	
	for (i = 0; i < targetString.length; i++) {
		ch = targetString.substring(i, i + 1);
        if (ch >= "0" && ch <= "9") {
			newString += ch;
		}
	}
	
	return checkString(newString, targetString, "数字");
	
}


/**
 * numberCheck（数値チェック）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 */
function numberCheck(targetString) {

	var newString;
	var ch;

	newString = "";
	
	for (i = 0; i < targetString.length; i++) {
		ch = targetString.substring(i, i + 1);
        if ((ch >= "0" && ch <= "9") || (ch == ".") || (ch == ",")) {
			newString += ch;
		}
	}
	
	return checkString(newString, targetString, "数値");
}


/**
 * checkString（入力文字列の判定）
 * @author Dome
 * @since version 1.0.0
 * @param newString
 *        targetString
 * 　　   STR
 */
function checkString(newString, targetString, STR) {

    if (targetString != newString) {
		if (confirm("入力された値は不正な文字列です。\n" + STR + "を入力してください。\n入力された文字列は削除されます。")) {
			// 文字列を返す
			return newString;
		} else {
			return targetString;
		}
	} else {
		return targetString;
	}
	
}


/**
 * textareaCheck（入力文字数（バイト数）の判定）
 * @author Dome
 * @since version 1.0.0
 * @param targetString（対象文字列）
 * 　　   maxLength（最大文字列長）
 */
function textareaCheck(targetString, maxLength) {
	
    var targetLength;
	var c;
	var i;
	var alertMessage;
	
	targetLength = 0;
	
    for (i = 0; i < targetString.length; i++) {
        c = targetString.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)) {
            targetLength += 1;
        } else {
            targetLength += 2;
        }
    }
	
    if (targetLength > maxLength) {
		alertMessage = "入力された文字バイトは" + targetLength + "です。\n";
		alertMessage = alertMessage + maxLength + "バイト以内で入力してください。（超過した文字は保存されません）\n";
		alertMessage = alertMessage + "\n";
		alertMessage = alertMessage + "【参考】\n";
		alertMessage = alertMessage + "　半角英数文字は1文字あたり1バイト\n";
		alertMessage = alertMessage + "　それ以外の文字は1文字あたり2バイト\n";
		alert (alertMessage);
	}
	
	return targetString;
	
}


/**
 * mailtoMobile（携帯電話へURLお知らせメール）
 * @author Dome
 * @since version 1.0.0
 * @param address（メールアドレス）
 */
function mailtoMobile(address) {
	window.open("mailtoMobile.php?adr=" + address,"MMSUB","width=200,height=130,scrollbars=yes,status=yes,resizable=yes");
}
