// AustralianPlays.org apAjax.js 11/10/08

//global vars because we can't pass param to updatePage()
var actionType=""; 
var elemResult=""; 
var elemClicked;

function setCartCount(elementId, newValue)
    {
    // extracted from updatePage() 28/3/10, so it can also be called directly from cart page
    // changes div cartcount to show current items in cart (actually when called 
    // by updatePage it may change div playlist or freelist)
    if(document.getElementById(elementId).firstChild)
        { document.getElementById(elementId).firstChild.data=newValue; }
    else // IE8?
        { document.getElementById(elementId).innerHTML=newValue; }
    }
    
function ajaxAdd(addWhat, addId, changeElemId, elClicked) 
    {
    // addWhat = cart | playlist | freescript
    // addId   = ProductRef
    // changeElemId  = element id to set with result
    actionType=addWhat; 
    elemResult=changeElemId; 
    elemClicked=elClicked;
    document.body.style.cursor = 'wait';
    elemClicked.style.cursor = 'wait';
    sendRequest(addWhat, addId);
    }

var http=createRequestObject();

function createRequestObject()
    {
    var reqobj=false;
    var browserName=navigator.appName;
    if(browserName=="Microsoft Internet Explorer") { try { reqobj=new ActiveXObject("Microsoft.XMLHTTP"); }catch(otherTypeOfMicrosoftObject) { try { reqobj=new ActiveXObject("Msxml2.XMLHTTP"); } catch(giveUp) { reqobj=false; } } }
    else { try { reqobj=new XMLHttpRequest(); } catch (NothingLeft) { reqobj=false; } }
    return reqobj;
    }

function sendRequest(Action,Value)
    {
    var url="/apAjax.php?action=" + escape(Action) + "&val=" + escape(Value);
    http.open("GET",url,true);
    http.onreadystatechange=updatePage;
    http.send(null);
    }
	
function updatePage() // sets .innerHTML for elemResult
    {
    if(4==http.readyState)
        {
        theResult = (200==http.status) ? http.responseText : 'error ' + http.status ;
        setCartCount(elemResult, theResult);
        switch(actionType)
            {
            case 'cart':
                elemClicked.src='/assets/templates/ausplays/images/incart.gif';
                elemClicked.alt='in cart';
                break;
            case 'playlist':
                elemClicked.src='/assets/templates/ausplays/images/onlist.gif';
                elemClicked.alt='on playlist';
                break;
            case 'freescript':
                elemClicked.src='/assets/templates/ausplays/images/isfree.gif';
                elemClicked.alt='on free list';
                break;
            default:
            }

        document.body.style.cursor = 'default';
        elemClicked.style.cursor = 'default';
        }
    }
