var Basket=new Array();
var x_win=null;
var sale=null;
var BCaptions=new Array(" № ", " Наименование ", " Количество ", " Цена "," Сумма " );
var BsktMenuIsInit=null;

function HideBasketCount()
{
    document.getElementById('mnubskcount').style.visibility="hidden";
}

function clearXWin()
{
    if(typeof(x_win)!='undefined')
    {
        if(x_win!=null) x_win.close();
    }
}

function InitBsktMenuGetCount() 
{  
    window.onunload=function(){clearXWin();};
    var DivElem=document.createElement("DIV");
    DivElem.className='mu3';
    DivElem.id='mnubskcount';
    DivElem.style.visibility="hidden";
    document.body.appendChild(DivElem);
    var fldSet=document.createElement("FIELDSET");
    if(BrowserDetect.browser=="Explorer") fldSet.style.width=0;
    DivElem.appendChild(fldSet);
    var lgnd=document.createElement("LEGEND");
    fldSet.appendChild(lgnd);
    var fnt=document.createElement("font");
    fnt.style.color="#3f73a9";
    lgnd.appendChild(fnt);
    var b=document.createElement("b");
    fnt.appendChild(b);
    var txt_cap=document.createTextNode("Укажите количество:");
    b.appendChild(txt_cap);
    var i_hide=document.createElement("INPUT");
    i_hide.setAttribute('type', 'hidden'); 
    i_hide.id='bskcountid';
    fldSet.appendChild(i_hide);
    var inp=document.createElement("INPUT");
    inp.id='bskcount';
    inp.setAttribute('size', 10);
    fldSet.appendChild(inp);
    var b=document.createElement("B");
    fldSet.appendChild(b);
    
    var tbl=document.createElement("TABLE"); fldSet.appendChild(tbl); 
    tbl.width="100%"; tbl.setAttribute('cellspacing', '0'); tbl.setAttribute('cellpadding', "0"); tbl.setAttribute('border', "0"); tbl.setAttribute('align',"center");
    var tr=tbl.insertRow(-1);
    var td1=tr.insertCell(-1);
    td1.id='sel_ok'; td1.width="50%"; td1.setAttribute('align',"center");
    var but1=document.createElement("button");
    but1.className="mybutton"; but1.onclick=function(){AddToOrder(document.getElementById("bskcountid").value, document.getElementById("bskcount").value);};
    var but1Text=document.createTextNode("Заказать");
    but1.appendChild(but1Text);
    td1.appendChild(but1);
    
    var td2=tr.insertCell(-1);
    td2.width="50%"; td2.setAttribute('align',"center");
    var but2=document.createElement("button");
    but2.className="mybutton"; but2.onclick=function(){HideBasketCount();};
    var but2Text=document.createTextNode("Отменить");
    but2.appendChild(but2Text);
    td2.appendChild(but2);
    BsktMenuIsInit=1;
}

function ShowMenuBasketCount()
{
    var rightedge = document.body.clientWidth-event.clientX;
    var bottomedge = document.body.clientHeight-event.clientY;
    if (rightedge < document.getElementById('mnubskcount').offsetWidth)
    {
        document.getElementById('mnubskcount').style.left = document.body.scrollLeft + event.clientX - document.getElementById('mnubskcount').offsetWidth;
    }
    else
    {
        document.getElementById('mnubskcount').style.left = document.body.scrollLeft + event.clientX;
    }
    if (bottomedge < document.getElementById('mnubskcount').offsetHeight)
    {
        document.getElementById('mnubskcount').style.top = document.body.scrollTop + event.clientY - document.getElementById('mnubskcount').offsetHeight;
    }
    else
    {
        document.getElementById('mnubskcount').style.top = document.body.scrollTop + event.clientY;
    }
    document.getElementById('mnubskcount').style.visibility = "visible";
	return false;
}


function getPrice(id)
{
    var parent=document.getElementById(id).parentNode.parentNode.parentNode;
    var pCount=parent.children.length;
    return parent.childNodes(pCount-2).outerText;
}

function getCaption(id)
{
    var parent=document.getElementById(id).parentNode.parentNode.parentNode;
    return parent.children(1).children(0).outerText+" "+parent.children(2).children(0).outerText;
}

function GetBasketCount(id)
{
    if(BsktMenuIsInit==null)
    {
        InitBsktMenuGetCount();
    }
    document.getElementById('bskcountid').value=id;
    document.getElementById('bskcount').value="1";
    ShowMenuBasketCount();
}

function AddToOrder(id, count)
{
    if(!ProcessInt(count))
    {
        alert("Не правильно указано количество!");
        return;
    }
    HideBasketCount();
    var price=getPrice("addBask_"+id);
    var caption=getCaption("addBask_"+id);
    var curOrder=new Array();
    curOrder['caption']=caption;
    curOrder['price']=price;
    curOrder['count']=count;
    curOrder['id']=id;
    Basket.push(curOrder);
    ShowBasket();
}

function ShowBasket()
{
    if(x_win!=null)
    {
        x_win.document.getElementById("id_xwin").parentElement.removeChild(x_win.document.getElementById("id_xwin"));
        x_win.document.getElementById("id_order").parentElement.removeChild(x_win.document.getElementById("id_order"));;
    }
    else
    {

        x_win = open("", "x_win", "location=no,toolbar=no,menubar=no,status=no, personalbar=no,scrollbars,resizable,width=1,height=1,top=0,left=0");
        x_win.document.body.onunload=function(){x_win=null;}
        for(var i=0;i<document.styleSheets.length;i++)
        {
            var st=document.styleSheets[i].href;      
            style = x_win.document.createElement('link');
            style.rel = 'stylesheet';
            style.type = 'text/css';
            style.href = st;
            x_win.document.getElementsByTagName('head')[0].appendChild(style);
        }
        
    }
    
    var newElem=x_win.document.createElement("table");
    newElem.id="id_xwin";
    var newRow=newElem.insertRow(-1);
    for(var i=0; i<5;i++)
    {
        var newCell=newRow.insertCell(-1);
        newCell.className="cattab";
        newCell.align="center";
        var addText=x_win.document.createTextNode(BCaptions[i]);
        newCell.appendChild(addText);
    }

    var OrderSum=0;
    for(var i=0; i<Basket.length; i++)
    {
        var newRow=newElem.insertRow(-1);
        var newCell=newRow.insertCell(-1);
        newCell.className="cattab";
        var addText=x_win.document.createTextNode(i+1);
        newCell.appendChild(addText);
        var newCell=newRow.insertCell(-1);
        newCell.className="cattab";
        var addText=x_win.document.createTextNode(Basket[i]['caption']);
        var nobr = x_win.document.createElement("nobr");
        newCell.appendChild(nobr);
        nobr.appendChild(addText);
        var newCell=newRow.insertCell(-1);
        newCell.className="cattab";
        newCell.align="right";
        var addText=x_win.document.createTextNode(Basket[i]['count']);
        newCell.appendChild(addText);
        var newCell=newRow.insertCell(-1);
        newCell.className="cattab";
        
        OrderSum+=parseFloat(Basket[i]['price'],10)*parseInt(Basket[i]['count']);
        var addText=x_win.document.createTextNode(Basket[i]['price']);
        newCell.align="right";
        newCell.appendChild(addText);
        var newCell=newRow.insertCell(-1);
        newCell.className="cattab";
        var addText=x_win.document.createTextNode(printf("%10.2f", parseFloat(Basket[i]['price'],10)*Basket[i]['count']));
        newCell.align="right";
        newCell.appendChild(addText);

        var newCell=newRow.insertCell(-1);
        var BBut=x_win.document.createElement("button");
        var BBText=x_win.document.createTextNode("Удалить");
        BBut.appendChild(BBText);
        BBut.setAttribute("del", i);
        BBut.onclick=function(){BasketDelete(this.attributes.getNamedItem('del').nodeValue);};
        newCell.appendChild(BBut);
    }
    var newRow=newElem.insertRow(-1);
    var newCell=newRow.insertCell(-1);
    var newCell=newRow.insertCell(-1);
    var newCell=newRow.insertCell(-1);
    var newCell=newRow.insertCell(-1);
    newCell.align="right";
    var addText=x_win.document.createTextNode("Итого:");
    newCell.appendChild(addText);
    var newCell=newRow.insertCell(-1);
    newCell.align="right";
    var addText=x_win.document.createTextNode(printf("%10.2f", OrderSum));
    newCell.appendChild(addText);

    x_win.document.body.appendChild(newElem);

    var wWidth=0; var wHeight=0;
    for(var i=0;i<newElem.firstChild.children(1).children.length; i++)
    {
        wWidth+=newElem.firstChild.children(1).children(i).offsetWidth;
        wHeight=newElem.firstChild.children(1).children(i).offsetHeight;
    }
    wHeight=wHeight*(Basket.length+1)+200;
    x_win.resizeTo(wWidth+80, wHeight);

    var BBut=x_win.document.createElement("button");
    BBut.id="id_order";
    var BBText=x_win.document.createTextNode("Заказать");
    BBut.appendChild(BBText);
    BBut.onclick=function(){BasketOrder();};
    x_win.document.body.appendChild(BBut);
}

function BasketDelete(del)
{
    Basket.splice(del,1);
    ShowBasket();
}

function BasketOrder()
{
    var OutStr="";
    for(var i=0; i<Basket.length;i++)
    {
        tmpStr="";
        for(key in Basket[i])
        {
            tmpStr+=key+'~'+Basket[i][key]+','
        }
        tmpStr=tmpStr.substr(0, tmpStr.length-1);
        OutStr+=tmpStr+',discount~0|';
    }
    OutStr=OutStr.substr(0, OutStr.length-1);
    requestdata("sendorder", UserID, OutStr);
    ProcessCommandQueue();    
}

function UpdateCalc(event, id)
{
    var iid=id.split("_");
    switch(iid[1])
    {
        case 'count':
            var reg = /[\d]/;
            break;
        case 'discount':
        case 'price':
            var reg = /[\d\.]/;
            break;    
    }
    var key = (typeof event.charCode == 'undefined' ? event.keyCode : event.charCode);
    key = String.fromCharCode(key);
    return reg.test(key);
}

function updateSum(id)
{
    var total=parseInt(document.getElementById(id).total, 10);
    var totalsum=0;
    for(var i=0; i<total;i++)
    {
        var sdisc=parseFloat(document.getElementById('ord_discount_'+i).value);
        //document.getElementById('ord_price_'+i).value=printf("%01.2f", parseFloat(document.getElementById('ord_price_'+i).value));
        if(sdisc>100)
        {
            sdisc=100;
            document.getElementById('ord_discount_'+i).value=sdisc;
        }
        var disc=(100-sdisc)/100;
        var localsum=parseFloat(document.getElementById('ord_price_'+i).value) * parseInt(document.getElementById('ord_count_'+i).value,10) * disc;
        document.getElementById('ord_locsum_'+i).innerHTML=printf("%01.2f", localsum);
        totalsum+=localsum;
    }
    document.getElementById('totalsum').innerHTML=printf("%01.2f", totalsum);
}


/*
function InputAccept(event)
{
    if (!event) event=window.event;
    if(event.keyCode==13)
    {
        var elem=document.getElementById('editext');
        var id=elem.refid;
        var value=elem.value;
        elem.parentNode.removeChild(elem)
        var text=document.getElementById("txt_"+id);
        text.firstChild.nodeValue=value;
        text.style.display='inline';
        document.body.onclick = function(event){return hidemenu(event, false);};;
        requestdata("rename_node", id, value);
        ProcessCommandQueue();
    }
}

function testKey(event)
{
  // Make sure to use event.charCode if available
  var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);

  // Ignore special keys
  if (e.ctrlKey || e.altKey || key < 32)
    return true;

  key = String.fromCharCode(key);
  return /\w/.test(key);
}




*/
