function parseDate(p_sString){
	var aString = p_sString.split(' ');
        return new Date(Date.parse(aString[1]+' '+aString[2]+', '+aString[5]+' '+aString[3]+' UTC'));
}

function formatTweet(p_sText){
	var sText = p_sText;
	sText = sText.replace(/((ftp|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>');
	sText = sText.replace(/([^\w])\@([\w\-]+)/gm,'$1@<a href="http://twitter.com/$2" target="_blank">$2</a>');	
	sText = sText.replace(/([^\w])\#([\w\-]+)/gm,'$1<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	return sText;
}
function formatTime(p_sTime, sDbLanguage){
	
	//tijd berekenen
	var oDateTweet = parseDate(p_sTime);
	var nTimeTweet = oDateTweet.getTime();
	var oDate = new Date();
	var nTime = oDate.getTime();
	var nDiff = parseInt((nTime - nTimeTweet)/1000);
	
        var sMinutes = (sDbLanguage == '_en') ? (parseInt(nDiff/60)) + ' minutes ago' : (parseInt(nDiff/60)) + ' minuten geleden';
        var sHours = (sDbLanguage == '_en') ? Math.round(nDiff/3600) + ' hours ago' : Math.round(nDiff/3600) + ' uren geleden'
	//tijdverschil terugsturen
	if(nDiff <= 30) return (sDbLanguage == '_en') ? 'A couple of seconds agp' : 'Een paar seconden geleden';
	if(nDiff <= 60) return (sDbLanguage == '_en') ? 'A minute ago' : 'Een minuut geleden';
	if(nDiff < 3600) return sMinutes;
	if(nDiff <= 1.5*3600) return (sDbLanguage == '_en') ? 'An hour ago' : 'Een uur geleden';
	if(nDiff < 23.5*3600) return sHours;
	if(nDiff < 1.5*24*3600) return (sDbLanguage == '_en') ? 'A day ago' : 'Een dag geleden';
	
	//wanneer langer dan een dag, exacte datum terugsturen
	var iDate = oDateTweet.getDate();
	var sDate = '';
	if (iDate.toString().length == 1) {
		sDate = '0' + iDate.toString(); 
	} else {
		sDate = iDate;
	}
        var sDateTweet = '';
        if (sDbLanguage == '_en') {
            sDateTweet = getMonth(parseInt(oDateTweet.getMonth()+1), sDbLanguage) + ' ' + sDate + ', ' + oDateTweet.getFullYear();
        } else {
            sDateTweet = sDate + ' ' + getMonth(parseInt(oDateTweet.getMonth()+1), sDbLanguage) + ' ' + oDateTweet.getFullYear();
        }
	return sDateTweet;
}

function getMonth (iMonth, sDbLanguage) {
    switch (iMonth) {
        case 1:
            return (sDbLanguage == '_en') ? 'January' : 'januari';
            break;
        case 2:
            return (sDbLanguage == '_en') ? 'February' : 'februari';
            break;
        case 3:
            return (sDbLanguage == '_en') ? 'March' : 'maart';
            break;
        case 4:
            return (sDbLanguage == '_en') ? 'April' : 'april';
            break;
        case 5:
            return (sDbLanguage == '_en') ? 'May' : 'mei';
            break;
        case 6:
            return (sDbLanguage == '_en') ? 'June' : 'juni';
            break;
        case 7:
            return (sDbLanguage == '_en') ? 'July' : 'juli';
            break;
        case 8:
            return (sDbLanguage == '_en') ? 'August' : 'augustus';
            break;
        case 9:
            return (sDbLanguage == '_en') ? 'September' : 'september';
            break;
        case 10:
            return (sDbLanguage == '_en') ? 'October' : 'oktober';
            break;
        case 11:
            return (sDbLanguage == '_en') ? 'November' : 'november';
            break;
        case 12:
            return (sDbLanguage == '_en') ? 'December' : 'december';
            break;
            
    }
}

function twitter(p_sUsername,p_nCount,p_bAvatar, sDbLanguage){
    $.ajax({
        url: 'http://api.twitter.com/1/statuses/user_timeline/' + p_sUsername + '.json?include_rts=true&include_entities=true&count=' + p_nCount + '&callback=?',
        dataType: 'json',
        success: function(result){
            var sHtml = '';
            $.each(result, function(i,oTweet){
                var sTweet = '';
                sTweet  += '<p class="smaller">' + formatTime(oTweet.created_at, sDbLanguage) + '</p>';
                
                sTweet  += '<p>' + formatTweet(oTweet.text, sDbLanguage) + '</p>';
                sHtml  += sTweet;
            });
            $('#latest-tweet').html(sHtml);
        }
    });
}
