﻿if (!window.XboxLiveMarketplace)
	window.XboxLiveMarketplace = {};

XboxLiveMarketplace.ContentAPI = function(rootElement, delegate)
{
    this.delegate = delegate;
    // create downloader
    this.control = rootElement.GetHost();
}
XboxLiveMarketplace.ContentAPI.prototype = 
{
    DispatchEvent: function()
    {
        if(this.delegate != null)
        {
            this.delegate(this.data, this.parentData);
        }
    },
    load:function(url, parentNodeName, elementNodeName)
    {
        //alert('loading: ' + url)
        this.downloader = this.control.createObject("downloader");
        // attach event handlers
        this.downloader.addEventListener( "completed", Silverlight.createDelegate(this, this.onDataReady));
        this.parentNodeName = parentNodeName;
        this.elementNodeName = elementNodeName;
        // download
        //alert(url)
        this.downloader.open("GET", url);
        this.downloader.send();
    },
    onDataReady: function(sender, args)
    {
        //alert(sender.responseText.substring(0, 200));
        // get the response
        var xml = sender.responseText;
        var doc;
        var xmlList;
        var isIE = (navigator.userAgent.indexOf("MSIE")!=-1);
        // create appropiate XML document
        if (isIE)
        {
            doc = new ActiveXObject("Microsoft.XMLDOM");
            doc.async="false";
            doc.loadXML(xml);
        }
        else
        {
            doc = document.implementation.createDocument("","",null);
            var parser = new DOMParser();
            doc = parser.parseFromString(xml,"text/xml");
        }
        
        if (doc.documentElement.nodeName == this.parentNodeName)
        {
            var xml = doc.getElementsByTagName(this.elementNodeName);
            this.data = xml;
            this.parentData = doc.documentElement;
        }
        //alert('data ready');
        this.DispatchEvent();
    } 
}