// AustralianPlays.org apAjax.js 11/10/08

// 26/1/2011 - no long just ajax stuff! Added toggleLibSw + cookie fns
// 21/2/2011 - to be replaced by apMisc.js

function SetCookie(cookieName,cookieValue,nDays)
	{ var today = new Date(); var expire = new Date(); if (nDays==null || nDays==0) nDays=1; expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString(); }
function ReadCookie(cookieName)
	{ var theCookie=""+document.cookie; var ind=theCookie.indexOf(cookieName); if (ind==-1 || cookieName=="") return "";  var ind1=theCookie.indexOf(';',ind); if (ind1==-1) ind1=theCookie.length; return unescape(theCookie.substring(ind+cookieName.length+1,ind1)); }
// CookiesEnabled - only works if javascript is enabled, otherwise use <noscript> tag
function CookiesEnabled()
	{ SetCookie('tst','tst',1); if (ReadCookie('tst')=='') return false; else return true; }

function toggleLibSw()
    {
    if(0==ReadCookie("aplibsw"))
        { SetCookie("aplibsw","1",1); }
    else
        { SetCookie("aplibsw","0",1); }
    setLibSw();
    }
function setLibSw()
    {
    YOffset=(1==ReadCookie("aplibsw")) ? "-25px" : "0";
    document.getElementById("libsw").style.backgroundPosition = "0 "+YOffset;
    }

//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 setElementValue(elementId, newValue)
    {
    // TEMP until apMisc replaces this apAjax
    setCartCount(elementId, 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';
                elemClicked.innerHTML='in cart'; // 2/1/2011 for new layout
                break;
            case 'playlist':
                elemClicked.src='/assets/templates/ausplays/images/onlist.gif';
                elemClicked.alt='on playlist';
                elemClicked.innerHTML='on playlist'; // 2/1/2011 for new layout
                break;
            case 'freescript':
                elemClicked.src='/assets/templates/ausplays/images/isfree.gif';
                elemClicked.alt='on free list';
                elemClicked.innerHTML='on free list'; // 2/1/2011 for new layout
                break;
            default:
            }

        document.body.style.cursor = 'default';
        elemClicked.style.cursor = 'default';
        }
    }

