/*
 * Heapr
 * http://www.heapr.com/
 *
 * Copyright (c) 2009 Rudy Harjanto
 *
 */	

var Base=function(){};Base.extend=function(b,e){var f=Base.prototype.extend;Base._prototyping=true;var d=new this;f.call(d,b);d.base=function(){};delete Base._prototyping;var c=d.constructor;var a=d.constructor=function(){if(!Base._prototyping){if(this._constructing||this.constructor==a){this._constructing=true;c.apply(this,arguments);delete this._constructing}else{if(arguments[0]!=null){return(arguments[0].extend||f).call(arguments[0],d)}}}};a.ancestor=this;a.extend=this.extend;a.forEach=this.forEach;a.implement=this.implement;a.prototype=d;a.toString=this.toString;a.valueOf=function(g){return(g=="object")?a:c.valueOf()};f.call(a,e);if(typeof a.init=="function"){a.init()}return a};Base.prototype={extend:function(b,h){if(arguments.length>1){var e=this[b];if(e&&(typeof h=="function")&&(!e.valueOf||e.valueOf()!=h.valueOf())&&/\bbase\b/.test(h)){var a=h.valueOf();h=function(){var l=this.base||Base.prototype.base;this.base=e;var k=a.apply(this,arguments);this.base=l;return k};h.valueOf=function(k){return(k=="object")?h:a};h.toString=Base.toString}this[b]=h}else{if(b){var g=Base.prototype.extend;if(!Base._prototyping&&typeof this!="function"){g=this.extend||g}var d={toSource:null};var f=["constructor","toString","valueOf"];var c=Base._prototyping?0:1;while(j=f[c++]){if(b[j]!=d[j]){g.call(this,j,b[j])}}for(var j in b){if(!d[j]){g.call(this,j,b[j])}}}}return this}};Base=Base.extend({constructor:function(){this.extend(arguments[0])}},{ancestor:Object,version:"1.1",forEach:function(a,d,c){for(var b in a){if(this.prototype[b]===undefined){d.call(c,a[b],b,a)}}},implement:function(){for(var a=0;a<arguments.length;a++){if(typeof arguments[a]=="function"){arguments[a](this.prototype)}else{this.prototype.extend(arguments[a])}}return this},toString:function(){return String(this.valueOf())}});var version=210;var staticHtmlUrl="http://static.heapr.com/html/"+version+"/";var currentSettings={lang:"all",web_tab:"Twitter",web_searches:0,images_searches:0,videos_searches:0,twitter_searches:0,lite_searches:0,images_safesearch:1,images_size:0,flickr_sort:2,googlesuggest:0,fastsearch:1,userid:null};var languageNames=["All","Deutsch","English","Espa&ntilde;ol","Fran&ccedil;ais","Italiano","Nederlands","Polski","Portugu&ecirc;s","Pycc&#312;&#1080;&#1081;","Svenska","&#20013;&#25991;  (&#31616;&#20307;)","&#20013;&#25991; (&#32321;&#39636;)","&#26085;&#26412;&#35486;","&#54620;&#44397;&#50612"];var languageCodes=["all","de","en","es","fr","it","nl","pl","pt","ru","sv","zh-CN","zh-TW","ja","ko"];var lastQuery="";var disabledFastSearch=false;var disabledSuggestions=false;var disabledSubmitButton=false;var currentSuggestor;var currentAccount=null;window.onload=function(){Settings.load();if(!Settings.get("userid")){Settings.set("userid",Math.floor(Math.random()*100000000),10000)}var c=new WebLayout();var b=new ImagesLayout();var a=new VideosLayout();var e=new TwitterLayout();var d=new LiteLayout();currentAccount=new Account([c,b,a,e,d]);currentAccount.start();GarbageCollector.start();HistoryManager.start()};document.body.onclick=function(){if(currentSuggestor){currentSuggestor.style.visibility="hidden"}};URL={urlify:function(a){if(!a){return""}else{return a.replace(/\+/g,"%2B").replace(/%20/g,"+")}},unurlify:function(a){if(!a){return""}else{return a.replace(/\+/g,"%20").replace(/%2B/g,"+")}},isCurrent:function(){var h=URL.getParameter("l").toLowerCase();var o=currentAccount.currentLayout;if(o.getName().toLowerCase()!=h){return false}else{var m=o.searchers;var l=URL.getParameter("q");var j=URL.getParameter("p");var f=null;if(!isArray(l)){f=l}else{if(l.length<m.length){f=""}}var d=null;if(!isArray(j)){d=j}else{if(j.length<m.length){d=1}}for(var g=0;g<m.length;g++){var b;if(f||f==""){b=f}else{b=l[g]}if(b!=m[g].currentQuery){return false}var c;if(d){c=d}else{c=j[g]}var a=m[g].displayers;var n=null;if(!isArray(c)){n=c}else{if(c.length<a.length){n=1}}for(var e=0;e<a.length;e++){var r;if(n){r=n}else{r=c[e]}if(r!=a[e].currentPage){return false}}}}return true},parseValue:function(k){if(k.charAt(0)=="["&&k.substr(k.length-1)=="]"){var f=k.substr(1,k.length-2);var h=[],a=0,e=0;for(var l=0;l<f.length;l++){var g=f.charAt(l);if(g=="["){a++}else{if(g=="]"){a--}else{if(g==","&&a==0){var b=f.substr(e,l-e);h.push(b);e=l+1}}}}h.push(f.substr(e));var j=[];for(var d=0;d<h.length;d++){j.push(this.parseValue(h[d]))}return j}else{return k}},getParameter:function(d){var b=URL.unurlify(window.location.href);var c=(new RegExp("[#&]"+d+"=([^&]*)")).exec(b);if(c!=null){return this.parseValue(c[1])}else{var a="";switch(d){case"l":a="";break;case"p":a=1;break;case"q":a="";break}return a}},set:function(a){document.location=a}};Job=Base.extend({constructor:function(d,b){var a=d.indexOf(".");var c=d.substr(0,a);this.functionName=d.substr(a+1);this.priority=b;if(/\d/.test(c)){this.objectName=c}else{this.className=c;this.objectName=null}},run:function(thread){var j;if(this.objectName){j=eval(this.objectName)}else{eval("j = new "+this.className+"()")}j.thread=thread;var jobToRun=j.getObjectName()+"."+this.functionName;eval(jobToRun)},destroy:function(){for(prop in this){if(this.hasOwnProperty(prop)){delete this.prop}}}});Thread=Base.extend({constructor:function(a){this.jobs=a},start:function(){this.nextJob()},destroy:function(){while(this.jobs.length>0){var a=this.jobs.shift();a.destroy()}for(prop in this){if(this.hasOwnProperty(prop)){delete this.prop}}},nextJob:function(){if(this.jobs.length==0){this.destroy()}else{if(this.remainingFinishes>1){this.remainingFinishes--}else{this.remainingFinishes=0;var c=1000000;for(var b=0;b<this.jobs.length;b++){c=Math.min(this.jobs[b].priority,c)}for(var b=0;b<this.jobs.length;b++){var d=this.jobs[b];if(d.priority==c){try{this.jobs.splice(b,1);b--;this.remainingFinishes++;d.run(this);d.destroy()}catch(a){}}}}}}});HistoryManager={start:function(){this.lastUrlChecked=window.location.href;this.stop();this.interval=setInterval("HistoryManager.checkUrl()",150)},stop:function(){clearInterval(this.interval)},updateUrl:function(){if(!URL.isCurrent()){URL.set(this.getCandidateUrl())}},getCandidateUrl:function(){var h=currentAccount.getCurrentLayout();var c=[];var j=[];var b=h.getName().toLowerCase();for(var k=0;k<h.searchers.length;k++){var f=h.searchers[k];c.push(URL.urlify(f.getCurrentQuery()));var a=[];j.push(a);for(var e=0;e<f.displayers.length;e++){var g=f.displayers[e];a.push(g.currentPage)}}c=arrayToString(c);j=arrayToString(j);return"/#l="+b+"&q="+c+"&p="+j},checkUrl:function(){var b=window.location.href;if(b!=this.lastUrlChecked){var e=URL.getParameter("l").toLowerCase();var c=currentAccount.getCurrentLayout();var d=URL.getParameter("q");var a=URL.getParameter("p");if(c.getName().toLowerCase()!=e){if(d==""){if(e=="splash"){currentAccount.layout(e,"",1)}else{currentAccount.layout(e,lastQuery,1)}}else{currentAccount.layout(e,d,a)}}else{c.search(d,a,true)}this.lastUrlChecked=b}}};Browser={stop:function(){if(window.stop){window.stop()}else{if(document.execCommand){document.execCommand("Stop")}}},getWidth:function(){if(typeof(window.innerWidth)=="number"){return window.innerWidth}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){return document.documentElement.clientWidth}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){return document.body.clientWidth}}}},getTop:function(){var a=0;if(typeof(window.pageYOffset)=="number"){a=window.pageYOffset}else{if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){a=document.body.scrollTop}else{if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){a=document.documentElement.scrollTop}}}return a},isIE7:function(){return(document.all&&!window.opera&&window.XMLHttpRequest)?true:false},isIE:function(){return/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent)}};Requester={getScripts:function(){var a=document.getElementById("scripts");if(!a){a=document.createElement("div");a.id="scripts";document.body.appendChild(a)}return a},getFrames:function(){var a=document.getElementById("frames");if(!a){a=document.createElement("div");a.id="frames";document.body.appendChild(a)}return a},requestScript:function(c){var a=this.getScripts();var b=document.createElement("script");b.src=c;a.appendChild(b);setTimeout(function(){var d=b.parentNode;if(d){d.removeChild(b)}destroyElement(b)},12000)},requestFrame:function(e,d,b){var a;if(d){a=d}else{a=this.getFrames()}var c=document.createElement("iframe");c.frameBorder="0";if(b){c.className=b}else{c.className="default_frame_result"}c.src=e;a.appendChild(c)},requestVideoDownload:function(c,b,a){c.value="Loading...";c.disabled=true;a.downloadInput=c;a.finishDownload=function(d){if(d&&this.downloadInput){if(d.url){Requester.requestFrame(d.url);this.downloadInput.value="Download";this.downloadInput.disabled=false}else{this.downloadInput.value="Try Again";this.downloadInput.disabled=false}}};this.requestScript("http://www.oxytube.com/heaprDownload.php?v=2&callback="+a.getObjectName()+".finishDownload&id="+b)}};Settings={load:function(){for(setting in currentSettings){var a=Cookie.get(setting);if(a!=null&&a!=""){currentSettings[setting]=a}}},get:function(a){var b=currentSettings[a];var c=null;switch(a){case"lang":if(languageCodes.indexOf(b)==-1){c="all"}break}if(c){Settings.set(a,c);return c}else{return b}},set:function(a,b,c){if(!c){c=14}Cookie.set(a,b,c);currentSettings[a]=b}};Cookie={get:function(a){if(document.cookie.length>0){c_start=document.cookie.indexOf(a+"=");if(c_start!=-1){c_start=c_start+a.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1){c_end=document.cookie.length}return unescape(document.cookie.substring(c_start,c_end))}}return""},set:function(b,c,a){if(c&&c!=""&&c!=null){var f=new Date();if(a<0){try{f.setDate()}catch(d){f.setDate(f.getDate()+1)}}else{f.setDate(f.getDate()+a)}document.cookie=b+"="+escape(c)+((a==null)?"":";expires="+f.toGMTString())}}};MathParser={getMathResult:function(d){var f=this,e=f.operator={};e["+"]=function(h,g){return h+g};e["-"]=function(h,g){return h-g};e["*"]=function(h,g){return h*g};e["/"]=function(g,h){return h/g};e["%"]=function(g,h){return h%g};e["^"]=function(g,h){return Math.pow(h,g)};e["~"]=function(g,h){return Math.sqrt(h,g)};f.custom={},e.f=function(g,h){if(Math[g]){return Math[g](h)}else{throw new Error('Function "'+g+'" not defined.')}},f.add=function(h,g){this.custom[h]=g};try{var d=this.appendParens(unescape(d));var c=this.parse(d);if(c!=null&&c+""!=d&&!isNaN(c)){var b=document.createElement("div");b.className="math_result";b.innerHTML=unescape(d)+" = "+c;return b}else{return null}}catch(a){return null}},appendParens:function(d){var c=d.split("(").length-1;var b=d.split(")").length-1;var e=c-b;if(e>0){for(var a=0;a<e;a++){d+=")"}}else{if(e<0){for(var a=0;a<abs(e);a++){d="("+d}}}return d},eval:function(q){var q=q.split(""),A=[],b=[],w,u=0,C=0,z,B,r=0;var h="0123456789.",g="+-*/^%~",m=this.operator;for(var k=0,j=q.length;k<j;k++){if(g.indexOf(q[k])>-1){q[k]=="-"&&(C>1||!r)&&++C,!C&&r&&(b.push(q[k]),C=2),"+-".indexOf(q[k])<(r=0)&&(u=1)}else{if(w=h.indexOf(q[k])+1?q[k++]:""){while(h.indexOf(q[k])+1){w+=q[k++]}A.push(r=(C&1?-1:1)*w),u&&A.push(m[b.pop()](A.pop(),A.pop()))&&(u=0),--k,C=0}}}for(u=A[0],k=0,j=b.length;j--;u=m[b[k]](u,A[++k])){}return u},parse:function(e){var p=[],f=[],ag,n,c,a,o=this,v="0123456789.+-*/^%~(, )";for(var x,i=0,l=e.length;i<l;i++){if(v.indexOf(c=e.charAt(i))<0){for(a=c;v.indexOf(c=e.charAt(++i))<0;a+=c){}f.push((--i,a));for(var testCount=0;testCount<f.length;testCount++){if(Math[f[testCount]]==undefined){throw new Error("BLAH")}}}else{if(!(c=="("&&p.push(i))&&c==")"){if(a=e.slice(0,(n=p.pop())-(x=v.indexOf(e.charAt(n-1))<0?y=(c=f.pop()).length:0)),x){for(var j=(ag=e.slice(n,++i).split(",")).length;j--;ag[j]=o.eval(ag[j])){}}l=(e=a+(x?o.operator.f(c,ag):o.eval(e.slice(n,++i)))+e.slice(i)).length,i-=i-n+c.length}}}return o.eval(e)}};Menu=Base.extend({constructor:function(c,d,b,a,e){this.menuName=c;this.optionIds=d;this.optionNames=b;this.selectedIndex=a;this.clickFunction=e},getMenuHTML:function(){if(this.selectedIndex>=this.optionIds.length||this.selectedIndex<0){this.selectedIndex=0}var b='<ul class="menu"><li><a id="'+this.optionIds[this.selectedIndex]+'" onclick="'+this.clickFunction+'(this.id)"><u>'+this.optionNames[this.selectedIndex]+"</u><small> &#9660;</small></a><ul>";for(var a=0;a<this.optionIds.length;a++){b+='<li><a id="'+this.optionIds[a]+'" onclick="'+this.clickFunction+'(this.id)">'+this.optionNames[a]+"</a></li>"}b+="</ul></li></ul>";return b},getElement:function(){if(!this.element||this.element.innerHTML==""){this.element=document.createElement("div");this.element.className="menu_holder clearfix";this.element.innerHTML='<div class="menu_title">'+this.menuName+":</div>"+this.getMenuHTML()}return this.element}});GarbageCollector={start:function(){this.stop();this.interval=setInterval("GarbageCollector.destroyRunnables()",5000)},stop:function(){clearInterval(this.interval)},destroyRunnables:function(){var b="splash";var d=["a","e","r"];var a=window.location.href;var f="rh"+d[1]+d[0]+"p"+d[2]+".";for(var c=0;c<GlobalObject.list.length;c++){var e=GlobalObject.list[c];if(!e.isAlive()){GlobalObject.list.splice(c,1);e.destroy();c--}}if(a.search(f.substr(1))==-1){currentAccount.layout(b,"",1)}}};Time={getUTC:function(){var a=new Date();var b=a.getTime();var c=a.getTimezoneOffset()*60000;return b+c},getMonth:function(a){switch(a){case"Jan":return"01";case"Feb":return"02";case"Mar":return"03";case"Apr":return"04";case"May":return"05";case"Jun":return"06";case"Jul":return"07";case"Aug":return"08";case"Sep":return"09";case"Oct":return"10";case"Nov":return"11";case"Dec":return"12";default:return"01"}},getRelative:function(e){var c=new Date((e||"").replace(/-/g,"/").replace(/[TZ]/g," ")),d=((Time.getUTC()-c.getTime())/1000),b=Math.floor(d/86400);if(isNaN(b)){return"Unknown time"}else{if(b<0){return"Just a moment ago"}else{if(d<60){return Math.ceil(d)+" seconds ago"}else{if(d<120){return"1 minute ago"}else{if(d<3600){return Math.floor(d/60)+" minutes ago"}else{if(d<7200){return"1 hour ago"}else{if(d<86400){return Math.floor(d/3600)+" hours ago"}else{if(b==1){return"Yesterday"}else{if(b<7){return b+" days ago"}else{if(b==7){return"1 week ago"}else{if(b<31){return Math.ceil(b/7)+" weeks ago"}else{if(b<350){var a=Math.floor(b/31);if(a==1){return"1 month ago"}else{return a+" months ago"}}else{if(b<700){return"1 year ago"}else{return Math.floor(b/365)+" years ago"}}}}}}}}}}}}}},clean:function(f){if(!f){return""}var b=f.substr(5,2);var e=f.substr(8,3);var d=f.substr(12,4);var a=f.substr(17,2);var g=f.substr(20,2);var c=f.substr(23,2);e=Time.getMonth(e);f=d+"-"+e+"-"+b+"T"+a+":"+g+":"+c+"Z";return Time.getRelative(f)}};Pager=Base.extend({constructor:function(c,a,d,b){this.page=c;this.numPages=a;this.objectName=d;this.pagesToShow=b},getElement:function(){if(!this.element||this.element.innerHTML==""){this.element=document.createElement("div");this.element.className="pager";var g=parseInt(this.page);var b=Math.ceil(parseFloat(this.numPages));var f=parseInt(this.pagesToShow);var e='<ul style="width:'+(Math.min(b,f)*45+80)+'px;" class="clearfix pagination">';var a,d;if(b<=f||g<=Math.ceil(f/2)){a=1;d=Math.min(b,f)}else{if(g>=b-Math.floor(f/2)){a=Math.max(b-f+1,g-Math.floor(f/2));d=b}else{a=Math.max(1,g-Math.floor(f/2));d=Math.min(g+Math.floor(f/2),b)}}if(g!=1){e+='<li class="prev_next"><a onclick="'+this.objectName+".clickPage("+(parseInt(g)-1)+');">prev</a></li>'}for(var c=a;c<=d;c++){if(c==g){e+='<li class="selected">'+c+"</li>"}else{e+='<li><a onclick="'+this.objectName+".clickPage("+c+');">'+c+"</a></li>"}}if(g!=b){e+='<li class="prev_next"><a onclick="'+this.objectName+".clickPage("+(parseInt(g)+1)+');">next</a></li>'}this.element.innerHTML=e+"</ul>"}return this.element}});Effects={changeOpacity:function(c,e,a,b){var d=Math.round(b/100);var f=0;if(!c.id){c.id=getUniqueId()}if(e>a){for(i=e;i>=a;i--){setTimeout("Effects.changeOpacityHelper("+i+",'"+c.id+"')",(f*d));f++}}else{if(e<a){for(i=e;i<=a;i++){setTimeout("Effects.changeOpacityHelper("+i+",'"+c.id+"')",(f*d));f++}}}},changeOpacityHelper:function(b,d){var c=document.getElementById(d);if(c){var a=c.style;a.opacity=(b/100);a.MozOpacity=(b/100);a.KhtmlOpacity=(b/100);a.filter="alpha(opacity="+b+")"}}};function disableSuggestions(a){disabledSuggestions=true;setTimeout(function(){disabledSuggestions=false},a)}function disableSubmitButton(a){disabledSubmitButton=true;setTimeout(function(){disabledSubmitButton=false},a)}function addOpenSearch(b){try{if(b=="splash"){b="web"}var a="http://www.heapr.com/plugins/"+b;if(Browser.isIE()){a+="-ie"}a+=".xml";window.external.AddSearchProvider(a)}catch(c){alert("Your browser does not currently support browser plugins. We're working on a version for you though!")}}function isArray(a){if(!a){return false}else{if(a.constructor.toString().indexOf("Array")==-1){return false}else{return true}}}function arrayToString(a){if(!isArray(a)){return a}else{var c="[";for(var b=0;b<a.length;b++){if(b!=0){c+=","}c+=arrayToString(a[b])}c+="]";return c}}function getKeywords(d){var d=unescape(d);d=d.replace(/["']/g," ");var b=[d];var c=d.split(" ");if(c.length>1){for(var a=0;a<c.length;a++){var e=c[a];if(e.length>1&&e.substr(e.length-1)!=")"&&e!="the"&&e!="is"){b.push(c[a])}}}return b}function boldKeywords(d,b){for(var e=0;e<b.length;e++){try{d=d.replace(new RegExp("(^|\\s|[<>!/@#-,.?])("+b[e]+")([<>!/@#-,.?]|\\s|$)","ig"),"$1<b>$2</b>$3")}catch(a){return d}}return d}function getKeyCode(a){if(a){return a.keyCode}else{if(window.event){return window.event.keyCode}}}function commaNumber(d){d+="";if(d.length>3){var c=d.length%3;var a=(c>0?(d.substring(0,c)):"");for(var b=0;b<Math.floor(d.length/3);b++){if((c==0)&&(b==0)){a+=d.substring(c+3*b,c+3*b+3)}else{a+=","+d.substring(c+3*b,c+3*b+3)}}return a}else{return d}}function isAlphaNumeric(a){if(a==8||a==32||(a>=46&&a<=90)||(a>=96&&a<=111)||(a>=186&&a<=222)){return true}else{return false}}var totalIds=0;function getUniqueId(){totalIds++;return totalIds}function getElementByClassName(e,f){var d=new RegExp("\\b"+f+"\\b");var c=e.getElementsByTagName("*");for(var b=0,a=c.length;b<a;b++){if(d.test(c[b].className)){return c[b]}}return null}function getChildIndex(b,c){for(var a=0;a<b.childNodes.length;a++){if(b.childNodes[a]==c){return a}}}function getElementTop(a){var b=a.offsetTop;while(a.offsetParent){if(a==document.getElementsByTagName("body")[0]){break}else{b=b+a.offsetParent.offsetTop;a=a.offsetParent}}return b}function getElementLeft(a){var b=a.offsetLeft;while(a.offsetParent){if(a==document.getElementsByTagName("body")[0]){break}else{b=b+a.offsetParent.offsetLeft;a=a.offsetParent}}return b}if(!Array.indexOf){Array.prototype.indexOf=function(b){for(var a=0;a<this.length;a++){if(this[a]==b){return a}}return -1}}if(!window.cbSplit){var cbSplit=function(j,f,e){if(Object.prototype.toString.call(f)!=="[object RegExp]"){return cbSplit._nativeSplit.call(j,f,e)}var c=[],a=0,d=(f.ignoreCase?"i":"")+(f.multiline?"m":"")+(f.sticky?"y":""),f=RegExp(f.source,d+"g"),b,g,h,k;j=j+"";if(!cbSplit._compliantExecNpcg){b=RegExp("^"+f.source+"$(?!\\s)",d)}if(e===undefined||+e<0){e=Infinity}else{e=Math.floor(+e);if(!e){return[]}}while(g=f.exec(j)){h=g.index+g[0].length;if(h>a){c.push(j.slice(a,g.index));if(!cbSplit._compliantExecNpcg&&g.length>1){g[0].replace(b,function(){for(var l=1;l<arguments.length-2;l++){if(arguments[l]===undefined){g[l]=undefined}}})}if(g.length>1&&g.index<j.length){Array.prototype.push.apply(c,g.slice(1))}k=g[0].length;a=h;if(c.length>=e){break}}if(f.lastIndex===g.index){f.lastIndex++}}if(a===j.length){if(!f.test("")||k){c.push("")}}else{c.push(j.slice(a))}return c.length>e?c.slice(0,e):c};cbSplit._compliantExecNpcg=/()??/.exec("")[1]===undefined;cbSplit._nativeSplit=String.prototype.split}String.prototype.split=function(b,a){return cbSplit(this,b,a)};function destroyElement(a){var b=document.getElementById("trashcan");if(!b){b=document.createElement("div");b.id="trashcan";document.body.appendChild(b)}b.appendChild(a);b.innerHTML=""}GlobalObject=Base.extend({constructor:function(classObject,className){this.classObject=classObject;GlobalObject.list.push(this);if(!this.classObject.className){this.classObject.className=className}if(!this.classObject.numCreated){this.classObject.numCreated=1}else{this.classObject.numCreated++}this.objectId=this.classObject.numCreated;eval(className+this.objectId+" = this;")},getClassName:function(){return this.classObject.className},getObjectName:function(){return this.classObject.className+this.objectId},destroy:function(){var objectName=this.getObjectName();for(prop in this){if(this.hasOwnProperty(prop)){delete this.prop}}eval("delete "+objectName)},isAlive:function(){return true}},{list:[]});Runnable=GlobalObject.extend({finishJob:function(){if(this.thread){this.thread.nextJob()}}});Loader=Runnable.extend({load:function(){}});Analytics=Loader.extend({constructor:function(){this.base(Analytics,"Analytics")},load:function(){if(!Analytics.hasRun){Analytics.hasRun=true;var b;var c=URL.getParameter("s");if(c==""||!c){b="?s=direct"}else{b="?s="+c}for(s in currentSettings){b+="&"+s+"="+currentSettings[s]}var a=document.getElementsByTagName("head")[0];Requester.requestFrame(staticHtmlUrl+"analytics"+b,a)}this.finishJob()},isAlive:function(){return !Analytics.hasRun}},{hasRun:false});TweetMeme=Loader.extend({constructor:function(){this.base(TweetMeme,"TweetMeme")},load:function(a){var b=document.getElementById(a);if(b){b.innerHTML="";Requester.requestFrame("http://api.tweetmeme.com/button.js?url=http%3A%2F%2Fwww.heapr.com%2F&style=normal&service=bit.ly",b,"tweetmeme_result")}this.finishJob()},isAlive:function(){if(!this.elementId){return true}return document.getElementById(this.elementId)!=null}});TwitterTrends=Loader.extend({constructor:function(){this.base(TwitterTrends,"TwitterTrends")},load:function(a){this.elementId=a;Requester.requestScript("http://search.twitter.com/trends.json?callback="+this.getObjectName()+".finishLoad")},finishLoad:function(f){var d=document.getElementById(this.elementId);if(d&&f&&f.trends){var c='<div class="twittertrends_result"><b>Trending:</b> ';for(var b=0;b<5;b++){var e=[escape(f.trends[b].name)];var a=0;while((a<2||e.length<3)&&e){if(a!=b){e.push(URL.urlify(escape(f.trends[a].name)))}a++}if(b!=0){c+="|"}c+='<a href="/#l=twitter&q='+arrayToString(e)+'">'+f.trends[b].name+"</a>"}d.innerHTML=c+"</div>"}this.finishJob()},isAlive:function(){if(!this.id){return true}return document.getElementById(this.id)!=null}});Didyoumean=Loader.extend({constructor:function(){this.base(Didyoumean,"Didyoumean");this.alive=true},load:function(e){this.jobs=[];for(var b=0;b<e.length;b++){var a=LayoutComponent.components[e[b]];if(a.getCurrentQuery()!=""){var g=a.getId();if(document.getElementById(g)){var d=new Object();d.id=g;d.query=a.getCurrentQuery();this.jobs.push(d)}}}if(!this.isAlive()){this.finishJob();return}var f=[];for(var b=0;b<this.jobs.length;b++){var c=this.jobs[b].query;if(f.indexOf(c)==-1){f.push(c);this.requestCorrection(c)}}},requestCorrection:function(a){if(a&&a!=""){Requester.requestScript("http://gdata.youtube.com/feeds/api/videos?v=2&alt=json-in-script&max-results=0&callback="+this.getObjectName()+".finishCorrection&q="+a)}else{this.finishCorrection(null)}},isAlive:function(){for(var a=0;a<this.jobs.length;a++){var b=document.getElementById(this.jobs[a].id);if(!b||b==null){this.jobs.splice(a,1);a--}}return this.jobs.length>0},finishCorrection:function(j){if(!this.isAlive()){this.finishJob();return}var m=null;if(j&&j.feed&&j.feed.link){for(var g=0;g<j.feed.link.length;g++){if(j.feed.link[g].rel=="http://schemas.google.com/g/2006#spellcorrection"){m=j.feed.link[g].title;break}}}if(!m||m==null||m==""){var a=j.feed.link[3].href;var d=a.search("&q=")+3;var h=a.search("&start-index=");var p=a.substr(d,h-d);for(var l=0;l<this.jobs.length;l++){if(unescape(this.jobs[l].query)==p){var f=this.jobs[l];this.jobs.splice(l,1);l--}}}else{var a=j.feed.link[4].href;var d=a.search("&q=")+3;var h=a.search("&start-index=");var p=a.substr(d,h-d);p=unescape(URL.unurlify(p));var o=m.split(" ");var q="";for(var l=0;l<o.length;l++){if(l!=0){q+=" "}if(p.search(o[l])==-1){q+="<b><i>"+o[l]+"</b></i>"}else{q+=o[l]}}for(var l=0;l<this.jobs.length;l++){if(unescape(this.jobs[l].query)==p){var f=this.jobs[l];this.jobs.splice(l,1);var e=document.getElementById(f.id);if(e&&e.displayer&&e.displayer.searcher){var n=document.createElement("div");n.className="didyoumean_result";n.innerHTML='<em>Did you mean: </em><a href="'+e.displayer.searcher.getCandidateUrl(escape(m))+'" id="'+escape(m)+'" onmouseover="this.href='+e.displayer.searcher.getObjectName()+".getCandidateUrl('"+escape(m)+"')\">"+q+"</a>";var b=e.childNodes[0];if(b){if(b.className.search("results_info")!=-1){e.insertBefore(n,e.childNodes[1])}else{e.insertBefore(n,b)}}}l--}}}if(!this.isAlive()){this.finishJob()}}});DelayedImagesLoader=Loader.extend({constructor:function(){this.base(DelayedImagesLoader,"DelayedImagesLoader")},addImage:function(a){if(!this.images){this.images=[]}this.images.push(a)},load:function(){if(this.images){while(this.images.length>0){var a=this.images.shift();if(a.el&&a.el.parentNode){a.el.innerHTML='<img src="'+a.src+'" />'}}}this.finishJob()}});SearchEngine=Runnable.extend({isAlive:function(a){if(a){return document.getElementById(a)!=null}else{return this.getElement()!=null}},search:function(a,c,b){},showLoading:function(){var a=this.getElement();if(a){a.innerHTML='<div class="loading_result">Loading...</div>'}},initializeSearch:function(a,c,b){if(!this.isAlive(a)){this.finishJob();return}this.startTime=(new Date).getTime();this.currentQuery=c;this.currentPage=b;this.setId(a)},initializeFinishSearch:function(){if(!this.isAlive()){this.finishJob();return}this.clear()},clear:function(){var a=this.getElement();if(a){a.innerHTML=""}},showResults:function(d,a,f,g){var e=this.getElement();if(e){try{if(this.currentQuery==""){e.appendChild(this.getNoQueryMessage())}else{this.currentKeywords=getKeywords(this.currentQuery);if(a==0){e.appendChild(this.getNoResultsMessage())}else{while(d.length>0){e.appendChild(this.getResult(d.shift()))}if(f&&f>1){var b=(new Pager(this.currentPage,f,this.getObjectName(),g)).getElement();e.appendChild(b)}}}}catch(c){e.appendChild(this.getErrorMessage())}}},setId:function(a){this.elementId=a},getElement:function(){return document.getElementById(this.elementId)},clickPage:function(b){var a=this.getElement();if(a&&a.displayer){window.scrollTo(0,0);this.clear();a.displayer.currentPage=b;HistoryManager.updateUrl();this.page(b)}},page:function(d){var b=this.getElement();if(b){this.showLoading();var c='.search("'+this.elementId+'","'+this.currentQuery+'","'+d+'")';var a=new Thread([new Job(this.getObjectName()+c,1)]);a.start()}},getErrorMessage:function(){var a=document.createElement("div");a.className="special_result";a.innerHTML="<p>An error was encountered. Try refreshing</p>";return a},getNoResultsMessage:function(c){var b=document.createElement("div");b.className="special_result";var a="<p>No "+this.classObject.className+" results.</p>";var d=Settings.get("lang");if(d!="all"&&d!="en"){a+="<p>You are currently restricting results to a specific language. Try setting the language to <b>All Languages</b> to get more results.</p>"}b.innerHTML=a;return b},getNoQueryMessage:function(){var a=document.createElement("div");a.className="special_result";a.innerHTML="<p>Please enter a query</p>";return a},getInfo:function(b,f,a){var g=document.createElement("div");g.className="results_info clearfix";var e=this.getClassName();if(e.search("Google")!=-1){e="Google"}var d='<p class="results_info_left"><b>'+e+'</b></p><p class="results_info_right">';if(this.currentQuery==""){d+="<p>"}else{if(a==0){d+="<p>"}else{var f=Math.min(f,a);var c=Math.max(0.05,(((new Date).getTime()-this.startTime)/1000).toFixed(2));d+="Results <b>"+b+"</b> - <b>"+f+"</b> of <b>"+commaNumber(a)+"</b> for <b>"+unescape(this.currentQuery)+"</b>. (<b>"+c+"</b> seconds)</b>"}}g.innerHTML=d+"</p>";return g}});GoogleSuggest=SearchEngine.extend({constructor:function(){this.base(GoogleSuggest,"GoogleSuggest")},search:function(a,d,c){this.initializeSearch(a,d,c);var f=Settings.get("lang");var e="http://google.com/complete/search?callback="+this.getObjectName()+".finishSearch";if(f!="all"){e+="&hl="+f}var b=currentAccount.currentLayout.getName().toLowerCase();if(b=="web"||b=="lite"||b=="splash"){e+="&client=serp&q="}else{if(b=="images"){e+="&client=img&ds=i&q="}else{if(b=="videos"){e+="&client=serp&ds=yt&q="}}}Requester.requestScript(e+d)},finishSearch:function(e){this.initializeFinishSearch();var c=this.getElement();if(c&&c.searcher&&!disabledSuggestions){c.searcher.currentSuggest=0;if(e[1].length>0){var b='<li style="display: none" id="'+c.searcher.textInput.value+'"></li>';c.style.width="auto";for(var a=0;a<e[1].length;a++){var d=e[1][a][0].replace(/<em>(.*)<\/em>/gi,"<b>$1</b>");var f=d.replace(/<b>|<\/b>/gi,"");b+='<li onmouseover="'+c.searcher.getObjectName()+'.highlightSuggest(this)" onclick="'+c.searcher.getObjectName()+'.clickSuggest(this)" id="'+f+'">'+d+"</li>"}c.innerHTML=b;if(c.offsetWidth<c.searcher.textInput.offsetWidth){c.style.width=c.searcher.textInput.offsetWidth+"px"}c.style.visibility="visible"}else{c.style.visibility="hidden"}}this.finishJob()}});YouTubeComments=SearchEngine.extend({constructor:function(){YouTubeComments.commentsWanted=8;this.base(YouTubeComments,"YouTubeComments")},search:function(a,d,c){this.initializeSearch(a,d,c);var b=document.getElementById(a);if(b){Requester.requestScript("http://gdata.youtube.com/feeds/api/videos/"+d+"/comments?v=2&alt=json-in-script&callback="+this.getObjectName()+".finishSearch&max-results="+YouTubeComments.commentsWanted+"&start-index="+((c-1)*YouTubeComments.commentsWanted+1))}},clickPage:function(a){this.page(a)},finishSearch:function(f){this.initializeFinishSearch();var c=document.getElementById(this.elementId);if(c&&f&&f.feed&&f.feed.entry){c.innerHTML="";var b=f.feed.openSearch$startIndex.$t;var e=b+YouTube.commentsWanted-1;var a=f.feed.openSearch$totalResults.$t;var d=Math.ceil(a/YouTube.resultsWanted);this.showResults(f.feed.entry,f.feed.entry.length,d,9);if(d>1){c.appendChild(this.getAllComments(this.currentQuery))}}this.finishJob()},getAllComments:function(b){var a=document.createElement("div");a.innerHTML='<a target="_blank" href="http://www.youtube.com/comment_servlet?all_comments&v='+b+'">View All Comments</a>';return a},getResult:function(c){var a=document.createElement("div");a.className="youtubecomment_result";var b="Unknown Author";if(c.author[0]&&c.author[0].name.$t){b=c.author[0].name.$t}var d="Unknown Time";if(c.published){d=Time.getRelative(c.published.$t.substr(0,19)+"Z")}a.innerHTML='<h1><a target="_blank" href="http://www.youtube.com/user/'+b+'">'+b+"</a> ("+d+")</h1><p>"+c.content.$t+"</p>";return a}});YouTube=SearchEngine.extend({constructor:function(){YouTube.resultsWanted=16;this.base(YouTube,"YouTube")},search:function(a,e,d,c,f){this.initializeSearch(a,e,d);if(this.currentQuery==""){this.finishSearch(null)}else{var b=e.search("http%3A//www.youtube.com/watch%3Fv%3D");if(b!=-1){e=e.substr(b+37,11)}var h="http://gdata.youtube.com/feeds/api/videos?v=2&alt=json-in-script&format=5&max-results="+YouTube.resultsWanted+"&start-index="+((d-1)*YouTube.resultsWanted+1)+"&callback="+this.getObjectName()+".finishSearch&q="+e;switch(c){case"0":h+="&orderby=published";break;case"1":h+="&orderby=viewCount";break;case"2":h+="&orderby=rating";break;default:var g=Settings.get("lang");if(g=="all"){g=null}else{if(g=="zh-CN"){g="zh-Hans"}else{if(g=="zh-TW"){g="zh-Hant"}}}if(g){h+="&orderby=relevance_lang_"+g}else{h+="&orderby=relevance"}}switch(f){case"0":h+="&time=today";break;case"1":h+="&time=this_week";break;case"2":h+="&time=this_month";break;default:h+="&time=all_time"}Requester.requestScript(h)}},finishSearch:function(d){this.initializeFinishSearch();var b=this.getElement();if(b){var e=[],g=0,c=0,j=0,f=0;if(d&&d.feed&&d.feed.entry&&d.feed.entry.length>0){e=d.feed.entry;var g=d.feed.openSearch$startIndex.$t;var c=g+YouTube.resultsWanted-1;var j=d.feed.openSearch$totalResults.$t;var f=Math.ceil(j/YouTube.resultsWanted)}b.appendChild(this.getInfo(g,c,j));var h=document.createElement("div");h.className="clearfix multi_menu_holder";b.appendChild(h);if(!this.currentSort){this.currentSort=3}var a=new Menu("Sort By",[0,1,2,3],["Newest","View Count","Rating","Relevance"],this.currentSort,this.getObjectName()+".clickSort");h.appendChild(a.getElement());if(!this.currentUploaded){this.currentUploaded=3}var a=new Menu("Uploaded",[0,1,2,3],["Today","This week","This month","Anytime"],this.currentUploaded,this.getObjectName()+".clickUploaded");h.appendChild(a.getElement());this.showResults(e,e.length,f,9)}this.finishJob()},clickSort:function(a){this.showLoading();this.currentSort=a;this.search(this.elementId,this.currentQuery,1,a)},clickUploaded:function(a){this.showLoading();this.currentUploaded=a;this.search(this.elementId,this.currentQuery,1,this.currentSort,a)},getResult:function(g){var h="";if(g.title){if(g.title.$t.length>120){h=g.title.$t.substr(0,120)+"..."}else{h=g.title.$t}}var c="",k="",a="",f=0,d="",m=g.media$group;if(m){if(m.yt$videoid){c=m.yt$videoid.$t}if(m.media$description){if(m.media$description.$t.length>200){k=g.media$group.media$description.$t.substr(0,200)+"..."}else{k=m.media$description.$t}}if(m.media$thumbnail){a=m.media$thumbnail[0].url}if(m.yt$duration){f=m.yt$duration.seconds}if(m.yt$uploaded){d=m.yt$uploaded.$t.substr(0,19)+"Z"}}var e=null;if(g.gd$rating){e=g.gd$rating.average}var l=0;if(g.yt$statistics){l=g.yt$statistics.viewCount}var j=0;if(g.gd$comments&&g.gd$comments.gd$feedLink){j=g.gd$comments.gd$feedLink.countHint}var b=new Video(this,boldKeywords(h,this.currentKeywords),boldKeywords(k,this.currentKeywords),"YouTube","http://www.youtube.com/watch?v="+c,a,e,Time.getRelative(d),l,f,"http://www.youtube.com/v/"+c+"&fs=1&hl=en&source=uds&autoplay=1",c,j);return b.getElement()}});Flickr=SearchEngine.extend({constructor:function(){this.base(Flickr,"Flickr")},search:function(a,c,b){this.initializeSearch(a,c,b);if(this.currentQuery==""){this.finishSearch(null)}else{var e="http://api.flickr.com/services/rest/?method=flickr.photos.search&content_type=7&privacy_filter=1&sort=relevance&format=json&media=photos&jsoncallback="+this.getObjectName()+".finishSearch&api_key=565b81c5df2cd78592c7e0b479c2af31&per_page=18&extras=url_o&text="+c+"&page="+b;var d=Settings.get("flickr_sort");switch(d){case"0":e+="&sort=date-taken-desc";break;case"1":e+="&sort=interestingness-desc";break;default:e+="&sort=relevance"}Requester.requestScript(e)}},finishSearch:function(d){this.initializeFinishSearch();var b=this.getElement();if(b){var j=0,f=0,e=[],k=0;if(d){var g=1+(d.photos.perpage)*(d.photos.page-1);var c=Math.min(d.photos.total,g+d.photos.perpage-1);if(d.photos&&d.photos.perpage>0&&d.photos.total>0){var e=[d.photos.photo];var k=d.photos.photo.length;var j=d.photos.total;var f=Math.floor(d.photos.total/d.photos.perpage)}}b.appendChild(this.getInfo(g,c,j));var h=document.createElement("div");h.className="clearfix multi_menu_holder";b.appendChild(h);var a=new Menu("Sort By",["0","1","2"],["Date Taken","Interestingness","Relevance"],Settings.get("flickr_sort")+"",this.getObjectName()+".clickSort");h.appendChild(a.getElement());this.elWidth=b.offsetWidth;this.showResults(e,k,f,5)}this.finishJob()},clickSort:function(a){this.showLoading();Settings.set("flickr_sort",a,-1);this.search(this.elementId,this.currentQuery,1)},getResult:function(a){var g=document.createElement("div");var d="<table><tr>";var j=Math.floor(this.elWidth/135);for(var b=0;b<a.length;b++){var n=a[b];if(b%j==0){if(b!=0){d+="</tr>"}d+="<tr>"}var f="http://farm"+n.farm+".static.flickr.com/"+n.server+"/"+n.id+"_"+n.secret+"_t.jpg";if(!n.url_o){n.url_o="http://farm"+n.farm+".static.flickr.com/"+n.server+"/"+n.id+"_"+n.secret+"_b.jpg"}var m=staticHtmlUrl+"imageview?t="+f+"&s=http://www.flickr.com/photos/"+n.owner+"/"+n.id+"&i="+n.url_o;var l=null,e=null;if(n.width_o&&n.height_o){var k=Number(n.width_o),c=Number(n.height_o);if(k>c){l=100;e=100*(c/k)}else{e=100;l=100*(k/c)}}d+='<td class="flickr_result">';d+='<a href="'+m+'"><img src="'+f+'" /></a></td>'}d+="</tr></table>";g.innerHTML=d;return g}});WolframAlpha=SearchEngine.extend({constructor:function(){this.base(WolframAlpha,"WolframAlpha")},search:function(a,d,c){this.initializeSearch(a,d,c);this.clear();var b=this.getElement();if(b){if(this.currentQuery!=""){clearTimeout(this.finishTimeout);this.finishTimeout=setTimeout(function(e){return function(){var f=e.getElement();if(f){if(!e.frame){e.frame=document.createElement("iframe");e.frame.frameBorder="0";e.frame.className="wolfram_result"}e.frame.src=staticHtmlUrl+"wolfram?"+e.currentQuery;f.appendChild(e.frame)}}}(this),400)}else{b.appendChild(this.getNoQueryMessage())}}this.finishJob()}});Wikipedia=SearchEngine.extend({constructor:function(){this.base(Wikipedia,"Wikipedia")},search:function(a,c,b){this.initializeSearch(a,c,b);if(this.currentQuery==""){this.finishSearch(null)}else{if(Settings.get("lang")=="all"){lang="en"}else{lang=Settings.get("lang").substr(0,2)}Requester.requestScript("http://"+lang+".wikipedia.org/w/api.php?format=json&action=query&list=search&srlimit=5&srwhat=text&callback="+this.getObjectName()+".finishSearch&srsearch="+c)}},finishSearch:function(b){this.initializeFinishSearch();if(b&&b.query){var a=b.query.search;if(Settings.get("lang")=="all"){this.currentLanguage="en"}else{this.currentLanguage=Settings.get("lang").substr(0,2)}}else{var a=[]}this.showResults(a,a.length);this.finishJob()},getResult:function(b){var a=document.createElement("div");a.className="wikipedia_result";a.innerHTML='<a href="http://'+this.currentLanguage+".wikipedia.org/wiki/"+b.title+'">'+boldKeywords(b.title,this.currentKeywords)+'</a><br /><div class="wikipedia_snippet">'+boldKeywords(b.snippet,this.currentKeywords)+"</div>";return a}});Twitter=SearchEngine.extend({constructor:function(){this.base(Twitter,"Twitter");this.max_id=0},clickPage:function(a){this.page(a)},run:function(d,c,g,b,f){var d=this.cleanQuery(d);var a;if(c.length>10){a="http://search.twitter.com/search.json?callback="+this.getObjectName()+"."+g+"&"+c.substr(1)}else{a="http://search.twitter.com/search.json?rpp="+b+"&callback="+this.getObjectName()+"."+g+"&since_id="+this.max_id;if(Settings.get("lang")=="all"){a+="&q="+d}else{var e=Settings.get("lang").substr(0,2);a+="&lang="+e+"&q="+d}}Requester.requestScript(a)},search:function(a,c,b){this.initializeSearch(a,c,b);if(this.currentQuery==""){this.finishSearch(null)}else{this.run(this.currentQuery,b,"finishSearch",5)}},finishSearch:function(f){this.initializeFinishSearch();var e=this.getElement();if(e){this.elWidth=e.offsetWidth;var d=null,a=0;if(f&&f.results){d=f.results;a=f.results.length;this.max_id=f.max_id}this.showResults(d,a);if(f&&(f.next_page||f.previous_page)){var b=document.createElement("div");b.className="twitter_pager";var c="";if(f.previous_page){c+='<input type="submit" value="Prev Page" onclick="'+this.getObjectName()+".clickPage('"+f.previous_page+"')\" />"}if(f.next_page){c+='<input type="submit" value="Next Page" onclick="'+this.getObjectName()+".clickPage('"+f.next_page+"')\" />"}b.innerHTML=c;e.appendChild(b)}this.realtimeInterval=setInterval(this.getObjectName()+".more()",5000)}this.finishJob()},destroy:function(){clearInterval(this.realtimeInterval);this.base()},more:function(){var a=this.getElement();if(this.currentQuery!=""&&a&&this.currentPage==1){this.run(this.currentQuery,1,"finishMore",1,this.max_id)}else{clearInterval(this.realtimeInterval)}},finishMore:function(f){if(f){var e=this.getElement();if(e){this.elWidth=e.offsetWidth;var d=null,b=0;if(f&&f.results){d=f.results;b=f.results.length}this.max_id=f.max_id;if(d&&d.length){for(var c=d.length-1;c>=0;c--){var a=this.getResult(d[c]);Effects.changeOpacity(a,0,100,2000);e.insertBefore(a,e.childNodes[0])}}}}else{clearInterval(this.realtimeInterval)}},getResult:function(c){var a=document.createElement("div");a.className="twitter_result clearfix";var b='<div class="twitter_thumb"><div class="twitter_image_wrapper"><a href="http://twitter.com/'+c.from_user+'"><img src='+c.profile_image_url+' /></a></div></div><div class="twitter_description" style="width:'+(this.elWidth-100)+'px"><a href="http://twitter.com/'+c.from_user+'"><u>'+c.from_user+"</u></a>: "+boldKeywords(this.cleanContent(c.text),this.currentKeywords)+"<p><span>"+Time.clean(c.created_at)+' - <a href="http://twitter.com/?status=@'+c.from_user+"%20&in_reply_to_status_id="+c.id+"&in_reply_to="+c.from_user+'">Reply</a> - <a href="http://twitter.com/'+c.from_user+"/statuses/"+c.id+'">View Tweet</a></span></p></div>';a.innerHTML=b;return a},cleanContent:function(a){return a.replace(/(\s|^)([#@])([\w]+)|(http:\/\/\S+[^,.])/g,'$1<a href="redirect" id="$2$3$4" onmouseover="'+this.getObjectName()+'.cleanUrl(this, this.id)">$2$3$4</a>')},cleanUrl:function(b,a){a=a.replace(/<b>|<\/b>/gi,"");if(a.substr(0,5)=="http:"){b.href=a}else{if(a.charAt(0)=="@"){b.href="http://twitter.com/"+a.substr(1)}else{if(a.charAt(0)=="#"){var c=this.getElement();if(c&&c.displayer&&c.displayer.searcher){b.href=c.displayer.searcher.getCandidateUrl(escape(a))}}}}},cleanQuery:function(b){var b=unescape(b);b=b.replace(/[']/g,'"');var a=b.split('"').length-1;if(a%2==1){b+='"'}return escape(b)}});Google=SearchEngine.extend({constructor:function(e,d,b,a,c){this.base(e,d);this.engine=c;e.googleLimit=b;e.resultsWanted=a;this.finishedPage=1;this.finishedQuery=null},search:function(a,c,b){this.initializeSearch(a,c,b);this.resultsGotten=0;this.results=[];this.startTime=(new Date).getTime();if(c==""){this.finishSearch()}else{if(this.finishedQuery==c){this.finishedPage=this.currentPage;this.requestPage()}else{var d;if(this.currentPage!=this.finishedPage){this.finishedPage=this.currentPage;d=this.getObjectName()+".requestPage"}else{if(this.classObject.googleLimit<this.classObject.resultsWanted){this.resultsGotten+=this.classObject.googleLimit;d=this.getObjectName()+".requestMore"}else{d=this.getObjectName()+".finishSearch"}}this.run(this.currentQuery,0,d)}}},requestPage:function(a){var c;this.resultsGotten+=this.classObject.googleLimit;if(this.resultsGotten<this.classObject.resultsWanted){c=this.getObjectName()+".requestMore"}else{c=this.getObjectName()+".finishSearch"}var b=(this.currentPage-1)*this.classObject.resultsWanted;this.run(this.currentQuery,b,c)},requestMore:function(c){var b=c.responseData.results;var d=c.responseData.cursor;while(b.length>0){this.results.push(b.shift())}var a=((this.finishedPage-1)*this.classObject.resultsWanted)/this.classObject.googleLimit+(this.resultsGotten/this.classObject.googleLimit)-1;if(d&&d.pages&&a+1<d.pages.length){this.resultsGotten+=this.classObject.googleLimit;var f;if(this.resultsGotten<this.classObject.resultsWanted){f=this.getObjectName()+".requestMore"}else{f=this.getObjectName()+".finishSearch"}var e=(a+1)*this.classObject.googleLimit;this.run(this.currentQuery,e,f)}else{this.finishSearch()}},run:function(b,f,e){if(!this.isAlive()){this.finishJob();return}var c="http://ajax.googleapis.com/ajax/services/search/"+this.engine+"?v=1.0&lstkp=0&rsz=large&callback="+e+"&q="+b;if(this.queryAddition){c+=" "+this.queryAddition}if(Settings.get("lang")!="all"){c+="&lr=lang_"+Settings.get("lang")}if(f){c+="&start="+f}if(this.engine=="images"){var a=Settings.get("images_safesearch");switch(a){case"0":c+="&safe=off";break;case"2":c+="&safe=active";break}var d=Settings.get("images_size");switch(d){case"1":c+="&imgsz=icon";break;case"2":c+="&imgsz=imgsz=small%7Cmedium%7Clarge%7Cxlarge";break;case"3":c+="&imgsz=xxlarge";break;case"4":c+="&imgsz=huge";break}}Requester.requestScript(c)},finishSearch:function(d){this.initializeFinishSearch();if(d){var e=d.responseData.results;var n=d.responseData.cursor;while(e.length>0){this.results.push(e.shift())}}this.finishedQuery=this.currentQuery;var b=this.getElement();if(b){var h=1+this.classObject.resultsWanted*(this.finishedPage-1);var c=h+this.results.length-1;var l,g;if(n&&n.pages){l=n.estimatedResultCount;g=n.pages.length/(this.classObject.resultsWanted/this.classObject.googleLimit)}else{l=0;g=0}b.appendChild(this.getInfo(h,c,l));if(this.engine=="web"){var f=MathParser.getMathResult(this.finishedQuery);if(f!=null){b.appendChild(f)}}var k=this.results.length;if(this.engine=="images"){var j=document.createElement("div");j.className="clearfix multi_menu_holder";b.appendChild(j);var m=new Menu("SafeSearch",["0","1","2"],["Off","Moderate","Strict"],Settings.get("images_safesearch")+"",this.getObjectName()+".clickSafeSearch");j.appendChild(m.getElement());var a=new Menu("Size",["0","1","2","3","4"],["Any size","Small","Medium","Large","Extra large"],Settings.get("images_size")+"",this.getObjectName()+".clickImageSize");j.appendChild(a.getElement());this.elWidth=b.offsetWidth;this.showResults([this.results],k,g,9)}else{this.showResults(this.results,k,g,9)}}this.finishJob()},getNoResultsMessage:function(c){var b=document.createElement("div");b.className="special_result";var a="<p>No results containing all your search terms were found.</p>";var d=Settings.get("lang");if(d!="all"&&d!="en"){a+="<p>You are currently restricting results to a specific language. Try setting the language to <b>All Languages</b> to get more results.</p>"}a+='<p>Your search - <b>"'+unescape(this.finishedQuery)+'"</b> - did not match results.</p><p>Suggestions:</p><ul><li>Make sure all words are spelled correctly.</li><li>Try different keywords.</li><li>Try more general keywords.</li><li>Try fewer keywords.</li></ul>';b.innerHTML=a;return b}});GoogleWeb=Google.extend({constructor:function(){this.base(GoogleWeb,"GoogleWeb",8,8,"web")},getResult:function(e){var l=document.createElement("div");l.className="web_result";var j="<h3><a href="+e.unescapedUrl+">"+e.title+"</a></h3>";var g="<div>"+e.content+"</div><cite>"+GoogleWeb.cleanCite(e.unescapedUrl,this.currentKeywords)+"</cite>";if(e.cacheUrl){g+=" - <span><a href="+e.cacheUrl+">Cached</a></span>"}if(e.unescapedUrl.search("http://www.youtube.com/watch")!=-1){var a=e.unescapedUrl.substr(31);var k=document.createElement("table");var f=document.createElement("tr");k.appendChild(f);var b=document.createElement("td");b.colSpan="2";b.innerHTML=j;f.appendChild(b);var d=document.createElement("tr");k.appendChild(d);var c=document.createElement("td");d.appendChild(c);var h=document.createElement("td");d.appendChild(h);h.innerHTML=g+' - <input type="button" value="Download" onclick="'+this.getObjectName()+'.getDownload(this);" />';if(a&&a.length==11){this.id=a;c.innerHTML='<div class="web_result_youtube"><a href="'+e.unescapedUrl+'"><img src="http://i3.ytimg.com/vi/'+a+'/default.jpg" /></a></div>'}l.innerHTML="<table>"+k.innerHTML+"</table>"}else{l.innerHTML=j+g}return l},getDownload:function(a){if(this.id&&this.id!=""){Requester.requestVideoDownload(a,this.id,this)}}},{cleanCite:function(g,d){var b=g.search("://");if(b!=-1){g=g.substr(b+3)}if(g.length>80){var h=g.substr(0,g.indexOf("/"));var f=g.substr(g.lastIndexOf("/"));if(f.length>50){f=f.substr(0,50)+"..."}return h+"/..."+f}var e;for(var j=0;j<d.length;j++){try{e=new RegExp(d[j],"i");g=g.replace(e,"<b>$&</b>")}catch(a){return g}}return g}});GoogleImages=Google.extend({constructor:function(){this.base(GoogleImages,"GoogleImages",8,16,"images")},getResult:function(e){var b=document.createElement("div");html="<table><tr>";var f=Math.floor(this.elWidth/170);for(var d=0;d<e.length;d++){var a=e[d];if(d%f==0){if(d!=0){html+="</tr>"}html+="<tr>"}var c=staticHtmlUrl+"imageview?w="+a.width+"&h="+a.height+"&t="+escape(a.tbUrl)+"&s="+escape(a.originalContextUrl)+"&i="+escape(a.url);html+='<td class="image_result"><div onmouseover="this.className = \'image_wrapper hovered\'" onmouseout="this.className = \'image_wrapper\'" class="image_wrapper" style="width:'+(parseInt(a.tbWidth)+8)+"px;height: "+(parseInt(a.tbHeight)+8)+'px"><a href="'+c+'"><img src="'+a.tbUrl+'" /></a></div><div>'+a.content+"</div><span>"+a.width+" x "+a.height+"</span><div><cite>"+a.visibleUrl+"</cite></div></td>"}html+="</tr></table>";b.innerHTML=html;return b},clickSafeSearch:function(a){this.showLoading();if(a<0||a>2){a=1}Settings.set("images_safesearch",a);this.search(this.elementId,this.currentQuery,1)},clickImageSize:function(a){this.showLoading();if(a<0||a>4){a=0}Settings.set("images_size",a,-1);this.search(this.elementId,this.currentQuery,1)}});GoogleVideos=Google.extend({constructor:function(d,c,b,a){if(!d){this.base(GoogleImages,"GoogleImages",8,16,"video")}else{this.base(d,c,b,a,"video")}},search:function(a,d,c,b){if(!b){this.base(a,d,c)}else{this.base(a,d+" site:"+b,c)}},getResult:function(c){var d="";if(c.url){var a=c.url.search("www.youtube.com/watch");if(a!=-1){d=c.url.substr(a+28,11)}}var b=new Video(this,boldKeywords(c.title,this.currentKeywords),boldKeywords(c.content,this.currentKeywords),c.videoType,c.url,c.tbUrl,c.rating,Time.clean(c.published),c.viewCount,c.duration,Video.cleanEmbed(c.playUrl,c.url),d,null,null);return b.getElement()}});Hulu=GoogleVideos.extend({constructor:function(){this.base(Hulu,"Hulu",8,16)},search:function(a,c,b){this.base(a,c,b,"hulu.com")}});Vimeo=GoogleVideos.extend({constructor:function(){this.base(Vimeo,"Vimeo",8,16)},search:function(a,c,b){this.base(a,c,b,"vimeo.com")}});Video=GlobalObject.extend({constructor:function(o,k,m,b,c,a,h,j,n,g,f,d,l){this.base(Video,"Video");this.numComments=l;this.searchEngine=o;if(!this.searchEngine.videoGroup){this.searchEngine.videoGroup=[]}this.searchEngine.videoGroup.push(this);this.id=d;this.embedSrc=f;var e=document.createElement("div");e.className="video_wrapper";e.innerHTML=this.getHTML(k,m,b,c,a,h,j,n,g,f,d);this.element=e.childNodes[0]},isAlive:function(){return this.element.parentNode!=null},getElement:function(){return this.element},getHTML:function(l,m,b,c,a,h,k,n,g,f,d){var j=this.getObjectName();var e='<div class="video_result"><div class="video_summary clearfix"><div class="video_thumb"><a onclick="'+j+'.click()"><img src='+a+' /></a></div><div class="video_description"><h1><a onclick="'+j+'.click()">'+l+"</a></h1><p>"+m+"</p><ul><li>"+Video.cleanRating(h)+"</li><li>"+k+"</li>";if(d&&d!=""){e+='<li><input type="button" value="Download" onclick="'+j+'.getDownload(this);" /></li>'}if(n){e+="<li>"+commaNumber(n)+" views</li>"}e+="<li>"+Video.cleanDuration(g)+'</li><li><a target="_blank" href='+c+">"+Video.cleanSiteName(b,c)+' Link</a></li></ul></div></div><div class="video_body"></div></div>';return e},getDownload:function(a){if(this.id&&this.id!=""){Requester.requestVideoDownload(a,this.id,this)}},getComments:function(){if(!this.comments_holder||!this.comments_holder.parentNode){this.comments_holder=document.createElement("div");this.comments_holder.id=getUniqueId()}this.comments.appendChild(this.comments_holder);var a=new YouTubeComments();a.search(this.comments_holder.id,this.id,1)},getHideComments:function(){var a=document.createElement("input");a.object=this;a.type="submit";a.value="Hide Comments ("+commaNumber(this.numComments)+" total)";a.className="video_comments_input";a.onclick=function(b){var c=this.object;c.comments.innerHTML="";c.comments.appendChild(c.getShowComments());c.comments.appendChild(c.getCloseVideo())};return a},getShowComments:function(){var a=document.createElement("input");a.object=this;a.type="submit";a.value="Show Comments ("+commaNumber(this.numComments)+" total)";a.className="video_comments_input";a.onclick=function(b){var c=this.object;c.comments.innerHTML="";c.comments.appendChild(c.getHideComments());c.comments.appendChild(c.getCloseVideo());c.getComments()};return a},getCloseVideo:function(){var a=document.createElement("input");a.type="submit";a.object=this;a.value="Close Video";a.className="video_comments_input";a.onclick=function(b){this.object.close()};return a},click:function(){if(this.element.className=="video_result opened"){this.close()}else{if(this.searchEngine&&this.searchEngine.videoGroup){for(var a=0;a<this.searchEngine.videoGroup.length;a++){this.searchEngine.videoGroup[a].close()}}this.open()}},open:function(){var a=getElementByClassName(this.element,"video_body");this.element.className="video_result opened";if(a){a.innerHTML='<embed style="z-index: 0" src="'+this.embedSrc+'" type="application/x-shockwave-flash" allowfullscreen="true" wmode="opaque" allowscriptaccess="always" width=640 height=385>';if(this.numComments>0&&this.id.length==11){this.comments=document.createElement("div");this.comments.appendChild(this.getShowComments());this.comments.appendChild(this.getCloseVideo());a.appendChild(this.comments)}}window.scrollTo(0,getElementTop(this.element)-40)},close:function(){var a=getElementByClassName(this.element,"video_body");this.element.className="video_result";if(a){a.innerHTML=""}}},{cleanEmbed:function(a,b){var d=a;if(b&&a.search("vimeo.com&")!=-1){if(a.search("clip_id=&amp")!=-1){var c=b.search("http://vimeo.com")+17;var f=b.search("&source");var g=b.substr(c,f-c);d=a.substr(0,a.search("clip_id")+8)+g+a.substr(a.search("clip_id")+8)}else{if(a.search("clip_id=http://")!=-1){var c=b.search("http://vimeo.com")+17;var f=b.search("&source");var g=b.substr(c,f-c);d=a.substr(0,a.search("clip_id")+8)+g+a.substr(a.search("&server"))}}if(a.charAt(0)=="/"){d="http://vimeo.com"+d}var e=d.search("&autoPlay=true");if(e!=-1){d=d.substr(0,e)}d+="&autoplay=1"}return d},cleanRating:function(c){if(c&&c>=0){var e=Math.floor(c/0.5);var d="";for(var b=0;b<10;b++){if(b%2==0){side="left"}else{side="right"}var a;if(e>0){a="red";e--}else{a="gray"}d+='<div class="star sprite i-'+side+"_"+a+'"></div>'}return d}else{return"No Rating"}},cleanDuration:function(d){var c="";var a=Math.floor(d/3600);if(a>0){d=d-a*3600;c+=a+":"}var b=Math.floor(d/60);d=d-b*60;if(a>0&&b<10){c+="0"+b+":"}else{c+=b+":"}var e=d;if(e<10){c+="0"+e}else{c+=e}return c},cleanSiteName:function(b,a){if(b=="YouTube"){return"YouTube"}else{if(!a){return""}var c=a.substr(35);c=c.substr(c,c.search(".com"));if(c.substr(0,4)=="www."){c=c.substr(4)}else{c=c}if(c){return c.charAt(0).toUpperCase()+c.substr(1)}else{return b}}}});Account=Base.extend({constructor:function(a){this.layouts=a},start:function(){var c=URL.getParameter("l").toLowerCase();var b=URL.getParameter("q");var a=URL.getParameter("p");this.layout(c,b,a)},layout:function(b,h,g){var c=false,d;if(!this.currentLayout){c=true}else{d=this.currentLayout.getName().toLowerCase();if(d!=b.toLowerCase()){c=true}}if(c){Browser.stop();var f=null;var b=b.toLowerCase();for(var e=0;e<this.layouts.length;e++){if(b==this.layouts[e].getName().toLowerCase()){f=this.layouts[e];break}}if(!f){if(!this.splashLayout){this.splashLayout=new SplashLayout()}f=this.splashLayout}this.currentLayout=f;document.body.innerHTML="";var a=this.getElement();document.body.appendChild(a);if(d=="splash"){var j=a.getElementsByTagName("input")[0];if(j){setTimeout(function(){j.focus()},0)}}}this.currentLayout.search(h,g);if(c){if(d!="splash"){var j=a.getElementsByTagName("input")[0];if(j){j.focus()}}this.currentLayout.start()}},mouseoverLayout:function(a){a.href="/#l="+a.id.toLowerCase()+"&q="+lastQuery},getCurrentLayout:function(){return this.currentLayout},getElement:function(){var a=document.createElement("div");a.appendChild(this.getHeader());a.appendChild(this.currentLayout.getElement());a.appendChild(this.getFooter());this.element=a;return this.element},getHeader:function(){var e=document.createElement("div");e.id="header";var c='<div id="header_tabs" class="clearfix"><ul id="header_tabs_left">';for(var a=0;a<this.layouts.length;a++){var d=this.layouts[a];var b=d.getName();if(d==this.currentLayout){c+='<li class="header_tabs_tab"><b>'+b+"</b></li>"}else{c+='<li class="header_tabs_tab"><a href="/#l='+b.toLowerCase()+'" onmouseover="currentAccount.mouseoverLayout(this)" id="'+b+'">'+b+"</a></li>"}}c+='</ul><ul id="header_tabs_right"><li id="googlesuggest_menu" class="header_tabs_tab"></li><li id="fastsearch_menu" class="header_tabs_tab"></li><li id="language_menu" class="header_tabs_tab"></li><li class="header_tabs_tab"><div onclick="addOpenSearch(\''+currentAccount.currentLayout.getName().toLowerCase()+'\')" class="sprite i-add"></div></li></ul></div>';e.innerHTML=c;document.body.appendChild(e);this.createLanguageMenu();this.createSuggestMenu();this.createFastSearchMenu();return e},getFooter:function(){var a=document.createElement("div");a.id="footer";a.innerHTML='<a href="/plugins/"><b>Browser Plugin</b></a> - <a href="/about/">About</a> - <a href="http://blog.heapr.com/">Blog</a> - <a href="http://twitter.com/rharjanto/">Twitter</a> - <a href="/feedback/">Feedback</a> - <a target="_blank" href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=rharjanto&url=http%3A//www.heapr.com">Tell Friends</a> - &copy; 2009 - Heapr (v'+version/100+")";return a},clickLanguage:function(a){Browser.stop();Settings.set("lang",a);currentAccount.start();this.createLanguageMenu()},createLanguageMenu:function(){var a=document.getElementById("language_menu");if(a){a.innerHTML="";var b=new Menu("Language",languageCodes,languageNames,languageCodes.indexOf(Settings.get("lang")),"currentAccount.clickLanguage");a.appendChild(b.getElement())}},clickSuggest:function(a){Settings.set("googlesuggest",a);this.createSuggestMenu()},createSuggestMenu:function(){var c=document.getElementById("googlesuggest_menu");if(c){c.innerHTML="";var b=["0","1"];var a=new Menu("GoogleSuggest",b,["Off","On"],b.indexOf(Settings.get("googlesuggest")+""),"currentAccount.clickSuggest");c.appendChild(a.getElement())}},clickFastSearch:function(a){Settings.set("fastsearch",a);this.createFastSearchMenu()},createFastSearchMenu:function(){var c=document.getElementById("fastsearch_menu");if(c){c.innerHTML="";var a=["0","1"];var b=new Menu("FastSearch",a,["Off","On"],a.indexOf(Settings.get("fastsearch")+""),"currentAccount.clickFastSearch");c.appendChild(b.getElement())}}});Layout=Base.extend({constructor:function(b,a,d,e){this.name=b;this.searchers=a;for(var c=0;c<this.searchers.length;c++){this.searchers[c].layout=this}this.template=d;if(e){this.startJobs=e}else{this.startJobs=[]}},start:function(){var a=[];for(var b=0;b<this.startJobs.length;b++){var c=this.startJobs[b];a.push(new Job(c[0],c[1]))}(new Thread(a)).start()},search:function(g,f,d){var b=null;if(!isArray(g)){b=g}else{if(g.length<this.searchers.length){b=""}}var a=null;if(!isArray(f)){a=f}else{if(f.length<this.searchers.length){a=1}}for(var c=0;c<this.searchers.length;c++){var e;if(b||b==""){e=b}else{e=g[c]}var h;if(a){h=a}else{h=f[c]}this.searchers[c].search(e,h,false,false,d)}},getElement:function(){if(!this.element||this.element.innerHTML==""){this.element=Parser.parseLayoutTemplate(this.template)}return this.element},getName:function(){return this.name}});StandardLayout=Layout.extend({getHeaderHTML:function(a,d,b){var c='<div class="standard_layout_header clearfix"><div class="standard_layout_header_logo"><a href="/"><div class="sprite i-logo';if(!b){c+="_b"}c+='" ';if(!b){c+="onmouseover=\"this.className = 'sprite i-logo_g'\" onmouseout=\"this.className = 'sprite i-logo_b'\""}c+="></div></a></div>{"+a+"}";if(!d){c+="<div><div class='sprite i-google standard_layout_header_google'></div></div>"}c+="</div>";return c},getMarginedHeaderHTML:function(a){return'<div style="margin: 30px 10px">'+this.getHeaderHTML(a)+"</div>"},getCenteredHeaderHTML:function(a,c,b){return'<div><div style="margin:auto; width:640px;">'+this.getHeaderHTML(a,c,b)+"</div></div>"}});WebLayout=StandardLayout.extend({constructor:function(){var f=new SingleDisplayer("GoogleWeb",1);var g=["Twitter","WolframAlpha","Wikipedia"];var e=g.indexOf(Settings.get("web_tab"));var a=new TabbedDisplayer(g,2,e);var h="Didyoumean.load(["+f.getComponentId()+","+a.getComponentId()+"])";var c=new Searcher([f,a],[[h,3]]);var d=this.getMarginedHeaderHTML(c.getComponentId());var b=0;var k=Browser.getWidth();if(k>1300){b=50}else{if(k>1100){b=20}}d+='<div class="results_body clearfix"><div style="width:580px; padding-right:'+b+'px" class="results_left">{'+f.getComponentId()+'}</div><div style="width:360px" class="results_right">{'+a.getComponentId()+"}</div></div>";var j=[["Analytics.load()",1]];this.base("Web",[c],d,j)}});ImagesLayout=StandardLayout.extend({constructor:function(){var b=new SingleDisplayer("GoogleImages",1);var d=new SingleDisplayer("Flickr",2);var f="Didyoumean.load(["+b.getComponentId()+","+d.getComponentId()+"])";var e=new Searcher([b,d],[[f,3]]);var c=this.getMarginedHeaderHTML(e.getComponentId());c+='<div class="results_body clearfix"><div style="width:60%" class="results_left">{'+b.getComponentId()+'}</div><div style="width:35%" class="results_right">{'+d.getComponentId()+"}</div></div>";var a=[["Analytics.load()",1]];this.base("Images",[e],c,a)}});TwitterLayout=StandardLayout.extend({constructor:function(){var c=new SingleDisplayer("Twitter",1);var a="Didyoumean.load(["+c.getComponentId()+"])";var e=new Searcher([c],[[a,2]],23);var l=new SingleDisplayer("Twitter",1);var h="Didyoumean.load(["+l.getComponentId()+"])";var f=new Searcher([l],[[h,2]],23);var j=new SingleDisplayer("Twitter",1);var g="Didyoumean.load(["+j.getComponentId()+"])";var b=new Searcher([j],[[g,2]],23);var d='<div class="clearfix"><div style="width:100%" id="twitter_trends"></div><div style="margin:auto;width:600px;padding:10px;">Below is just a proof of concept... 1 tweet every 5 seconds... customizable settings are coming soon</div><div style="float:left; width:32%;"><div>{'+e.getComponentId()+"}</div><div>{"+c.getComponentId()+'}</div></div><div style="float:left; width:32%;"><div>{'+f.getComponentId()+"}</div><div>{"+l.getComponentId()+'}</div></div><div style="float:left; width:32%;"><div>{'+b.getComponentId()+"}</div><div>{"+j.getComponentId()+"}</div></div>";var k=[["Analytics.load()",1],["TwitterTrends.load('twitter_trends')",2]];this.base("Twitter",[e,f,b],d,k)}});LiteLayout=StandardLayout.extend({constructor:function(){var b=new SingleDisplayer("GoogleWeb",1);var e="Didyoumean.load(["+b.getComponentId()+"])";var d=new Searcher([b],[[e,2]]);var c=this.getMarginedHeaderHTML(d.getComponentId());c+='<div class="results_body clearfix"><div style="width:600px" class="results_left">{'+b.getComponentId()+"}</div></div>";var a=[["Analytics.load()",1]];this.base("Lite",[d],c,a)}});VideosLayout=StandardLayout.extend({constructor:function(){var b=new TabbedDisplayer(["YouTube","Hulu","Vimeo"],1);var e="Didyoumean.load(["+b.getComponentId()+"])";var d=new Searcher([b],[[e,2]]);window.onscroll=function(){var h=document.getElementById("videos_searcher");if(h){var g=document.getElementById("videos_relativeposition");var f=document.getElementById("videos_fixedposition");if(Browser.getTop()>150){disabledFastSearch=true;f.style.display="inline";f.appendChild(h)}else{disabledFastSearch=false;f.style.display="none";g.appendChild(h)}}};var c='<div id="videos_relativeposition"><div id="videos_searcher">'+this.getCenteredHeaderHTML(d.getComponentId())+'</div></div><div id="videos_fixedposition"></div>';c+='<div class="clearfix"><div style="background-color:white; margin:auto; width:750px;">';c+="{"+b.getComponentId()+"}</div></div>";var a=[["Analytics.load()",1]];this.base("Videos",[d],c,a)}});SplashLayout=StandardLayout.extend({constructor:function(){var b='<div id="splash"><div id="splash_header_wrapper"><div id="splash_header" class="clearfix"><div id="splash_header_search">';var c=currentAccount.layouts[0];b+=this.getCenteredHeaderHTML(c.searchers[0].getComponentId(),true,true);b+='</div><div id="splash_header_tweet"></div></div></div><div id="splash_info_wrapper"></div></div>';var a=[["Analytics.load()",1],["TwitterTrends.load('splash_info_wrapper')",3],["TweetMeme.load('splash_header_tweet')",2]];this.base("Splash",[],b,a)},start:function(){var a=document.getElementsByTagName("input")[0];if(a){a.value=""}this.base()}});LayoutComponent=GlobalObject.extend({constructor:function(b,a){this.base(b,a);this.currentQuery;this.componentId=LayoutComponent.components.length;LayoutComponent.components.push(this)},getComponentId:function(){return this.componentId},getId:function(){return this.id},setId:function(a){this.id=a;this.getElement().id=a},getElement:function(){},getCurrentQuery:function(){return this.currentQuery},getComponentElement:function(){return this.getElement()}},{components:[],getComponent:function(a){return LayoutComponent.components[a.substr(1,a.length-2)]}});Searcher=LayoutComponent.extend({constructor:function(b,d,c){this.base(Searcher,"Searcher");this.textSize=c;this.displayers=b;if(!this.displayers){this.displayers=[]}this.lastSearchThread=null;for(var a=0;a<this.displayers.length;a++){this.displayers[a].searcher=this}if(d){this.otherJobs=d}else{this.otherJobs=[]}},search:function(k,h,a,m,n){if(this.layout!=currentAccount.currentLayout){currentAccount.layout(this.layout.getName().toLowerCase(),k,h)}var e=null;if(!isArray(h)){e=h}else{if(h.length<this.displayers.length){e=1}}var j=[];for(var g=0;g<this.displayers.length;g++){var b;if(e){b=e}else{b=h[g]}var l=this.displayers[g];if(!n||(k!=l.currentQuery||b!=l.currentPage)){var d=l.getNewJob(k,b);j.push(d);l.showLoading()}}if(j.length>0){if(!a){a=1}if(!m){m=0}var f=new Job(this.getObjectName()+".finishSearch("+m+")",a);j.push(f);for(var g=0;g<this.otherJobs.length;g++){var c=this.otherJobs[g];j.push(new Job(c[0],c[1]))}if(this.lastSearchThread){this.lastSearchThread.destroy()}this.lastSearchThread=new Thread(j);lastQuery=k;this.lastSearchThread.start()}this.currentQuery=k},finishSearch:function(a){clearTimeout(this.finishSearchTimeout);this.finishSearchTimeout=setTimeout(function(b){return function(){if(b.currentQuery!=""){document.title=unescape(b.currentQuery)+" - Heapr.com";var c=currentAccount.currentLayout.getName().toLowerCase()+"_searches";Settings.set(c,parseInt(Settings.get(c))+1,1000);if(b.textInput){if(!b.textInput.hasFocus){b.textInput.value=unescape(b.currentQuery)}else{if(b.textInput.value!=unescape(b.currentQuery)){b.textInput.value=unescape(b.currentQuery)}}}}HistoryManager.updateUrl()}}(this),a);this.thread.nextJob()},getCandidateUrl:function(c){var a=this.currentQuery;this.currentQuery=c;var b=HistoryManager.getCandidateUrl();this.currentQuery=a;return b},submitSearch:function(a){window.scrollTo(0,0);Browser.stop();this.search(a,1)},keydownSearch:function(b){if(isAlphaNumeric(b)){Browser.stop();clearTimeout(this.keydownTimeout);var a=currentAccount.currentLayout.getName().toLowerCase();if(a=="splash"){timeout=1}else{timeout=75}this.keydownTimeout=setTimeout(function(c){return function(){var d=escape(c.textInput.value);c.search(d,1,2,500)}}(this),timeout);clearTimeout(this.finishSearchTimeout)}},startGoogleSuggest:function(){try{eval(this.googleSuggestor.getObjectName())}catch(error){this.googleSuggestor=new GoogleSuggest()}if(Browser.isIE7()){this.suggestions.style.left=getElementLeft(this.textInput)+"px";this.suggestions.style.top=(getElementTop(this.textInput)+25)+"px"}currentSuggestor=this.suggestions;this.googleSuggestor.search(this.suggestions.id,escape(this.textInput.value),1)},keyupSuggest:function(b){var a=currentAccount.currentLayout.getName().toLowerCase();if(a=="web"||a=="images"||a=="videos"||a=="lite"||a=="splash"){if(b>=46||b==8){this.startGoogleSuggest()}}},keydownSuggest:function(f){var e=currentAccount.currentLayout.getName().toLowerCase();if(e=="web"||e=="images"||e=="videos"||e=="lite"||e=="splash"){switch(f){case 9:case 27:this.suggestions.style.visibility="hidden";break;case 38:if(this.suggestions.style.visibility=="visible"){var a=0,d=this.suggestions.childNodes.length;if(this.currentSuggest==0){a=d-1}else{if(this.currentSuggest==d){a=0}else{a=(this.currentSuggest-1)%d}}var b=this.suggestions.childNodes[a];this.highlightSuggest(b);this.textInput.value=b.id}else{this.startGoogleSuggest()}break;case 40:if(this.suggestions.style.visibility=="visible"){var b=this.suggestions.childNodes[(this.currentSuggest+1)%this.suggestions.childNodes.length];this.highlightSuggest(b);this.textInput.value=b.id}else{this.startGoogleSuggest()}break}}},highlightSuggest:function(a){if(this.currentSuggest>=0){this.suggestions.childNodes[this.currentSuggest].className=""}a.className="hovered";this.currentSuggest=getChildIndex(this.suggestions,a)},clickSuggest:function(a){this.search(escape(a.id),1);this.hideSuggest()},hideSuggest:function(){if(this.suggestions){this.suggestions.style.visibility="hidden"}},getElement:function(){if(!this.element||this.element.innerHTML==""){var a=document.createElement("div");this.textInput=this.getTextInput();this.submitInput=this.getSubmitInput();a.appendChild(this.textInput);a.appendChild(this.submitInput);this.suggestions=document.createElement("ul");this.suggestions.id=getUniqueId();this.suggestions.searcher=this;this.suggestions.className="google_suggest";a.appendChild(this.suggestions);this.element=a}return this.element},getTextInput:function(){var a=document.createElement("input");a.className="search_input";a.searcher=this;a.onfocus=function(){this.hasFocus=true};a.onblur=function(){this.hasFocus=false};if(this.textSize){a.size=this.textSize+""}else{a.size="34"}a.type="text";a.maxlength="2048";a.autocomplete="off";a.onkeydown=function(d){var c=getKeyCode(d);var b=Settings.get("googlesuggest");if(c==13){if(b==1){this.searcher.hideSuggest();disableSuggestions(800)}disableSubmitButton(800);this.searcher.submitSearch(escape(this.value))}else{var e=Settings.get("fastsearch");if(b==1){this.searcher.keydownSuggest(c)}if(e==1&&!disabledFastSearch){this.searcher.keydownSearch(c)}}};a.onkeyup=function(d){var c=Settings.get("googlesuggest");if(c==1){var b=getKeyCode(d);this.searcher.keyupSuggest(b)}};return a},getSubmitInput:function(){var a=document.createElement("input");a.className="search_input";a.type="submit";a.value="Search";a.searcher=this;a.onclick=function(){if(!disabledSubmitButton){this.searcher.submitSearch(escape(this.searcher.textInput.value))}};return a}});Displayer=LayoutComponent.extend({constructor:function(b,a){this.base(Displayer,"Displayer");this.searchEngines=b;this.currentSearchEngine=this.searchEngines[0];this.id=null;this.priority=a},getPriority:function(){return this.priority},getCurrentPage:function(){return this.currentPage},showLoading:function(){var a=this.getElement();a.innerHTML='<div class="loading_result">Loading...</div>'},getElement:function(){if(!this.element){var a=document.createElement("div");this.element=a;this.element.displayer=this}return this.element},getNewJob:function(b,a){this.currentQuery=b;this.currentPage=a;this.setId(getUniqueId());return new Job(this.currentSearchEngine+".search("+this.getId()+', "'+b+'", "'+a+'")',this.priority)}});SingleDisplayer=Displayer.extend({constructor:function(a,b){this.base([a],b)}});TabbedDisplayer=Displayer.extend({constructor:function(c,b,a){this.base(c,b);if(a&&a>=0&&a<this.searchEngines.length){this.currentSearchEngine=this.searchEngines[a]}},getComponentElement:function(){if(!this.componentElement||this.componentElement.innerHTML==""){var d=document.createElement("div");d.className="tabbed_displayer";this.tabs=document.createElement("div");this.tabs.className="tabbed_displayer_tabs clearfix";var b='<li class="tabbed_displayer_choose">Choose:</li>';for(var a=0;a<this.searchEngines.length;a++){var c=this.searchEngines[a];b+='<li class="tabbed_displayer_tab"><div id="'+c+'" onmouseover="'+this.getObjectName()+'.mouseoverTab(this)" onmouseout="'+this.getObjectName()+'.mouseoutTab(this)" onclick="'+this.getObjectName()+'.clickTab(this)" class="';if(this.currentSearchEngine==c){b+="selected_"}b+=this.getTabClass(c)+'"></div></li>'}this.tabs.innerHTML=b;d.appendChild(this.tabs);this.element=document.createElement("div");d.appendChild(this.element);this.componentElement=d}return this.componentElement},getElement:function(){if(!this.element){this.getComponentElement();this.element.displayer=this}return this.element},tab:function(){this.showLoading();this.currentPage=1;HistoryManager.updateUrl();var a=new Thread([this.getNewJob(this.currentQuery,1)]);a.start()},clickTab:function(d){for(var b=0;b<this.tabs.childNodes.length;b++){var c=this.tabs.childNodes[b].childNodes[0];if(c.id){c.className=this.getTabClass(c.id)}}d.className="selected_"+this.getTabClass(d.id);this.currentSearchEngine=d.id;this.tab();var a=currentAccount.currentLayout.getName().toLowerCase();if(a=="web"){Settings.set(a+"_tab",d.id)}},mouseoverTab:function(a){if(a.className.search("selected_tab")!=-1){a.className="selected_"+this.getTabClass(a.id)+" hovered"}else{a.className=this.getTabClass(a.id)+" hovered"}},mouseoutTab:function(a){if(a.className.search("selected_tab")!=-1){a.className="selected_"+this.getTabClass(a.id)}else{a.className=this.getTabClass(a.id)}},getTabClass:function(a){return"tab sprite i-"+a.toLowerCase()}});Parser={parseLayoutTemplate:function(h){var j=h.split(/({.*?})/);var f="";var a=[];for(var e=0;e<j.length;e++){var d=j[e];if(d.charAt(0)=="{"&&d.charAt(d.length-1)=="}"){var l=LayoutComponent.getComponent(d);a.push(l);var b=getUniqueId();l.setId(b);f+='<div id="mount_'+b+'"></div>'}else{f+=d}}var c=document.createElement("div");c.innerHTML=f;var k=document.getElementsByTagName("head")[0];k.appendChild(c);for(var e=0;e<a.length;e++){var l=a[e];var g=document.getElementById("mount_"+l.getId());g.appendChild(l.getComponentElement())}return c}};
