        if (!/Windows/.test(navigator.userAgent)){
            document.write("<style>@media screen and (-webkit-min-device-pixel-ratio:0){#gwTopBar { height: 17px!important;}} #gwContentWrapper{margin-top:2px!important;}</style>");
        }

		window.gwData = { eventId: "4987" };
		var autorefresh = "7000";


		var authToken;
		
		function twitterLogin() {	
			var userInput = document.getElementById('gwUserInput');
			var passInput = document.getElementById('gwPassInput');
			var token = userInput.value + ":" + passInput.value;
			window.gwData.basicAuthToken = base64encode(token);
			authToken = base64encode(token);
			token = base64encode(token);

			var loginIframe = document.getElementById("login");
			loginIframe.src = gServerUrl + "loginWrapper.html?id=" + escape(userInput.value) + "&token=" + escape(token);

			userInput.value = '';
			passInput.value = '';
			document.getElementById('gwLogin').style.display='none';	
			document.getElementById('gwLoginLoading').style.display='block';

			var params = {};
//			params[gadgets.io.RequestParameters.HEADERS] = { "Authorization" : "Basic " + window.gwData.basicAuthToken };
//		 	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
//		    params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
//		    params[gadgets.io.RequestParameters.REFRESH_INTERVAL] = 0;
//		    gadgets.io.makeRequest(url, twitterLoginCallback, params);
		}
		
		var gTwitterStatus = "online";
 
		function twitterLoginCallback(response) {
			if (response.error) {
				document.getElementById('gwLoginLoading').style.display='none';
				document.getElementById('gwLogin').style.display='block';
				document.getElementById('gwError').style.visibility='visible';
                document.getElementById('gwUser').style.display='inline';
                document.getElementById('error').innerHTML=response.error;  // this line is new to display error.
                gTwitterStatus = "online";
			} else if(response.tinkermsg) {
                window.gwData.userId = response.screen_name;
                window.gwData.profile_img = response.profile_image_url;
                document.getElementById('gwLoginLoading').style.display='none';
                document.getElementById('gwUpdate').style.display='block';
                document.getElementById('gwMsg').innerHTML = '<span class="twitterError">Unable to contact Twitter</span>'; // change gwMsg to error (tinkermsg).
                document.getElementById('gwUpdateInput').value = 'Update your tinker status here.';
                document.getElementById('gwUser').style.display='none'; // hide username, using gwMsg for error
		        document.getElementById('gwClickHere').style.display='none';
                document.getElementById('gwLogout').style.display='none';
                gTwitterStatus = "offline";
            } else {
				window.gwData.userId = response.screen_name;
				window.gwData.profile_img = response.profile_image_url;
				document.getElementById('gwUser').innerHTML = window.gwData.userId;
				document.getElementById('gwClickHere').style.display='none';
				document.getElementById('gwLoginLoading').style.display='none';
				document.getElementById('gwError').style.visibility='hidden';
				document.getElementById('gwUpdate').style.display='block';
                document.getElementById('gwLogout').style.display='inline';
 
                document.getElementById('gwMsg').innerHTML='You are logged in as '; // change gwMsg back
                document.getElementById('gwUser').style.display='inline'; // show username again
                gTwitterStatus = "online";
				gLogged = 1;
               	}
        }

//	    var selectedTab = "Highlighted";
	    var pause       = false;
		function refreshTweets() {
		   if (pause == true) return;
		   if (document.getElementById('event_timeline')) {
		       var eventFrame = document.getElementById('event_timeline');
                       eventFrame.src = gServerUrl + "wrapper.html?tab=" + selectedTab;
		   }
		}
		

		function twitterLogout() {
			window.gwData.userId = '';
			window.gwData.profile_img = '';
			document.getElementById('gwUpdate').style.display='none';
			document.getElementById('gwClickHere').style.display='block';
		}

		var whitelistNames = new Object();
        whitelistNames["DrNancyMSNBC"] = 1;
        whitelistNames["davidgregory"] = 1;

        String.prototype.trim = function() {
            return this.replace(/^\s+|\s+$/g,"");
        }

		function buildTweetHtml(img, name, txt, when) {
			txt = txt.replace(/href=/g, "target='_blank' href=");
			if (name.indexOf('\(') != -1) name = name.slice (0,name.indexOf('\(')); 
			if (whitelistNames[name.trim()]) {
                name = '<span class="whitelistname">' + name + '</span>';
            }
			var twitterLink = "<a href='" + gClickThru + "http://www.twitter.com/" + name + "' target ='_blank'/>";		
	    	buffer  = "<div class='gwFeed'><div class='gwFeedImage'>" + twitterLink + "<img src='" + img + "' height='48' width='48'/></a></div>";
	    	buffer += "<div class='gwFeedContent'><div class='gwFeedTitle'>" + twitterLink + name + "</a></div> ";
	        buffer += "<div class='gwFeedText'>" + txt + "</div>";
	        buffer += "<div class='gwFeedSub'>" + when + "</div>";
			buffer += "</div><br clear='all'/></div>";
			return buffer;
		}
	
		var gClickThru = '';
		var gTinkerLink = "http://www.tinker.com/event/realtimecu/techcrunch_real-time_stream_crunchup";
		var gEventLink = "";
		
		function makeScrollPane() {
			try {
				if ($('.scroll-pane').height() == 0) {
						window.setTimeout(makeScrollPane,500); 
						return;
					} else {
						document.getElementById('gwContent').style.display="block";
						$('.scroll-pane').jScrollPane({scrollbarWidth: 9,dragMinHeight:45,dragMaxHeight:45});
					}
			} catch(e) {
				$('.jScrollPaneContainer').css({"height":"395px","width":"290px"});
			}		
		}
		
		var gWait;
		
		function onLoad() {
			refreshTweets();	
			if ((autorefresh != "") && (parseInt(autorefresh)!=NaN)) {
				gWait = window.setInterval("refreshTweets()",parseInt(autorefresh));
			}
		}

        function setupiframes() {
            var iframe1 = document.getElementById('event_timeline');
            iframe1.src = gServerUrl + "wrapper.html?tab=Highlighted";
            var iframe2 = document.getElementById('login');
            iframe2.src = gServerUrl + "loginWrapper.html";
        }

    /**
     * Change tabs
     */
    function changeTab(id) {
        switch(id) {
            case 0:
                selectedTab = "All";
                document.getElementById('gwContent').innerHTML = '';
                document.getElementById('tab1').className = "tab selected";
                document.getElementById('tab2').className = "tab";
                document.getElementById('tab3').className = "tab";
                document.getElementById('event_timeline').src    = gServerUrl + "wrapper.html?tab=All";
                break;
            case 1:
                selectedTab = "Highlighted";
                document.getElementById('gwContent').innerHTML = '';
                document.getElementById('tab1').className = "tab";
                document.getElementById('tab2').className = "tab selected";
                document.getElementById('tab3').className = "tab";
                document.getElementById('event_timeline').src    = gServerUrl + "wrapper.html?tab=Highlighted";
                break;
            case 2:
                selectedTab = "Speakers";
                document.getElementById('gwContent').innerHTML = '';
                document.getElementById('tab1').className = "tab";
                document.getElementById('tab2').className = "tab";
                document.getElementById('tab3').className = "tab selected";
                document.getElementById('event_timeline').src    = gServerUrl + "wrapper.html?tab=Speakers";
                break;
        }
    }

	var gHash = '#crunchup ';
    var gThanks = 'Thanks! Your tweet will be considered for the highlights tab.';
    var gMyTweet = '';
    
	function doTweet() {
			if (document.getElementById('gwTweetThanks')) {
                document.getElementById('gwUpdate').style.visibility='hidden';
				document.getElementById('gwTweetThanks').innerHTML = "Posting...";
                document.getElementById('gwTweetThanks').style.display='block';
			}            

			var msgbox = document.getElementById('gwUpdateInput');
			var msg = msgbox.value
			msgbox.value = gHash;
			limitText(msgbox.id,'gwWordcount',140);

            gMyTweet = buildTweetHtml(window.gwData.profile_img, window.gwData.userId, msg, "Now");
            changeTab(0);
            toggleRefresh('pause');

            var postFrame = document.getElementById('post_msg');
            var postUrl = gServerUrl + "postWrapper.html?event_id=" + escape(window.gwData.eventId) + "&status=" + escape(msg) + "&image=" + escape(window.gwData.profile_img) + "&token=" + escape(authToken);

			postFrame.src = postUrl;
			
				
			//var content = document.getElementById('gwContent');
			//content.innerHTML = buildTweetHtml(window.gwData.profile_img, window.gwData.userId, msg, "Now") + content.innerHTML;
		}

        function doTweetCallback(response) {
			if (response.error) {
                        if(document.getElementById('gwTweetThanks')) {
                            $('#gwTweetThanks').animate({opacity: 0}, 300, 'linear', function() {$('#gwTweetThanks').css('display','none').css('opacity','100');});
                        }
						document.getElementById('gwLoginLoading').style.display='none';
						document.getElementById('gwLogin').style.display='block';
						document.getElementById('gwError').style.visibility='visible';
						document.getElementById('error').innerHTML=response.error;  // this line is new to display error.
			} else {
						document.getElementById('gwLoginLoading').style.display='none';
						document.getElementById('gwError').style.visibility='hidden';
                        if(document.getElementById('gwTweetThanks')) {
                            document.getElementById('gwTweetThanks').innerHTML = gThanks;
                            window.setTimeout(function() {$('#gwTweetThanks').animate({opacity: 0}, 500, 'linear', fadeCallback)}, 3500);
                        }
			}
		}

        function fadeCallback() {
            $('#gwTweetThanks').css('display','none').css('opacity','100');
            toggleRefresh('refresh');
            document.getElementById('gwUpdate').style.visibility='visible';
        }

        /*****************************
         *
         * 
         * CHANGE THIS URL TO WHEREVER THE WIDGET LIVES?????
         *
         * this is the "share" embed iframe src
         *
         * */
		function buildIframeUrl(event_id) {
			return "http://widgets.tinker.com/module/tinker2.php?mid=" + Math.random();
		}
        /*
         *  Pass state as "pause" or "refresh" to specify specific state.
         *  Default will toggle from current state to opposite state.
         */
		function toggleRefresh(state) {
            if(state) {
                if(state == "pause") {
                    pause = true;
                    document.getElementById('gwRefresh').innerHTML = "Refresh";
                } else {
                    pause = false;
                    document.getElementById('gwRefresh').innerHTML = "Pause";
                }
            } else {
                if (document.getElementById('gwRefresh').innerHTML == "Refresh") {
                        pause = false;
                        document.getElementById('gwRefresh').innerHTML = "Pause";
                } else if (document.getElementById('gwRefresh').innerHTML == "Pause") {
                        pause = true;
                        document.getElementById('gwRefresh').innerHTML = "Refresh";
                }
            }
		}

        function goo(data) {
        //alert(data.items[0].text);
        displayFeed(data);
        if(gMyTweet.length != 0) {
                var content = document.getElementById('gwContent');
                content.innerHTML = gMyTweet + content.innerHTML;
                gMyTweet = '';
            }
        }

onLoad();
gWait = window.setInterval("refreshTweets()",autorefresh);
	