function start() {

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

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

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



    // 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()
    })

    init()

    //Mostrar HTML cargado
    esconderHTML(false);



}

function verifyNextButton() {
    if (document.getElementsByClassName('selectCrypto').length == 0) {
        document.getElementById('error').innerHTML = lang == "esp" ? "Seleccione una moneda." : "Please select a currency."
        document.getElementById('error').style.display = 'block'
    } else {
        gotoPage('step', 'buyCryptoAm', { 'cid': getParameterByName('cid'), 'crid': document.getElementsByClassName('selectCrypto')[0].getAttribute('idC') })
    }
}



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;
        }
    }
}

var validCur = [];
function transactionsCurrencies(req) {
    callWS('GET', 'transactions/currencies', req, response);
    function response(status, rsp) {
        switch (status) {
            case 200:
                /*MUESTRA SOLO MONEDAS DE REFERENCIA EN ESE PAR**/
                //loaadCryptocurrencies(JSON.parse(rsp))
                validCur = JSON.parse(rsp).records;
                var req = {
                    'sessionid': sessionStorage.getItem('sessionid'),
                    'action': 1,
                    'currencyid': getParameterByName('cid')
                }
                accountsPortfolio(req);
                break;
            case 400:
                break;
            case 401:
                expiredSession();
                break;
            case 402:
                break;
            case 403:
                break;
            case 500:
                break;
            default:
                break;
        }
    }
}

function accountsPortfolio(req) {
    callWS('GET', 'accounts/portfolio', req, response);
    function response(status, rsp) {
        switch (status) {
            case 200:
                loadCurrencies(JSON.parse(rsp))
                break;
            case 400:
                break;
            case 401:
                expiredSession();
                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': 1,
                    '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 loadCurrencies(list) {
    var tbl;
    var node;
    tbl = document.getElementById('table');
    var node = tbl.children[0].cloneNode(true);
    tbl.innerHTML = "";
    var tmp = null; tmp = node.cloneNode(true);
    if (list.numofrecords == 0) {
        var ele = null;
        ele = tmp.cloneNode(true);
        ele.style.display = "none";
        tbl.appendChild(ele);
    } else {
        for (var i = 0; i < list.records.length; i++) {
            var ele = null;
            ele = tmp.cloneNode(true);
            ele.style.display = "table";
            ele.children[0].children[0].innerHTML = list.records[i].currency.symbol
            ele.children[1].children[0].innerHTML = list.records[i].currency.dsc
            ele.children[2].setAttribute("style", "width:auto;padding-right: 10px;");
            ele.children[2].children[0].innerHTML = list.records[i].avaliable.formatted
            ele.children[3].children[0].style.display = "none";
            ele.children[3].children[0].innerHTML = list.records[i].maxbuy.formatted
            ele.children[4].children[0].children[0].innerHTML = lang == "esp" ? "SELECCIONAR" : "SELECT"

            ele.children[4].children[0].children[0].setAttribute('idC', list.records[i].currency.id)

            if (tbl.children.length % 2 == 0) {
                ele.classList.add('oddRow')
            }

            //for(var z=0;z<validCur.length;z++){
            //    if(validCur[z].id == list.records[i].currency.id){
            tbl.appendChild(ele);
            //    }
            //}
        }
        validCur = [];
        buttonsEffect()
    }
}

function buttonsEffect() {
    var buttons = document.getElementsByClassName('crypto');
    for (i = 0; i < buttons.length; i++) {
        buttons[i].addEventListener("click", function (evt) {
            document.getElementById('error').style.display = 'none'
            var buttons = document.getElementsByClassName('crypto');
            for (i = 0; i < buttons.length; i++) {
                buttons[i].classList.remove('blueButton')
                buttons[i].classList.add('whiteButton')
                buttons[i].classList.remove('accept-button')
                buttons[i].classList.add('cancel-button')
                buttons[i].classList.remove('selectCrypto')
            }
            evt.srcElement.classList.add('blueButton')
            evt.srcElement.classList.remove('whiteButton')
            evt.srcElement.classList.add('accept-button')
            evt.srcElement.classList.remove('cancel-button')
            evt.srcElement.classList.add('selectCrypto')
        });
    }
}

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('t1', 't1');

    setWordLanginnerHTML('t2', 't2');

    setWordLanginnerHTML('currencyLabel', 'currencyLabel');
    setWordLanginnerHTML('balanceLabel', 'balanceLabel');
    setWordLanginnerHTML('avLabel', 'avLabel');
    /*setWordLanginnerHTML('feeLabel','feeLabel');
    setWordLanginnerHTML('cardAmountRoundedTextLastText','cardAmountRoundedTextLastText');
    setWordLanginnerHTML('infMin','infMin');
    setWordLanginnerHTML('maxBuy','maxBuy');
    
    setWordLanginnerHTML('failureTitle','failureTitle');
    setWordLanginnerHTML('wdFiatbuttonI','wdFiatbuttonI');
    setWordLanginnerHTML('parcComplete','parcComplete');
    setWordLanginnerHTML('wdFiatbuttonFYellow','wdFiatbuttonFYellow');
    */
    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()
    })

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

}

