var LittleTritone = function(d, set) {var $ = function(id) { return document.getElementById(id); };if (!set.scname) {return;};var jumpURL = 'http://twitter.com/' + set.scname;var baseURL = 'http://twitter.com/statuses/user_timeline.json?screen_name=' + set.scname + '&callback=JSONP.';var contID = set.contID || 'LittleTritoneDisplayPane';var clLabelImage  = set.clLabelImage || 'http://lab.f-sp.net/_api/lt/pts/w/label.gif';var clLabelWidth  = set.clLabelWidth || 11;var clLabelMargin = set.clLabelMargin || 5;var clBorderColor = set.clBorderColor || '#888888';var clBGColor     = set.clBGColor || '#ffffff';var hdFontSize         = set.hdFontSize || 10;var hdMargin           = set.htMargin || 5;var hdLinkColor        = set.hdLinkColor || '#f46912';var hdCreatedTimeColor = set.hdCreatedTimeColor || '#ada39d';var tlUpButton   = set.tlUpButton || 'http://lab.f-sp.net/_api/lt/pts/w/green_bu.gif';var tlDownButton = set.tlDownButton || 'http://lab.f-sp.net/_api/lt/pts/w/green_bd.gif';var tlButtonSize = set.tlButtonSize || 10;var tlMargin     = set.tlMargin || 5;var tlIconWidth  = set.tlIconWidth || 42;var tlIconHeight = set.tlIconHeight || 42;var tlBGColor    = set.tlBGColor || '#f4eae5';var tlFontSize   = set.tlFontSize || 10;var tlFontColor  = set.tlFontColor || '#000000';var tlLinkColor  = set.tlLinkColor;var ftTextColor = set.ftTextColor || '#c1c1c1';var maxURLLength    = set.maxURLLength || 20;var updateInterval  = set.updateInterval || 120000;var scname = set.scname;var script_id;var current_stream = [];var current_itemID = 0;var currenttime;var timerID;var loaded = false;var username;var usericon;var create_time;var canvas;var btUp;var btDown;if (updateInterval < 60000) {updateInterval = 60000;};var showTL = function(){var url = get_jsonp_url('show');if (!url) {return;};JSONP.get(url);};var updateTL = function(){var url = get_jsonp_url('update');if (!url) {return;};JSONP.get(url);};var get_jsonp_url = function(cbname){if (!cbname) {return;};return baseURL + cbname;};var internal_show_timeline = function(json){var table = d.createElement('table');table.border = '0';with(table.style) {borderCollapse  = 'collapse';width           = '100%';border          = clBorderColor + ' 1px solid';backgroundColor = clBGColor;};$(contID).appendChild(table);var tbody = d.createElement('tbody');table.appendChild(tbody);var tr1 = d.createElement('tr');tr1.style.textAlign     = 'left';tr1.style.verticalAlign = 'top';tbody.appendChild(tr1);var th = d.createElement('th');th.rowSpan = '2';with(th.style) {width       = clLabelWidth + clLabelMargin * 2 + 'px';borderRight = clBorderColor + ' 1px dotted';};th.innerHTML = "<img src='" + clLabelImage + "' alt='on Twitter' style='margin:" + clLabelMargin + "px;' />";tr1.appendChild(th);username = d.createElement('div');with(username.style) {fontSize    = hdFontSize + 'px';lineHeight  = hdFontSize + 'px';paddingLeft = hdMargin + 'px';paddingTop  = hdMargin + 'px';fontWeight  = 'bold';};var td1l = d.createElement('td');td1l.appendChild(username);tr1.appendChild(td1l);create_time = d.createElement('div');with(create_time.style) {fontSize     = hdFontSize + 'px';lineHeight   = hdFontSize + 'px';paddingRight = tlButtonSize + tlMargin * 2 + 'px';paddingTop   = hdMargin + 'px';color        = hdCreatedTimeColor;	fontWeight   = 'bold';};var td1r = d.createElement('td');td1r.style.textAlign = 'right';td1r.appendChild(create_time);tr1.appendChild(td1r);var logo = d.createElement('img');logo.src = "http://lab.f-sp.net/_api/lt/pts/footlabel_h.gif";logo.style.border = 'none';var anc = d.createElement('a');anc.setAttribute('href', 'http://lab.f-sp.net/');anc.setAttribute('target', '_blank');anc.appendChild(logo);var td1f = d.createElement('td');td1f.rowSpan = 2;with(td1f.style) {width           = '13px';verticalAlign   = 'middle';backgroundColor = '#888888';};td1f.appendChild(anc);tr1.appendChild(td1f);var tr2 = d.createElement('tr');tr2.style.verticalAlign = 'top';tbody.appendChild(tr2);var td2 = d.createElement('td');td2.colSpan = '2';tr2.appendChild(td2);var table2 = d.createElement('table');table2.border      = '0';table2.style.borderCollapse = 'separate';table2.cellPadding = '0';table2.cellSpacing = tlMargin;table2.style.width = '100%';td2.appendChild(table2);var tbody2 = d.createElement('tbody');table2.appendChild(tbody2);var t2tr1 = d.createElement('tr');with(t2tr1.style) {textAlign     = 'left';verticalAlign = 'top';};tbody2.appendChild(t2tr1);usericon   = d.createElement('div');var t2td1l = d.createElement('td');t2td1l.rowSpan = 2;t2td1l.style.width = tlIconWidth + 'px';t2td1l.appendChild(usericon);t2tr1.appendChild(t2td1l);var canvcont = d.createElement('div');with(canvcont.style) {width    = '100%';height   = Math.round(tlFontSize * 1.5) * 3 + tlMargin * 2 + 'px';overflow = 'auto';};canvas = d.createElement('div');with(canvas.style) {fontSize   = tlFontSize + 'px';lineHeight = Math.round(tlFontSize * 1.5) + 'px';padding    = tlMargin + 'px';color      = tlFontColor;};var t2td1c = d.createElement('td');t2td1c.rowSpan = 2;with(t2td1c.style) {backgroundColor = tlBGColor;height          = Math.round(tlFontSize * 1.5) * 3 + tlMargin * 2 + 'px';};canvcont.appendChild(canvas);t2td1c.appendChild(canvcont);t2tr1.appendChild(t2td1c);var bt1     = d.createElement('img');bt1.src     = tlUpButton;bt1.onclick = streamScrollUp;btUp = bt1;var t2td1r = d.createElement('td');t2td1r.style.width = tlButtonSize + 'px';t2td1r.appendChild(bt1);t2tr1.appendChild(t2td1r);var bt2     = d.createElement('img');bt2.src     = tlDownButton;bt2.onclick = streamScrollDown;btDown = bt2;var t2tr2 = d.createElement('tr');tbody2.appendChild(t2tr2);var t2td2 = d.createElement('td');t2td2.style.verticalAlign = 'bottom';t2td2.appendChild(bt2);t2tr2.appendChild(t2td2);json2tl(json);};var internal_update_timeline = function(json){json2tl(json);};var set_user_info = function(obj){var img = d.createElement('img');img.src = obj.profile_image_url;with(img.style) {width  = tlIconWidth + 'px';height = tlIconHeight + 'px';border = 'none';};var anc    = d.createElement('a');anc.href   = jumpURL;anc.target = '_blank';anc.appendChild(img);usericon.appendChild(anc);username.innerHTML = "<a href='" + jumpURL + "' target='_blank' style='text-decoration:none; color:" + hdLinkColor + ";'>" + obj.name + " (" + scname + ")</a>";};var json2tl = function(json){if (!loaded) {set_user_info(json[0].user);};current_stream = [];current_itemID = 0;var date = new Date();currenttime = date.getTime();var i;for (i=0; i<json.length; i++) {var tlitem = json[i].text;var url = tlitem.match(/http:\/\/[\x21-\x7e]+/gi);if (url) {url = url[0];var lt = "<a href='" + url + "' target='_blank'";if (tlLinkColor) {lt += " style='color:" + tlLinkColor + "'";};lt += ">";if (url.length > maxURLLength) {url = url.substring(0, maxURLLength) + '...';};lt += url + "</a>";tlitem = tlitem.replace(/http:\/\/[\x21-\x7e]+/gi, lt);};var created = json[i].created_at.split(' ');created     = created[1] + ', ' + created[2] + ' ' + created[5] + ' ' + created[3] + ' GMT' + created[4];created     = Date.parse(created);var dt      = created;created     = Math.round((currenttime - created) * 0.001);if (created < 5) {created = '5秒以内';}else if (created < 30) {created = '30秒前';}else if (created < 60) {created = '1分前';}else {created = Math.round(created / 60);if (created < 60) {created = created + '分前';}else {var hour   = Math.floor(created / 60);var minute = created - hour * 60;if (hour < 24) {created = hour + '時間' + minute + '分前';}else {created = Math.round(hour / 24);if (created == 1) {created = '昨日';}else {created = created + '日前';};};};};current_stream[i] = [tlitem, created];};loaded = true;show_current_item();};var show_current_item = function(){canvas.innerHTML      = current_stream[current_itemID][0];create_time.innerHTML = current_stream[current_itemID][1];if (current_itemID < 1) {btUp.style.visibility = 'hidden';}else {btUp.style.visibility = 'visible';};if (current_itemID >= current_stream.length - 1) {btDown.style.visibility = 'hidden';}else {btDown.style.visibility = 'visible';};setTimeout(updateTL, updateInterval);};var get_child_id = function(num){num = +num;return contID + '_child' + num;};JSONP = {get : function(url){if (script_id) {d.body.removeChild($(script_id));};script_id = url;var s     = d.createElement('script');s.charset = 'UTF-8';s.id      = url;s.src     = url;s.type    = 'text/javascript';d.body.appendChild(s);},show : function(json){internal_show_timeline(json);},update : function(json){internal_update_timeline(json);}};var stream_scroll_by = function(num){var newid = current_itemID + num;if (newid < 0 || newid >= current_stream.length) {return;};current_itemID = newid;show_current_item();};var streamScrollUp = function(){stream_scroll_by(-1);};var streamScrollDown = function(){stream_scroll_by(1);};window.onload = showTL;};

