
(function() {
_mwu_MRE_uix = 0;
_mwu_MRE_data = null;
_mwu_MRE_setData = function(data) {
    _mwu_MRE_data = data;
}
MWUMapRssElement = function(frame, element, opts) {
    this.id = ++_mwu_MRE_uix;
    if (typeof(opts) === "undefined") opts = new Array();
    
    this.frame = (typeof(frame) === "string") ? document.getElementById(frame) : frame;
    this.element = (typeof(element) === "string") ? document.getElementById(element) : element;
    this.src = this.frame.src.replace(/(\/i\/A[^\/]+)/g, "");

    this.dateOnArticle = typeof(opts.date) === "boolean" ? opts.date : true;
    this.timeOnArticle = typeof(opts.time) === "boolean" && this.dateOnArticle ? opts.time : false;
    this.linkToArticle = typeof(opts.link) === "boolean" ? opts.link : false;
    this.mapItJump = typeof(opts.jump) === "boolean" ? opts.jump : false;
}
MWUMapRssElement.prototype.unload = function() {
    this.purge(this.element);
}
MWUMapRssElement.prototype.getObjectOffset = function(obj) {
    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft;
        curtop = obj.offsetTop;
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        }
    }
    return { x: curleft, y: curtop };
}
MWUMapRssElement.prototype.scrollTo = function(element, margin) {
    var offset = this.getObjectOffset(element);
    window.scroll(0, Math.max(offset.y + (margin || 0), 0));
}
MWUMapRssElement.prototype.purge = function(d) {
    var a = d.attributes, i, l, n;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            n = a[i].name;
            if (typeof d[n] === 'function') {
                d[n] = null;
            }
        }
    }
    a = d.childNodes;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            this.purge(d.childNodes[i]);
        }
    }
}
MWUMapRssElement.prototype.reloadFrame = function(aid) {
    if (this.mapItJump) this.scrollTo(this.frame, -20);
    this.frame.src = this.src + "/i/" + aid;
}
MWUMapRssElement.prototype.toggleMore = function(aid) {
    var e = document.getElementById("_mwu_DESC_"+aid);
    e.style.display = (e.style.display == "block") ? "none" : "block";
}
MWUMapRssElement.prototype.load = function() {
    if (_mwu_MRE_data == null) {
        alert("Data not loaded.");
        return;
    }
    
    this.unload();
    
    var data = _mwu_MRE_data;
    
    var e, f;
    var div = document.createElement("div");
    div.id = "_mwu_DIV_" + this.id;
    div.className = "mwuMREcontainer";
    
    var title = data.title;
    
    e = document.createElement("div");
    e.className = "mwuMREmaptitle";
    e.innerHTML = title;
    div.appendChild(e);
    
    var desc = data.description;
    
    e = document.createElement("div");
    e.className = "mwuMREmapdesc";
    e.innerHTML = desc;
    div.appendChild(e);
    
    var ititle, idate, itime, idatetime, ilink, idesc, aid;
    var itemArray = data.items;
    for (var i = 0; i < itemArray.length; i++) {
        var item = data.items[i];
        
        ititle = item.title;
        idate = item.date;
        itime = item.time;
        idatetime = item.date + (this.timeOnArticle ? " | " + item.time : "");
        ilink = item.link;
        idesc = item.description;
        
        aid = ilink.replace(/.*\/i\/(A[^\/]+).*/, "$1");

        var iteme = document.createElement("div");
        iteme.className = "mwuMREitem";
        if ((i % 2) == 0) iteme.className += " mwuMREitem-every2";
        if ((i % 3) == 0) iteme.className += " mwuMREitem-every3";
        if ((i % 4) == 0) iteme.className += " mwuMREitem-every4";
        if ((i % 5) == 0) iteme.className += " mwuMREitem-every5";
        
        e = document.createElement("div");
        e.className = "mwuMREitemtitle";
        if (this.linkToArticle) {
            f = document.createElement("a");
            f.className = "mwuMREitemlink";
            f.href = ilink;
            f.innerHTML = ititle;
            e.appendChild(f);
        } else {
            e.innerHTML = ititle;
        }
        iteme.appendChild(e);
        
        if (this.dateOnArticle) {
            e = document.createElement("div");
            e.className = "mwuMREitemdate";
            e.innerHTML = idatetime;
            iteme.appendChild(e);
        }
        
        e = document.createElement("div");
        e.className = "mwuMREitemsub";
        f = document.createElement("a");
        f.className = "mwuMREitemsublink";
        f.href = "javascript:void(0)";
        (function(mre, newid, ele) {
            ele.onclick = function(){mre.toggleMore(newid);}
        })(this, aid, f);
        f.innerHTML = "More";
        e.appendChild(f);
        f = document.createElement("span");
        f.className = "mwuMREitemsubsep";
        f.innerHTML = " | ";
        e.appendChild(f);
        f = document.createElement("a");
        f.className = "mwuMREitemsublink";
        f.href = "javascript:void(0)";
        (function(mre, newid, ele) {
            ele.onclick = function(){mre.reloadFrame(newid);}
        })(this, aid, f);
        f.innerHTML = "Map it";
        e.appendChild(f);
        iteme.appendChild(e);
        
        e = document.createElement("div");
        e.id = "_mwu_DESC_"+aid;
        e.className = "mwuMREitemdesc";
        e.style.display = "none";
        e.innerHTML = idesc;
        iteme.appendChild(e);

        div.appendChild(iteme);
    }
    
    this.element.appendChild(div);
}
document.write("<script type=\"text/javascript\" src=\"http://www.mapwith.us/rss/map/V1146/limit/15/type/js/script.js?t=" + (new Date()) + "\"></script>");
})();
