function T_GetStyle(el, prop) { if (document.defaultView && document.defaultView.getComputedStyle) { return document.defaultView.getComputedStyle(el, null)[prop];} else if (el.currentStyle) { return el.currentStyle[prop];} else if (el.style) { return el.style[prop];} else { return null;}
}
function T_GetCoordinates(obj) { var curleft = curtop = 0; if (obj.offsetParent)
{ do { if (T_GetStyle(obj, "position") == "relative")
continue; curleft += obj.offsetLeft; curtop += obj.offsetTop;} while (obj = obj.offsetParent); var obj = new Object(); obj.top = curtop; obj.left = curleft; return obj;}
}
function twitter_relative_time(time_value) { var values = time_value.split(" "); time_value = values[1] + " " + values[2] + ", " + values[3] + " " + values[4]; var parsed_date = Date.parse(time_value); relative_to = (arguments.length > 1) ? arguments[1] : new Date(); var delta = parseInt((relative_to.getTime() - parsed_date) / 1000); delta = delta + (relative_to.getTimezoneOffset() * 60); if (delta < 60) { return 'less than a minute ago';} else if(delta < 120) { return 'about a minute ago';} else if(delta < (60*60)) { return (parseInt(delta / 60)).toString() + ' minutes ago';} else if(delta < (120*60)) { return 'about an hour ago';} else if(delta < (24*60*60)) { return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';} else if(delta < (48*60*60)) { return '1 day ago';} else { return (parseInt(delta / 86400)).toString() + ' days ago';}
}
function T_Label(top, left, content, twitterid, color, bgcolor, arrowtop, arrowleft, arrowpos, date, screenname, color2)
{ var POSITIONS=null; var OPACITY=null; var WIDTH=null; var HEIGHT=null; var INNERPAD=null; var ARROWV_WIDTH=null; var ARROWV_HEIGHT=null; var ARROWH_WIDTH=null; var ARROWH_HEIGHT=null; var m_top=null; var m_left=null; var m_content=null; var m_twitterid=null; var m_color=null; var m_bgcolor=null; var m_arrowtop=null; var m_arrowleft=null; var m_arrowpos=null; var m_date=null; var m_screenname=null; var m_color2=null; this.POSITIONS = new Array("top", "right", "bottom", "left"); this.OPACITY = 0.7; this.WIDTH = 200; this.HEIGHT = 70; this.INNERPAD = 6; this.ARROWV_WIDTH = 10; this.ARROWV_HEIGHT = 5; this.ARROWH_WIDTH = 5; this.ARROWH_HEIGHT = 10; this.m_top = top; this.m_left = left; this.m_content = content; this.m_twitterid = twitterid; this.m_color = color; this.m_bgcolor = bgcolor; this.m_arrowtop = arrowtop; this.m_arrowleft = arrowleft; this.m_arrowpos = arrowpos; this.m_date = date; this.m_screenname = screenname; this.m_color2 = color2; this.Draw = TL_Draw;}
function TL_Draw(oTarget)
{ var divLabel = document.createElement("div"); divLabel.style.width = this.WIDTH + "px"; divLabel.style.height = this.HEIGHT + "px"; divLabel.style.top = this.m_top + "px"; divLabel.style.left = this.m_left + "px"; divLabel.style.position = "absolute"; var slbg = ' style="background: ' + this.m_bgcolor + ';" '; var sbbg1 = ' style="background: ' + this.m_bgcolor + '; filter:alpha(opacity='+(this.OPACITY*100)+');-moz-opacity:'+this.OPACITY+';opacity:'+this.OPACITY+';" '; var sbbg = ' style="border-color: ' + this.m_bgcolor + '; background: '+ this.m_bgcolor + '; filter:alpha(opacity='+(this.OPACITY*100)+');-moz-opacity:'+this.OPACITY+';opacity:'+this.OPACITY+';" '; var scontentb = ' style="height: '+(this.HEIGHT-10)+'px;color: '+this.m_color+'; border-color: ' + this.m_bgcolor + '; background: '+ this.m_bgcolor + '; filter:alpha(opacity='+(this.OPACITY*100)+');-moz-opacity:'+this.OPACITY+';opacity:'+this.OPACITY+';" '; var html = '<b class="b1"'+sbbg1+'></b><b class="b2"'+sbbg+'></b><b class="b3"'+sbbg+'></b><b class="b4"'+sbbg+'></b>'; html += '<div class="contentb"'+scontentb+'>'; html += '<div>'+this.m_content; if (this.m_color2 != null && this.m_screenname != null && this.m_date != null &&
this.m_screenname.length > 0 && this.m_date.length > 0)
{ html += '<br /><span style="font-weight: bold; color: ' + this.m_color2 + ';">by <a style="color: '+ this.m_color2 +'" href="http://twitter.com/' + this.m_screenname + '">' + this.m_screenname + '</a> ' + twitter_relative_time(this.m_date) + '</span>';}
html += '</div>'; html += '</div>'; html += '<b class="b4"'+sbbg+'></b><b class="b3"'+sbbg+'></b><b class="b2"'+sbbg+'></b><b class="b1"'+sbbg1+'></b>'; divLabel.innerHTML = html; oTarget.appendChild(divLabel); var sbbg1a = ' style="background: ' + this.m_bgcolor + '; filter:alpha(opacity='+(this.OPACITY*100)+');-moz-opacity:'+this.OPACITY+';opacity:'+this.OPACITY+';" '; var divArrow = document.createElement("div"); divArrow.style.top = this.m_arrowtop + "px"; divArrow.style.left = this.m_arrowleft + "px"; divArrow.style.position = "absolute"; var ahtml = ""; if (this.m_arrowpos == this.POSITIONS[0])
{ divArrow.style.width = this.ARROWV_WIDTH; divArrow.style.height = this.ARROWV_HEIGHT; ahtml = '<div class="arrowv"><b class="bv1"'+sbbg1a+'></b><b class="bv2"'+sbbg1a+'></b><b class="bv3"'+sbbg1a+'></b><b class="bv4"'+sbbg1a+'></b><b class="bv5"'+sbbg1a+'></b></div>';}
else if (this.m_arrowpos == this.POSITIONS[1])
{ divArrow.style.width = this.ARROWH_WIDTH; divArrow.style.height = this.ARROWH_HEIGHT; ahtml = '<div class="arrowh"><b class="bhr5"'+sbbg1a+'></b><b class="bhr4"'+sbbg1a+'></b><b class="bhr3"'+sbbg1a+'></b><b class="bhr2"'+sbbg1a+'></b><b class="bhr1"'+sbbg1a+'></b><b class="bhr1"'+sbbg1a+'></b><b class="bhr2"'+sbbg1a+'></b><b class="bhr3"'+sbbg1a+'></b><b class="bhr4"'+sbbg1a+'></b><b class="bhr5"'+sbbg1a+'></b></div>';}
else if (this.m_arrowpos == this.POSITIONS[2])
{ divArrow.style.width = this.ARROWV_WIDTH; divArrow.style.height = this.ARROWV_HEIGHT; ahtml = '<div class="arrowv"><b class="bv5"'+sbbg1a+'></b><b class="bv4"'+sbbg1a+'></b><b class="bv3"'+sbbg1a+'></b><b class="bv2"'+sbbg1a+'></b><b class="bv1"'+sbbg1a+'></b></div>';}
else if (this.m_arrowpos == this.POSITIONS[3])
{ divArrow.style.width = this.ARROWH_WIDTH; divArrow.style.height = this.ARROWH_HEIGHT; ahtml = '<div class="arrowh"><b class="bhl5"'+sbbg1a+'></b><b class="bhl4"'+sbbg1a+'></b><b class="bhl3"'+sbbg1a+'></b><b class="bhl2"'+sbbg1a+'></b><b class="bhl1"'+sbbg1a+'></b><b class="bhl1"'+sbbg1a+'></b><b class="bhl2"'+sbbg1a+'></b><b class="bhl3"'+sbbg1a+'></b><b class="bhl4"'+sbbg1a+'></b><b class="bhl5"'+sbbg1a+'></b></div>';}
divArrow.innerHTML = ahtml; oTarget.appendChild(divArrow);}
function T_Canvas(url, width, height, showcredits)
{ var m_url = null; var m_width = null; var m_height = null; var m_showcredits = null; this.m_url = url; this.m_width = width; this.m_height = height; this.m_showcredits = (showcredits == null || showcredits == '') ? false : showcredits; this.Draw = TC_Draw;}
function TC_Draw(oTarget, canvasid)
{ var img = document.createElement('img'); img.src = this.m_url; img.alt = "SayTweet Twitter badge picture"; oTarget.appendChild(img); oTarget.style.width = this.m_width + "px"; oTarget.style.height = this.m_height + "px"; var sib = oTarget.nextSibling; while (sib!=null && sib.nodeType!=1)
{ sib = sib.nextSibling;}
if ((sib == null || sib.textContent == null || !(sib.textContent.indexOf("SayTweet") > -1)) && this.m_showcredits)
{ var coordCanvas = T_GetCoordinates(img); var creds = document.createElement('div'); creds.style.position = "absolute"; creds.style.top = coordCanvas.top*1 + this.m_height*1 - 14 + "px"; creds.style.left = coordCanvas.left + "px"; creds.style.width = "100px"; creds.style.height = "14px"; creds.style.overflow = "hidden"; creds.innerHTML = "<div class='credits'>Andys Latest Tweet</div>"; oTarget.appendChild(creds);}
return img;}
function SayTweetCreateCanvas(element, obj, canvasid)
{ var data = obj; if (typeof(data) == "object" && data.length > 0)
{ data = data[0];}
else
{ data = data;}
var canvas = new T_Canvas(data.url, data.width, data.height, data.showcredits); return canvas.Draw(element, canvasid);}
function SayTweetCreateLabels(element, canvas, obj)
{ var data = obj; var coordCanvas = T_GetCoordinates(element); for (var i = 0; i < data.length; i++)
{ var lb = data[i]; var label = new T_Label(coordCanvas.top*1 + lb.top*1, coordCanvas.left*1 + lb.left*1, lb.content, lb.twitterid, lb.color, lb.bgcolor, coordCanvas.top*1 + lb.arrowtop*1, coordCanvas.left*1 + lb.arrowleft*1, lb.arrowpos, lb.date, lb.screenname, lb.color2); label.Draw(element);}
}
function T_GetCSSRule(ruleName) { ruleName=ruleName.toLowerCase(); if (document.styleSheets) { for (var i=0; i<document.styleSheets.length; i++) { var styleSheet=document.styleSheets[i]; var ii=0; var cssRule=false; do { try
{ if (styleSheet.cssRules) { cssRule = styleSheet.cssRules[ii];} else { cssRule = styleSheet.rules[ii];}
if (cssRule && cssRule.selectorText.toLowerCase()==ruleName) { return cssRule;}
}
catch (e)
{ break;}
ii++;} while (cssRule)
}
}
return false;}
function SayTweetCreateCSS()
{ if (T_GetCSSRule(".b1") != false)
return; var ns = document.createElement('style'); document.getElementsByTagName('head')[0].appendChild(ns); if (!window.createPopup) { ns.appendChild(document.createTextNode(''));}
var s = document.styleSheets[document.styleSheets.length - 1]; var rules = { ".b1" : "{font-size:1px; overflow:hidden; display:block;height:1px; margin:0 5px !important;}", ".b2" : "{font-size:1px; overflow:hidden; display:block;height:1px; border-width: 0 1px; margin:0 3px !important;border-style: solid;}", ".b3" : "{font-size:1px; overflow:hidden; display:block;height:1px; border-width: 0 1px; margin:0 2px !important;border-style: solid;}", ".b4" : "{font-size:1px; overflow:hidden; display:block;height:2px; border-width: 0 1px; margin:0 1px !important;border-style: solid;}", ".contentb" : "{border-width: 0 1px;border-style: solid; overflow:hidden; margin: 0px  !important;}", ".contentb div" : "{margin: 0 5px !important; filter:alpha(opacity=100);-moz-opacity:1;opacity:1;font-size: 10px; font-family: Arial; line-height: 11px; text-align: left !important;}", ".bv5" : "{font-size:1px; overflow:hidden; display:block;height:1px;}", ".bv4" : "{font-size:1px; overflow:hidden; display:block;height:1px; margin:0 1px !important;}", ".bv3" : "{font-size:1px; overflow:hidden; display:block;height:1px; margin:0 2px !important;}", ".bv2" : "{font-size:1px; overflow:hidden; display:block;height:1px; margin:0 3px !important;}", ".bv1" : "{font-size:1px; overflow:hidden; display:block;height:1px; margin:0 4px !important;}", "div.arrowv" : "{width:10px; height: 5px; overflow: hidden;}", ".bhl1" : "{font-size:1px; overflow:hidden; display:block;width:5px;height:1px;}", ".bhl2" : "{font-size:1px; overflow:hidden; display:block;width:4px;height:1px;margin:0 0 0 1px !important;}", ".bhl3" : "{font-size:1px; overflow:hidden; display:block;width:3px;height:1px;margin:0 0 0 2px !important;}", ".bhl4" : "{font-size:1px; overflow:hidden; display:block;width:2px;height:1px;margin:0 0 0 3px !important;}", ".bhl5" : "{font-size:1px; overflow:hidden; display:block;width:1px;height:1px;margin:0 0 0 4px !important;}", ".bhr1" : "{font-size:1px; overflow:hidden; display:block;width:5px;height:1px;}", ".bhr2" : "{font-size:1px; overflow:hidden; display:block;width:4px;height:1px;margin:0 1px 0 0 !important;}", ".bhr3" : "{font-size:1px; overflow:hidden; display:block;width:3px;height:1px;margin:0 2px 0 0 !important;}", ".bhr4" : "{font-size:1px; overflow:hidden; display:block;width:2px;height:1px;margin:0 3px 0 0 !important;}", ".bhr5" : "{font-size:1px; overflow:hidden; display:block;width:1px;height:1px;margin:0 4px 0 0 !important;}", "div.arrowh" : "{width: 5px; height: 10px; overflow:hidden;}", "div.credits" : "{zoom: 1; font-family: arial; font-size: 9px; line-height: 14px; color: #FFFFFF; background-color: #333333; padding: 0 0 0 2px; filter:alpha(opacity=70);-moz-opacity:.70;opacity:.70; text-align: left !important;}"
}; for (selector in rules) { if (s.insertRule) { try { s.insertRule(selector + rules[selector], s.cssRules.length);} catch(e) {}
} else { try { s.addRule(selector, rules[selector]);} catch(e) {}
}
}
}