var jsReq = null;

function makeGetAJAX(url, functionName, moveAttr){
    if (window.XMLHttpRequest) {
        jsReq = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        jsReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(url != ''){
        jsReq.open("GET", url, true);
        jsReq.onreadystatechange = function(){responseGetAJAX(jsReq, functionName, moveAttr);};
        jsReq.send(null);
    }
}

function responseGetAJAX(rgaReq, fName, attr){
    if (rgaReq.readyState == 4) {
        if (rgaReq.status == 200) {
            forEval = fName+'(';
            if(attr == 1){
                forEval += '\''+rgaReq.responseText+'\'';
            }
            forEval += ');';
            eval(forEval);
        }
        else{
            alertBox('Błąd wywołania strony.<br>Odśwież stronę i spróbuj ponownie');
        }
    }
}

function addToBasket(url){
    makeGetAJAX(url, 'refreshBasket', 0);
}

function deleteFromBasket(idProd){
    makeGetAJAX('basketAjax.php?save=remove&id='+idProd, 'refreshBasket', 0);
}

function updateBasket(idProd){
    makeGetAJAX('basketAjax.php?save=update&id='+idProd+'&quantity='+document.getElementById('txt'+idProd).value, 'refreshBasket', 0);
}

function refreshBasket(){
    makeGetAJAX('basketAjax.php?save=get', 'convertToBasketList', 1);
}

function sendCode(type){
    makeGetAJAX('basketAjax.php?save=smsCode&type='+type+'&code='+document.getElementById('code'+type).value, 'receiveCode', 1);
}

function receiveCode(response){
    alertBox(response);
}

function makeOrder(){
    makeGetAJAX('basketAjax.php?save=makeOrder', 'moveToPayment', 1);
}

function moveToPayment(response){
    tmp = response;
    if(tmp != ''){
        mainArr = tmp.split(';');
        if(mainArr[0]){
            if(mainArr[0] == 0){
                alertBox(mainArr[1]);
            }
            else{
                paymentData = mainArr[1].split('$$');
                document.getElementById('session_id').value = paymentData[0];
                document.getElementById('email').value = paymentData[1];
                document.getElementById('desc').value = 'Zamówienie nr ' + paymentData[2];
                document.getElementById('amount').value = paymentData[3];
                document.getElementById('payform').submit();
            }
        }
    }
}

function convertToBasketList(response){
    tmp = response;
    var myTable = document.getElementById('basketList');
    var tBody = myTable.getElementsByTagName('tbody')[0];
    var suma = 0;
    if ( tBody.hasChildNodes() )
    {
        while ( tBody.childNodes.length >= 1 )
        {
            tBody.removeChild( tBody.firstChild );
        }
    }

    if(tmp != ''){
        mainArr = tmp.split(';');
        if(mainArr[0]){
            if(mainArr[0] == 0){
                if(mainArr[1]){
                    newRow = document.createElement('tr');
                    newTD = document.createElement('td');
                    newTD.className = 'tb_td tb_header';
                    newTD.colSpan = 4;
                    newTD.innerHTML = mainArr[1];
                    newRow.appendChild(newTD);
                    tBody.appendChild(newRow);
                }
            }
            else{
                if(mainArr[1]){
                    basketProds = mainArr[1].split('&&&');
                    for(i = 0; i < basketProds.length; i++){
                        if(basketProds[i] && trim(basketProds[i]) != ''){
                            Prod = basketProds[i].split('$$');
                            newRow = document.createElement('tr');
                            if(document.getElementById('pr'+Prod[1])){
                                tmpRW = document.getElementById('pr'+Prod[1]);
                                tBody.removeChild(tmpRW);
                            }
                            newRow.setAttribute('id','pr'+Prod[1]);
                            newTD = document.createElement('td');
                            newTD.className = 'tb_td tb_header';
                            newTD.innerHTML = Prod[0];
                            newRow.appendChild(newTD);
                            newTD = document.createElement('td');
                            newTD.className = 'tb_td tb_header';
                            newTD.innerHTML = '<input type="text" class="form_fields value="" id="txt'+Prod[1]+'" size="3">';
                            newRow.appendChild(newTD);
                            newTD = document.createElement('td');
                            newTD.className = 'tb_td tb_header';
                            newTD.innerHTML = Prod[3];
                            suma += parseFloat(Prod[3]);
                            newRow.appendChild(newTD);
                            newTD = document.createElement('td');
                            newTD.className = 'tb_td tb_header';
                            newTD.innerHTML = '<img src="images/refresh.png" style="width: 16px; cursor: pointer" onClick="updateBasket('+Prod[1]+')"> <img src="images/trash.png" style="width: 16px;  cursor: pointer" onClick="deleteFromBasket('+Prod[1]+')">';
                            newRow.appendChild(newTD);
                            tBody.appendChild(newRow);
                            document.getElementById('txt'+Prod[1]).value=Prod[2];
                        }
                    }
                }
            }
        }
    }

    newRow = document.createElement('tr');
    newTD = document.createElement('td');
    newTD.className = 'tb_td tb_header';
    newTD.colSpan = 4;
    newTD.style.textAlign = 'right';
    newTD.innerHTML = 'Suma: '+suma;
    document.getElementById('amount').value = suma * 100;
    newRow.appendChild(newTD);
    tBody.appendChild(newRow);
    newRow = document.createElement('tr');
    newTD = document.createElement('td');
    newTD.className = 'tb_td tb_header';
    newTD.colSpan = 4;
    newTD.style.textAlign = 'right';
    newTD.innerHTML = '<input type="button" class="btn" value="Zapłać" onclick="makeOrder()">';
    newRow.appendChild(newTD);
    tBody.appendChild(newRow);

}
function LTrim( value ) {
        var re = /\s*((\S+\s*)*)/;
        return value.replace(re, "$1");
}

function RTrim( value ) {
        var re = /((\s*\S+)*)\s*/;
        return value.replace(re, "$1");
}

function trim( value ) {
        return LTrim(RTrim(value));
}
