Response title
This is preview!
function string_replace(haystack, find, sub) { return haystack.split(find).join(sub); } String.prototype.parseHashtag = function() { return this.replace(/[#]+[A-Za-z0-9-_]+/g, function(t) { var tag = t.replace("#","#"); return t.link("http://search.twitter.com/search?q="+tag); }); }; String.prototype.parseUsername = function() { return this.replace(/[@]+[A-Za-z0-9-_]+/g, function(u) { var username = u.replace("@",""); return u.link("http://twitter.com/"+username); }); }; function tweetEntry(item) { var text = item.text; var match = /(http|https)://(w+:{0,1}w*@)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?/.exec(text); if (match) { text = string_replace(item.text, match[0], '<a href="'+ match[0] + '" target="_blank">' + match[0] + '</a>'); } // @replies and #hashtags text = text.parseHashtag(); text = text.parseUsername(); var res = "<div class='entry'>" + "<div class='username'>" + "<a href='http://twitter.com/"+item.from_user+"' target='_blank'>" + "<img src='"+item.profile_image_url+"' width='56' height='56' align='left' style='padding:0px 15px 23px 5px' border='0'/>" + " "+item.from_user+"</a>" + "</div>" + "<div class='text'>"+text+"</div>" + "<div class='date'>"+formatTime(item.created_at)+"</div>" + "</div>"; return res; } function noResults(search_term) { var res = "<div class='entry'>" + "<div class='no_results'>" + "no matching results for '"+ search_term +"'..." + "</div>" + "</div>"; return res; } function formatTime(time){ var now = new Date(), then = new Date(time); var diff = now - then, sec = 1000, min = sec * 60, hour = min * 60, day = hour * 24, week = day * 7; if(isNaN(diff) || diff < 0){ return ""; } if(diff < sec * 7){ return "right now"; } if(diff < min){ return Math.floor(diff / sec) + " seconds ago"; } if(diff < min * 2){ return "about 1 minute ago"; } if(diff < hour){ return Math.floor(diff / min) + " minutes ago"; } if(diff < hour * 2){ return "about 1 hour ago"; } if(diff < day){ return Math.floor(diff / hour) + " hours ago"; } if(diff > day && diff < day * 2){ return "yesterday"; } if(diff < day * 365){ return Math.floor(diff / day) + " days ago"; } else { return "over a year ago"; } } function getLang() { var lang = navigator.language; if (navigator.language) { lang = navigator.language; } else { lang = navigator.browserLanguage; } } function addHashes(words) { var temp = new Array(); for (var w in words) { temp.push("#" + words[w]); } return temp; } function handleSuggestions2(data) { //var base_url = "http://search.twitter.com/search.json?callback=?&lang="+getLang()+"&q="; var base_url = "http://search.twitter.com/search.json?callback=?&q="; var the_words = new Array(); var search_term = data[0]+' jobs'; $("#searchfield").autocomplete( { source: the_words.slice(0,4) }); if (the_words.length == 0) { renderGeist("", search_term); $.get(base_url + encodeURIComponent(search_term), { rpp: 100 }, function(data) { if (!data.error) { $("#main").empty(); if (data.results.length > 0) { for(var i in data.results) { $("#main").append(tweetEntry(data.results[i])); } } else { $("#main").append(noResults(search_term)); } } }, "json"); } else { renderGeist(the_words[0], search_term); $.get(base_url + encodeURIComponent(search_term +' OR '+ the_words[0]), { rpp: 100 }, function(data) { if (!data.error) { $("#main").empty(); if (data.results.length > 0) { for (var i in data.results) { $("#main").append(tweetEntry(data.results[i])); } } else { $("#main").append(noResults(search_term)); } } }, "json"); } } function suggestedTerms(term) { var suggest_url = "http://suggestqueries.google.com/complete/search?hl="+getLang()+"&cp=1&hjson=t&jsonp=?&q="; $.getJSON(suggest_url + term, handleSuggestions2); } function instantTwitter(event) { var search_term = encodeURIComponent($("#searchfield").val()); if (search_term.length > 0) { // get suggested search terms suggestedTerms(search_term); } else { $("#geist").empty(); } } function renderGeist(word, search_term) { var len = search_term.length; if (search_term.toLowerCase() == word.substr(0,len).toLowerCase()) { var leng = search_term.length; var temp_word = word.slice(leng); var final_word = search_term + temp_word; $("#geist").text(final_word); } else { $("#geist").text(""); } } $(document).ready( function() { $("#about_lnk").click( function() { $("#dialog").dialog(); }); //$("#message").slideDown("slow").delay(7000).slideUp("slow"); $("#searchfield").focus(); $("#searchfield").submit(instantTwitter); $("#searchfield").keyup(instantTwitter); } );
© 2013 jQuery Foundation
Sponsored by and others.