function WebSearch(d,e,a,c){this.isMainSearch=d;this.outputElementId=e;this.arguments=c;this.engine=a;this.html=null;this.searchCompleted=false;this.numPreviews=4;this.targetQuery="";this.showIcons=true;this.loadedResults=new Array();this.baseLink="";var f="http://ajax.googleapis.com/ajax/services/search/web?v=1.0&key="+GOOGLE_KEY;if(c.cref){f+="&cref="+encodeURIComponent(c.cref)}else{f+="&cx=010506677906732736289:3_fj6joepvw"}if(c.ss=="medium"){f+="&safe=moderate"}else{if(c.ss=="off"){f+="&safe=off"}else{f+="&safe=active"}}var b={};if(c.fi=="0"){f+="&filter=0"}if((c.la)&&(c.la!="")){f+="&lr="+c.la}if((c.gl)&&(c.gl!="")){f+="&gl="+c.gl}if(c.si=="0"){this.showIcons=false}if(this.isMainSearch){this.baseLink="?";for(paramKey in parsedUri.queryKey){if(paramKey!="q"){this.baseLink+=paramKey+"="+parsedUri.queryKey[paramKey]+"&"}}this.baseLink+="q=";f+="&rsz=large"}else{if((c.p)&&(c.p!="")){this.numPreviews=parseInt(c.p)}if(this.numPreviews>4){f+="&rsz=large"}else{f+="&rsz=small"}}f+="&callback=?";this.targetUrl=f}WebSearch.prototype.execute=function(b){this.targetQuery=b;var a=this;$.getJSON(this.targetUrl+"&q="+encodeURIComponent(b),function(c){a.searchComplete(c)})};WebSearch.prototype.searchComplete=function(r,s,l,i,n){if(this.isMainSearch&&!documentReady){if(delayedData==null){delayedData=new Object()}delayedData.completeInstance=this;delayedData.completeData=r;delayedData.completeIsRelated=s;delayedData.completeIsSite=l;delayedData.completeTargetDiv=i;delayedData.completeTargetQueryString=n;return}var k;this.searchCompleted=true;this.resultData=r.responseData;var f=this.resultData;if((f.cursor)&&(f.cursor.estimatedResultCount)){k=f.cursor.estimatedResultCount}else{k=0}if(this.isMainSearch){if(!s&&!l){setNumberResults(k);if(checkPageJump(this)){return}}var m=[];for(var p=0;p<f.results.length;p++){if(p==0){m.push('<div class="firstSearchResult"')}else{m.push('<div class="searchResult"')}if(l){m.push(' isSite="true"')}m.push(' resultIndex="',this.loadedResults.length,'">');this.loadedResults[this.loadedResults.length]=f.results[p];if(this.showIcons){m.push('<div style="width: 16px; height: 16px;float: left; margin-right: 5px; margin-top:2px;"><a href="',f.results[p].unescapedUrl,'"><img src="http://www.google.com/s2/favicons?domain=',f.results[p].visibleUrl,'" width="16" height="16" style="border:0;"/></a></div>')}m.push('<div class="title"><a href="',f.results[p].unescapedUrl,'">',f.results[p].title,'</a></div><div class="content">',f.results[p].content,'</div><div class="extraline"><span class="url"><a href="',f.results[p].unescapedUrl,'">',getVisibleUrl(f.results[p].unescapedUrl,this.targetQuery),'</a></span> &bull; <span class="extra"><a href="',f.results[p].unescapedUrl,'" class="previewlink">Preview</a></span> &bull; <span class="actionsLink">Actions</span></div><div class="related" style="display: none;"></div></div>')}var e;var g;if(s||l){var b;if(s){if(k==1){b=formatNumber(""+k)+" similar result"}else{b=formatNumber(""+k)+" similar results"}}else{var b;if(k==1){b=formatNumber(""+k)+" result from the same domain"}else{b=formatNumber(""+k)+" result from the same domain"}}m.unshift("<h3> Found ",b,"</h3>");if(k>8){m.push('<div><a href="',this.baseLink,encodeURIComponent(n),'">Click here for more results &raquo;</a></div>')}$(i).html(m).slideDown("fast");e=$(i).find(".previewlink");g=$(i).find(".actionsLink")}else{var o=0;var q=0;var d=0;var h=f.results.length;var t=null;if((f.cursor)&&(f.cursor.estimatedResultCount)){o=f.cursor.currentPageIndex+1;q=f.cursor.pages.length;d=parseInt(f.cursor.pages[f.cursor.currentPageIndex].start);t=f.cursor.moreResultsUrl}populateMainSearch(m.join(""),o,q,d,h,t);window.setTimeout(function(){if(!singlePageMode){$.wordStats.clear()}$.wordStats.computeSearchTopWords(5,f.results,searchQuery);setRefinements($.wordStats.topWords)},0);e=$("#page"+o+" .previewlink");g=$("#page"+o+" .actionsLink")}e.click(function(y){var w=$(this).get(0);var u=$(this).parents(".firstSearchResult:first,.searchResult:first");var c=u.find("iframe:first");if(w.showingPreview){w.setAttribute("showing",false);w.textContent=w.previousTextContent;w.innerText=w.textContent;w.showingPreview=false;c.slideUp("fast")}else{u.find(".related:first").slideUp("fast");u.find(".showRelated:first").show();u.find(".hideRelated:first").hide();u.find(".showMore:first").show();u.find(".hideMore:first").hide();w.setAttribute("showing",true);if(w.textContent){w.previousTextContent=w.textContent}else{w.previousTextContent=w.innerText}w.textContent="Hide preview";w.innerText=w.textContent;w.showingPreview=true;if(c.size()<1){var x=document.createElement("iframe");$(this).parents(".firstSearchResult:first,.searchResult:first").get(0).appendChild(x);x.style.width="100%";x.style.display="none";x.setAttribute("src",w.getAttribute("href"));c=$(x)}var v=$(window).height();if(v<300){v=300}c.css("height",""+(v-100)+"px");c.slideDown("fast",function(){var z=findPos($(w).parents(".firstSearchResult:first,.searchResult:first").get(0));scrollTo(0,z[1])});c.focus()}return false});var a=this;g.hover(function(z){if(!this.initPopup){var w=$(this).parents(".firstSearchResult:first,.searchResult:first").get(0);var u=a.loadedResults[parseInt(w.getAttribute("resultIndex"))];var v=document.createElement("ul");var y="";var x=new RegExp("^https?://(.*)");var c=x.exec(u.unescapedUrl);y+='<li class="showRelated"><a href="'+a.baseLink+encodeURIComponent("related:"+c[1]+" "+a.targetQuery)+'" onclick="WebSearch.showRelated(event); return false;">Find similar pages</a></li>';y+='<li class="hideRelated" style="display:none;"><a href="#" onclick="WebSearch.hideRelated(event); return false;">Hide similar pages</a></li>';if(u.cacheUrl){y+='<li><a href="'+u.cacheUrl+'">Show cached page</a></li>'}if((a.targetQuery.toLowerCase().indexOf("site:")!=0)&&(w.getAttribute("isSite")!="true")){y+='<li class="showMore"><a href="'+a.baseLink+encodeURIComponent("site:"+c[1]+" "+a.targetQuery)+'" onclick="WebSearch.showFromSite(event); return false;">More from this site</a></li>';y+='<li class="hideMore" style="display:none;"><a href="#" onclick="WebSearch.hideFromSite(event); return false;">Hide site results</a></li>'}y+='<li><a href="http://translate.google.com/translate?js=y&amp;prev=_t&amp;hl=en&amp;ie=UTF-8&layout=1&amp;eotf=1&amp;u='+encodeURIComponent(u.unescapedUrl)+'&amp;sl=auto&amp;tl=en">Translate</a></li>';this.popup=v;$(this.popup).html(y).click(function(B){$(this).hide()});$(this).append(this.popup);this.initPopup=true}var A=$(this).position();$(this.popup).css("left",A.left).show()},function(c){$(this.popup).hide()})}else{var j=document.getElementById(this.outputElementId);if(this.engine.show){this.createHTML()}populateSidebarEngine(this.outputElementId,k,this.html)}};WebSearch.prototype.goToPage=function(b){var a=this;this.currentPage=b;$.getJSON(this.targetUrl+"&q="+encodeURIComponent(this.targetQuery)+"&start="+(b-1)*8,function(c){a.searchComplete(c)})};WebSearch.prototype.createHTML=function(){if(!this.html&&this.searchCompleted){var b="";var a=this.resultData.results.length;if(a>this.numPreviews){a=this.numPreviews}for(var e=0;e<a;e++){if(e>0){b+='<div class="engineResultSpacer"></div>'}var d;d=this.resultData.results[e].title;b+='<div class="engineResultWrapper" onmouseover="showTooltip(this, \''+this.engine.id+"', "+e+');" onmouseout="hideTooltip(event, this);"><div class="engineResultTitle"><a href="'+this.resultData.results[e].unescapedUrl+'"><span class="fullLink"></span>'+d+"</a></div>";b+='<div class="engineResultContent">';b+=this.resultData.results[e].content;b+="</div></div>"}this.html=b}return this.html};WebSearch.prototype.createTooltip=function(c){var a=parseInt(c);if(a>-1){var b="";if(this.showIcons){b+='<div style="width: 16px; height: 16px;float: left; margin-right: 5px;"><a href="'+this.resultData.results[a].unescapedUrl+'"><img src="http://www.google.com/s2/favicons?domain='+this.resultData.results[a].visibleUrl+'" width="16" height="16" style="border:0;"/></a></div>'}b+='<div class="title"><a href="'+this.resultData.results[a].unescapedUrl+'">'+this.resultData.results[a].title+"</a></div>";b+='<div class="content">'+this.resultData.results[a].content+"</div>";b+='<div class="url"><a href="'+this.resultData.results[a].unescapedUrl+'">'+getVisibleUrl(this.resultData.results[a].unescapedUrl,this.targetQuery)+"</a></div>";return b}else{this.createHTML();return this.html}};WebSearch.prototype.getTooltipWidth=function(){return 300};WebSearch.prototype.getTooltipHeight=function(){return -1};WebSearch.showRelated=function(a){var g=$(a.target).parents(".firstSearchResult:first,.searchResult:first");var b=getConfigurationIndex(currentEngine);var f=engineInstances[b];var i=f.loadedResults[parseInt(g.get(0).getAttribute("resultIndex"))];var d=g.find(".related:first").get(0);var k=new RegExp("^https?://(.*)");var e=k.exec(i.unescapedUrl);var h="related:"+e[1]+" "+f.targetQuery;var c=f.targetUrl+"&q="+encodeURIComponent(h);var j=g.find(".previewlink:first").get(0);if(j.showingPreview){var l=g.find("iframe:first");j.setAttribute("showing",false);j.textContent=j.previousTextContent;j.innerText=j.textContent;j.showingPreview=false;l.slideUp("fast")}$.getJSON(c,function(m){f.searchComplete(m,true,false,d,h)});g.find(".showRelated:first").hide();g.find(".hideRelated:first").show();g.find(".showMore:first").show();g.find(".hideMore:first").hide()};WebSearch.showFromSite=function(a){var f=$(a.target).parents(".firstSearchResult:first,.searchResult:first");var b=getConfigurationIndex(currentEngine);var e=engineInstances[b];var h=e.loadedResults[parseInt(f.get(0).getAttribute("resultIndex"))];var d=f.find(".related:first").get(0);var g="site:"+h.visibleUrl+" "+e.targetQuery;var c=e.targetUrl+"&q="+encodeURIComponent(g);var i=f.find(".previewlink:first").get(0);if(i.showingPreview){var j=f.find("iframe:first");i.setAttribute("showing",false);i.textContent=i.previousTextContent;i.innerText=i.textContent;i.showingPreview=false;j.slideUp("fast")}$.getJSON(c,function(k){e.searchComplete(k,false,true,d,g)});f.find(".showRelated:first").show();f.find(".hideRelated:first").hide();f.find(".showMore:first").hide();f.find(".hideMore:first").show()};WebSearch.hideRelated=function(b){var a=$(b.target).parents(".firstSearchResult:first,.searchResult:first");a.find(".related:first").slideUp("fast");a.find(".showRelated:first").show();a.find(".hideRelated:first").hide()};WebSearch.hideFromSite=function(b){var a=$(b.target).parents(".firstSearchResult:first,.searchResult:first");a.find(".related:first").slideUp("fast");a.find(".showMore:first").show();a.find(".hideMore:first").hide()};var WebSearchFactory=new Object();WebSearchFactory.createInstance=function(c,d,a,b){return new WebSearch(c,d,a,b)};engineFactories.web=WebSearchFactory;
