1 | (function($){$.fn.tipuesearch=function(options){var set=$.extend({'show':7,'newWindow':false,'showURL':true,'showTitleCount':true,'minimumLength':3,'descriptiveWords':25,'highlightTerms':true,'highlightEveryTerm':false,'mode':'static','liveDescription':'*','liveContent':'*','contentLocation':'tipuesearch/tipuesearch_content.json','debug':false},options);return this.each(function(){var tipuesearch_in={pages:[]};$.ajaxSetup({async:false});var tipuesearch_t_c=0;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 | {return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g,'%20'))||null;}
|
18 | if(getURLP('q'))
|
19 | {$('#tipue_search_input').val(getURLP('q'));getTipueSearch(0,true);}
|
20 | $(this).keyup(function(event)
|
21 | {if(event.keyCode=='13')
|
22 | {getTipueSearch(0,true);}});function getTipueSearch(start,replace)
|
23 | {$('#tipue_search_content').hide();$('#tipue_search_content').html('<div class="tipue_search_spinner"><div class="tipue_search_rect1"></div><div class="tipue_search_rect2"></div><div class="rect3"></div></div>');$('#tipue_search_content').show();var out='';var results='';var show_replace=false;var show_stop=false;var standard=true;var c=0;found=[];var d=$('#tipue_search_input').val().toLowerCase();d=$.trim(d);if((d.match("^\"")&&d.match("\"$"))||(d.match("^'")&&d.match("'$")))
|
24 | {standard=false;}
|
25 | if(standard)
|
26 | {var d_w=d.split(' ');d='';for(var i=0;i<d_w.length;i++)
|
27 | {var a_w=true;for(var f=0;f<tipuesearch_stop_words.length;f++)
|
28 | {if(d_w[i]==tipuesearch_stop_words[f])
|
29 | {a_w=false;show_stop=true;}}
|
30 | if(a_w)
|
31 | {d=d+' '+d_w[i];}}
|
32 | d=$.trim(d);d_w=d.split(' ');}
|
33 | else
|
34 | {d=d.substring(1,d.length-1);}
|
35 | if(d.length>=set.minimumLength)
|
36 | {if(standard)
|
37 | {if(replace)
|
38 | {var d_r=d;for(var i=0;i<d_w.length;i++)
|
39 | {for(var f=0;f<tipuesearch_replace.words.length;f++)
|
40 | {if(d_w[i]==tipuesearch_replace.words[f].word)
|
41 | {d=d.replace(d_w[i],tipuesearch_replace.words[f].replace_with);show_replace=true;}}}
|
42 | d_w=d.split(' ');}
|
43 | var d_t=d;for(var i=0;i<d_w.length;i++)
|
44 | {for(var f=0;f<tipuesearch_stem.words.length;f++)
|
45 | {if(d_w[i]==tipuesearch_stem.words[f].word)
|
46 | {d_t=d_t+' '+tipuesearch_stem.words[f].stem;}}}
|
47 | d_w=d_t.split(' ');for(var i=0;i<tipuesearch_in.pages.length;i++)
|
48 | {var score=0;var s_t=tipuesearch_in.pages[i].text;for(var f=0;f<d_w.length;f++)
|
49 | {var pat=new RegExp(d_w[f],'gi');if(tipuesearch_in.pages[i].title.search(pat)!=-1)
|
50 | {var m_c=tipuesearch_in.pages[i].title.match(pat).length;score+=(20*m_c);}
|
51 | if(tipuesearch_in.pages[i].text.search(pat)!=-1)
|
52 | {var m_c=tipuesearch_in.pages[i].text.match(pat).length;score+=(20*m_c);}
|
53 | if(set.highlightTerms)
|
54 | {if(set.highlightEveryTerm)
|
55 | {var patr=new RegExp('('+d_w[f]+')','gi');}
|
56 | else
|
57 | {var patr=new RegExp('('+d_w[f]+')','i');}
|
58 | s_t=s_t.replace(patr,"<span class=\"h01\">$1</span>");}
|
59 | if(tipuesearch_in.pages[i].tags.search(pat)!=-1)
|
60 | {var m_c=tipuesearch_in.pages[i].tags.match(pat).length;score+=(10*m_c);}
|
61 | if(tipuesearch_in.pages[i].url.search(pat)!=-1)
|
62 | {score+=20;}
|
63 | if(score!=0)
|
64 | {for(var e=0;e<tipuesearch_weight.weight.length;e++)
|
65 | {if(tipuesearch_in.pages[i].url==tipuesearch_weight.weight[e].url)
|
66 | {score+=tipuesearch_weight.weight[e].score;}}}
|
67 | if(d_w[f].match('^-'))
|
68 | {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)
|
69 | {score=0;}}}
|
70 | if(score!=0)
|
71 | {found.push({"score":score,"title":tipuesearch_in.pages[i].title,"desc":s_t,"url":tipuesearch_in.pages[i].url});c++;}}}
|
72 | else
|
73 | {for(var i=0;i<tipuesearch_in.pages.length;i++)
|
74 | {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)
|
75 | {var m_c=tipuesearch_in.pages[i].title.match(pat).length;score+=(20*m_c);}
|
76 | if(tipuesearch_in.pages[i].text.search(pat)!=-1)
|
77 | {var m_c=tipuesearch_in.pages[i].text.match(pat).length;score+=(20*m_c);}
|
78 | if(set.highlightTerms)
|
79 | {if(set.highlightEveryTerm)
|
80 | {var patr=new RegExp('('+d+')','gi');}
|
81 | else
|
82 | {var patr=new RegExp('('+d+')','i');}
|
83 | s_t=s_t.replace(patr,"<span class=\"h01\">$1</span>");}
|
84 | if(tipuesearch_in.pages[i].tags.search(pat)!=-1)
|
85 | {var m_c=tipuesearch_in.pages[i].tags.match(pat).length;score+=(10*m_c);}
|
86 | if(tipuesearch_in.pages[i].url.search(pat)!=-1)
|
87 | {score+=20;}
|
88 | if(score!=0)
|
89 | {for(var e=0;e<tipuesearch_weight.weight.length;e++)
|
90 | {if(tipuesearch_in.pages[i].url==tipuesearch_weight.weight[e].url)
|
91 | {score+=tipuesearch_weight.weight[e].score;}}}
|
92 | if(score!=0)
|
93 | {found.push({"score":score,"title":tipuesearch_in.pages[i].title,"desc":s_t,"url":tipuesearch_in.pages[i].url});c++;}}}
|
94 | if(c!=0)
|
95 | {if(set.showTitleCount&&tipuesearch_t_c==0)
|
96 | {var title=document.title;document.title='('+c+') '+title;tipuesearch_t_c++;}
|
97 | if(show_replace==1)
|
98 | {out+='<div id="tipue_search_warning">'+tipuesearch_string_2+' '+d+'. '+tipuesearch_string_3+' <a id="tipue_search_replaced">'+d_r+'</a></div>';}
|
99 | if(c==1)
|
100 | {out+='<div id="tipue_search_results_count">'+tipuesearch_string_4+'</div>';}
|
101 | else
|
102 | {c_c=c.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");out+='<div id="tipue_search_results_count">'+c_c+' '+tipuesearch_string_5+'</div>';}
|
103 | found.sort(function(a,b){return b.score-a.score});var l_o=0;for(var i=0;i<found.length;i++)
|
104 | {if(l_o>=start&&l_o<set.show+start)
|
105 | {out+='<div class="tipue_search_content_title"><a href="'+found[i].url+'"'+tipue_search_w+'>'+found[i].title+'</a></div>';if(set.debug)
|
106 | {out+='<div class="tipue_search_content_debug">Score: '+found[i].score+'</div>';}
|
107 | if(set.showURL)
|
108 | {var s_u=found[i].url.toLowerCase();if(s_u.indexOf('http://')==0)
|
109 | {s_u=s_u.slice(7);}
|
110 | out+='<div class="tipue_search_content_url"><a href="'+found[i].url+'"'+tipue_search_w+'>'+s_u+'</a></div>';}
|
111 | if(found[i].desc)
|
112 | {var t=found[i].desc;var t_d='';var t_w=t.split(' ');if(t_w.length<set.descriptiveWords)
|
113 | {t_d=t;}
|
114 | else
|
115 | {for(var f=0;f<set.descriptiveWords;f++)
|
116 | {t_d+=t_w[f]+' ';}}
|
117 | t_d=$.trim(t_d);if(t_d.charAt(t_d.length-1)!='.')
|
118 | {t_d+=' ...';}
|
119 | out+='<div class="tipue_search_content_text">'+t_d+'</div>';}}
|
120 | l_o++;}
|
121 | if(c>set.show)
|
122 | {var pages=Math.ceil(c / set.show);var page=(start / set.show);out+='<div id="tipue_search_foot"><ul id="tipue_search_foot_boxes">';if(start>0)
|
123 | {out+='<li><a class="tipue_search_foot_box" id="'+(start-set.show)+'_'+replace+'">'+tipuesearch_string_6+'</a></li>';}
|
124 | if(page<=2)
|
125 | {var p_b=pages;if(pages>3)
|
126 | {p_b=3;}
|
127 | for(var f=0;f<p_b;f++)
|
128 | {if(f==page)
|
129 | {out+='<li class="current">'+(f+1)+'</li>';}
|
130 | else
|
131 | {out+='<li><a class="tipue_search_foot_box" id="'+(f*set.show)+'_'+replace+'">'+(f+1)+'</a></li>';}}}
|
132 | else
|
133 | {var p_b=page+2;if(p_b>pages)
|
134 | {p_b=pages;}
|
135 | for(var f=page-1;f<p_b;f++)
|
136 | {if(f==page)
|
137 | {out+='<li class="current">'+(f+1)+'</li>';}
|
138 | else
|
139 | {out+='<li><a class="tipue_search_foot_box" id="'+(f*set.show)+'_'+replace+'">'+(f+1)+'</a></li>';}}}
|
140 | if(page+1!=pages)
|
141 | {out+='<li><a class="tipue_search_foot_box" id="'+(start+set.show)+'_'+replace+'">'+tipuesearch_string_7+'</a></li>';}
|
142 | out+='</ul></div>';}}
|
143 | else
|
144 | {out+='<div id="tipue_search_warning">'+tipuesearch_string_8+'</div>';}}
|
145 | else
|
146 | {if(show_stop)
|
147 | {out+='<div id="tipue_search_warning">'+tipuesearch_string_8+'. '+tipuesearch_string_9+'</div>';}
|
148 | else
|
149 | {out+='<div id="tipue_search_warning">'+tipuesearch_string_10+'</div>';if(set.minimumLength==1)
|
150 | {out+='<div id="tipue_search_warning">'+tipuesearch_string_11+'</div>';}
|
151 | else
|
152 | {out+='<div id="tipue_search_warning">'+tipuesearch_string_12+' '+set.minimumLength+' '+tipuesearch_string_13+'</div>';}}}
|
153 | $('#tipue_search_content').hide();$('#tipue_search_content').html(out);$('#tipue_search_content').slideDown(200);$('#tipue_search_replaced').click(function()
|
154 | {getTipueSearch(0,false);});$('.tipue_search_foot_box').click(function()
|
155 | {var id_v=$(this).attr('id');var id_a=id_v.split('_');getTipueSearch(parseInt(id_a[0]),id_a[1]);});}});};})(jQuery);
|