﻿
var aspnetForm_ch1, aspnetForm_ch2, aspnetForm_ch3, aspnetForm_inst;

var curCh;
var playerDiv;



function GetRank(str, flag) {
    var mel1len, mel2len, mel3len, c_rank;
    mel1len = document.getElementById("mel1len");
    mel2len = document.getElementById("mel2len");
    mel3len = document.getElementById("mel3len");
    c_rank = document.getElementById("c_rank");

    var temp;
    var mycount;
    mycount = 0;
    len = str.length;
    for (k = 0; k < len; k++) {
        temp = str.charAt(k);
        mycount++;
    }


    switch (flag) {
        case 1:
            mel1len.innerHTML = mycount;
            if (mycount > 950) {
                alert('You can\'t write longer than 950 letters. The extended amount will be deleted.');
                aspnetForm_ch1.value = aspnetForm_ch1.value.substr(0, 949);
                mel1len.innerHTML = 950
            }
            break;
        case 2:
            mel2len.innerHTML = mycount;
            if (mycount > 450) {
                alert('You can\'t write longer than 450 letters. The extended amount will be deleted.');
                aspnetForm_ch2.value = aspnetForm_ch2.value.substr(0, 449);
                mel2len.innerHTML = 450
            }
            break;
        case 3:
            mel3len.innerHTML = mycount;
            if (mycount > 200) {
                alert('You can\'t write longer than 200 letters. The extended amount will be deleted.');
                aspnetForm_ch3.value = aspnetForm_ch3.value.substr(0, 199);
                mel3len.innerHTML = 200
            }
            break;

    }

    if (mel1len.innerHTML < 201) {
        c_rank.innerHTML = 'Practice'

        if (mel2len.innerHTML < 101) {
            if (mel3len.innerHTML > 100 && mel3len.innerHTML < 151)
            { c_rank.innerHTML = 'D' }
            else if (mel3len.innerHTML > 300 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'C' }
            else if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
            else if (mel3len.innerHTML > 0)
            { c_rank.innerHTML = 'F' }
        }
        if (mel2len.innerHTML > 100 && mel2len.innerHTML < 201) {
            c_rank.innerHTML = 'F'
            if (mel3len.innerHTML > 100 && mel3len.innerHTML < 151)
            { c_rank.innerHTML = 'D' }
            else if (mel3len.innerHTML > 300 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'C' }
            else if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        }
        else if (mel2len.innerHTML > 200) {
            c_rank.innerHTML = 'D'
            if (mel3len.innerHTML > 300 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'C' }
            else if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        }

    }

    else if (mel1len.innerHTML > 200 && mel1len.innerHTML < 401) {
        c_rank.innerHTML = 'F'
        if (mel2len.innerHTML > 200) {
            c_rank.innerHTML = 'D'

            if (mel3len.innerHTML > 300 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150 && mel3len.innerHTML < 201)
            { c_rank.innerHTML = 'C' }
            else if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        }
        else {
            if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
            else if (mel3len.innerHTML > 300)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150)
            { c_rank.innerHTML = 'C' }
            else if (mel3len.innerHTML > 100)
            { c_rank.innerHTML = 'D' }
        }
    }


    else if (mel1len.innerHTML > 400 && mel1len.innerHTML < 501) {
        c_rank.innerHTML = 'E'
        if (mel2len.innerHTML > 200) {
            c_rank.innerHTML = 'D'
            if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
            else if (mel3len.innerHTML > 300)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150)
            { c_rank.innerHTML = 'C' }

        }
        else {
            if (mel3len.innerHTML > 200)
            { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
            else if (mel3len.innerHTML > 300)
            { c_rank.innerHTML = '9' }
            else if (mel3len.innerHTML > 250)
            { c_rank.innerHTML = 'B' }
            else if (mel3len.innerHTML > 150)
            { c_rank.innerHTML = 'C' }
            else if (mel3len.innerHTML > 100)
            { c_rank.innerHTML = 'D' }
        }
    }
    else if (mel1len.innerHTML > 500 && mel1len.innerHTML < 601) {
        c_rank.innerHTML = 'D'
        if (mel3len.innerHTML > 200)
        { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        else if (mel3len.innerHTML > 300)
        { c_rank.innerHTML = '9' }
        else if (mel3len.innerHTML > 250)
        { c_rank.innerHTML = 'B' }
        else if (mel3len.innerHTML > 150)
        { c_rank.innerHTML = 'C' }

    }

    else if (mel1len.innerHTML > 600 && mel1len.innerHTML < 651) {
        c_rank.innerHTML = 'C'
        if (mel3len.innerHTML > 200)
        { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        else if (mel3len.innerHTML > 300)
        { c_rank.innerHTML = '9' }
        else if (mel3len.innerHTML > 250)
        { c_rank.innerHTML = 'B' }
        else if (mel3len.innerHTML > 150)
        { c_rank.innerHTML = 'C' }

    }

    else if (mel1len.innerHTML > 650 && mel1len.innerHTML < 701) {
        c_rank.innerHTML = 'B'
        if (mel3len.innerHTML > 200)
        { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        else if (mel3len.innerHTML > 300)
        { c_rank.innerHTML = '9' }

    }
    else if (mel1len.innerHTML > 700 && mel1len.innerHTML < 751) {
        c_rank.innerHTML = 'A'
        if (mel3len.innerHTML > 200)
        { alert('Sorry. You can\'t do that.'); document.composerWrite.chord.value = ''; document.composerWrite.melody_1.value = ''; document.composerWrite.melody_2.value = ''; mel3len.innerHTML = 0; mel2len.innerHTML = 0; mel1len.innerHTML = 0; }
        else if (mel3len.innerHTML > 300)
        { c_rank.innerHTML = '9' }

    }
    else if (mel1len.innerHTML > 750 && mel1len.innerHTML < 801) {
        c_rank.innerHTML = '9'
    }

}

function init(channel1_objid, channel2_objid, channel3_objid, instrument_objid, clearForm) {
    var aspnetForm = document.forms[0]; //all.aspnetForm;

    aspnetForm_ch1 = document.getElementById(channel1_objid);
    aspnetForm_ch2 = document.getElementById(channel2_objid);
    aspnetForm_ch3 = document.getElementById(channel3_objid);
    aspnetForm_inst = document.getElementById(instrument_objid);

    curCh = 0;
    if (clearForm) {
        aspnetForm_ch1.value = "";
        aspnetForm_ch2.value = "";
        aspnetForm_ch3.value = "";
    }
    else {
        ch1_onkeyup();
        ch2_onkeyup();
        ch3_onkeyup();
    }

    if (document.getElementById("btn_Stop"))
        aspnetForm.btn_Stop.onclick = btn_Stop_onclick;
    if (aspnetForm.btn_Play)
        aspnetForm.btn_Play.onclick = btn_Play_onclick;
    if (document.getElementById("clear"))
        aspnetForm.clear.onclick = clear_onclick;
    if (aspnetForm_ch1)
        aspnetForm_ch1.onfocus = ch1_onfocus;
    if (aspnetForm_ch2)
        aspnetForm_ch2.onfocus = ch2_onfocus;
    if (aspnetForm_ch3)
        aspnetForm_ch3.onfocus = ch3_onfocus;
    if (document.getElementById("btn_r"))
        aspnetForm.btn_r.onclick = btn_r_onclick;
    if (document.getElementById("combo_o"))
        aspnetForm.combo_o.onchange = combo_o_onchange;
    if (document.getElementById("combo_l"))
        aspnetForm.combo_l.onchange = combo_l_onchange;
    if (document.getElementById("combo_v"))
        aspnetForm.combo_v.onchange = combo_v_onchange;
    if (document.getElementById("change_t"))
        aspnetForm.change_t.onclick = change_t_onclick;
    if (document.getElementById("btn_c"))
        aspnetForm.btn_c.onclick = btn_c_onclick;
    if (document.getElementById("btn_d"))
        aspnetForm.btn_d.onclick = btn_d_onclick;
    if (document.getElementById("btn_e"))
        aspnetForm.btn_e.onclick = btn_e_onclick;
    if (document.getElementById("btn_f"))
        aspnetForm.btn_f.onclick = btn_f_onclick;
    if (document.getElementById("btn_g"))
        aspnetForm.btn_g.onclick = btn_g_onclick;
    if (document.getElementById("btn_a"))
        aspnetForm.btn_a.onclick = btn_a_onclick;
    if (document.getElementById("btn_b"))
        aspnetForm.btn_b.onclick = btn_b_onclick;
    if (document.getElementById("btn_cs"))
        aspnetForm.btn_cs.onclick = btn_cs_onclick;
    if (document.getElementById("btn_ds"))
        aspnetForm.btn_ds.onclick = btn_ds_onclick;
    if (document.getElementById("btn_fs"))
        aspnetForm.btn_fs.onclick = btn_fs_onclick;
    if (document.getElementById("btn_gs"))
        aspnetForm.btn_gs.onclick = btn_gs_onclick;
    if (document.getElementById("btn_as"))
        aspnetForm.btn_as.onclick = btn_as_onclick;
    if (aspnetForm_ch1)
        aspnetForm_ch1.onkeyup = ch1_onkeyup;
    if (aspnetForm_ch2)
        aspnetForm_ch2.onkeyup = ch2_onkeyup;
    if (aspnetForm_ch3)
        aspnetForm_ch3.onkeyup = ch3_onkeyup;
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}


function AddString(s) {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    switch (curCh) {
        case 0:
            aspnetForm_ch1.value = aspnetForm_ch1.value + s;
            aspnetForm.char_ch1.value = aspnetForm_ch1.value.length;
            break;
        case 1:
            aspnetForm_ch2.value = aspnetForm_ch2.value + s;
            aspnetForm.char_ch2.value = aspnetForm_ch2.value.length;
            break;
        case 2:
            aspnetForm_ch3.value = aspnetForm_ch3.value + s;
            aspnetForm.char_ch3.value = aspnetForm_ch3.value.length;
            break;
    }
    return;
}

function GetLength() {
    var aspnetForm = document.forms[0]; //.all.aspnetForm;

    var ret = "";
    if (aspnetForm.combo_l.value != aspnetForm.combo_length.value) {
        ret = aspnetForm.combo_length.value;
    }
    return ret;
}


function btn_Play_onclick() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    s = aspnetForm_ch1.value + "," + aspnetForm_ch2.value + "," + aspnetForm_ch3.value;

    s = s.replace(/\%/g, "");
    s = s.replace(/\#/g, "%23");
    s = s.replace(/\+/g, "%2B");
    s = s.replace(/\&/g, "%26");
    s = s.replace(/\</g, "%3C");
    s = s.replace(/\>/g, "%3E");
    s = s.replace(/\s/g, "");
    i = aspnetForm_inst.value;

    var pSrc = "http://mabinogi.nexon.net/PSG/PSGConverter.exe?%20/i:" + i + "%20" + s;

    playerDiv = document.createElement("div");
    playerDiv.id = "playerDiv";
    document.body.appendChild(playerDiv);
    var str = '<object id="player" type="video/x-ms-wmv" data="' + pSrc + '"  style="WIDTH: 0px; HEIGHT: 0px" >';
    str += '<param name="src" value="' + pSrc + '" valuetype="ref">';
    str += '<param name="animationatStart" value="1">';
    str += '<param name="transparentatStart" value="1">';
    str += '<param name="autoStart" value="1">';
    str += '<param name="ShowControls" value="0">';
    str += '<param name="ShowDisplay" value="0">';
    str += '<param name="ShowStatusBar" value="0">';
    str += '<param name="loop" value="0">';
    str += '<param name="displaysize" value="0">';
    str += '</object>';
    playerDiv.innerHTML = str;

}

function btn_Stop_onclick() {

    var playerdiv = document.getElementById("playerDiv");

    if (playerdiv)
        playerDiv.innerHTML = "";

}

function clear_onclick() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    aspnetForm_ch1.value = "";
    aspnetForm.char_ch1.value = "0";
    aspnetForm_ch2.value = "";
    aspnetForm.char_ch2.value = "0";
    aspnetForm_ch3.value = "";
    aspnetForm.char_ch3.value = "0";
}

function window_onload() {
    var aspnetForm = document.all.aspnetForm;
    curCh = 0;
    aspnetForm_ch1.value = "";
    aspnetForm_ch2.value = "";
    aspnetForm_ch3.value = "";
}

function ch1_onfocus() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;

    if (document.getElementById("radio_ch1") != null)
        aspnetForm.radio_ch1.checked = true;

    curCh = 0;
}

function ch2_onfocus() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    if (document.getElementById("radio_ch2") != null)
        aspnetForm.radio_ch2.checked = true;
    curCh = 1;
}

function ch3_onfocus() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    if (document.getElementById("radio_ch3") != null)
        aspnetForm.radio_ch3.checked = true;
    curCh = 2;
}

function btn_r_onclick() {
    AddString("R" + GetLength());
}

function combo_o_onchange() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    AddString("O" + aspnetForm.combo_o.value);
}

function combo_l_onchange() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    AddString("L" + aspnetForm.combo_l.value);
}

function combo_v_onchange() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    AddString("V" + aspnetForm.combo_v.value);
}

function change_t_onclick() {
    var aspnetForm = document.forms[0]; //all.aspnetForm;
    AddString("T" + trim(aspnetForm.input_t.value));
}

function btn_c_onclick() {
    AddString("C" + GetLength());
}

function btn_d_onclick() {
    AddString("D" + GetLength());
}

function btn_e_onclick() {
    AddString("E" + GetLength());
}

function btn_f_onclick() {
    AddString("F" + GetLength());
}

function btn_g_onclick() {
    AddString("G" + GetLength());
}

function btn_a_onclick() {
    AddString("A" + GetLength());
}

function btn_b_onclick() {
    AddString("B" + GetLength());
}

function btn_cs_onclick() {
    AddString("C#" + GetLength());
}

function btn_ds_onclick() {
    AddString("D#" + GetLength());
}

function btn_fs_onclick() {
    AddString("F#" + GetLength());
}

function btn_gs_onclick() {
    AddString("G#" + GetLength());
}

function btn_as_onclick() {
    AddString("A#" + GetLength());
}

function ch1_onkeyup() {

    if (document.getElementById("char_ch1")) {
        var aspnetForm = document.forms[0]; //all.aspnetForm;
        aspnetForm.char_ch1.value = aspnetForm_ch1.value.length;
    }
    else if (document.getElementById("mel1len")) {
        GetRank(aspnetForm_ch1.value, 1);
    }
}

function ch2_onkeyup() {
    if (document.getElementById("char_ch2")) {
        var aspnetForm = document.forms[0]; //all.aspnetForm;
        aspnetForm.char_ch2.value = aspnetForm_ch2.value.length;
    }
    else if (document.getElementById("mel2len")) {
        GetRank(aspnetForm_ch2.value, 2);
    }
}

function ch3_onkeyup() {
    if (document.getElementById("char_ch1")) {
        var aspnetForm = document.forms[0]; //all.aspnetForm;
        aspnetForm.char_ch3.value = aspnetForm_ch3.value.length;
    }
    else if (document.getElementById("mel3len")) {
        GetRank(aspnetForm_ch3.value, 3);
    }
}

