/**
 * Function for parsing SEGA's social networking and blogs XML
 *
 * Written by Mark Hinch for SEGA (Feb - Apr 2010)
 */
 
/*global $ */

String.prototype.parseURL = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		return url.link(url);
	});
};

String.prototype.parseUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function(u) {
		var username = u.replace("@","");
		return u.link("http://twitter.com/"+username);
	});
};

String.prototype.parseHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function(t) {
		var tag = t.replace("#","%23");
		return t.link("http://search.twitter.com/search?q="+tag);
	});
};

function getSocial(whichOne, theCount)
{
    var results = '';
    $.get("/lib/socialnetworking/socialnetworking.php?whichOne=" + whichOne,  function(xml){
        var elementTag,titleTag,contentTag,linkTag,dateTag ;
    
        elementTag = 'item';
        titleTag = 'title';
        contentTag = 'description';
        linkTag = 'guid';
        dateTag = 'pubDate';
        switch (whichOne) {
            case 'buzz' :
                elementTag = 'entry';
                titleTag = 'title';
                contentTag = 'summary';
                linkTag = 'link';
                dateTag = 'updated';
            break;
            case 'blog' :
                linkTag = 'link';
            break;
        }
            
        $(elementTag,xml).each(function(i){
            if(i < theCount) {
                var title, content, link, date;

                title = $(this).find(titleTag).text();
                content = $(this).find(contentTag).text();
                date = $(this).find(dateTag).text();

                if (whichOne == 'twitter') {
                    //content = '<span class="twitterName">@totalwar</span> ' + content.substr(10,content.length);
                    content = content.parseURL().parseUsername().parseHashtag();
                    date.substr(0,(date.length - 6))
                }

                if (whichOne == 'buzz') {
                    link = $(this).find(linkTag).attr("href");
                } else {
                    link = $(this).find(linkTag).text();
                }

                if(whichOne == 'blog' || whichOne == 'forum') {
                    results += '<div class="socialItem"><div class="socialHeading"><a href="' + link + '" target="_blank">' + title + '</a></div>' + content + '</div>';
                } else {
                    results += '<div class="socialItem"><div class="content">' + content + '</div><div class="date">' + date + '</div></div>';
                }
            }
        });
        
        $("#" + whichOne + "Feed").html(results);
    });
}

