blogURL = 'http://alexamiller.blogspot.com/';
feedURL = 'http://alexamiller.blogspot.com/feeds/posts/summary';
postCount = 6;
excerptLength = 20;

function loadBlogFeed(r) {
    var container = document.getElementById('sgfeed');
    if (r.responseStatus == '200' && r.responseData.feed.entries.length > 0) {
        for (i = 0; i < r.responseData.feed.entries.length; i++) {
            var post = r.responseData.feed.entries[i];
            var title = unescapePureXMLEntities(post.title);
            var entry = unescapePureXMLEntities(cleanPostContent(post.content));
            var link = post.link;
            var date = post.publishedDate;
            date = new Date(date).toDateString();
            renderPost(title, entry, link, date)
        }
        var moreLink = document.createElement('a');
        moreLink.href = blogURL;
        moreLink.innerHTML = 'More Posts &raquo;';
        container.appendChild(moreLink)
    } else {
        renderNoPost()
    }
}
function cleanPostContent(entry) {
    entry = entry.replace(/<span>[^<]*<\/span>/, '');
    entry = entry.replace(/<[^>]*>/g, '');
    var snippet = entry.split(' ', excerptLength);
    snippet.pop();
    return snippet.join(' ') + ' ...'
}
function unescapePureXMLEntities(str) {
    return str.replace(/&([^;]+);/g, function (s, entity) {
        switch (entity) {
        case 'amp':
            return '&';
        case 'lt':
            return '<';
        case 'gt':
            return '>';
        case 'quot':
            return '"';
        default:
            if (entity.charAt(0) == '#') {
                var n = Number('0' + entity.substr(1));
                if (!isNaN(n)) {
                    return String.fromCharCode(n)
                }
            }
            return s
        }
    })
}
function renderPost(title, entry, link, date) {
    var linkNode = document.createElement('a');
    linkNode.href = link;
    linkNode.appendChild(document.createTextNode(title));
    var snippetDiv = document.createElement('div');
    snippetDiv.className = 'snippet';
    snippetDiv.appendChild(document.createTextNode(entry));
    var dateDiv = document.createElement('div');
    dateDiv.className = 'time';
    dateDiv.appendChild(document.createTextNode(date));
    var container = document.getElementById('sgfeed');
    var parent = document.createElement('div');
    var divider = document.createElement('p');	
    parent.appendChild(linkNode);
    parent.appendChild(dateDiv);
    parent.appendChild(snippetDiv);
    parent.appendChild(divider);
    container.appendChild(parent)
}
function renderNoPost() {
    var container = document.getElementById('sgfeed');
    container.innerHTML = '<a href="' + blogURL + '">' + blogURL + '</a>'
}
function importBlogJS() {
    var scriptNode = document.createElement('script');
    apiURL = 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=' + feedURL + '&num=' + postCount + '&callback=loadBlogFeed';
    scriptNode.setAttribute('src', apiURL);
    document.getElementsByTagName('head')[0].appendChild(scriptNode)
}
window.onload = importBlogJS;
