function addCart(id, price, userId){
    //alert('/utils/ajax/basket.php?action=checkPrice&id='+id+'&price='+price);
    var json_request = new Request.JSON({url: '/utils/ajax/basket.php?action=checkPrice&id='+id+'&price='+price, onSuccess: checkExtStatus}).get();
}

function checkExtStatus(responseJSON, responseText){
    //alert(responseText);
    if(responseJSON.error!=''){
        alert(responseJSON.error);
        return false;
    }
    else
    {
        if(responseJSON.alert!='') alert(responseJSON.alert);
        if(responseJSON.addToBasket!=null){
            var id=responseJSON.addToBasket.id;
            var price=responseJSON.addToBasket.price;
            var currencyId=responseJSON.addToBasket.currencyId;
            var lotstatusId=2;
            Cookie.write('item'+id, price+'|'+currencyId, {path:'/', duration:'0.125'});
            
            if($('lotstatus'+id)!=null){
                //$('lotstatus'+id).className = 'listitemreserved';
                //$('lotstatus'+id).innerHTML = '<span>'+responseJSON.lotstatus[lotstatusId]+'</span>';
            }
            if($('lotstatusslide'+id)!=null){
                //$('lotstatusslide'+id).className = 'listitemreserved';
                //$('lotstatusslide'+id).innerHTML = '<span>'+responseJSON.lotstatus[lotstatusId]+'</span>';
            }
            
            $('basket').setStyle('display','block');
            $('basketDisplay').innerHTML=responseJSON.basket;
            if($('basketList')!=null) $('basketList').innerHTML=responseJSON.basketList;
            if($('sumValueLeft')!=null) $('sumValueLeft').innerHTML='<strong>'+responseJSON.sumValue+'</strong> руб.';
        }
    }
}

function delFromBasket(id){
    //alert('/utils/ajax/basket.php?action=delFromBasket&id='+id);
    var json_request = new Request.JSON({url: '/utils/ajax/basket.php?action=delFromBasket&id='+id, onSuccess: delFromBasketOut}).get();
}

function delFromBasketOut(responseJSON, responseText){
    //alert(responseText);
    if(responseJSON.addToBasket!=null){
        var id=responseJSON.addToBasket.id;
        Cookie.dispose('item'+id, {path:'/'})
        if(responseJSON.basket=='') $('basket').setStyle('display','none'); else $('basketDisplay').innerHTML=responseJSON.basket;
        //if(responseJSON.basketList=='') window.location.href='/'; else window.location.reload();
        window.location.reload();
    }
}

function createOrder(){
    var els = $('basketList').getElements('input[id^=itemOrder]');
    if(els.length>0){
        var ids = new Array();
        var cou = new Array();
        for(i=0;i<els.length;i++){
            ids[i] = els[i].value;
            cou[i] = $('countField'+ids[i]).value;
            Cookie.dispose('item'+els[i].value, {path:'/'})
        }
        ids = ids.join(",");
        cou = cou.join(",");
        err=0;
        if($('fio').value==''){$('fio').setStyle('background','#FFC0C0');err=1;}else{$('fio').setStyle('background','#FFFFFF');}
        if($('phone').value==''){$('phone').setStyle('background','#FFC0C0');err=1;}else{$('phone').setStyle('background','#FFFFFF');}
        if($('address').value==''){$('address').setStyle('background','#FFC0C0');err=1;}else{$('address').setStyle('background','#FFFFFF');}
        //alert('/utils/ajax/basket.php?action=createOrder&id='+ids+'&cou='+cou);
        if(err==0){
            var json_request = new Request.JSON({url: '/utils/ajax/basket.php?action=createOrder&id='+ids+'&cou='+cou, onSuccess: createOrderOut}).get();
        }
        else
        {
            return false;
        }
    }
}

function createOrderOut(responseJSON, responseText){
    if(responseJSON.error!=''){
        alert(responseJSON.error);
        for(i=0;i<responseJSON.notForSale.length;i++){
            $('itemOrder'+responseJSON.notForSale[i]).getParent().getParent().setStyle('background','#FFC0C0');
        }
        return false;
    }
    else
    {
        $('orderForm').submit();
    }
}

function createAddreses(fio, phone, addr){
    $('fio').value=fio;
    $('phone').value=phone;
    $('address').value=addr;
}

function changeSum(el, id){
    var cou = el.value.toInt();
    createRequest();
}

function createRequest(){
    var els = $('basketList').getElements('input[id^=itemOrder]');
    if(els.length>0){
        var ids = new Array();
        var cou = new Array();
        for(i=0;i<els.length;i++){
            ids[i] = els[i].value;
            cou[i] = $('countField'+ids[i]).value;
        }
        ids = ids.join(",");
        cou = cou.join(",");
        //alert('/utils/ajax/basket.php?action=changeSum&id='+ids+'&cou='+cou);
        var json_request = new Request.JSON({url: '/utils/ajax/basket.php?action=changeSum&id='+ids+'&cou='+cou, onSuccess: changeSumStrong}).get();
    }
}

function changeSumStrong(responseJSON, responseText){
    var combine = array_combine(responseJSON.ids.split(","),responseJSON.cous.split(","))
    responseJSON.ids.split(",").each(function(item){
        $('countField'+item).value = combine[item];
    });
    $('sumValueStrong').innerHTML = number_format(responseJSON.sumValue, 0, ".", " ");
}

function array_combine( keys, values ) {    // Creates an array by using one array for keys and another for its values
    // 
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    var new_array = {}, keycount=keys.length, i;

    // input sanitation
    if( !keys || !values || keys.constructor !== Array || values.constructor !== Array ){
        return false;
    }

    // number of elements does not match
    if(keycount != values.length){
        return false;
    }

    for ( i=0; i < keycount; i++ ){
        new_array[keys[i]] = values[i];
    }

    return new_array;
}

function number_format( number, decimals, dec_point, thousands_sep ) {    // Format a number with grouped thousands
    // 
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)

    var i, j, kw, kd, km;

    // input sanitation & defaults
    if( isNaN(decimals = Math.abs(decimals)) ){
        decimals = 2;
    }
    if( dec_point == undefined ){
        dec_point = ",";
    }
    if( thousands_sep == undefined ){
        thousands_sep = ".";
    }

    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

    if( (j = i.length) > 3 ){
        j = j % 3;
    } else{
        j = 0;
    }

    km = (j ? i.substr(0, j) + thousands_sep : "");
    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
    //kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");


    return km + kw + kd;
}


