﻿<!--
/*
    Asynchronous Cart
    © Adam Lenkow 2007
*/

var Cart;                               // Additional tree for sub groups changing

function initCart()
{
    try
    {
        Cart = new ShopCart(new XmlService(),'store.php?sel=2&act=dodaj','toBasket','cecha');
    }
    catch (e)
    {
        alert( e.toString() );
    }
}


// ------- ShopCart class ---------------

function ShopCart(serv,url,formNamePrefix,cechaNamePrefix)
{
    // XmlService object
    this.serv = serv;
    this.url = url;
    this.formNamePrefix = formNamePrefix;
    this.cechaNamePrefix = cechaNamePrefix;
    this.okText = 'Towar został dodany do koszyka';
    this.errText = 'Błąd. Towar nie został dodany do koszyka\r\nSkontaktuj się z administratorem sklepu';    
}

// Add item to the Cart
ShopCart.prototype.Add = function( itemId )
{
    if(this.serv.Ready())
    {
        // Call
        var url = this.url+'&id='+itemId;
        this.serv.XmlHttp.open("POST",url,true);
        this.serv.XmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
        this.serv.XmlHttp.onreadystatechange = handleAdd;
        
        var form = document.forms[this.formNamePrefix+itemId];
        var params = '';
        for (var i=0;i<form.elements.length;i++)
        {
            params += form.elements[i].name+'='+encodeURIComponent(form.elements[i].value)+'&';
        }
        params = params.substring(0,params.length-1);
        this.serv.XmlHttp.send(params); 
    }
}

// Add item CallBack function
function handleAdd()
{
    try
    {
        if(!Cart.serv.Answer())
           return;
        Cart.serv.TestXmlResponse();
    }
    catch(e)
    {
        alert(e.toString());    
    }
    
    var xmlResponse = Cart.serv.XmlHttp.responseXML;        
    var xmlRoot = xmlResponse.documentElement;
    
    // Check if <ok>true</ok>    
    var ok = xmlRoot.getElementsByTagName('ok');
    
    if( ok.length != 0 )
    {
        if(ok.item(0).firstChild.data.toString()=='true')
        {
            alert(Cart.okText);
        }
        else
        {
            alert(Cart.errText);   
        }
    }
    else
    {
        // For debug
        // Uncomment Throw XmlException in actions/koszyk_action.php        
        var msgTxt = ''; 
        var messages = xmlRoot.getElementsByTagName('message');
        if( messages.length != 0 )
        {
            for(var i=0; i< messages.length; i++)
                msgTxt += messages.item(i).firstChild.data.toString()+'\r\n';
            
            alert( msgTxt);
        }         
    }
}
-->