/************************************************
 *
 *  関数名：insertFlash
 *  機能：swfファイルの読込を行なう
 *  パラメータ説明；
 *      obj：対象ファイル名（拡張子は除く）
 *      w：横幅
 *      h：縦幅
 *      locationNum：当該ページのカテゴリ番号（０〜５）
 *      pageType：パス制御用
 *               （"top"の場合のみ下層へ展開し、未記入の場合は同階層へ展開する）
 *
 ************************************************/

function insertFlash(obj, w, h, locationNum, pageType) {
    str='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+w+'" height="'+h+'" id="'+obj+'" align="middle"><param name="wmode" value="transparent"><param name=FlashVars value="locationNum='+locationNum+'&pageType='+pageType+'"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="'+obj+'.swf" /><param name="quality" value="high" /><param name="salign" value="l" /><param name="bgcolor" value="#ffffff" /><embed src="'+obj+'.swf" FlashVars="locationNum='+locationNum+'&pageType='+pageType+'" quality="high" bgcolor="#ffffff" wmode="transparent" width="'+w+'" height="'+h+'" name="'+obj+'" align="middle" salign="l" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer" /></object>';
    document.write(str);
}


/************************************************
 *
 *  フォーカス時の点線を消去
 *
 ************************************************/

var timer = 0;
toClear = setInterval(toBlur, 500);
timer++;
if (timer > 10) {
    clearInterval(toClear);
}

function toBlur() {
    var AnchorArray = new Array();
    AnchorArray =document.getElementsByTagName("a");
    for (i=0; i<AnchorArray.length; i++) {
        AnchorArray[i].onfocus = function() {
            this.blur();
        }
    }
}

/************************************************
 *
 *  登録フォームでの判定
 *
 ************************************************/

var iptArray = new Array();
iptArray = document.getElementsByTagName("input");

function regCheck(form) {
    var submitAllowed = true;
    var cautionStr = "";
    //Cution初期化
    document.getElementById("regCaution").innerHTML = "";
    //半角数字への変換
    var char1 = new Array("１","２","３","４","５","６","７","８","９","０","−",'（','）');
    var char2 = new Array(1,2,3,4,5,6,7,8,9,0,"-",'(',')');
    function FulltoHalf(str){
        while (str.match(/[０-９]|−|\（|\）/)){
            //入力データに全角数字がある場合
            for(i = 0; i < char1.length; i++){
                //入力データを全角数字から半角数字に置換する
                str = str.replace(char1[i], char2[i]);
            }
        }
        return str;
    }
    //生年チェック
    document.getElementById("year_of_birth").value = FulltoHalf(document.getElementById("year_of_birth").value);
    birthText = document.getElementById("year_of_birth").value;
    birthMatchData = birthText.match(/^19|20[0-9][0-9]$/);
    if (!birthMatchData && birthText != "") {
        cautionStr += "・生年（西暦）が不正です。<br />";
        document.getElementById("year_of_birth").style.color = "#ff0000";
        submitAllowed = false;
    }
    //電話番号・FAX番号チェック
    document.getElementById("phone").value = FulltoHalf(document.getElementById("phone").value);
    document.getElementById("fax").value = FulltoHalf(document.getElementById("fax").value);
    phoneText = document.getElementById("phone").value;
    faxText = document.getElementById("fax").value;
    phoneMatchData = phoneText.match(/^([0-9]|-|\(|\))+$/);
    faxMatchData = faxText.match(/^([0-9]|-|\(|\))+$/);
    if (!phoneMatchData && phoneText != "") {
        cautionStr += "・電話番号が不正です。<br />";
        document.getElementById("phone").style.color = "#ff0000";
        submitAllowed = false;
    }
    if (!faxMatchData && faxText != "") {
        cautionStr += "・FAX番号が不正です。<br />";
        document.getElementById("fax").style.color = "#ff0000";
        submitAllowed = false;
    }
    //希望翻訳料金チェック
    var feeCorrect = true;
    if (document.getElementById("whichJob").value == "translator") {
        document.getElementById("language_1_fee_from").value = FulltoHalf(document.getElementById("language_1_fee_from").value);
        document.getElementById("language_1_fee_to").value = FulltoHalf(document.getElementById("language_1_fee_to").value);
        document.getElementById("language_2_fee_from").value = FulltoHalf(document.getElementById("language_2_fee_from").value);
        document.getElementById("language_2_fee_to").value = FulltoHalf(document.getElementById("language_2_fee_to").value);
        feeText11 = document.getElementById("language_1_fee_from").value;
        feeText12 = document.getElementById("language_1_fee_to").value;
        feeText21 = document.getElementById("language_2_fee_from").value;
        feeText22 = document.getElementById("language_2_fee_to").value;
        feeUnmatchData11 = feeText11.match(/[^0-9]+/);
        feeUnmatchData12 = feeText12.match(/[^0-9]+/);
        feeUnmatchData21 = feeText21.match(/[^0-9]+/);
        feeUnmatchData22 = feeText22.match(/[^0-9]+/);
        if (feeUnmatchData11) {
            if (feeCorrect) {
                cautionStr += "・希望翻訳料金が不正です。<br />";
                feeCorrect = false;
            }
            document.getElementById("language_1_fee_from").style.color = "#ff0000";
            submitAllowed = false;
        }
        if (feeUnmatchData12) {
            if (feeCorrect) {
                cautionStr += "・希望翻訳料金が不正です。<br />";
                feeCorrect = false;
            }
            document.getElementById("language_1_fee_to").style.color = "#ff0000";
            submitAllowed = false;
        }
        if (feeUnmatchData21) {
            if (feeCorrect) {
                cautionStr += "・希望翻訳料金が不正です。<br />";
                feeCorrect = false;
            }
            document.getElementById("language_2_fee_from").style.color = "#ff0000";
            submitAllowed = false;
        }
        if (feeUnmatchData22) {
            if (feeCorrect) {
                cautionStr += "・希望翻訳料金が不正です。<br />";
                feeCorrect = false;
            }
            document.getElementById("language_2_fee_to").style.color = "#ff0000";
            submitAllowed = false;
        }
    }
    //経験チェック
    var whichJob = document.getElementById("whichJob").value;
    var expID;
    if (whichJob == "translator") {
        expID = "years_of_translation_experience";
    } else if(whichJob == "techwriter") {
        expID = "years_of_techwrite_experience";
    } else if(whichJob == "illustrator") {
        expID = "years_of_illustration_experience";
    }
    document.getElementById(expID).value = FulltoHalf(document.getElementById(expID).value);
    expText = document.getElementById(expID).value;
    expMatchData = expText.match(/^[1-9]?[0-9]$/);
    if (!expMatchData && expText != "") {
        cautionStr += "・経験年数が不正です。<br />";
        document.getElementById(expID).style.color = "#ff0000";
        submitAllowed = false;
    }
    //メールアドレスチェック
    var txt1;
    var txt2;
    var data1;
    var data2;
    mailText1 = document.getElementById("mail_address1").value;
    mailText2 = document.getElementById("mail_address2").value;
    if (!(mailText1 == "" && mailText2 == "")) {
        mailMatchData1 = mailText1.match(/[A-Za-z0-9_\.\-]+/);
        mailMatchData2 = mailText2.match(/[A-Za-z0-9_\.\-]+/);
        if (mailMatchData1 == null || mailMatchData2 == null) {
            cautionStr += "・メールアドレスが不正です。<br />";
            if (mailMatchData1 == null) {
                document.getElementById("mail_address1").style.color = "#ff0000";
            }
            if (mailMatchData2 == null) {
                document.getElementById("mail_address2").style.color = "#ff0000";
            }
            submitAllowed = false;
        }
    }
    //必須項目チェック
    var requiedFlag;
    var fillComplete = true;
    for (i=0; i<iptArray.length; i++) {
        requiedFlag = iptArray[i].getAttribute("requied");
        if (requiedFlag && (iptArray[i].value == "" || iptArray[i].value == "記入してください")) {
            iptArray[i].value = "記入してください";
            iptArray[i].style.color = "#ff0000";
            fillComplete = false;
            submitAllowed = false;
        }
    }
    if (!fillComplete) {
        cautionStr += "・未記入の必須項目があります。<br />";
    }
    //送信可否の判定
    if (!submitAllowed) {
        document.getElementById("regCaution").innerHTML = cautionStr;
        location.hash = "contentArea";
        return false;
    }
}


//赤字項目をフォーカスすると、黒字に
window.onload = function() {
    for (i=0; i<iptArray.length; i++) {
        iptArray[i].onfocus = function() {
            this.style.color = "#000000";
        }
    }
}


/************************************************
 *
 *  関数名：radioChecked
 *  機能：ラジオボタンをCheckedにする
 *  パラメータ説明；
 *      target：ターゲットID
 *
 ************************************************/

function radioChecked(target) {
    document.getElementById(target).checked = true;
}


/************************************************
 *
 *  関数名：regCancel
 *  機能：登録キャンセル画面への移行
 *  パラメータ説明；
 *      referer：移行元
 *
 ************************************************/

function regCancel(referer) {
    document.location.href = "./reg_canceler.php?ref="+referer;
}