
// ブラウザチェック
function CheckBrowser() {
	if (navigator.appVersion.charAt(0) < 4) {
		ReplaceLocation("notsupport.html");
	}
}

// ルートページ表示
function AllowToHome() {
	window.top.location.href = "http://enaiyo.post.japanpost.jp/mpt/";
	return false;
}

// HTTPSプロトコルチェックロジック(HTTPSプロトコルの場合は、HTTPに飛ばす)
function AllowToHTTP() {
	if (-1 == window.parent.location.protocol.indexOf('http:',0)) {
		window.top.location.href = "http://enaiyo.post.japanpost.jp/mpt/";
	}
	return false;
}

// URL置き換え (履歴を残さないため)
function ReplaceLocation(url) {
	window.location.replace(url);
	return false;
}

//トップページへのReplaceLocation
function ReplaceLocationTop() {
	return ReplaceLocation("http://enaiyo.post.japanpost.jp/mpt/");
}

// ヘルプ用ウィンドウオープン
function OpenHelp(url) {
	window.open(url, "HelpWindow", "width=500,height=500,resizable=yes,scrollbars=yes");
}

// 1バイト文字判定
function isSingle(text) {
	var bRet = false;
	if (1 == text.length) {
		var iCode = text.charCodeAt(0);
		if ((" ".charCodeAt(0) <= iCode) && (iCode <= "~".charCodeAt(0))) {
			bRet = true;
		}
	}
	return bRet;
}

// 半角数字判定
function isSingleNum(text) {
	var bRet = false;
	if (1 == text.length) {
		var iCode = text.charCodeAt(0);
		if (("0".charCodeAt(0) <= iCode) && (iCode <= "9".charCodeAt(0))) {
			bRet = true;
		}
	}
	return bRet;
}

// 半角英字判定
function isSingleAlpha(text) {
	var bRet = false;
	if (1 == text.length) {
		var iCode = text.charCodeAt(0);
		if ((("A".charCodeAt(0) <= iCode) && (iCode <= "Z".charCodeAt(0))) ||
			(("a".charCodeAt(0) <= iCode) && (iCode <= "z".charCodeAt(0)))) {
			bRet = true;
		}
	}
	return bRet;
}

// 半角英数字判定
function isSingleAlNum(text) {
	var bRet = false;
	if (1 == text.length) {
		var iCode = text.charCodeAt(0);
		if ((("A".charCodeAt(0) <= iCode) && (iCode <= "Z".charCodeAt(0))) ||
			(("a".charCodeAt(0) <= iCode) && (iCode <= "z".charCodeAt(0))) ||
			(("0".charCodeAt(0) <= iCode) && (iCode <= "9".charCodeAt(0)))) {
			bRet = true;
		}
	}
	return bRet;
}

// 文字列長取得
function strLen(text) {

	var iLen = 0;
	for (var i=0; i < text.length; i++) {
		iLen += (true == isSingle(text.charAt(i)))? 1 : 2;
	}
	return iLen;
}


// バイト長取得
function ByteLen(s) {
    var r = 0;
    for (var i = 0; i < s.length; i++) {
        var c = s.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)) {
            r += 1;
        } else {
            r += 2;
        }
    }
    return r;
}


// 入力長チェック
function CheckLen(text, msg) {
	var bOk = true;
	if (0 == text.value.length) {
		bOk = false;
		alert(msg + "が入力されていません。");
		text.focus();
		text.select();
	}
	return bOk;
}

// 数字チェック (桁数チェックなし)
function CheckNumber(number, msg) {
	var bOk = true;
	if (true != CheckLen(number, msg)) {
		bOk = false;
	} else {
		for (var i = 0; i < number.value.length; i++) {
			if (true != isSingleNum(number.value.charAt(i))) {
				bOk = false;
				alert(msg + "に半角数字以外の文字があります。");
				number.focus();
				number.select();
				break;
			}
		}
	}
	return bOk;
}

// 数字チェック (桁数チェック付き)
function CheckNumCnt(text, cnt, msg) {
	var bOk = true;
	if (cnt != strLen(text.value)) {
		bOk = false;
		AlertLen(text, msg);
	} else {
		bOk = CheckNumber(text, msg);
	}
	return bOk;
}

// バイト数チェック (1バイト以上 指定バイト数以内)
function CheckByteLen(text, cnt, msg) {
	var bOk = true;
	if (0 == (strLen(text.value)) ||
		(cnt < strLen(text.value))) {
		bOk = false;
		AlertLen(text, msg);
	}
	return bOk;
}

// バイト数チェック (指定バイト数以内)
function CheckLessByteLen(text, cnt, msg) {
	var bOk = true;
	if (cnt < strLen(text.value)) {
		bOk = false;
		AlertLen(text, msg);
	}
	return bOk;
}

// 英数字チェック (桁数チェックあり)
function CheckAlNumCnt(text, cnt, msg) {
	var bOk = true;
	if (cnt < strLen(text.value)) {
		bOk = false;
		AlertLen(text, msg);
	} else {
		for (var i = 0; i < text.value.length; i++) {
			if (true != isSingleAlNum(text.value.charAt(i))) {
				bOk = false;
				alert(msg + "に半角英数字以外の文字があります。");
				text.focus();
				text.select();
				break;
			}
		}
	}
	return bOk;
}

// メールアドレスチェック (桁数チェックあり)
function CheckEmail(text, cnt, msg) {
	var bOk = true;
	if (cnt < strLen(text.value)) {
		bOk = false;
		AlertLen(text, msg);
	} else {
		for (var i = 0; i < text.value.length; i++) {
			if (('@' != text.value.charAt(i)) &&
				('.' != text.value.charAt(i)) &&
				('_' != text.value.charAt(i)) &&
				('-' != text.value.charAt(i)) &&
				(true != isSingleAlNum(text.value.charAt(i)))) {
				bOk = false;
				alert(msg + "に不適切な文字があります。");
				text.focus();
				text.select();
				break;
			}
		}
	}
	return bOk;
}

// メールアドレスチェック (必須入力、桁数チェックあり)
function CheckEmailNcs(text, cnt, msg) {
	var bOk = true;
	if (0 == strLen(text.value)) {
		bOk = false;
		AlertLen(text, msg);
	} else {
		bOk = CheckEmail(text, cnt, msg) ;
	}
	return bOk;
}

// 入力文字数警告
function AlertLen(text, msg) {
	alert(msg + "が入力されていないか、長さが適切ではありません。");
	text.focus();
	text.select();
}

// パスワードチェック
function CheckPasswd(passwd, msg) {
	var bOk = true;
	if (8 != passwd.value.length) {
		bOk = false;
		AlertLen(passwd, msg);
	} else {
		for (var i = 0; i < passwd.value.length; i++) {
			if (true != isSingleAlNum(passwd.value.charAt(i))) {
				bOk = false;
				alert(msg + "に半角英数字以外の文字があります。");
				passwd.focus();
				passwd.select();
				break;
			}
		}
	}
	return bOk;
}

// 郵便番号チェック
function CheckZip(zip1, zip2) {
	var bOk = false;
	if ((true == CheckNumCnt(zip1, 3, "郵便番号(前半)")) &&
		(true == CheckNumCnt(zip2, 4, "郵便番号(後半)"))) {
		bOk = true;
	}
	return bOk;
}

// 郵便番号変換
function zip2addr() {
	var zip1  = document.frm.zip1
	var zip2  = document.frm.zip2
	if (true == CheckZip(zip1, zip2)) {
		var cgipath = "../zip/zip2addr.cgi/" + zip1.value + zip2.value;
		window.open(cgipath, "Zip2Address", "width=10,height=10");
	}
}

// 後納顧客コードチェック (桁数チェックあり)
function CheckKCode(text, cnt, msg) {
	var bOk = true;
	if (cnt != strLen(text.value)) {
		bOk = false;
		AlertLen(text, msg);
	} else {
		bOk = CheckAlNumCnt(text, cnt, msg);
	}
	return bOk;
}


