curInf = '';
feesInf = '';

function start() {

    // Go back
    document.getElementById('previous-button').addEventListener("click", function () {
        gotoPage('step', 'transferCrypto', "")
    });

    // Go step 4
    document.getElementById('next-button').addEventListener("click", function () {
        verifyNextButton()
    });



    // Go back R
    document.getElementById('previous-buttonR').addEventListener("click", function () {
        gotoPage('step', 'transferCrypto', "")
    });

    // Go step 4 R
    document.getElementById('next-buttonR').addEventListener("click", function () {
        verifyNextButton()
    });

    // Step
    document.getElementById('floatButton').addEventListener("click", function () {
        var popup = document.getElementById("floatButton").children[0].children[0];
        if (popup.classList.contains('show')) {
            gotoPage('dashboard', 'home', "")
        } else {
            popup.classList.toggle("show");
        }
    })

    document.getElementById('floatClose').addEventListener("click", function (event) {
        var popup = document.getElementById("floatButton").children[0].children[0];
        popup.classList.remove("show")
        event.stopPropagation()
    })

    // Session Update


    // withdraw
    document.getElementById('withdrawAmount').addEventListener("keyup", function (e) {
        decimCoin = this.getAttribute("icDecim");
        var noVal = formatCurrency(decimCoin, this.value);
        if (noVal !== "") this.value = noVal;
        document.getElementById('withdrawAmount').setAttribute("dataNumber", parseFloat(document.getElementById('withdrawAmount').value).noExponents());
        document.getElementById('error').style.display = 'none'
    })


    document.getElementById('all').addEventListener("click", function () {
        document.getElementById('withdrawAmount').setAttribute('dataNumber', parseFloat(document.getElementById('avail').getAttribute('number')).noExponents())
        document.getElementById('withdrawAmount').value = number_format(parseFloat(document.getElementById('avail').getAttribute('number')).noExponents(), decimCoin);
        document.getElementById('withdrawAmount').disabled = true
        if (feesInf.entry.xfer.nmalfee) {
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + (feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ',');

            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + ((feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ','));
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + ((feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ','));
            var noVal = formatCurrency(decimCoin, this.value);
            if (noVal !== "") this.value = noVal;
            if (document.getElementById('withdrawAmount').value == "") {
                document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
                document.getElementById('withdrawTotalFinal').style.color = "#262624"
            } else {
                if (((((parseFloat((document.getElementById('withdrawAmount').value).replace(',', '.')) - feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin)).replace('.', ','))).startsWith('-')) {
                    document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
                    document.getElementById('withdrawTotalFinal').style.color = "#D0021B"
                } else {
                    document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() - parseFloat(feesInf.entry.xfer.nmalfee.number).noExponents()).noExponents(), decimCoin)
                    //((((parseFloat((document.getElementById('withdrawAmount').value).replace(',','.')) - fees.entry.xfer.nmalfee.number).toFixed(decimCoin)).replace('.', ',')));
                    document.getElementById('withdrawTotalFinal').style.color = "#262624"
                }

            }
        } else if (feesInf.entry.xfer.pctfee) {
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
            var noVal = formatCurrency(decimCoin, this.value);
            if (noVal !== "") this.value = noVal;
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + number_format((parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() * parseFloat(feesInf.entry.xfer.pctfee.number)).noExponents() / 100, decimCoin)
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() * (1 - feesInf.entry.xfer.pctfee.number / 100), decimCoin)
        } else {
            console.log('N/A')
        }


    })
    document.getElementById('notAll').addEventListener("click", function () {
        document.getElementById('withdrawAmount').disabled = false
    })

    var fieldAmo = ["withdrawAmount"];
    formatAmount(fieldAmo);


    init()

    //Mostrar HTML cargado
    esconderHTML(false);


}

function verifyNextButton() {
    if (parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber'))) {
        if (parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')) > parseFloat(document.getElementById('avail').getAttribute('number'))) {
            document.getElementById('error').innerHTML = getLangById('var1')[lang]
            document.getElementById('error').style.display = 'block'
        }
        else if ((document.getElementById('withdrawAmount').value == number_format(0, document.getElementById('withdrawAmount').getAttribute("icDecim")).replace(".", ",")) || document.getElementById('withdrawAmount').value == "") {
            document.getElementById('error').innerHTML = getLangById('var2')[lang]
            document.getElementById('error').style.display = 'block'
        }
        else if (document.getElementById('withdrawTotalFinal').style.color == '#D0021B' || document.getElementById('withdrawTotalFinal').style.color == 'rgb(208, 2, 27)') {
            document.getElementById('error').innerHTML = getLangById('var2')[lang]
            document.getElementById('error').style.display = 'block'
        }
        else if (document.getElementById('withdrawAmount').getAttribute('datanumber') > feesInf.entry.xfer.max.number) {
            document.getElementById('error').innerHTML = getLangById('var3')[lang] + feesInf.entry.xfer.max.formatted + ' ' + curInf.currency.symbol
            document.getElementById('error').style.display = 'block'
        }
        else if (document.getElementById('withdrawAmount').getAttribute('datanumber') < feesInf.entry.xfer.min.number) {
            document.getElementById('error').innerHTML = getLangById('var4')[lang] + feesInf.entry.xfer.min.formatted + ' ' + curInf.currency.symbol
            document.getElementById('error').style.display = 'block'
        }
        else {
            document.getElementById('error').style.display = 'none';
            gotoPage('step', 'transferCryptoAc', {
                'cid': getParameterByName('cid'),
                'q': number_format(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents(), document.getElementById('withdrawAmount').getAttribute('icdecim')).replace(/\./g, "").replace(/\,/g, ".")
            })

        }
    } else {
        document.getElementById('error').innerHTML = getLangById('var2')[lang]
        document.getElementById('error').style.display = 'block'
    }
}



function sessionUpdate(req) {
    callWS('GET', 'session/update', req, response);
    function response(status, rsp) {
        switch (status) {
            case 200:
                document.getElementsByClassName('expired')[0].style.display = "none";
                init()
                break;
            case 400:
                break;
            case 401:
                gotoPage('login', 'main', '');
                break;
            case 402:
                break;
            case 403:
                break;
            case 500:
                break;
            default:
                break;
        }
    }
}

function init() {
    setLang()
}

function getEntry(sessionid) {
    callWS("GET", "users/entry", { 'sessionid': sessionid }, response);

    function response(status, rsp) {
        switch (status) {
            case 200:
                if (JSON.parse(rsp).notifications > 0) {
                    document.getElementById('messageNotification').style.display = "table"
                    document.getElementById('messageNotification').children[0].innerHTML = JSON.parse(rsp).notifications
                } else {
                    document.getElementById('messageNotification').style.display = "none"
                    document.getElementById('messageNotification').children[0].innerHTML = ""
                }
                entrydata = (JSON.parse(rsp).entry)
                putName(entrydata);
                var req = {
                    'sessionid': sessionStorage.getItem('sessionid'),
                    'action': 3, /*1 INtercambio, 2 Deposito, 3 Retiro, 4 Transferencia
                    'currencyid': getParameterByName('cid)*/
                }
                accountsPortfolio(req)
                break;
            case 204:
                break;
            case 400:
                break;
            case 401:
                expiredSession();
                break;
            case 500:
                break;
            default:
                break;
        }
    }
}

function putName(entrydata) {
    var name;
    if (entrydata.company) {
        if (entrydata.company.name.value == "" || entrydata.company.name.value == null) {
            name = entrydata.usr
        } else {
            name = entrydata.company.name.value
        }
    }
    else if (entrydata.person) {
        if (entrydata.person.firstname.value == "" || entrydata.person.firstname.value == null) {
            name = entrydata.usr
        } else {
            name = entrydata.person.firstname.value + ' ' + entrydata.person.firstlastname.value
        }
    }
    document.getElementById('headname').innerHTML = name
    document.getElementById('name2').innerHTML = name
}

function logout() {
    var sessionid = sessionStorage.getItem('sessionid')
    var req = {
        'sessionid': sessionid,
    }
    callWS('GET', 'login/logout', req, response);

    function response(status, rsp) {


        switch (status) {
            case 200:
                sessionStorage.removeItem('sessionid')
                gotoPage('login', 'main', '')
                break;
            case 400:
                break;
            case 401:
                expiredSession();
                break;
            case 500:
                break;
            default:
                break;
        }
    }
}


function accountsPortfolio(req) {
    callWS('GET', 'accounts/portfolio', req, response);
    function response(status, rsp) {

        switch (status) {
            case 200:
                curInf = null;
                JSON.parse(rsp).records.forEach(currency => {
                    if (currency.currency.id == getParameterByName('cid')) {
                        curInf = currency;
                    }
                });
                req = {
                    'sessionid': sessionStorage.getItem('sessionid'),
                    'currencyid': getParameterByName('cid')
                }
                feesEntry(req, curInf)
                break;
            case 400:
                break;
            case 401:
                expiredSession();
                break;
            case 402:
                break;
            case 403:
                break;
            case 500:
                break;
            default:
                break;
        }
    }
}

// fees/entry
function feesEntry(req, accPor) {
    callWS('GET', 'fees/entry', req, response);
    function response(status, rsp) {
        switch (status) {
            case 200:
                loadData(accPor, JSON.parse(rsp))
                break;
            case 400:
                break;
            case 401:
                expiredSession();
                break;
            case 402:
                break;
            case 403:
                break;
            case 502:
                document.getElementById('error').innerHTML = getLangById('errconmsg')[lang]
                document.getElementById('error').style.display = 'block'
                break;
            case 500:
                break;
            default:
                break;
        }
        if (status != 200) {
            document.getElementById("next-button").parentElement.parentElement.removeChild(document.getElementById("next-button").parentElement);
        }
    }
}

function loadData(currency, fees) {
    feesInf = fees
    document.getElementById('withdrawAmount').setAttribute("icDecim", currency.currency.decimals);
    document.getElementById('titP').children[0].innerHTML = currency.currency.dsc
    document.getElementById('avail').innerHTML = currency.currency.symbol + ' ' + currency.avaliable.formatted
    document.getElementById('avail').setAttribute("number", parseFloat(currency.avaliable.number));
    decimCoin = document.getElementById('withdrawAmount').getAttribute("icDecim")
    document.getElementById('next-button').setAttribute('interface', currency.currency.interface)

    if (fees.entry.xfer.nmalfee) {
        document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + (fees.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ',');

        document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + ((fees.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ','));
        document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + ((fees.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ','));
        document.getElementById('withdrawAmount').addEventListener("keyup", function () {
            var noVal = formatCurrency(decimCoin, this.value);
            if (noVal !== "") this.value = noVal;
            if (document.getElementById('withdrawAmount').value == "") {
                document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
                document.getElementById('withdrawTotalFinal').style.color = "#262624"
            } else {
                if (((((parseFloat((document.getElementById('withdrawAmount').value).replace(',', '.')) - fees.entry.xfer.nmalfee.number).toFixed(decimCoin)).replace('.', ','))).startsWith('-')) {
                    document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
                    document.getElementById('withdrawTotalFinal').style.color = "#D0021B"
                } else {
                    document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() - parseFloat(fees.entry.xfer.nmalfee.number)).noExponents(), decimCoin)
                    //((((parseFloat((document.getElementById('withdrawAmount').value).replace(',','.')) - fees.entry.xfer.nmalfee.number).toFixed(decimCoin)).replace('.', ',')));
                    document.getElementById('withdrawTotalFinal').style.color = "#262624"
                }

            }
        });
    } else if (fees.entry.xfer.pctfee) {
        document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
        document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
        document.getElementById('withdrawAmount').addEventListener("keyup", function () {
            var noVal = formatCurrency(decimCoin, this.value);
            if (noVal !== "") this.value = noVal;
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(parseFloat(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() * parseFloat(fees.entry.xfer.pctfee.number)).noExponents() / 100).noExponents(), decimCoin)
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() * parseFloat(1 - fees.entry.xfer.pctfee.number / 100).noExponents()).noExponents(), decimCoin)
        });
    } else {
        console.log('N/A')
    }
}
function setLang() {

    addFooter()

    lang = sessionStorage.getItem('lang');

    /* inner HTML */
    setWordLanginnerHTML('home', 'home');
    setWordLanginnerHTML('balance', 'balance');
    setWordLanginnerHTML('preferences', 'preferences');
    setWordLanginnerHTML('homeR', 'home');
    setWordLanginnerHTML('balanceR', 'balance');
    setWordLanginnerHTML('preferencesR', 'preferences');
    setWordLanginnerHTML('langIcon', 'langIcon');


    setWordLanginnerHTML('titlePage', 'titlePage');
    setWordLanginnerHTML('step1', 'step1');
    setWordLanginnerHTML('step2', 'step2');
    setWordLanginnerHTML('step3', 'step3');
    setWordLanginnerHTML('step4', 'step4');
    setWordLanginnerHTML('step5', 'step5');
    setWordLanginnerHTML('titP', 't1');

    setWordLanginnerHTML('t2', 't2');
    setWordLanginnerHTML('avLabel', 'AVAILABLE');
    setWordLanginnerHTML('amountTransLabel', 'QuantityToTransfer');
    setWordLanginnerHTML('allAm', 'allAm');
    setWordLanginnerHTML('anotAm', 'anotAm');
    setWordLanginnerHTML('feesLabel', 'FEES');
    setWordLanginnerHTML('feesLabel', 'FEES');

    setWordLanginnerHTML('previous-button', 'RETURN');
    setWordLanginnerHTML('next-button', 'continue');
    setWordLanginnerHTML('previous-buttonR', 'RETURN');
    setWordLanginnerHTML('next-buttonR', 'continue');


    setWordLanginnerHTML('buttonAdv', 'ADVANCEDMODE');
    setWordLanginnerHTML('question', 'question');
    setWordLanginnerHTML('expired1', 'expired1');
    setWordLanginnerHTML('expired2', 'expired2');
    setWordLanginnerHTML('expSessionButton', 'continue');
    setWordLanginnerHTML('ts', 'ts');


    document.getElementById('floatClose').addEventListener("click", function (event) {
        var popup = document.getElementById("floatButton").children[0].children[0];
        popup.classList.remove("show")
        event.stopPropagation()
    })

    document.getElementById('all').addEventListener("click", function () {
        document.getElementById('withdrawAmount').setAttribute('dataNumber', parseFloat(document.getElementById('avail').getAttribute('number')).noExponents())
        document.getElementById('withdrawAmount').value = number_format(parseFloat(document.getElementById('avail').getAttribute('number')).noExponents(), decimCoin);
        document.getElementById('withdrawAmount').disabled = true
        if (feesInf.entry.xfer.nmalfee) {
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + (feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ',');

            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + ((feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ','));
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + ((feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin).replace('.', ','));
            var noVal = formatCurrency(decimCoin, this.value);
            if (noVal !== "") this.value = noVal;
            if (document.getElementById('withdrawAmount').value == "") {
                document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
                document.getElementById('withdrawTotalFinal').style.color = "#262624"
            } else {
                if (((((parseFloat((document.getElementById('withdrawAmount').value).replace(',', '.')) - feesInf.entry.xfer.nmalfee.number).toFixed(decimCoin)).replace('.', ','))).startsWith('-')) {
                    document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
                    document.getElementById('withdrawTotalFinal').style.color = "#D0021B"
                } else {
                    document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() - parseFloat(feesInf.entry.xfer.nmalfee.number).noExponents()).noExponents(), decimCoin)
                    //((((parseFloat((document.getElementById('withdrawAmount').value).replace(',','.')) - fees.entry.xfer.nmalfee.number).toFixed(decimCoin)).replace('.', ',')));
                    document.getElementById('withdrawTotalFinal').style.color = "#262624"
                }

            }
        } else if (feesInf.entry.xfer.pctfee) {
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(0, decimCoin);
            var noVal = formatCurrency(decimCoin, this.value);
            if (noVal !== "") this.value = noVal;
            document.getElementById('withdrawBTCFee').innerHTML = curInf.currency.symbol + ' ' + number_format((parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() * parseFloat(feesInf.entry.xfer.pctfee.number)).noExponents() / 100, decimCoin)
            document.getElementById('withdrawTotalFinal').innerHTML = curInf.currency.symbol + ' ' + number_format(parseFloat(document.getElementById('withdrawAmount').getAttribute('datanumber')).noExponents() * (1 - feesInf.entry.xfer.pctfee.number / 100), decimCoin)
        } else {
            console.log('N/A')
        }


    })
    document.getElementById('notAll').addEventListener("click", function () {
        document.getElementById('withdrawAmount').disabled = false
    })

    getEntry(sessionStorage.getItem('sessionid'));

}
