//メールフォーム

//送信ボタンが押されたとき
function send(){
    checkVar();
    stripTag();
}

/*********件名（フォーカスが外れたとき）**********/
function sbjCheck(){
    sbjSelect();
}

//リロードしたとき用!
function sbjLoad(){
    if ($('f_subject').value == 5) {
        $('other').innerHTML = '<input type=text id="f_other" size ="35" maxlength="20" onKeyUp="otherCheck()">';
        return true;
    } else {
        $('other').innerHTML = '';
        return true;
    }
}

//件名で「その他」が選ばれたとき
function sbjSelect(){
    if ($('f_subject').value == 5) {
        $('other').innerHTML = '<input type=text id="f_other" size ="35" maxlength="20" onKeyUp="otherCheck()">';
        return true;
    } else {
        $('other').innerHTML = '';
        return true;
    }
}

function otherCheck() {
    halfkanaChange($('f_other')); 
}

/*********よみがな（入力されたとき）**********/
function kanaCheck(){
    halfkanaChange($('f_kana')); 
    if(checkPattern($('f_kana'),"[^ぁ-ん 　\s]+")) {
        $('erm2').innerHTML = '<br />※ひらがなのみで入力してください';
        return false;
    } else {
        $('erm2').innerHTML = '';
        return true;
    }
}

/*********ご氏名（入力されたとき）**********/
function nameCheck(){
    halfkanaChange($('f_name')); 
    if (isNotNum($('f_name'))){
        $('erm3').innerHTML = '<br />※日本語または英字で入力してください';
        return false;
    } else {
        $('erm3').innerHTML = '';
        return true;
    }
}

/*********郵便番号（入力されたとき）*********/
//郵便番号判定
function zipsearch() {
    halfkanaChange($('f_zip')); 
    fullhalfChange($('f_zip'));
    var str = $('f_zip').value;
	
    if (checkPattern($('f_zip'),"[^0-9-]")) {
        $('erm4').innerHTML = '※使用できない文字が含まれています';
        return false;
    } else if (checkPattern($('f_zip'),"[0-9-]")) {
        if (checkPattern($('f_zip'),"^[0-9]{3}-\?[0-9]{4}$")) {
            var target = document.createElement('script');
            target.charset = 'utf-8';
            target.src = 'http://groovetechnology.co.jp/ZipSearchService/v1/zipsearch?zipcode='+encodeURIComponent( str )+'&callback=callback';
            document.body.appendChild(target);
            $('erm4').innerHTML = '';
            return true;
        } else {
            $('erm4').innerHTML = '「000-0000」または「0000000」の形式で入力してください';
            return false;
        }
    } else {
        $('erm4').innerHTML = '';
        return true;
    }
}

//住所自動挿入
function callback(data) {
    halfkanaChange($('f_zip')); 
    fullhalfChange($('f_zip'));
    var obj = $('f_zip');
    if (data.zipcode["a1"] != undefined) {
        if ( data.zipcode["a1"].zipcode.match(/[0-9]{5}00$/)) {
            $('f_address').value = data.zipcode["a1"].prefecture + data.zipcode["a1"].city;
        } else {
            $('f_address').value = data.zipcode["a1"].prefecture + data.zipcode["a1"].city + data.zipcode["a1"].town;
        }
    } else if (data.office["o1"] != undefined) {
        $('f_address').value = data.office["o1"].prefecture + data.office["o1"].city + data.office["o1"].town + data.office["o1"].street + "  " + data.office["o1"].office_name;
    } else {
        return false;
    }
}




/*********住所*********/
function addCheck() {
    halfkanaChange($('f_address')); 
    if (isNotLen($('f_address'), 300)) {
        $('erm5').innerHTML = '<br />※300文字以内で入力してください';
        return false;
    } else {
        $('erm5').innerHTML = '';
        return true;
    }

}



/*********電話番号*********/
function phoneCheck() {
    halfkanaChange($('f_phone')); 
    fullhalfChange($('f_phone'));
    var str = $('f_phone').value;
    if (checkPattern($('f_phone'),"[^0-9-]")) {
        $('erm6').innerHTML = '<br />※使用できない文字が含まれています';
        return false;
    } else if (checkPattern($('f_phone'), "[0-9-]")) {
        if (checkPattern($('f_phone'), "^[0-9]{2,4}-\?[0-9]{2,4}-\?[0-9]{4}$")) {
            $('erm6').innerHTML = '';
            return true;
        } else if (checkPattern($('f_phone'), "^[0-9]{2,4}-\?[0-9]{4}$")) {
            $('erm6').innerHTML = '';
            return true;
        } else {
            $('erm6').innerHTML = '<br />※間違った形式の可能性があります、ご確認ください';
            return false;
        }
    } else {
        $('erm6').innerHTML = '';
        return true;
    }
}



/*********FAX番号*********/
function faxCheck() {
    halfkanaChange($('f_fax')); 
    fullhalfChange($('f_fax'));
    var str = $('f_fax').value;
    if (checkPattern($('f_fax'),"[^0-9-]")) {
        $('erm7').innerHTML = '<br />※使用できない文字が含まれています';
        return false;
    } else if (checkPattern($('f_fax'),"[0-9-]")) {
        if (checkPattern($('f_fax'),"^[0-9]{2,4}-\?[0-9]{2,4}-\?[0-9]{4}$")) {
            $('erm7').innerHTML = '';
            return true;
        } else if (checkPattern($('f_fax'), "^[0-9]{2,4}-\?[0-9]{4}$")) {
            $('erm7').innerHTML = '';
            return true;
        } else {
            $('erm7').innerHTML = '<br />※間違った形式の可能性があります、ご確認ください';
            return false;
        }
    } else {
        $('erm7').innerHTML = '';
        return true;
    }
}



/*********メールアドレス*********/
function mailCheck(){
    halfkanaChange($('f_mail')); 
    if (checkPattern($('f_mail'), "[^\\w.@*&'%/$#^{}`!+-]")) {
        $('erm8').innerHTML = '<br />※メールアドレスに使用できない文字が含まれています';
        return false;
    } else if (checkPattern($('f_mail'), "[\\w.@*&'%/$#^{}`!+-]")) {
        if (checkPattern($('f_mail'), "^[A-Za-z0-9]+[\\w.*&'%/$#^{}`!+-]+@[\\w.*&'%/$#^{}`!+-]+\\.{1}[\\w]{2,}$")){
            $('erm8').innerHTML = '';
            return true;
        } else {
            $('erm8').innerHTML = '<br />※メールアドレスの形式と違う可能性があります、ご確認ください';
            return false;
        }
    } else {
        $('erm8').innerHTML = '';
        return true;
    }
}



/*********内容*********/
function contentsCheck(){
    halfkanaChange($('f_contents')); 
    if (isNotLen($('f_contents'), 200)) {
        $('erm9').innerHTML = '<br />※200文字以内で入力してください';
        return false;
    } else {
        $('erm9').innerHTML = '';
        return true;
    }
}



/*********希望返信方法*********/
function getReturn(){
    var elm = document.forms["mailform"].elements["r_radio"].length;
    for (var i = 0; i < elm; i++) {
        if (document.forms["mailform"].elements["r_radio"][i].checked) {
            return document.forms["mailform"].elements["r_radio"][i].value;
        }
    }
}

function radioCheck(){
    faxCheck();
    var radio = getReturn();
    if (radio == "fax") {
        if (!isNotEmpty($('f_fax'))) {
            $('erm10').innerHTML = '※FAX番号が入力されていません';
        } else if (faxCheck() == true) {
            $('erm10').innerHTML = '';
        } else {
            $('erm10').innerHTML = '※正しくFAX番号を入力してください';
        }
    } else {
        $('erm10').innerHTML = '';
    }
}



/*********************************************/
//文字列が"str"に該当するとき(正規表現判定）
function checkPattern(elem,str) {
    var value = elem.value;
    var rObj = new RegExp(str);
    if (!value.match(rObj)) {
        return false;
    }
    return true;
}


//数字のみ
function isNotNum(elem){
    var str = elem.value;
    if (!str.match(/\d/)) {
        return false;
    } else {
        return true;
    }
}

//文字数制限
function isNotLen(elem, maxlength) {
    var str = elem.value;
    if (str.length <= maxlength) {
        return false;
    } else {
        return true;
    }
}

//フィールドの文字列が１文字以上の文字列を含むことを検証する
function isNotEmpty(elem) {
    var str = elem.value;
    if (str == null || str.length == 0) {
        return false;
    } else {
        return true;
    }
}

//全角数字→半角数字
function fullhalfChange(elem) {
    var full_num = new Array("１","２","３","４","５","６","７","８","９","０","－","‐");
    var half_num = new Array("1","2","3","4","5","6","7","8","9","0","-","-");
    while (elem.value.match(/[０-９－‐]/)) {
        for (var count = 0; count < full_num.length; count++) {
            elem.value = elem.value.replace(full_num[count], half_num[count]);
        }
    }
}

//半角カタカナ→全角カタカナ
function halfkanaChange(elem) {
    var half_char = new Array("ｶﾞ","ｷﾞ","ｸﾞ","ｹﾞ","ｺﾞ","ｻﾞ","ｼﾞ","ｽﾞ","ｾﾞ","ｿﾞ","ﾀﾞ","ﾁﾞ","ﾂﾞ","ﾃﾞ","ﾄﾞ","ﾊﾞ","ﾋﾞ","ﾌﾞ","ﾍﾞ","ﾎﾞ","ﾊﾟ","ﾋﾟ","ﾌﾟ","ﾍﾟ","ﾎﾟ","ｦ","ｧ","ｨ","ｩ","ｪ","ｫ","ｬ","ｭ","ｮ","ｯ","ｰ","ｱ","ｲ","ｳ","ｴ","ｵ","ｶ","ｷ","ｸ","ｹ","ｺ","ｻ","ｼ","ｽ","ｾ","ｿ","ﾀ","ﾁ","ﾂ","ﾃ","ﾄ","ﾅ","ﾆ","ﾇ","ﾈ","ﾉ","ﾊ","ﾋ","ﾌ","ﾍ","ﾎ","ﾏ","ﾐ","ﾑ","ﾒ","ﾓ","ﾔ","ﾕ","ﾖ","ﾗ","ﾘ","ﾙ","ﾚ","ﾛ","ﾜ","ﾝ");
    var full_char = new Array("ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ヲ","ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ー","ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ン");
    while (elem.value.match(/[ｦ-ﾝ]/)) {
        for (var count = 0; count < half_char.length; count++) {
            elem.value = elem.value.replace(half_char[count], full_char[count]);
        }
    }
}

//「送信」ボタンを押したとき、tag消去
function stripTag(){
    //＊件名
	
    if ($('f_other')) {  //「その他」用のフレームがあるとき
        $('f_other').value = $('f_other').value.stripTags();
    }
    //＊ふりがな
    $('f_kana').value = $('f_kana').value.stripTags();
    //＊ご氏名
    $('f_name').value = $('f_name').value.stripTags();
    //郵便番号
    $('f_zip').value = $('f_zip').value.stripTags();
    //ご住所
    $('f_address').value = $('f_address').value.stripTags();
    //＊電話番号
    $('f_phone').value = $('f_phone').value.stripTags();
    //FAX番号
    $('f_fax').value = $('f_fax').value.stripTags();
    //＊E-mail
    $('f_mail').value = $('f_mail').value.stripTags();
    //＊お問い合わせ内容
    $('f_contents').value = $('f_contents').value.stripTags();
}

function checkVar(){
    var emptyNum = 0;
    //＊件名
    if ($('f_subject').value == 0) {
        emptyNum++;
        $('f_subject').style.backgroundColor = '#ffffdd';
    } else {
        $('f_subject').style.backgroundColor = '#ffffff';
    }
    /*
    if ($('f_other')) {  //「その他」用のフレームがあるとき
        if (!isNotEmpty($('f_other'))) {
            emptyNum++;
            $('f_other').style.backgroundColor = '#ffffdd';
        } else {
            $('f_other').style.backgroundColor = '#ffffff';
        }
    }
    */
    //＊ふりがな
    /*
    if (!isNotEmpty($('f_kana')) || kanaCheck() == false) {
        emptyNum++;
        $('f_kana').style.backgroundColor = '#ffffdd';
    } else {
        $('f_kana').style.backgroundColor = '#ffffff';
    }
    */
    //＊ご氏名
    if (!isNotEmpty($('f_name'))) {
        emptyNum++;
        $('f_name').style.backgroundColor = '#ffffdd';
    } else {
        $('f_name').style.backgroundColor = '#ffffff';
    }
    //郵便番号
    /*
    if (zipsearch() == false) {
        emptyNum++;
        $('f_zip').style.backgroundColor = '#ffffdd';
    } else {
        $('f_zip').style.backgroundColor = '#ffffff';
    }
    */
    //ご住所
    /*
    if (addCheck() == false) {
        emptyNum++;
        $('f_address').style.backgroundColor = '#ffffdd';
    } else {
        $('f_address').style.backgroundColor = '#ffffff';
    }
    */
    //＊電話番号
    /*
    if (!isNotEmpty($('f_phone')) || phoneCheck() == false) {
        emptyNum++;
        $('f_phone').style.backgroundColor = '#ffffdd';
    } else {
        $('f_phone').style.backgroundColor = '#ffffff';
    }
    */
    //FAX番号
    /*
    if (faxCheck() == false) {
        emptyNum++;
        $('f_fax').style.backgroundColor = '#ffffdd';
    } else {
        $('f_fax').style.backgroundColor = '#ffffff';
    }
    */
    //＊E-mail
    if (!isNotEmpty($('f_mail')) || mailCheck() == false) {
        emptyNum++;
        $('f_mail').style.backgroundColor = '#ffffdd';
    } else {
        $('f_mail').style.backgroundColor = '#ffffff';
    }
    //＊お問い合わせ内容
    if (!isNotEmpty($('f_contents'))) {
        emptyNum++;
        $('f_contents').style.backgroundColor = '#ffffdd';
    } else {
        $('f_contents').style.backgroundColor = '#ffffff';
    }
    //空チェック
    if (emptyNum > 0) {
        $('erm11').innerHTML = "※色が変わったところを正しく入力してください";
    } else {
        $('erm11').innerHTML = "";
        $('mailform').submit();
    }
}

//フォームのリセット確認
function resetConf() {
    if (confirm("フォームの内容をリセットします。\nよろしいですか？")) {
        $('other').innerHTML = "";
        $('erm2').innerHTML  = "";
        $('erm3').innerHTML  = "";
        $('erm4').innerHTML  = "";
        $('erm5').innerHTML  = "";
        $('erm6').innerHTML  = "";
        $('erm7').innerHTML  = "";
        $('erm8').innerHTML  = "";
        $('erm9').innerHTML  = "";
        $('erm10').innerHTML = "";
        $('erm11').innerHTML = "";
        $('f_subject').style.backgroundColor = '#ffffff';
        if ($('f_other')) {  //「その他」用のフレームがあるとき
            $('f_other').style.backgroundColor = '#ffffff';
        }
        $('f_kana').style.backgroundColor     = '#ffffff';
        $('f_name').style.backgroundColor     = '#ffffff';
        $('f_zip').style.backgroundColor      = '#ffffff';
        $('f_address').style.backgroundColor  = '#ffffff';
        $('f_phone').style.backgroundColor    = '#ffffff';
        $('f_mail').style.backgroundColor     = '#ffffff';
        $('f_fax').style.backgroundColor      = '#ffffff';
        $('f_contents').style.backgroundColor = '#ffffff';
        return true;
    } else {
        return false;
    }
}
