﻿function HomeBootstrap() {
    this.parsers = [];
    this.parsedNodes = {};
    this.views = {};
    this.XMLPath = "";  
}

HomeBootstrap.prototype = {
    setXMLPath: function(path) {
        this.XMLPath = path;
    },
    loadXML: function(xmlURL, callback) {
        var that = this;
        $.get(xmlURL, function(data) {
            var jData = $(data);
            while (that.parsers.length > 0) {
                var parser = that.parsers.pop();
                var ns = parser.name.split(".");
                that.parsedNodes[ns[0]][ns[1]] = jData.find(parser.selector);
            }
            callback.call(that);
        }, "xml");
    },
    registerParser: function(name, selector) {
        this.parsers.push({
            "name": name,
            "selector": selector
        });
    },
    addViewSection: function(name, callback) {
        this.views[name] = callback;
        this.parsedNodes[name] = {};
    },
    getViewSection: function(name) {
        return this.views[name].call(this.parsedNodes[name]);
    },
    init: function() {
        this.loadXML(this.XMLPath, function(){
            this.getViewSection("init");
        });
    }
};

