//window.gwData.eventId = 4987;

		function displayLoginPanel() {
			document.getElementById('gwClickHere').style.display='none';
			document.getElementById('gwLogin').style.display='block';
			document.getElementById('gwUserInput').focus();
		}
		
		function twitterLogin() {	
			var userInput = document.getElementById('gwUserInput');
			var passInput = document.getElementById('gwPassInput');
			var token = userInput.value + ":" + passInput.value;
			window.gwData.basicAuthToken = base64encode(token);
			var url = 'http://api.tinker.com/account/verify_credentials.json?app_type=twitter&id=' + userInput.value + "&r=" + Math.random();
						
			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);
		}
		
		function twitterLoginCallback(response) {
			if (response.data.error) {
				document.getElementById('gwLoginLoading').style.display='none';
				document.getElementById('gwLogin').style.display='block';
				document.getElementById('gwError').style.visibility='visible';
			} else {
				window.gwData.userId = response.data.screen_name;
				window.gwData.profile_img = response.data.profile_image_url;
				document.getElementById('gwUser').innerHTML = window.gwData.userId;
				document.getElementById('gwLoginLoading').style.display='none';
				document.getElementById('gwError').style.visibility='hidden';				
				document.getElementById('gwUpdate').style.display='block';
				gLogged = 1;
			}
		}

		function doTweet() {
			if (document.getElementById('gwUpdating')) {
				document.getElementById('gwUpdating').innerHTML = "Posting...";
			}
			trackEvent('update');
			var msgbox = document.getElementById('gwUpdateInput');
			var msg = msgbox.value;
			msgbox.value = '';
			
		    post_data = {
				event_id: window.gwData.eventId,
				status: msg,
				image: window.gwData.profile_img
		    };
			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.POST;
		  	params[gadgets.io.RequestParameters.POST_DATA]= gadgets.io.encodeValues(post_data);
		  	params[gadgets.io.RequestParameters.REFRESH_INTERVAL] = 0;
			gadgets.io.makeRequest("http://api.tinker.com/status/update.json?app_type=twitter", doTweetCallback, params);
				
			var content = document.getElementById('gwContent');
			content.innerHTML = buildTweetHtml(window.gwData.profile_img, window.gwData.userId, msg, "Now") + content.innerHTML;
		}

function trackEvent(name) {
 if (window.gExternalTrackers && gExternalTrackers[name]) {
    var img = new Image(); 
    img.src = gClickThru+gExternalTrackers[name]+Math.random();
 }
 if (window.glam && glam.metrics && glam.metrics.recordEvent) {
   glam.metrics.recordEvent(name);
 }
}
		function refreshTweets() {
		    //trackEvent('refresh');
			var url = 'http://api.tinker.com/event_timeline/' + window.gwData.eventId + '.json';
			loadJson(url, displayFeed);			
		}
		
		function loadJson(url, callback) {
			var mparams = {};
		 	mparams[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
		    mparams[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
		    mparams[gadgets.io.RequestParameters.REFRESH_INTERVAL] = 6;
		    gadgets.io.makeRequest(url, callback, mparams);
		};

		function displayFeed(response) {
			// load event title
			var eventTitle = response.items[0].event.name;
			document.getElementById('gwMaintitle_text').innerHTML = eventTitle;
			document.getElementById('gwLoginPanelTitle').innerHTML = eventTitle;
			
			var eventUrl = response.items[0].event.url;
			document.getElementById('gwSeeAllLink').href = eventUrl;
			if (document.getElementById('gwFollowEventLink')) {
				document.getElementById('gwFollowEventLink').href = gClickThru + (window.gExternalTrackers ? gExternalTrackers.follow : '') + eventUrl;
			}
			document.getElementById('shareURL').value = eventUrl;			
			document.getElementById('gwTinkerLink').href = gClickThru + "http://www.tinker.com/event/realtimecu/techcrunch_real-time_stream_crunchup";
			if (!gEventLink) gEventLink = eventUrl;
			document.getElementById('gwMaintitle_text').href = gClickThru + gEventLink;
			if (document.getElementById('gwMaintitle_img')) {
				document.getElementById('gwMaintitle_img').href = gClickThru + gEventLink;
			}
			var eventImg = response.items[0].event.image_url;
			if (document.getElementById('gwEventImg')) {
				document.getElementById('gwEventImg').src = (eventImg != "") ? eventImg :"http://tinker.com/img/tinker_default.jpg";
			}
			if (!window.gSponsorLink) {
				gSponsorLink = eventUrl;
			}
			if (document.getElementById('sponsorLink')) {
				document.getElementById('sponsorLink').href = gClickThru + gSponsorLink;
			}

			// load items
			var buffer = "";			
			var items = response.items;
			for (var ix in items) {
				var item = items[ix];
				//if (gModerated) gModerated = item.event.moderated;
				buffer += buildTweetHtml(item.image, item.user.name, item.text, item.created);
			}
			document.getElementById('gwContent').innerHTML = buffer;
			if (document.getElementById('gwLoading')) {
				document.getElementById('gwLoading').style.display = 'none';
			}
			
			window.setTimeout(makeScrollPane,50); 
		}
		  
        function base64encode(input) {
			var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
            var output = "";
            var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
            var i = 0;

            while (i < input.length)
            {
                chr1 = input.charCodeAt(i++);
                chr2 = input.charCodeAt(i++);
                chr3 = input.charCodeAt(i++);

                enc1 = chr1 >> 2;
                enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
                enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
                enc4 = chr3 & 63;

                if (isNaN(chr2))
                {
                        enc3 = enc4 = 64;
                }
                else if (isNaN(chr3))
                {
                        enc4 = 64;
                }

                output = output +
                _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
                _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
            }
            return output;
        }

		function limitText(limitField,CountId,limitNum) {
			var wCount = document.getElementById(CountId);
			var field = document.getElementById(limitField);
			var count = (limitNum-1) - field.value.length;
			wCount.innerHTML = (count >= 0) ? count+1 : 0;
			if ((field.value.length) > (limitNum-1)){
				field.value = field.value.substr(0,limitNum);
			}
		}

		function eKey(e, func) {
		     var Ucode=e.keyCode? e.keyCode : e.charCode
		     if (Ucode == 13) eval(func);
 		 }
		 
		 function showShare() {			
		 	document.getElementById('gwShareDiv').style.display = "block";
			// shareURL has already been set earlier....
			document.getElementById('shareEmbed').value = "<iframe height='600' width='300' frameborder='no'  allowtransparency='true' src='" + buildIframeUrl(window.gwData.eventId) + "'></iframe>";
		 }
		 
		 function closeShare() {
		 	 document.getElementById('gwShareDiv').style.display = "none";
		 }
		 
		 function doPost() {
		    trackEvent('post');
		 	if (gLogged!=1) { 
			 	 document.getElementById('gwClickHere').style.display = "block";
			} else {
			 	 document.getElementById('gwUpdate').style.display = "block";
			}
		 }
		 function closePost(opt) {
		 	 	document.getElementById('gwError').style.display = "none";
		 	 if (opt==1) {
		 	 	document.getElementById('gwClickHere').style.display = "none";
			 } else if (opt==2) {
			 	document.getElementById('gwLogin').style.display = "none";
			 } else {
			 	document.getElementById('gwUpdate').style.display = "none";
			 }
		 }

		function buildIframeUrl(event_id) {
			return "http://www25.glam.com/module/tinker3.php?id=" + event_id;
		}
