var subw;

function go_keyword_list(asKeyword) {

    document.forms["keyword_list"].keyword.value = asKeyword;
    document.keyword_list.submit();

}

function jumpPath(asQuery, asMaker) {
    //alert("query=" + asQuery + " cMaker_code=" + asMaker);
    document.pathway_form.query.value = asQuery;
    document.pathway_form.cMaker_code.value = asMaker;

    //20090908
    document.pathway_form.uid.value =  document.druSearch.uid.value;
    document.pathway_form.login_id.value =  document.druSearch.login_id.value;

    document.pathway_form.submit();
}


function jumpPath2(asQuery, asMaker,ascMultimode) {
    document.pathway_form2.query.value = asQuery;
    document.pathway_form2.cMaker_code.value = asMaker;
    document.pathway_form2.cMultimode.value = ascMultimode;
    //20090908
    document.pathway_form2.uid.value =  document.druSearch.uid.value;
    document.pathway_form2.login_id.value =  document.druSearch.login_id.value;
    document.pathway_form2.submit();
}

function jumpPath3(asQuery, asMaker, ascShuyurai) {
    //alert("query=" + asQuery + " cMaker_code=" + asMaker);
    document.pathway_form.query.value = asQuery;
    document.pathway_form.cMaker_code.value = asMaker;
    document.pathway_form.cMaker_code.value = asMaker;
    document.pathway_form.cShuyurai.value = ascShuyurai;

    //20090908
    document.pathway_form.uid.value =  document.druSearch.uid.value;
    document.pathway_form.login_id.value =  document.druSearch.login_id.value;

    document.pathway_form.submit();
}


function go_premium (asAction){
    subw = window.open("","premium_site","");
    //subw = window.open("","_blank","");
    subw.focus();
    document.premium_form.input_action.value = asAction;
    document.premium_form.target = "premium_site";
    //document.premium_form.target = "_blank";
    document.premium_form.submit();
    document.premium_form.target = "";
}

function close_premium (){
    if(!subw){
    }else{
        subw.close();
    }
}


function check_obs_clone (){
    var no;
    var clone;
    var genbank;
    var catalog;
    var field1;
    var field2;
    var field3;
    var read;
    var count = 0;

    no = document.myFORM._line_no.value;

    read = document.myFORM.read_attension.checked;
    if(!read){
        alert("「注意事項に同意します。」にチェックを付けてください。");
        document.myFORM.read_attension.focus();
        return false;
    }

    for(var i = 1; i <= no; i++){
        field1 = "OBS::CloneId" + i;
        field2 = "OBS::GenbankNo" + i;
        field3 = "OBS::CatalogNo" + i;
/*
       clone = document.myFORM.field1.value;
       genbank = document.myFORM.field2.value;
       catalog = document.myFORM.field3.value;
*/
        clone = document.getElementsByName(field1).item(0).value;
        genbank = document.getElementsByName(field2).item(0).value;
        catalog = document.getElementsByName(field3).item(0).value;

        if(clone == "" && genbank == "" && catalog == ""){

        }else{
            if(clone != "" && genbank != "" && catalog != ""){
                //alert(clone + ":" + genbank + ":" + catalog);
                count++;
            }else{
                alert("入力されていない欄があります。");
                return false;
            }
        }

    }

    if(count < 1){
        alert("製品情報を入力して下さい。");
        return false;
    }

    return true;
}

function check_obs_kit(){

    var no;
    var kitcatalog;
    var kitproduct;
    var clone;
    var genbank;
    var catalog;
    var field1;
    var field2;
    var field3;
    var read;
    var count = 0;

    no = document.myFORM._line_no.value;



    read = document.myFORM.read_attension.checked;
    if(!read){
        alert("「注意事項に同意します。」にチェックを付けてください。");
        document.myFORM.read_attension.focus();
        return false;
    }


    
    kitcatalog = document.getElementsByName("OBS::KitCatalogNo").item(0).value;
    kitproduct = document.getElementsByName("OBS::KitProductName").item(0).value;


    //Kit Catalog No.
    // 半角スペースの除去
    kitcatalog = kitcatalog.replace(/^\s+|\s+$/g, "");
    // 全角スペースの除去
    kitcatalog = kitcatalog.replace(/　/g, "");
    if(kitcatalog == ""){
        alert("Catalog No. 欄に入力して下さい。");
        document.getElementsByName("OBS::KitCatalogNo").item(0).focus();
        return false;
    }


    //Kit Product Name 
    // 半角スペースの除去
    kitproduct = kitproduct.replace(/^\s+|\s+$/g, "");
    // 全角スペースの除去
    kitproduct = kitproduct.replace(/　/g, "");
    if(kitproduct == ""){
        alert("品名 欄に入力して下さい。");
        document.getElementsByName("OBS::KitProductName").item(0).focus();
        return false;
    }

    for(var i = 1; i <= no; i++){
        field1 = "OBS::CloneId" + i;
        field2 = "OBS::GenbankNo" + i;
        field3 = "OBS::CatalogNo" + i;

        clone = document.getElementsByName(field1).item(0).value;
        genbank = document.getElementsByName(field2).item(0).value;
        catalog = document.getElementsByName(field3).item(0).value;

        if(clone == "" && genbank == "" && catalog == ""){

        }else{
            if(clone != "" && genbank != "" && catalog != ""){
                //alert(clone + ":" + genbank + ":" + catalog);
                count++;
            }else{
                alert("入力されていない欄があります。");
                return false;
            }
        }

    }

    if(count < 1){
        alert("製品情報を入力して下さい。");
        return false;
    }

    return true;
}


function check_obs_set (){
    var no;
    var set;
    var catalog;
    var field1;
    var field2;
    var read;
    var count = 0;

    no = document.myFORM._line_no.value;

    read = document.myFORM.read_attension.checked;
    if(!read){
        alert("「注意事項に同意します。」にチェックを付けてください。");
        document.myFORM.read_attension.focus();
        return false;
    }

    for(var i = 1; i <= no; i++){
        field1 = "OBS::SetName" + i;
        field2 = "OBS::CatalogNo" + i;
        set = document.getElementsByName(field1).item(0).value;
        catalog = document.getElementsByName(field2).item(0).value;

        if(set == "" && catalog == ""){

        }else{
            if(set != "" && catalog != ""){
                count++;
            }else{
                alert("入力されていない欄があります。");
                return false;
            }
        }

    }

    if(count < 1){
        alert("製品情報を入力して下さい。");
        return false;
    }

    return true;
}

function check_form_oligo(){

    var oligo;
    var gene;
    var species;

    var accession;
    var mrna;
    var antisense;

    var c1;
    var c2;
    var c52;
    var cellscrapers;
    var comments;
    var count = 0;

    //Name for Oligo
    nameforoligo = document.getElementsByName("Name::for::Oligo*%#").item(0).value;
    // 半角英数字チェック
    if( nameforoligo.match(/[^0-9A-Za-z\s.-]+/)){
    //if( nameforoligo.match(/[^0-9A-Za-z-]+/)){
        alert("Name for Oligo 欄は，半角英数字とハイフンのみで入力して下さい。");
        return false;
    }
    //alert("Name for Oligo = " + nameforoligo );
    // 半角スペースの除去
    nameforoligo = nameforoligo.replace(/^\s+|\s+$/g, "");
    // 全角スペースの除去
    nameforoligo = nameforoligo.replace(/　/g, "");
    if(nameforoligo == ""){
        alert("Name for Oligo 欄に記入して下さい。");
        document.getElementsByName("Name::for::Oligo*%#").item(0).focus();
        return false;
    }
    // 文字数チェック 5-15文字
    if(nameforoligo.length < 5 || nameforoligo.length > 15 ){
        alert("Name for Oligo は，5〜15文字で入力して下さい。");
        document.getElementsByName("Name::for::Oligo*%#").item(0).focus();
        return false;
    }
    //Species
    species = document.getElementsByName("Species*").item(0).value;
    //alert("species = " + species);
    //半角スペースの除去
    species = species.replace(/^\s+|\s+$/g, "");
    //全角スペースの除去
    species = species.replace(/　/g, "");
    if(species == ""){
        alert("Species 欄に記入して下さい。");
        document.getElementsByName("Species*").item(0).focus();
        return false;
    }

    //Oligo Sequence いずれか必須
    //accession   GenBankorEMBLAccessionNumber%#
    //accession = document.getElementsByName("GenBankorEMBLAccessionNumber%#").item(0).value;
    accession = document.getElementsByName("GenBankorEMBLAccessionNumber").item(0).value;
    accession = accession.replace(/^\s+|\s+$/g, "");
    accession = accession.replace(/　/g, "");
    //mrna        UnpublishedSequence
    mrna = document.getElementsByName("UnpublishedSequence").item(0).value;
    mrna = mrna.replace(/^\s+|\s+$/g, "");
    mrna = mrna.replace(/　/g, "");
    //antisense   MorpholinoAntisenseOligo
    antisense = document.getElementsByName("MorpholinoAntisenseOligo").item(0).value;
    antisense = antisense.replace(/^\s+|\s+$/g, "");
    antisense = antisense.replace(/　/g, "");

    // 入力チェック
    if(accession == "" && mrna == "" && antisense == ""){
        alert("Oligo Sequense のいずれかに記入して下さい。");
        document.getElementsByName("GenBankorEMBLAccessionNumber%#").item(0).focus();
        return false;
    }
    // 半角英数字チェック
    //if( accession.match(/[^0-9A-Za-z]+/)){
    //if( accession.match(/[^0-9A-Za-z\s.]+/)){
    //if( accession.match(/[^0-9A-Za-z\s\.\_\,\-]+/)){
    if( accession.match(/[^0-9A-Za-z\s\._,-]+/)){
        //alert("GenBank or EMBLaccession number 欄は，半角英数字のみで入力して下さい。");
        alert("GenBank or EMBLaccession number 欄は，半角のみで入力して下さい。");
        return false;
    }
    // 長さチェック
    /* 保留 20100610
    if(antisense != ""){
        antisense_length = antisense.length;
        if(antisense_length < 18 || antisense_length > 25){
            alert("Customer selected anti-sense oligo sequence は，18-25mersの範囲で記入して下さい。");
            //document.getElementsByName("MorpholinoAntisenseOligo").item(0).focus();
            return false;
        }
    }
    */

    //Quantity and Type
    c1 = document.myFORM.c1.checked;
    c2 = document.myFORM.c2.checked;
    c3 = document.myFORM.c3.checked;
    //    c4 = document.myFORM.c4.checked;
    c5 = document.myFORM.c5.checked;
    c6 = document.myFORM.c6.checked;
    c7 = document.myFORM.c7.checked;
    c8 = document.myFORM.c8.checked;
    c9 = document.myFORM.c9.checked;
    c10 = document.myFORM.c10.checked;

    c11 = document.myFORM.c11.checked;
    c12 = document.myFORM.c12.checked;
    c13 = document.myFORM.c13.checked;
    c14 = document.myFORM.c14.checked;
    c15 = document.myFORM.c15.checked;
    c16 = document.myFORM.c16.checked;
    c17 = document.myFORM.c17.checked;
    c18 = document.myFORM.c18.checked;
    c19 = document.myFORM.c19.checked;
    //    c20 = document.myFORM.c20.checked;

    c21 = document.myFORM.c21.checked;
    c22 = document.myFORM.c22.checked;
    c23 = document.myFORM.c23.checked;
    //    c24 = document.myFORM.c24.checked;
    c25 = document.myFORM.c25.checked;
    c26 = document.myFORM.c26.checked;
    //    c27 = document.myFORM.c27.checked;
    c28 = document.myFORM.c28.checked;
    c29 = document.myFORM.c29.checked;
    //    c30 = document.myFORM.c30.checked;

    c31 = document.myFORM.c31.checked;
    c32 = document.myFORM.c32.checked;
    //    c33 = document.myFORM.c33.checked;
    c34 = document.myFORM.c34.checked;
    c35 = document.myFORM.c35.checked;
    c36 = document.myFORM.c36.checked;
    c37 = document.myFORM.c37.checked;
    c38 = document.myFORM.c38.checked;
    c39 = document.myFORM.c39.checked;
    c40 = document.myFORM.c40.checked;

    c41 = document.myFORM.c41.checked;
    c42 = document.myFORM.c42.checked;
    c43 = document.myFORM.c43.checked;
    c44 = document.myFORM.c44.checked;
    c45 = document.myFORM.c45.checked;
    c46 = document.myFORM.c46.checked;
    //    c47 = document.myFORM.c47.checked;
    c48 = document.myFORM.c48.checked;
    c49 = document.myFORM.c49.checked;
    c50 = document.myFORM.c50.checked;

    c51 = document.myFORM.c51.checked;
    c52 = document.myFORM.c52.checked;

    CellScrapers = document.myFORM.CellScrapers.value;
    CellScrapers = CellScrapers.replace(/^\s+|\s+$/g, "");
    CellScrapers = CellScrapers.replace(/　/g, "");


  //  alert("c1:" + c1 + " c2:" + c2 + " c3:" + c3 + "c5:" + c5 + "c6:" + c6 + " c7:" + c7 + "c8:" + c8 + "c9:" + c9 + " c10:" + c10 + " c11:" + c11 + " c12:" + " c13:" + c13 + " c14:" + c14 + " c15:" + c15 + " c16:" + c16 + " c17:" + c17 + " c18:" + c18 + " c19:" + c19 + " c21:" + c21 + " c22:" + c22 + " c23:" + c23 + " c25:" + c25 + " c26:" + c26 + " c28:" + c28 + " c29:" + c29 + " c31:" + c31 + " c32:" + c32 + " c34:" + c34 + " c35:" + c35 + " c36:" + c36 + " c37:" + c37 + " c38:" + c38 + " c39:" + c39 + " c40:" + c40 + " c41:" + c41 + " c44:" + c44 + " c45:" + c45 + " c46:" + c46 + " c50:" + c50 + " c51:" + c51 + " c52:" + c52 + " CellScrapers:" + CellScrapers);

    if(c1 || c2 || c3 || c5 || c6 || c7 || c8 || c9 || c10 || c11 || c12 || c13 || c14 || c15 || c16 || c17 || c18 || c19 || c21 || c22 || c23 || c25 || c26 || c28 || c29 || c31 || c32 || c34 || c35 || c36 || c37 || c38 || c39 || c40 || c41 || c44 || c45 || c46 || c50 || c51 || c52 ){
        //Antisense Oligos
        if(c5 || c6 || c7 || c8 || c9 || c10 || c11 || c12 || c13 || c14 || c15 || c16 ){
            //入力チェック1-1
            if( !(c1 || c2 || c3)){
                alert("Antisense Oligos (Classic)を指定して下さい。");
                return false;
            }else{
             //   alert("Antisense Oligos (Classic)を指定して下さい。");
             //   return false;
            }
            //入力チェック1-3
            if( c50 || c51 || c52){
                alert("vivo Morpholino の修飾はできません。");
                return false;
            }
        }
            //入力チェック1-2, 1-4
            //c1 選択済み
            if(c1){
                // Modification 複数
                if((c5 && c8) || (c5 && c11) || (c5 && c14) || (c8 && c11) || (c8 && c14) || (c11 && c14)){
                    alert("Modification が複数指定されています。");
                    return false;
                }
                // Modification 他の容量を指定 
                if(c6 || c9 || c12 || c15 || c7 || c10 || c13 || c16){
                    alert("Modifications の容量指定が正しくありません。");
                    return false;
                }
            }
            //c2 選択済み
            if(c2){
                // Modification 複数
                if((c6 && c9) || (c6 && c12) || (c6 && c15) || (c9 && c12) || (c9 && c15) || (c12 && c15)){
                    alert("Modification が複数指定されています。");
                    return false;
                }
                // Modification 他の容量を指定 
                if(c5 || c8 || c11 || c14 || c7 || c10 || c13 || c16){
                    alert("Modifications の容量指定が正しくありません。");
                    return false;
                }
            }
            //c3 選択済み
            if(c3){
                // Modification 複数
                if((c7 && c10) || (c7 && c13) || (c7 && c16) || (c10 && c13) || (c10 && c16) || (c13 && c16)){
                    alert("Modification が複数指定されています。");
                    return false;
                }
                // Modification 他の容量を指定 
                if(c5 || c8 || c11 || c14 || c6 || c9 || c12 || c15){
                    alert("Modifications の容量指定が正しくありません。");
                    return false;
                }
            } 

        //Negative Controls
        //入力チェック2-1
        if(c34 || c35 || c36 || c37 || c38 || c39 || c40 || c41){
            if(!(c17 || c18 || c19 || c21 || c22 || c23 || c25 || c26 || c28 || c29 || c31 || c32 ) ){
                alert("Negative Controls を指定して下さい。");
                return false;

            }
        }        
        //入力チェック2-2, 2-3
        //100nMoleのどれか
        if(c17 || c21 || c44){
            // 複数指定
            if((c17 && c21) || (c17 && c44) || (c21 && c44)){
                alert("Negative Controls (100nMole) が複数指定されています。");
                return false;
            }
            // 他の容量指定
            if(c34 || c35 || c36 || c37 || c38 || c39 || c40 || c41){
                alert("この容量(100nMole)では，Modifications を指定できません。");
                return false;
            }
        }
        //300nMoleのどれか
        if(c18 || c22 || c45 || c25 || c28 || c31){
            // 複数指定
            if((c18 && c22) || (c18 && c45) || (c18 && c25) || (c18 && c28) || (c18 && c31) ||
               (c22 && c45) || (c22 && c25) || (c22 && c28) || (c22 && c31) ||
               (c45 && c25) || (c45 && c28) || (c45 && c31) ||
               (c25 && c28) || (c25 && c31) ||
               (c28 && c31)){
                alert("Negative Controls (300nMole) が複数指定されています。");
                return false;
            }
            // 容量複数指定
            if((c34 && c36) || (c34 && c38) || (c34 && c40) || (c36 && c38) || (c36 && c40) || (c38 && c40)){
                alert("Negative Controls の Modifications の容量指定が正しくありません。");
                return false;
            }
            // 他の容量指定
            if(c35 || c37 || c39 || c41){
                alert("Negative Controls の Modifications の容量指定が正しくありません。");
                return false;
            }
        }
        //1,000nMoleのどれか
        if(c19 || c23 || c46 || c26 || c29 || c32){
            // 複数指定
            if((c19 && c23) || (c19 && c46) || (c19 && c26) || (c19 && c29) || (c19 && c32) ||
               (c23 && c46) || (c23 && c26) || (c23 && c29) || (c23 && c32) ||
               (c46 && c26) || (c46 && c29) || (c46 && c32) ||
               (c26 && c29) || (c26 && c32) ||
               (c29 && c32)){
                alert("Negative Controls (1,000nMole) が複数指定されています。");
                return false;
            }
            // 容量複数指定
            if((c35 && c37) || (c35 && c39) || (c35 && c41) || (c37 && c39) || (c37 && c41) || (c39 && c41)){
                alert("Negative Controls の Modifications の容量指定が正しくありません。");
                return false;
            }
            // 他の容量指定
            if(c34 || c36 || c38 || c40){
                alert("Negative Controls の Modifications の容量指定が正しくありません。");
                return false;
            }
        }

    }else{
        alert("Quantity and Type を指定して下さい。");
        return false;
    }



    //数値チェック
    if(CellScrapers != ""){
        if(isNaN(CellScrapers)){
            alert("細胞導入用製品欄の Pack数には，数値を入力して下さい。");
            document.myFORM.CellScrapers.focus();
            return false;
        }
    }


    //コメント欄の半角英数字チェック
    comments = document.getElementsByName("Comments=").item(0).value;
    //alert("comments=" + comments);
    //comments = DeleteLineFeed(comments);
    if( comments.match(/[^0-9A-Za-z\s.\-\.\,\'\(\)]+/)){
        alert("Comments 欄は，半角英数字のみで入力して下さい。");
        return false;
    }

    return true;
}

function check_blocking_oligo(){

    var oligo;
    var gene;
    var species;

    var mirbaseid;
    var mrna;
    var mrna_seq;
    var antisense;
    var left_bra = "";
    var right_bra = "";
    var left_bra_sq = "";
    var right_bra_sq = "";
 
    var target;

    var antisenseoligo;
    var modifications;
    var negativecontrols;

    var c48;
    var c49;
    var cellscrapers;
    var comments;
    var count = 0;
    var i;

    //Name for Oligo
    nameforoligo = document.getElementsByName("Name::for::Oligo*%#").item(0).value;
    // 半角英数字チェック
    if( nameforoligo.match(/[^0-9A-Za-z\s.-]+/)){
    //if( nameforoligo.match(/[^0-9A-Za-z-]+/)){
        alert("Name for Oligo 欄は，半角英数字とハイフンのみで入力して下さい。");
        return false;
    }
    //alert("Name for Oligo = " + nameforoligo );
    // 半角スペースの除去
    nameforoligo = nameforoligo.replace(/^\s+|\s+$/g, "");
    // 全角スペースの除去
    nameforoligo = nameforoligo.replace(/　/g, "");
    if(nameforoligo == ""){
        alert("Name for Oligo 欄に記入して下さい。");
        document.getElementsByName("Name::for::Oligo*%#").item(0).focus();
        return false;
    }
    // 文字数チェック 5-15文字
    if(nameforoligo.length < 5 || nameforoligo.length > 15 ){
        alert("Name for Oligo は，5〜15文字で入力して下さい。");
        document.getElementsByName("Name::for::Oligo*%#").item(0).focus();
        return false;
    }

    //Species
    species = document.getElementsByName("Species*").item(0).value;
    //alert("species = " + species);
    //半角スペースの除去
    species = species.replace(/^\s+|\s+$/g, "");
    //全角スペースの除去
    species = species.replace(/　/g, "");
    if(species == ""){
        alert("Species 欄に記入して下さい。");
        document.getElementsByName("Species*").item(0).focus();
        return false;
    }


    //Oligo Sequence いずれか必須
    //mirbaseid   miRBaseID%#
    mirbaseid = document.getElementsByName("miRBaseID%#").item(0).value;
    mirbaseid = mirbaseid.replace(/^\s+|\s+$/g, "");
    mirbaseid = mirbaseid.replace(/　/g, "");
    //mrna        UnpublishedSequence
    //mrna = document.getElementsByName("UnpublishedSequence").item(0).value;
    mrna = document.myFORM.UnpublishedSequence.value;
    mrna = mrna.replace(/a/g, "A");
    mrna = mrna.replace(/c/g, "C");
    mrna = mrna.replace(/g/g, "G");
    mrna = mrna.replace(/u/g, "U");
    mrna = mrna.replace(/^\s+|\s+$/g, "");
    mrna = mrna.replace(/　/g, "");
    document.myFORM.UnpublishedSequence.value = mrna;
    mrna_seq = mrna;
    mrna_seq = mrna_seq.replace(/<|>/g, "");
    mrna_seq = mrna_seq.replace(/\(|\)/g, "");
    //alert("mrna_seq = " + mrna_seq + ":length = " + mrna_seq.length);
    
    //antisense   MorpholinoAntisenseOligo
    //antisense = document.getElementsByName("MorpholinoAntisenseOligo").item(0).value;
    antisense = document.myFORM.MorpholinoAntisenseOligo.value;
    antisense = antisense.replace(/a/g, "A");
    antisense = antisense.replace(/c/g, "C");
    antisense = antisense.replace(/G/g, "g");
    antisense = antisense.replace(/t/g, "T");
    document.myFORM.MorpholinoAntisenseOligo.value = antisense;
    antisense = antisense.replace(/^\s+|\s+$/g, "");
    antisense = antisense.replace(/　/g, "");

    // 入力チェック
    // いずれか入力必須
    if(mirbaseid == "" && mrna == "" && antisense == ""){
        alert("Oligo Sequense のいずれかに記入して下さい。");
        document.getElementsByName("miRBaseID%#").item(0).focus();
        return false;
    }
    //mirbaseid
    // 半角英数字チェック
    if( mirbaseid.match(/[^0-9A-Za-z\s.-]+/)){
        alert("miRBaseID# 欄は，半角英数字のみで入力して下さい。");
        return false;
    }
    //mrna
    if(mrna != ""){
        // A C g T チェック TODO
        if( mrna.match(/[^ACGU<>\(\)]+/)){
            alert("miRNA sequence 欄は，A C G U ( ) < > で入力して下さい。");
            return false;
        }
        // < > ( ) の対応チェック TODO
        left_bra =  mrna.match(/[\(]+/g);
        right_bra = mrna.match(/[\)]+/g);
        if(left_bra == null && right_bra == null){

        }else{
            if(left_bra == null || right_bra == null){
                alert("( ) の対応が取れていません。");
                document.myFORM.UnpublishedSequence.focus();
                return false;
            }else{
                if( left_bra.toString().length != right_bra.toString().length){
                    alert("( ) の対応が取れていません。");
                    document.myFORM.UnpublishedSequence.focus();
                    return false;
                } 
            }
        }
        left_bra_sq =  mrna.match(/[\<]+/g);
        right_bra_sq = mrna.match(/[\>]+/g);
        if(left_bra_sq == null && right_bra_sq == null){

        }else{
            if(left_bra_sq == null || right_bra_sq == null){
                alert("< > の対応が取れていません。");
                document.myFORM.UnpublishedSequence.focus();
                return false;
            }else{
                if( left_bra_sq.toString().length != right_bra_sq.toString().length){
                    alert("< > の対応が取れていません。");
                    document.myFORM.UnpublishedSequence.focus();
                    return false;
                } 
            }
        }
    }

    //antisense
    // A C g T チェック
    if( antisense.match(/[^ACgT]+/)){
         alert("Custom selected miRNA blocking oligo sequence 欄は，A C g T で入力して下さい。");
         return false;
    }
    // 長さチェック
    if(antisense != ""){
        antisense_length = antisense.length;
        if(antisense_length < 18 || antisense_length > 31){
            alert("Customer selected miRNA blocking oligo sequence は，18-31mersの範囲で記入して下さい（" + antisense_length + "mer）。");
            //document.getElementsByName("MorpholinoAntisenseOligo").item(0).focus();
            document.myFORM.MorpholinoAntisenseOligo.focus();
            return false;
        }
    }

    //Target Area
    var ta_count = 0;
    target = document.myFORM.target;
    if (target.length) {
        for (i = 0; i < target.length; i++) {
            if (document.myFORM.target[i].checked) {
                ta_count++;
            }
        }
        if(ta_count > 0){
            /* 配列の長さのチェックは保留
            if(mrna_seq != "" && mrna_seq.length != 25 ){
                alert("miRNA sequence の配列の長さを確認して下さい（現在 " + mrna_seq.length + "mer）。");
                document.myFORM.UnpublishedSequence.focus();
                return false;
            }
            if(antisense != "" && antisense_length != 25 ){
                alert("miRNA Blocking Oligoの配列の長さを確認して下さい（現在 " + antisense_length + "mer）。");
                document.myFORM.MorpholinoAntisenseOligo.focus();
                return false;
            }
            */
        }
        if(ta_count > 1){
            alert("Target Areaは，複数選択できません。");
            document.getElementsByName("target").item(0).focus();
            return false;
        }
    } else {
        if (document.myFORM.target.checked) {
            //alert(document.myFORM.AntisenseOligo.value);
        }
    }    


    //Quantity and Type
    // Antisense Oligos
    var ao_count = 0;
    antisenseoligo = document.myFORM.AntisenseOligo;
    if (antisenseoligo.length) {
        for (i = 0; i < antisenseoligo.length; i++) {
            if (document.myFORM.AntisenseOligo[i].checked) {
                ao_count++;
            }
        }
        if(ao_count == 0){
            alert("Antisense Oligos を指定して下さい。");
            return false;
        }
        //Classic(25mer)を指定したときは，Target Areaの指定は必須
        if (document.myFORM.AntisenseOligo[0].checked ||
            document.myFORM.AntisenseOligo[1].checked ||
            document.myFORM.AntisenseOligo[2].checked) {
            if(ta_count == 0){
                alert("Target Area を指定して下さい。");
                return false;
             }

        }
        

    } else {
        if (document.myFORM.AntisenseOligo.checked) {
            //alert(document.myFORM.AntisenseOligo.value);
        }
    }    
    // Modifications
    modifications = document.myFORM.Modifications;
    if (modifications.length) {
        for (i = 0; i < modifications.length; i++) {
            if (document.myFORM.Modifications[i].checked) {
               // alert(document.myFORM.Modifications[i].value);
            }
        }
    } else {
        if (document.myFORM.Modifications.checked) {
            //alert(document.myFORM.Modifications.value);
        }
    }    

    // Negative Controls
    negativecontrols = document.myFORM.NegativeControls;
    if (negativecontrols.length) {
        for (i = 0; i < negativecontrols.length; i++) {
            if (document.myFORM.NegativeControls[i].checked) {
                //alert(document.myFORM.NegativeControls[i].value);
            }
        }
    } else {
        if (document.myFORM.NegativeControls.checked) {
            //alert(document.myFORM.NegativeControls.value);
        }
    }    

    c48 = document.myFORM.c48.checked;
    c49 = document.myFORM.c49.checked;

    CellScrapers = document.myFORM.CellScrapers.value;
    CellScrapers = CellScrapers.replace(/^\s+|\s+$/g, "");
    CellScrapers = CellScrapers.replace(/　/g, "");

    //数値チェック
    if(CellScrapers != ""){
        if(isNaN(CellScrapers)){
            alert("細胞導入用製品欄の Pack数には，数値を入力して下さい。");
            document.myFORM.CellScrapers.focus();
            return false;
        }
    }

    //コメント欄の半角英数字チェック
    comments = document.getElementsByName("Comments=").item(0).value;
    if( comments.match(/[^0-9A-Za-z\s.\-\.\,\'\(\)]+/)){
        alert("Comments 欄は，半角英数字のみで入力して下さい。");
        return false;
    }

    return true;
}

function check_origene_clone (){
    var no;
    var genbank;
    var genesymbol;
    var catalog;
    var field1;
    var field2;
    var field3;
    var read;
    var count = 0;

    read = document.myFORM.read_attension.checked;
    if(!read){
        alert("「注意事項に同意します。」にチェックを付けてください。");
        document.myFORM.read_attension.focus();
        return false;
    }

    no = document.myFORM._line_no.value;

    for(var i = 1; i <= no; i++){
        field1 = "ORI::GenbankNo" + i;
        field2 = "ORI::GeneSymbol" + i;
        field3 = "ORI::CatalogNo" + i;

        genbank = document.getElementsByName(field1).item(0).value;
        genesymbol = document.getElementsByName(field2).item(0).value;
        catalog = document.getElementsByName(field3).item(0).value;

        if( genbank == "" && genesymbol == "" && catalog == ""){

        }else{
            if( genbank != "" && genesymbol != "" && catalog != ""){
                //alert(clone + ":" + genbank + ":" + catalog);
                count++;
            }else{
                alert("入力されていない欄があります。");
                return false;
            }
        }
    }

    if(count < 1){
        alert("製品情報を入力して下さい。");
        return false;
    }
    return true;
}

function check_form_order (){
 
    var name;
    var type;
    var comment;

    var field1 = "TOI::Title";
    var field2 = "TOI::Comment";

    //name = document.myFORM.field1.value;
    name = document.getElementsByName(field1).item(0).value;
    comment = document.getElementsByName(field2).item(0).value;

    if ( name == "" ){
        alert("件名を入力して下さい。");
        document.getElementsByName(field1).item(0).focus();
        return false;
    }

    if ( comment == "" ){
        alert("お問合せ内容を入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }

    return true;
}


function check_gsc_peptide (){
 
    var name;
    var seq;
    var jun;
    var req;
    var other;
    var vial;
    var modi;
    var modi_val;
    var nmod;
    var cmod;
    var omod;
    var comment;

    var field1 = "GSC::PeptideName";
    var field2 = "GSC::AminoacidSequence";
    var field3 = "GSC::Peptide::Jundo";
    var field4 = "GSC::Peptide::Hitsuyo";
    var field5 = "GSC::HitsuyouEtc";
    var field6 = "GSC::Vial";
    var field7 = "GSC::Syushoku";
    var field8 = "GSC::Peptide::Nmodify";
    var field9 = "GSC::Peptide::Cmodify";
    var field10 = "GSC::Peptide::Omodify";
    var field11 = "GSC::Comment"; 

    name  = document.getElementsByName(field1).item(0).value;
    seq   = document.getElementsByName(field2).item(0).value;
    jun   = document.getElementsByName(field3).item(0).value;
    req   = document.getElementsByName(field4).item(0).value;
    other = document.getElementsByName(field5).item(0).value;
    vial  = document.getElementsByName(field6).item(0).value; 
    modi  = document.getElementsByName(field7);

    for(var i = 0; i < modi.length; i++) {
        if (modi[i].checked) {
            if(modi[i].value == '修飾有り') { 
                modi_val = "修飾有り";
            }else{
                modi_val = "修飾無し";
            }
        }   
    }   
    nmod  = document.getElementsByName(field8).item(0).value;
    cmod  = document.getElementsByName(field9).item(0).value;
    omod  = document.getElementsByName(field10).item(0).value;
    comment = document.getElementsByName(field11).item(0).value;

    //name  半角英数記号　15文字　必須
    if ( name == "" ){
        alert("名称を入力して下さい。");
        document.getElementsByName(field1).item(0).focus();
        return false;
    }else{
        if( name.match(/[^0-9A-Za-z\s.\-\.\,\']+/)){
            alert("名称は，半角英数字で入力して下さい。");
            document.getElementsByName(field1).item(0).focus();
            return false;
        }
    }

    //seq  必須　半角英字記号
    if ( seq == "" ){
        alert("アミノ酸配列を入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }else{
        if( seq.match(/[^0-9A-Za-z\s.\-\.\,\'\{\}]+/)){
            alert("アミノ酸配列は，半角英字で入力して下さい。");
            document.getElementsByName(field2).item(0).focus();
            return false;
        }
    }

    //other
    //  reqでotherを選択したら必須
    //  半角数字
    if (req == "other" ){
        if ( other == "" ){
            alert("otherの場合, 必要量を入力して下さい。");
            document.getElementsByName(field5).item(0).focus();
            return false;
        }else{
            if( other.match(/[^0-9]+/)){
                alert("必要量は，半角数字を入力して下さい。");
                document.getElementsByName(field5).item(0).focus();
                return false;
            }
        }
    }
    if ( other != "" ){
       if (req != "other" ){
            alert("必要量のプルダウンで other を指定して下さい。");
            document.getElementsByName(field4).item(0).focus();
            return false;
        }
    }

    //分注本数
    if ( vial != ""){
        if( vial.match(/[^0-9]+/)){
            alert("分注本数は，半角数字を入力して下さい。");
            document.getElementsByName(field6).item(0).focus();
            return false;
        }
    }

    //修飾ありの場合，修飾方法について指定する
    if(modi_val == "修飾有り" && nmod == "" && cmod == "" && omod == ""){
        alert("修飾方法を指定して下さい。");
        document.getElementsByName(field8).item(0).focus();
        return false;
    } 
    //修飾方法が指定されているが、修飾無しになっている場合
    if(modi_val == "修飾無し" && ( nmod != "" || cmod != "" || omod != "")){
        alert("修飾有りを指定して下さい。");
        document.getElementsByName(field7).item(1).focus();
        return false;
    } 

    return true;
}


function check_custom_gene (){
 
    var name;
    var dna;
    var amino;
    var cquantity;
    var cquantitynormal;
    var mquantity;
    //var mquqntitynormal;
    var othervector;
    var othervector_value;

    var field1 = "GSC::Gene::Name";
    var field2 = "GSC::DNA::Sequence";
    var field3 = "GSC::AminoAcid::Sequence";
    var field4 = "GSC::Cloning::Quantity";
    var field5 = "GSC::Cloning::Vector";


    name  = document.getElementsByName(field1).item(0).value;
    dna   = document.getElementsByName(field2).item(0).value;
    amino = document.getElementsByName(field3).item(0).value;
    cquantity = document.getElementsByName(field4).item(0).value;
    othervector = document.getElementsByName(field5);

    for(var i = 0; i < othervector.length; i++){
        if (othervector[i].checked == true){
            othervector_value = othervector[i].value;
        }else{
        }
    }


    if ( name == "" ){
        alert("gene name を入力して下さい。");
        document.getElementsByName(field1).item(0).focus();
        return false;
    }
    if ( dna == "" && amino == "" ){
        alert("ＤＮＡシークエンス あるいは アミノ酸シークエンスを入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }
    if ( dna != "" && amino != "" ){
        alert("ＤＮＡシークエンス あるいは アミノ酸シークエンス のいずれか一方を入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }
    //TODO 全項目の半角英数チェック
    if( dna.match(/[^0-9A-Za-z\s.-]+/)){
        alert("ＤＮＡシークエンス 欄は，半角英字で入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }

    if( cquantity == " " ){
        alert("Plasmid Preparation の Quantity を指定して下さい。");
        document.getElementsByName(field4).item(0).focus();
        return false;
    }

    return true;
}


function check_pep_peptide (){
 
    var name;
    var amino;
    var hitsuyou;
    var hitsuyou_value;
    var hitsuyou_etc;

    var field1 = "PEP::PeptideName";
    var field2 = "PEP::AminoacidSequence";
    var field3 = "PEP::HitsuyouRyou";
    var field4 = "PEP::HitsuyouRyouEtc";

    name  = document.getElementsByName(field1).item(0).value;
    amino = document.getElementsByName(field2).item(0).value;
    hitsuyou = document.getElementsByName(field3);
    for(var i = 0; i < hitsuyou.length ; i++){
        if( hitsuyou[i].checked ){
            hitsuyou_value = hitsuyou[i].value;
        }
    }

    hitsuyou_etc = document.getElementsByName(field4).item(0).value;

    if ( name == "" ){
        alert("名称を入力して下さい。");
        document.getElementsByName(field1).item(0).focus();
        return false;
    }
    if ( amino == "" ){
        alert("アミノ酸配列を入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }
    //半角英数チェック
    if( amino.match(/[^0-9A-Za-z\s.-]+/)){
        alert("アミノ酸配列欄は，半角英字で入力して下さい。");
        document.getElementsByName(field2).item(0).focus();
        return false;
    }
    //必要量の指定のチェック
    if( hitsuyou_value == "その他" && hitsuyou_etc == ""){
        alert("必要量を入力して下さい。");
        document.getElementsByName(field4).item(0).focus();
        return false;
    }
    if( hitsuyou_value != "その他" && hitsuyou_etc != ""){
        alert("必要量：その他を選択して下さい。");
        document.getElementsByName(field3).item(4).focus();
        return false;
    }

    return true;
}




function SetCodonOptimizationArea(){
    var area;
    var field1 = "UseCodonOptimization";
    var field2 = "CodonOptimizationArea";
    //area = document.getElementById(field1).checked;
      area = document.getElementsByName(field1).item(0).checked;
    if(area){
        document.getElementById(field2).style.display = "block";
    }else{
        document.getElementById(field2).style.display = "none";
    }
}

function SetAdditionalServicesArea(){
    var area;
    var field1 = "UseAdditionalServices";
    var field2 = "AdditionalServicesArea";
    area  = document.getElementById(field1).checked;
    if(area){
        document.getElementById(field2).style.display = "block";
    }else{
        document.getElementById(field2).style.display = "none";
    }
}

function DeleteLineFeed(myLen) { 
    var newLen = ''; 
    for(var i=0; i<myLen.length; i++){ 
        text = escape(myLen.substring(i, i+1)); 
        if(text != "%0D" && text != "%0A"){ 
            newLen += myLen.substring(i, i+1); 
        } 
    } 
    return(newLen); 
} 

function addAminoAcid(aa){
    
    var aa_seq;
    //var field = "GSC::AminoacidSequence";
    var field = "aminoacid_sequence_tmp";
    aa_seq = document.getElementsByName(field).item(0).value;
    document.getElementsByName(field).item(0).value = aa_seq + aa;
    document.getElementsByName(field).item(0).alt = aa_seq + aa;

}

function setAminoAcid(){
    
    var aa_seq_tmp;
    var field = "GSC::AminoacidSequence";
    var field_tmp = "aminoacid_sequence_tmp";
    aa_seq_tmp = document.getElementsByName(field_tmp).item(0).value;
    aa_seq_tmp = aa_seq_tmp.replace(/\r\n/g, "");  //IE
    aa_seq_tmp = aa_seq_tmp.replace(/\n/g, "");    //Firefox
    document.getElementsByName(field).item(0).value = aa_seq_tmp;
    document.getElementsByName(field).item(0).focus();
    document.getElementById('aminoacid_list').style.display = "none"; 

}

