
var ArticleLoader = Class.create(
{
    intialize: function()
    {
        this.targetDiv = "";
    },
    
    loadData: function(url, targetElement)
    {
        this.targetDiv = targetElement;
        new Ajax.Request(url,
        {
            method:'get',
            onSuccess: this.loadDataSuccess.bindAsEventListener(this),
            onFailure: this.loadDataFailure.bindAsEventListener(this),
            /*  onUninitialized : function() { alert('Uninit'); },
            onLoading       : function() { alert('Loading'); },
            onLoaded        : function() { alert('Loaded'); },
            onInteractive   : function() { alert('Interactive'); },
            onComplete      : function() { alert('Complete'); },
            */
            onException     : function(obj, e) { alert('Exception : ' + e.description); }
        });
    },

    loadDataSuccess: function(transport)
    {
        var xmlDoc = transport.responseXML;
        if (null != xmlDoc)
        {
            // récupération des styles associés à chaque élément
            var style = xmlDoc.documentElement.getElementsByTagName("style");
            var styleTitle = style[0].getAttribute("title");
            var styleSubTitle = style[0].getAttribute("subtitle");
            var styleText = style[0].getAttribute("text");
        
            var articles = xmlDoc.documentElement.getElementsByTagName("article");
            var target = document.getElementById(this.targetDiv);
            for (var i = 0; i < articles.length; i++)
            {
                var articleTitle = articles[i].getAttribute("title");
                var insert = document.createElement("div");
                Element.extend(insert);
                insert.addClassName(styleTitle);
                insert.appendChild(document.createTextNode(articleTitle));
                target.appendChild(insert);

                var articleSubTitle = articles[i].getAttribute("subtitle");
                insert = document.createElement("div");
                Element.extend(insert);
                insert.addClassName(styleSubTitle);
                insert.appendChild(document.createTextNode(articleSubTitle));
                target.appendChild(insert);

                var articleText = articles[i].getAttribute("text");
                insert = document.createElement("div");
                Element.extend(insert);
                insert.addClassName(styleText);
                insert.appendChild(document.createTextNode(articleText));
                target.appendChild(insert);

                insert = document.createElement("br");
                target.appendChild(insert);
                target.appendChild(insert);
                target.appendChild(insert);
            }
        }
    },
    
    loadDataFailure: function()
    {
        alert('Error during data loading...');
    }
});

