function twCB(t) {
	var o=[];
	for(var i=0;i<t.length;i++){
		var pl='';
		var un=t[i].user.screen_name;
		if(t[i].geo && t[i].geo.type == 'Point') {
			c=t[i].geo.coordinates;
			pl='<a href="javascript:show_on_map('+ c.join(',') + ')" title="visa på karta">&#187;</a>';
		}
		var st=t[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {return '<a href="'+url+'">'+url+'</a>';}).
						replace(/\B@([_a-z0-9]+)/ig, function(reply){return reply.charAt(0)+'<a href="http://www.twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>'; });
    	o.push('<span>'+st+'</span> <a style="font-size:85%" href="http://twitter.com/'+un+'/statuses/'+t[i].id+'">'+rt(t[i].created_at)+'</a> ' + pl);
	}
	$('#tweets').html(o.join('<p>'))
}
function rt(t_val) {
	var v=t_val.split(" ")
	t_val=v[1]+" "+v[2]+", "+v[5]+" "+v[3]
	var parsed_date = Date.parse(t_val)
	var rel_to = (arguments.length > 1) ? arguments[1] : new Date()
	var d = parseInt((rel_to.getTime() - parsed_date) / 1000)
	d = d + (rel_to.getTimezoneOffset() * 60)

	if(d<60) return 'helt nyss';
	else if(d < 120) return 'ca 1 minut sedan';
	else if(d < (60*60)) return (parseInt(d/60)).toString() + ' minuter sedan';
	else if(d < (120*60)) return 'ca 1 timme sedan';
	else if(d < (24*60*60)) return 'ca '+(parseInt(d/3600)).toString() + ' timmar sedan';
	else if(d < (48*60*60)) return '1 dag sedan';
	else return (parseInt(d/86400)).toString() + ' dagar sedan';
}
var tweettimer=null
function get_tweets(){

	var progress = document.createElement('img');
	progress.src = '/images/progress.gif';
	progress.alt = 'loading tweets...';
	progress.style.textAlign = 'center';
	document.getElementById("tweets").appendChild(progress);

	// <img src="/images/progress.gif" alt="loading..."/>
	$.getJSON("http://twitter.com/statuses/user_timeline/micke_d.json?callback=?&count=7", function(a){twCB(a);} )
	tweettimer = setTimeout("get_tweets()",60000*10)
}

function show_on_map(lat,lng){
	if( $('#map').size() == 0 ) {
		$('#tweets').append( '<div id="map"></div>');
		$('#map').dialog({ autoOpen:true, modal:false, resizable: false, height: 300, width: 300, title: 'tweet-plats'} );
	} else { $('#map').dialog('open'); }
	init_map(lat,lng);
}

function init_map(lat,lng) {
    var latlng = new google.maps.LatLng(lat,lng);
    var myOptions = { zoom: 8, center: latlng, mapTypeId: google.maps.MapTypeId.TERRAIN };
    var map = new google.maps.Map(document.getElementById('map'), myOptions);
	new google.maps.Marker( { position: latlng, map: map, title:'tweet', clickable: false });
}

$(document).ready(function(){ get_tweets() })
