﻿function validateForm(bObj, e) {
    var scTxt = " ハイフン(-)以外の特殊記号は入力できません。";
    if (txtLastName) {
        if (txtLastName.value.length == 0) { halert("姓を入力してください。", txtLastName); return false; }
        else if (!inputValidator.LastName.test(txtLastName.value)) { halert("半角英字で入力してください。" + scTxt, txtLastName); return false; }
        else if (txtLastName.value.length > 35) { halert("姓は35文字以内で入力してください。", txtLastName); return false; }
    }
    if (txtFirstName) {
        if (txtFirstName.value.length == 0) { halert("名を入力してください。", txtFirstName); return false; }
        else if (!inputValidator.FirstName.test(txtFirstName.value)) { halert("半角英字で入力してください。" + scTxt, txtFirstName); return false; }
        else if (txtFirstName.value.length > 35) { halert("名は35文字以内で入力してください。 ", txtFirstName); return false; }
    }

    if (txtZipCode) {
        if (txtZipCode.value.length == 0) { halert("郵便番号を入力してください。", txtZipCode); return false; }
        else {
            if (!inputValidator.JAPZip.test(txtZipCode.value)) { halert("正しい郵便番号を入力してください。", txtZipCode); return false; }
        }
    }
    if (txtPhone) {
        if (txtPhone.value.length == 0) { halert("日中連絡先を入力してください。", txtPhone); return false; }
        else if (!inputValidator.Phone.test(txtPhone.value)) { halert("電話番号は半角数字で入力してください。", txtPhone); return false; }
    }    
    if (txtEmail) {
        if (txtEmail.value.length == 0) { halert("Eメールアドレスを入力してください。", txtEmail); return false; }
        else if (!inputValidator.Email.test(txtEmail.value)) { halert("正しいEメールアドレスを入力してください。", txtEmail); return false; }
    }
    if (txtEmailConfirm) {
        if (txtEmailConfirm.value.length == 0) { halert("Eメールアドレス(確認用)には、Eメールアドレスを再度入力してください。", txtEmailConfirm); return false; }
        else if (txtEmail.value != txtEmailConfirm.value) { halert("EメールアドレスとEメールアドレス(確認用)が一致しません。再度ご確認の上、入力してください。", txtEmailConfirm); return false; }
    }
    
   return true;

}


function input_onKeyPress(sender, e) {
    var iKey = e.keyCode;
    if (e.preventDefault) { if ({ 8: 1, 9: 1, 33: 1, 34: 1, 35: 1, 36: 1, 37: 1, 38: 1, 39: 1, 40: 1, 46: 1}[iKey]) { return; } else { iKey = e.which; } } //needed for FireFox.
    var chr = String.fromCharCode(iKey); var re = /^.*$/;

    switch (sender) {
        case txtFirstName: re = inputValidator.FirstName; break;
        case txtLastName: re = inputValidator.LastName; break;
        case txtZipCode: re = inputValidator.ZipInput; break;
        case txtAreaCode: re = inputValidator.Numbers; break;
        case txtPhone: re = inputValidator.PhoneEnter; break;
        case txtEmail: re = inputValidator.EmailChar; break;
        case txtEmailConfirm: re = inputValidator.EmailChar; break;
    }
    if (!re.test(chr)) { e.preventDefault ? e.preventDefault() : e.returnValue = false; }
}
function input_onBlur(sender, e) {
    var oVal = sender.value;
    sender.value = Trim(oVal);
    switch (sender) {
        case txtZipCode: sender.value = oVal.toUpperCase(); break;
        case txtPhone: sender.value = oVal.replace(/\-/g, ""); break;
    }
}
function Trim(str) {
    if (str.charAt(0) == " ") { str = Trim(str.substring(1)); }
    if (str.charAt(str.length - 1) == " ") { str = Trim(str.substring(0, str.length - 1)); }
    return str;
}

var inputValidator = new Object();
inputValidator.FirstName = /^[a-zA-Z\s\-]+$/;
inputValidator.LastName = /^[a-zA-Z\s\-]+$/;
inputValidator.Zip = /^((\d{5}\d{4})|(\d{5}-\d{4})|\d{5})$/;
inputValidator.JAPZip = /^((\d{7})|(\d{3}-\d{4}))$/;
inputValidator.ZipInput = /^[\w\-]$/
inputValidator.Phone = /^[0-9\-]{10}|[0-9\-]{11}$/;
inputValidator.PhoneEnter = /^[0-9\-]$/;
inputValidator.EmailChar = /^[\w\d\-\.\@\[\]]+$/;
inputValidator.Email = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
inputValidator.Numbers = /^[\d]+$/;
inputValidator.Alpha = /^[a-zA-Z]$/;





