Merge pull request #5205 from solgenomics/topic/generic_trial_upload
[sgn.git] / docs / assets / tipuesearch / tipuesearch.min.js
blobe6e80aa16237ee5ab0466d01b884b7b60f943760
1 (function($){$.fn.tipuesearch=function(options){var set=$.extend({'contentLocation':'tipuesearch/tipuesearch_content.json','contextBuffer':60,'contextLength':60,'contextStart':90,'debug':false,'descriptiveWords':25,'highlightTerms':true,'liveContent':'*','liveDescription':'*','minimumLength':3,'mode':'static','newWindow':false,'show':9,'showContext':true,'showRelated':true,'showTime':true,'showTitleCount':true,'showURL':true,'wholeWords':true},options);return this.each(function(){var tipuesearch_in={pages:[]};$.ajaxSetup({async:false});var tipuesearch_t_c=0;$('#tipue_search_content').hide().html('<div class="tipue_search_spinner"><div class="tipue_search_rect1"></div><div class="tipue_search_rect2"></div><div class="rect3"></div></div>').show();if(set.mode=='live')
2 {for(var i=0;i<tipuesearch_pages.length;i++)
3 {$.get(tipuesearch_pages[i]).done(function(html)
4 {var cont=$(set.liveContent,html).text();cont=cont.replace(/\s+/g,' ');var desc=$(set.liveDescription,html).text();desc=desc.replace(/\s+/g,' ');var t_1=html.toLowerCase().indexOf('<title>');var t_2=html.toLowerCase().indexOf('</title>',t_1+7);if(t_1!=-1&&t_2!=-1)
5 {var tit=html.slice(t_1+7,t_2);}
6 else
7 {var tit=tipuesearch_string_1;}
8 tipuesearch_in.pages.push({"title":tit,"text":desc,"tags":cont,"url":tipuesearch_pages[i]});});}}
9 if(set.mode=='json')
10 {$.getJSON(set.contentLocation).done(function(json)
11 {tipuesearch_in=$.extend({},json);});}
12 if(set.mode=='static')
13 {tipuesearch_in=$.extend({},tipuesearch);}
14 var tipue_search_w='';if(set.newWindow)
15 {tipue_search_w=' target="_blank"';}
16 function getURLP(name)
17 {var _locSearch=location.search;var _splitted=(new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(_locSearch)||[,""]);var searchString=_splitted[1].replace(/\+/g,'%20');try
18 {searchString=decodeURIComponent(searchString);}
19 catch(e)
20 {searchString=unescape(searchString);}
21 return searchString||null;}
22 if(getURLP('q'))
23 {$('#tipue_search_input').val(getURLP('q'));getTipueSearch(0,true);}
24 $(this).keyup(function(event)
25 {if(event.keyCode=='13')
26 {getTipueSearch(0,true);}});function getTipueSearch(start,replace)
27 {var out='';var show_replace=false;var show_stop=false;var standard=true;var c=0;found=[];var d_o=$('#tipue_search_input').val();var d=d_o.toLowerCase();d=$.trim(d);if((d.match("^\"")&&d.match("\"$"))||(d.match("^'")&&d.match("'$")))
28 {standard=false;}
29 var d_w=d.split(' ');if(standard)
30 {d='';for(var i=0;i<d_w.length;i++)
31 {var a_w=true;for(var f=0;f<tipuesearch_stop_words.length;f++)
32 {if(d_w[i]==tipuesearch_stop_words[f])
33 {a_w=false;show_stop=true;}}
34 if(a_w)
35 {d=d+' '+d_w[i];}}
36 d=$.trim(d);d_w=d.split(' ');}
37 else
38 {d=d.substring(1,d.length-1);}
39 if(d.length>=set.minimumLength)
40 {if(standard)
41 {if(replace)
42 {var d_r=d;for(var i=0;i<d_w.length;i++)
43 {for(var f=0;f<tipuesearch_replace.words.length;f++)
44 {if(d_w[i]==tipuesearch_replace.words[f].word)
45 {d=d.replace(d_w[i],tipuesearch_replace.words[f].replace_with);show_replace=true;}}}
46 d_w=d.split(' ');}
47 var d_t=d;for(var i=0;i<d_w.length;i++)
48 {for(var f=0;f<tipuesearch_stem.words.length;f++)
49 {if(d_w[i]==tipuesearch_stem.words[f].word)
50 {d_t=d_t+' '+tipuesearch_stem.words[f].stem;}}}
51 d_w=d_t.split(' ');for(var i=0;i<tipuesearch_in.pages.length;i++)
52 {var score=0;var s_t=tipuesearch_in.pages[i].text;for(var f=0;f<d_w.length;f++)
53 {if(set.wholeWords)
54 {var pat=new RegExp('\\b'+d_w[f]+'\\b','gi');}
55 else
56 {var pat=new RegExp(d_w[f],'gi');}
57 if(tipuesearch_in.pages[i].title.search(pat)!=-1)
58 {var m_c=tipuesearch_in.pages[i].title.match(pat).length;score+=(20*m_c);}
59 if(tipuesearch_in.pages[i].text.search(pat)!=-1)
60 {var m_c=tipuesearch_in.pages[i].text.match(pat).length;score+=(20*m_c);}
61 if(tipuesearch_in.pages[i].tags.search(pat)!=-1)
62 {var m_c=tipuesearch_in.pages[i].tags.match(pat).length;score+=(10*m_c);}
63 if(tipuesearch_in.pages[i].url.search(pat)!=-1)
64 {score+=20;}
65 if(score!=0)
66 {for(var e=0;e<tipuesearch_weight.weight.length;e++)
67 {if(tipuesearch_in.pages[i].url==tipuesearch_weight.weight[e].url)
68 {score+=tipuesearch_weight.weight[e].score;}}}
69 if(d_w[f].match('^-'))
70 {pat=new RegExp(d_w[f].substring(1),'i');if(tipuesearch_in.pages[i].title.search(pat)!=-1||tipuesearch_in.pages[i].text.search(pat)!=-1||tipuesearch_in.pages[i].tags.search(pat)!=-1)
71 {score=0;}}}
72 if(score!=0)
73 {found.push({"score":score,"title":tipuesearch_in.pages[i].title,"desc":s_t,"url":tipuesearch_in.pages[i].url});c++;}}}
74 else
75 {for(var i=0;i<tipuesearch_in.pages.length;i++)
76 {var score=0;var s_t=tipuesearch_in.pages[i].text;var pat=new RegExp(d,'gi');if(tipuesearch_in.pages[i].title.search(pat)!=-1)
77 {var m_c=tipuesearch_in.pages[i].title.match(pat).length;score+=(20*m_c);}
78 if(tipuesearch_in.pages[i].text.search(pat)!=-1)
79 {var m_c=tipuesearch_in.pages[i].text.match(pat).length;score+=(20*m_c);}
80 if(tipuesearch_in.pages[i].tags.search(pat)!=-1)
81 {var m_c=tipuesearch_in.pages[i].tags.match(pat).length;score+=(10*m_c);}
82 if(tipuesearch_in.pages[i].url.search(pat)!=-1)
83 {score+=20;}
84 if(score!=0)
85 {for(var e=0;e<tipuesearch_weight.weight.length;e++)
86 {if(tipuesearch_in.pages[i].url==tipuesearch_weight.weight[e].url)
87 {score+=tipuesearch_weight.weight[e].score;}}}
88 if(score!=0)
89 {found.push({"score":score,"title":tipuesearch_in.pages[i].title,"desc":s_t,"url":tipuesearch_in.pages[i].url});c++;}}}
90 if(c!=0)
91 {if(set.showTitleCount&&tipuesearch_t_c==0)
92 {var title=document.title;document.title='('+c+') '+title;tipuesearch_t_c++;}
93 if(show_replace)
94 {out+='<div id="tipue_search_warning">'+tipuesearch_string_2+' '+d+'. '+tipuesearch_string_3+' <a id="tipue_search_replaced">'+d_r+'</a></div>';}
95 if(c==1)
96 {out+='<div id="tipue_search_results_count">'+tipuesearch_string_4;}
97 else
98 {c_c=c.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");out+='<div id="tipue_search_results_count">'+c_c+' '+tipuesearch_string_5;}
99 if(set.showTime)
100 {var endTimer=new Date().getTime();var time=(endTimer-startTimer)/ 1000;out+=' ('+time.toFixed(2)+' '+tipuesearch_string_14+')';set.showTime=false;}
101 out+='</div>';found.sort(function(a,b){return b.score-a.score});var l_o=0;for(var i=0;i<found.length;i++)
102 {if(l_o>=start&&l_o<set.show+start)
103 {out+='<div class="tipue_search_content_title"><a href="'+found[i].url+'"'+tipue_search_w+'>'+found[i].title+'</a></div>';if(set.debug)
104 {out+='<div class="tipue_search_content_debug">Score: '+found[i].score+'</div>';}
105 if(set.showURL)
106 {var s_u=found[i].url.toLowerCase();if(s_u.indexOf('http://')==0)
107 {s_u=s_u.slice(7);}
108 out+='<div class="tipue_search_content_url"><a href="'+found[i].url+'"'+tipue_search_w+'>'+s_u+'</a></div>';}
109 if(found[i].desc)
110 {var t=found[i].desc;if(set.showContext)
111 {d_w=d.split(' ');var s_1=found[i].desc.toLowerCase().indexOf(d_w[0]);if(s_1>set.contextStart)
112 {var t_1=t.substr(s_1-set.contextBuffer);var s_2=t_1.indexOf(' ');t_1=t.substr(s_1-set.contextBuffer+s_2);t_1=$.trim(t_1);if(t_1.length>set.contextLength)
113 {t='... '+t_1;}}}
114 if(standard)
115 {d_w=d.split(' ');for(var f=0;f<d_w.length;f++)
116 {if(set.highlightTerms)
117 {var patr=new RegExp('('+d_w[f]+')','gi');t=t.replace(patr,"<h0011>$1<h0012>");}}}
118 else if(set.highlightTerms)
119 {var patr=new RegExp('('+d+')','gi');t=t.replace(patr,"<span class=\"tipue_search_content_bold\">$1</span>");}
120 var t_d='';var t_w=t.split(' ');if(t_w.length<set.descriptiveWords)
121 {t_d=t;}
122 else
123 {for(var f=0;f<set.descriptiveWords;f++)
124 {t_d+=t_w[f]+' ';}}
125 t_d=$.trim(t_d);if(t_d.charAt(t_d.length-1)!='.')
126 {t_d+=' ...';}
127 t_d=t_d.replace(/h0011/g,'span class=\"tipue_search_content_bold\"');t_d=t_d.replace(/h0012/g,'/span');out+='<div class="tipue_search_content_text">'+t_d+'</div>';}}
128 l_o++;}
129 if(set.showRelated&&standard)
130 {f=0;for(var i=0;i<tipuesearch_related.searches.length;i++)
131 {if(d==tipuesearch_related.searches[i].search)
132 {if(show_replace)
133 {d_o=d;}
134 if(!f)
135 {out+='<div class="tipue_search_related_title">'+tipuesearch_string_15+' <span class="tipue_search_related_bold">'+d_o+'</span></div><div class="tipue_search_related_cols">';}
136 out+='<div class="tipue_search_related_text"><a class="tipue_search_related" id="'+tipuesearch_related.searches[i].related+'">';if(tipuesearch_related.searches[i].before)
137 {out+='<span class="tipue_search_related_before">'+tipuesearch_related.searches[i].before+'</span> ';}
138 out+=tipuesearch_related.searches[i].related;if(tipuesearch_related.searches[i].after)
139 {out+=' <span class="tipue_search_related_after">'+tipuesearch_related.searches[i].after+'</span>';}
140 out+='</a></div>';f++;}}
141 if(f)
142 {out+='</div>';}}
143 if(c>set.show)
144 {var pages=Math.ceil(c / set.show);var page=(start / set.show);out+='<nav><div id="tipue_search_foot"><ul id="tipue_search_foot_boxes">';if(start>0)
145 {out+='<li role="navigation"><a class="tipue_search_foot_box" accesskey="b" id="'+(start-set.show)+'_'+replace+'">'+tipuesearch_string_6+'</a></li>';}
146 if(page<=2)
147 {var p_b=pages;if(pages>3)
148 {p_b=3;}
149 for(var f=0;f<p_b;f++)
150 {if(f==page)
151 {out+='<li class="current" role="navigation">'+(f+1)+'</li>';}
152 else
153 {out+='<li role="navigation"><a class="tipue_search_foot_box" id="'+(f*set.show)+'_'+replace+'">'+(f+1)+'</a></li>';}}}
154 else
155 {var p_b=page+2;if(p_b>pages)
156 {p_b=pages;}
157 for(var f=page-1;f<p_b;f++)
158 {if(f==page)
159 {out+='<li class="current" role="navigation">'+(f+1)+'</li>';}
160 else
161 {out+='<li role="navigation"><a class="tipue_search_foot_box" id="'+(f*set.show)+'_'+replace+'">'+(f+1)+'</a></li>';}}}
162 if(page+1!=pages)
163 {out+='<li role="navigation"><a class="tipue_search_foot_box" accesskey="m" id="'+(start+set.show)+'_'+replace+'">'+tipuesearch_string_7+'</a></li>';}
164 out+='</ul></div></nav>';}}
165 else
166 {out+='<div id="tipue_search_warning">'+tipuesearch_string_8+'</div>';}}
167 else
168 {if(show_stop)
169 {out+='<div id="tipue_search_warning">'+tipuesearch_string_8+'. '+tipuesearch_string_9+'</div>';}
170 else
171 {out+='<div id="tipue_search_warning">'+tipuesearch_string_10+'</div>';if(set.minimumLength==1)
172 {out+='<div id="tipue_search_warning">'+tipuesearch_string_11+'</div>';}
173 else
174 {out+='<div id="tipue_search_warning">'+tipuesearch_string_12+' '+set.minimumLength+' '+tipuesearch_string_13+'</div>';}}}
175 $('#tipue_search_content').hide().html(out).slideDown(200);$('#tipue_search_replaced').click(function()
176 {getTipueSearch(0,false);});$('.tipue_search_related').click(function()
177 {$('#tipue_search_input').val($(this).attr('id'));getTipueSearch(0,true);});$('.tipue_search_foot_box').click(function()
178 {var id_v=$(this).attr('id');var id_a=id_v.split('_');getTipueSearch(parseInt(id_a[0]),id_a[1]);});}});};})(jQuery);