var GONGFAN = function(){
	var map;
	function scratchJson(){
		var s = document.createElement('script');
		s.type = 'text/javascript';
		s.src = 'http://api.fanfou.com/statuses/public_timeline.json?' + Math.random() + '&count=20&format=html&callback=GONGFAN.callBack';
		document.getElementsByTagName('head')[0].appendChild(s);
	}
	function parseDataToHTML(src){
	  var html = [
		  '<div class="entry">',
		  '<p class="s',
		  Math.ceil(Math.random() * 10),
		  '">',
		  src.text,
		  '</p><a href="http://fanfou.com/',
		  src.user.id,
		  '" target="_blank" class="avatar"><img src="',
		  src.user.profile_image_url,
		  '" />',
		  src.user.name,
		  '</a> 在 <strong>',
		  (src.user.location || '地球上'),
		  '</strong> <em>',
		  timeSlot(src.created_at),
		  '</em></div>'];
	  return html.join('');
	}
	function timeSlot(created_at){
	  var tmp = created_at.split(' '); // format: Wed Jun 13 10:11:18 +0000 2007
	  var stdFormat = tmp[1] + " " + tmp[2] + ", " + tmp[5] + " " + tmp[3];
	  var serverOffset = parseInt(tmp[4].replace(/[+-]/, ''), 10);
	  if (tmp[4].charAt(0) == '+'){
		serverOffset = serverOffset;
	  } else {
		serverOffset = 0 - serverOffset;
	  }
	  var d = new Date();
	  var localTime = d.getTime();
	  var localOffset = d.getTimezoneOffset() * 60000;
	  var localUtc = localTime + localOffset;
	  var msgTime = Date.parse(stdFormat) - serverOffset * 360000;
	  var delta = (localUtc - msgTime) / 1000;

	  if (delta < 60){
		return '不到<strong>1</strong>分钟';
	  } else if ( delta > 600 && delta < 3600){
		return '约10分钟之前';
	  } else if ( delta > 3600){
		return '不会吧，1个小时之前'
	  } else {
		return '约' + Math.round(delta / 60) + '分钟之前';
	  };
	}
	function getPoint(location){
	  if (!location){
			return new GLatLng(34.68491,112.47605); //如果不提供地址，那么让这条消息在洛阳——中国中心出现，呵呵
	  } else {
			var l = location.replace(' ', '');
			if (/(北京|上海|天津|重庆)/.exec(l)){
				l = RegExp.$1;
			} else if (/海外/.exec(l)){
				if (l.length > 2)
					l = l.replace('海外', '');
			}
			var latlng = LatLng[l];
			return new GLatLng(latlng[0], latlng[1]);
		}
	}
	return {
		callBack: function(jsonSource){
			var counter = document.getElementById('num'), curlevel = map.getZoom() == 3 ? 6 : map.getZoom(), j = jsonSource, i;
			for (i = 0, n = j.length; i < n; ++i){
				(function(){
				 var p = i;
				 setTimeout(function(){
				   if (/海外/.exec(j[p].user.location)){
					map.setZoom(3);
				   } else {
					map.setZoom(curlevel);
				   }
				   map.openInfoWindowHtml(getPoint(j[p].user.location), parseDataToHTML(j[p]));
				   counter.innerHTML = 19 - p;
				   }, p * 5000);
				 })();
			}
		},
		init: function(){
			if (GBrowserIsCompatible()) {
				map = new GMap2(document.getElementById('map'));
				map.setCenter(new GLatLng(34.68491,112.47605), 6);//洛阳真的是中国的中心吗，呵呵
				map.addControl(new GLargeMapControl());
				map.addControl(new GOverviewMapControl());
				scratchJson();
				setInterval(scratchJson, 100000);
			  } else {
				alert("对不起，您的浏览器不支持本站的功能，建议使用开源好用的Firefox: http://getfirefox.com");
			}
		}
	}
}();