//----------------------------------------------------------------------------##
// Copyright (c) www.lonewolfscripts.com. All rights reserved.
//----------------------------------------------------------------------------##
function TweetShow(){
	var feed = 'http://twitter.com/statuses/user_timeline/61553510.rss';
	var styles = {
		maintitle : 'font:bold 14pt Verdana;color:#6cf;margin:0 0 15px 0;',
		link : 'font:bold 10pt Verdana;color:#6cf;margin-left:20px;',
		linkcolor : '#6cf',
		linkhover : '#f00',
		tweet : 'font:normal 10.5pt Arial;color:#fff;margin:0 0 10px 0;',
		tweetdate : 'font:normal 8pt Arial;color:#999;margin:0 0 10px 0;',
		tweetsbar : 'border-top:1px solid #4f4f4f;margin:15px 0;'
	};
	var imgpath = '/tweetshow/';
	var fetchurl = '/tweetshow/fetchtweets.php';
	var cachetime = 3600;	// caching of the twitter rss feed in seconds
	var self = this;
	var name = 'TweetShow';
	var version = '1.0';
	var loaded = 0;
	var barisopen = false;

	var init = function(){
		if( loaded != 0 ){
			return;
		}
		loaded = 1;
		var css = '#TweetShowTab{position:fixed;left:0;top:20%;width:38px;height:97px;overflow:hidden;background:url('+imgpath+'tabs.png) left top;z-index:999999;}';
		css += '#TweetShowSideBar{color:#fff;font:normal 10pt Arial;position:fixed;left:-440px;top:0;width:438px;height:100%;overflow:hidden;border-right:1px solid #f00;z-index:999999;background-color:#000;}';
		css += '#TweetShowSideBarInner{background-color:#000;padding:10px;text-align:left;vertical-align:center;}';
		loadcss(css);
		setuptab();
		setupbar();
	};

	var setupbar = function(){
		var n = document.createElement('div');
		n.id = 'TweetShowSideBar';
		n.innerHTML = '<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"><tr><td id="TweetShowSideBarInner"></td></tr></table>';
		addelement(n);
	};

	var setuptab = function(){
		var n = document.createElement('div');
		n.id = 'TweetShowTab';
		n.innerHTML = '<img id="TweetShowTabImage" src="'+imgpath+'tweets.png" width="14" height="63" style="position:absolute;left:13px;top:17px;" /><img id="TweetShowWaitLoad" src="'+imgpath+'loading.gif" width="16" height="16" style="position:absolute;left:12px;top:2px;display:none;" />';
		n.onmouseover = function(ev){
			var tab = ge('TweetShowTab');
			var img = ge('TweetShowTabImage');
			if(tab && img){
				if( barisopen ){
					tab.style.backgroundPosition = '-5px -303px';
					img.style.left = '7px';
				}else{
					tab.style.backgroundPosition = '0px -101px';
					img.style.left = '13px';
				}
			}
		};
		n.onmouseout = function(ev){
			var tab = ge('TweetShowTab');
			var img = ge('TweetShowTabImage');
			if(tab && img){
				if( barisopen ){
					tab.style.backgroundPosition = '-5px -202px';
					img.style.left = '7px';
				}else{
					tab.style.backgroundPosition = '0px 0px';
					img.style.left = '13px';
				}
			}
		};
		n.onclick = function(ev){
			if( barisopen ){
				closetweets();
			}else{
				loadtweets();
			}
		};
		addelement(n);
	};

	var ge = function(e){
		if(document.all){
			return document.all[e];
		}
		return document.getElementById(e);
	};

	var addelement = function(el){
		var b = document.body;
		try {
			if(b.childNodes.length > 0){
				b.insertBefore(el, b.childNodes[0]);
			}else{
				b.appendChild(el);
			}
		}catch(e){
			return false;
		}
		return true;
	};

	var addevent = function(obj, evt, func){
		if( obj.addEventListener ){
			obj.addEventListener(evt, func, false);
			return true;
		}else if( obj.attachEvent ){
			var r = obj.attachEvent('on'+evt, func);
			return r;
		}
		return false;
	};

	var loadcss = function(txt){
		var styleText = document.createTextNode(txt);
		var styleNode = document.createElement('style');
		styleNode.type = 'text/css';
		if(styleNode.styleSheet){
			styleNode.styleSheet.cssText = styleText.nodeValue;
		}else{
			styleNode.appendChild(styleText);
		}
		document.getElementsByTagName('head')[0].appendChild(styleNode);
	};

	var initialize = function(){
		addevent(window, 'load', init);
	};

	var opentweets = function(){
		var tab = ge('TweetShowTab');
		var bar = ge('TweetShowSideBar');
		var img = ge('TweetShowTabImage');
		if(tab && bar && img){
			barisopen = true;
			bar.style.left = '0px';
			tab.style.left = '439px';
			tab.style.backgroundPosition = '-5px -202px';
			img.style.left = '7px';
			if( navigator.userAgent.indexOf('MSIE 6') >= 0 ){
				bar.style.height = document.documentElement.clientHeight;
			}else{
				bar.style.height = '100%';
			}
		}
	};

	var closetweets = function(){
		var tab = ge('TweetShowTab');
		var bar = ge('TweetShowSideBar');
		var img = ge('TweetShowTabImage');
		if(tab && bar && img){
			barisopen = false;
			bar.style.left = '-440px';
			tab.style.left = '0px';
			tab.style.backgroundPosition = '0px 0px';
			img.style.left = '13px';
		}
	};

	var loadtweets = function(){
		var limg = ge('TweetShowWaitLoad');
		if( limg ){
			limg.style.display = '';
		}
		var u = fetchurl+'?cache='+cachetime+'&url='+encodeURIComponent(feed);
		var req = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('MSXML2.XMLHTTP.3.0');
		req.open('GET', u, true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.onreadystatechange = function(){ if(req.readyState == 4 && req.status == 200){ if(req.responseText){ showtweets(req.responseText); } } };
		req.send(null);
	};

	var showtweets = function(txt){
		var bar = ge('TweetShowSideBarInner');
		if( bar ){
			if( txt.match(/^S:.*:E$/) ){
				txt = txt.substring(2, txt.length - 2);
				eval(txt);
				txt = '<div style="'+styles.maintitle+'">'+title;
				if( link != '' ){
					txt += '<a href="'+link+'" style="'+styles.link+'" onmouseover="this.style.color=\''+styles.linkhover+'\';" onmouseout="this.style.color=\''+styles.linkcolor+'\';" target="_blank">Follow Me!</a>';
				}
				txt += '</div>';
				for(var i = 0; i < tweets.length; i++){
					txt += '<div style="'+styles.tweet+'">'+tweets[i].title+'</div>';
					txt += '<div style="'+styles.tweetdate+'">'+tweets[i].date+'</div>';
					txt += '<div style="'+styles.tweetsbar+'"></div>';
				}
			}else{
				txt = 'Could not load feed. Please try again later.';
			}
			bar.innerHTML = txt;
			var limg = ge('TweetShowWaitLoad');
			if( limg ){
				limg.style.display = 'none';
			}
			opentweets();
		}
	};

	initialize();
}
TweetShow();
//----------------------------------------------------------------------------##
// Copyright (c) www.lonewolfscripts.com. All rights reserved.
//----------------------------------------------------------------------------##

