// работа с корзиной.


// popup окна
var _Basket;
var _EmptyBasket;
var _WaresAdded;



function _simpleget(url){

    var request = null;
    if (request == null)
    {
	if (window.XMLHttpRequest) {
	    request = new XMLHttpRequest();
	}else if(window.ActiveXObject){
	    var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
	    for (var i = 0; i < prefixes.length; i++) {
		try {
		    request = new ActiveXObject(prefixes[i] + ".XmlHttp");
		    break;
		}catch(ex){
		}
	    }
	}
    }
    if (request == null)
    {

	// Взято из кода (C) 2005 Dmitry Koterov
	var span = null;
	// Oh shit! Damned stupid fucked Opera 7.23 does not allow to create SCRIPT 
	// element over createElement (in HEAD or BODY section or in nested SPAN - 
	// no matter): it is created deadly, and does not respons on href assignment.
	// So - always create SPAN.
	body = document.body;
	span = body.appendChild(document.createElement("SPAN"));
	span.style.display = 'none';
	span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>';
	setTimeout(function() {
	    var s = span.getElementsByTagName("script")[0];
	    s.language = "JavaScript";
	    if (s.setAttribute) s.setAttribute('src', url); else s.src = url;
	}, 10);
	
    } else {
	request.onreadystatechange = function () {
	    if (request.readyState == 4) {
		if (request.status == 200) {
		    // здесь идут всякие штуки с полученным ответом
		    eval(request.responseText);
		} else {
		    alert("МЕ СДЮКНЯЭ ОНКСВХРЭ ХКХ ОЕПЕДЮРЭ ДЮММШЕ:\n" +
						request.statusText);
		}
	    }
	};
	request.open("GET",url,true);
	request.send(null);
    }
    
}

// функция для показа корзины.
function _basket() {
    if(_Basket && _EmptyBasket){
	showhide_popupbasket()
    }
}

//функции, вызываемые при нажатии на линк "добавить в корзину
function request_disc(disc_id, disc_title,disc_price){
    if(_Def(basket[disc_id])){
	show_wa_already();
    }else{
	add_to_basket(disc_id,disc_title,disc_price);
	show_wa_process();
    }	
//    _WaresAdded.moveToCenter();
//    _WaresAdded.show();
}
function demand_disc(disc_id,disc_title){
    if(_Def(demand[disc_id])){
	show_wa_already();
    }else{
	add_to_demand(disc_id,disc_title);
	show_wa_process();
    }    	
//    _WaresAdded.moveToCenter();
//    _WaresAdded.show();
}
function show_wa(){
    _InnerHTML('wares_added_text', 'рНБЮП ДНАЮБКЕМ Б ЙНПГХМС');
    _WaresAdded.moveToCenter();
    _WaresAdded.show();
}
function show_wa_process(){
    _InnerHTML('wares_added_text', 'оНДНФДХРЕ<br>рНБЮП ДНАЮБКЪЕРЯЪ Б ЙНПГХМС');
    _WaresAdded.moveToCenter();
    _WaresAdded.show();
}
function show_wa_already(){
    _InnerHTML('wares_added_text', 'рНБЮП СФЕ МЮУНДХРЯЪ Б ЙНПГХМЕ');
    _WaresAdded.moveToCenter();
    _WaresAdded.show();
}
// содержание корзины
var demand = new Object();
var basket = new Object();

var is_popupbasket_visible = false;

var show_qtys = false;


function showhide_popupbasket(){
    var basket_cnt = 0;
    for(var k in basket){
	basket_cnt++;
	break
    }
    var demand_cnt = 0;
    for(var k in demand){
	demand_cnt++;
	break
    }

    if(!_Basket.isShowing() && !_EmptyBasket.isShowing()){
	if(basket_cnt > 0 || demand_cnt >0){
	    _Basket.show();
	}else{
	    //показываем "корзина пуста"
	    _EmptyBasket.show();
	}
	//прячем все select'ы
	var c = _GetElementById('content');
	for (var i = 0; (node = c.getElementsByTagName("select").item(i)); i++) {
	    _Hide2(node);
	}
    }else{
//	is_popupbasket_visible = false;
//	_Hide('popup_basket');
	_Basket.hide();
	_EmptyBasket.hide();
	//показываем все select'ы
	var c = _GetElementById('content');
	for (var i = 0; (node = c.getElementsByTagName("select").item(i)); i++) {
	    _Show(node);
	}
    }
}


function update_basket_zebra(){
    var t = _GetElementById('basket_lines');
    var oe = -1;
    for(var i=0; i<t.rows.length;i++){
	oe = -oe;
	if(oe > 0){
	    t.rows[i].style.backgroundColor = '#f7f7f7';
	}else{
	    t.rows[i].style.backgroundColor = '#ffffff';
	}
    }
}

function update_demand_zebra(){
    var t = _GetElementById('demand_lines');
    var oe = -1;
    for(var i=0; i<t.rows.length;i++){
	oe = -oe;
	if(oe > 0){
	    t.rows[i].style.backgroundColor = '#f7f7f7';
	}else{
	    t.rows[i].style.backgroundColor = '#ffffff';
	}
    }
}

function update_basket_sum (){
    var t = _GetElementById('basket_sum');
    var sum = 0;
    for(var k in basket){
	if(show_qtys){
	    i = _GetElementById('disc_'+k+'_qty');
	    q = i.value;
	    sum += basket[k].price*q;

	    basket[k].qty = q;

	    //обновим сумму на строке
	    td = _GetElementById('disc_'+k+'_sum');
	    txt = document.createTextNode(basket[k].price*q + ' ЦПМ.');
	    td.replaceChild(txt,td.firstChild);


	}else{
	    sum += basket[k].price;
	}
    }
    txt = document.createTextNode(sum);
    t.replaceChild(txt,t.firstChild);

    var tt = _GetElementById('total');
    if(tt){
	txt = document.createTextNode(sum);
	tt.replaceChild(txt,tt.firstChild);
    }
    var tt = _GetElementById('total_sum');
    if(tt){
	on_conditions_change()
    }
}


function showhide_basket(){
    var cnt = 0;
    for(var k in basket){
	cnt++;
	break
    }
    if(cnt == 0){
	_Hide('basket');
    }else{
	_Show('basket');
    }
}
function showhide_demand(){
    var cnt = 0;
    for(var k in demand){
	cnt++;
	break
    }
    if(cnt == 0){
	_Hide('demand');
    }else{
	_Show('demand');
    }
}


function add_to_basket_vis(_id,_title,_price, _qty,_mass){
    var pos = new Object();
    pos.id=_id;
    pos.title=_title;
    pos.price=_price;
    pos.qty=_qty;
    pos.mass=_mass;

    basket[_id] = pos;

    var newR, newC, a, img;
    var t = _GetElementById('basket_lines');
    
    newR = t.insertRow(t.rows.length);
    newR.id='disc_'+_id;
	
    newC = newR.insertCell(newR.cells.length);
    newC.align='center';
	//создаем ссылку, с картинкой - на удаление этой строки
    a = document.createElement('a');
    a.href='javascript:delete_from_basket('+_id+');';
    img = document.createElement('img');
    img.src = '/img/m_delete.gif';
    img.border=0;
    img.align='middle';
    img.alt='СДЮКХРЭ ДХЯЙ ХГ ЙНПГХМШ';
    img.title='СДЮКХРЭ ДХЯЙ ХГ ЙНПГХМШ';
    a.appendChild(img);
    newC.appendChild(a);
    //Название
    newC = newR.insertCell(newR.cells.length);
    txt = document.createTextNode(_title);
    newC.appendChild(txt);
    if(show_qtys){
	//Количество
	newC = newR.insertCell(newR.cells.length);
	newC.align='center';
	i = document.createElement('input');
	i.id = 'disc_'+_id+'_qty';
	i.type = 'text';
	i.name = 'disc_'+_id+'_qty';
	i.className = 'input';
	i.size= 1;
	i.value = 1;
	_AddEventListener(i,'keyup',update_basket_sum);


	newC.appendChild(i);
	txt = document.createTextNode(' x '+_qty+'CD');
	newC.appendChild(txt);
    }
    
    //цена
    newC = newR.insertCell(newR.cells.length);
    newC.id = 'disc_'+_id+'_sum';
    newC.align='center';
    newC.style.fontWeight = 'bold';
    txt = document.createTextNode(_price + ' ЦПМ.');
    newC.appendChild(txt);
	
    update_basket_sum();
    update_basket_zebra();
    showhide_basket();
	
}

function add_to_basket(_id,_title,_price, _qty, _mass){
/*    if(_Def(basket[_id])){
	show_wa_already();
	return;
    }
*/    
//    add_to_basket_vis(_id,_title,_price, _qty, _mass);

    _simpleget("/basket/?action=add&id="+_id);


}

function add_to_demand_vis(_id,_title, _qty){
    var pos = new Object();
    pos.id=_id;
    pos.title=_title;
    pos.qty=_qty;

    demand[_id] = pos;
    var newR, newC, a, img;
    var t = _GetElementById('demand_lines');
    
    newR = t.insertRow(t.rows.length);
    newR.id='demand_disc_'+_id;
	
    newC = newR.insertCell(newR.cells.length);
    newC.align='center';
	//создаем ссылку, с картинкой - на удаление этой строки
    a = document.createElement('a');
    a.href='javascript:delete_from_demand('+_id+');';
    img = document.createElement('img');
    img.src = '/img/m_delete.gif';
    img.border=0;
    img.align='middle';
    img.alt='СДЮКХРЭ ДХЯЙ ХГ ГЮЪБЙХ';
    img.title='СДЮКХРЭ ДХЯЙ ХГ ГЮЪБЙХ';
    a.appendChild(img);
    newC.appendChild(a);
    //Название
    newC = newR.insertCell(newR.cells.length);
    txt = document.createTextNode(_title);
    newC.appendChild(txt);
    if(show_qtys){
	//Количество
	newC = newR.insertCell(newR.cells.length);
	newC.align='center';
	i = document.createElement('input');
	i.id = 'demand_'+_id+'_qty';
	i.type = 'text';
	i.name = 'demand_'+_id+'_qty';
	i.className = 'input';
	i.size= 1;
	i.value = 1;

	newC.appendChild(i);
	txt = document.createTextNode(' x '+_qty+'CD');
	newC.appendChild(txt);
    }
    //прогноз
    newC = newR.insertCell(newR.cells.length);
    newC.align='center';
    newC.style.fontWeight = 'bold';
    txt = document.createTextNode("");
    newC.appendChild(txt);

    update_demand_zebra();
    
    showhide_demand();
}

function add_to_demand(_id,_title, _qty){
/*
    if(_Def(demand[_id])){
	show_wa_already();
	return;
    }
*/
//    add_to_demand_vis(_id,_title, _qty);
    _simpleget("/basket/?action=add&id="+_id);
}

function vis_on_delete(){
    /* проверяем - есть ли хоть что нибудь в корзине. если нет - то скрываем все нафик */
    var basket_cnt = 0;
    for(var k in basket){
	basket_cnt++;
	break
    }
    var demand_cnt = 0;
    for(var k in demand){
	demand_cnt++;
	break
    }

    if(basket_cnt == 0 && demand_cnt == 0){
	//нифига нету. скрываем все нафик
	_Basket.hide();
	_EmptyBasket.show();
    }
}

function delete_from_basket(_id){
    delete basket[_id];


    var t = _GetElementById('basket_lines');
    for(var i=0; i<t.rows.length;i++){
	if(t.rows[i].id == 'disc_'+_id){
	    t.deleteRow(i);
	    break;
	}
    }

    _simpleget("/basket/?action=remove&id="+_id);

    update_basket_sum();
    update_basket_zebra();
    showhide_basket();

    vis_on_delete();

}
function delete_from_demand(_id){
    delete demand[_id];
    
    var t = _GetElementById('demand_lines');
    for(var i=0; i<t.rows.length;i++){
	if(t.rows[i].id == 'demand_disc_'+_id){
	    t.deleteRow(i);
	    break;
	}
    }

    _simpleget("/basket/?action=remove&id="+_id);
    update_demand_zebra();
    showhide_demand();

    vis_on_delete();
}


function clear_basket(){
    if(!confirm("бШ ДЕИЯРБХРЕКЭМН УНРХРЕ СДЮКХРЭ БЯЕ ДХЯЙХ ХГ ЙНПГХМШ?")){
	return;
    }
    for(var k in basket){
	delete basket[k];
    }

    var t = _GetElementById('basket_lines');
    while (t.rows.length > 0) {
        t.deleteRow(0)
    }

    _simpleget("/basket/?action=clear_requests");
    update_basket_sum();
    showhide_basket();

    vis_on_delete();
}

function clear_demand(){
    if(!confirm("бШ ДЕИЯРБХРЕКЭМН УНРХРЕ СДЮКХРЭ БЯЕ ДХЯЙХ ХГ ГЮЪБЙХ?")){
	return;
    }
    for(var k in demand){
	delete demand[k];
    }
    
    var t = _GetElementById('demand_lines');
    while (t.rows.length > 0) {
        t.deleteRow(0)
    }
    _simpleget("/basket/?action=clear_demands");
    
    showhide_demand();

    vis_on_delete();
}


