var offsetfrommouse=[10,10],displayduration=0,currentimageheight=0,trailfader=0;window.showtrail=showtrail;window.hidetrail=hidetrail;function gettrailobj(){if(document.getElementById)return document.getElementById("trailimageid").style;else if(document.all)return document.all.trailimagid.style}function gettrailobjnostyle(){if(document.getElementById)return document.getElementById("trailimageid");else if(document.all)return document.all.trailimagid}function truebody(){return!window.opera&&document.compatMode&&document.compatMode!="BackCompat"?document.documentElement:document.body}function showtrail(b,a,c){if(!gettrailobjnostyle()){var d=document.createElement("div");d.id="trailimageid";truebody().appendChild(d);trailfader=new Fader(gettrailobjnostyle(),50,6)}trailfader.Reset();if(c)currentimageheight=c;document.onmousemove=followmouse;gettrailobjnostyle().innerHTML="<h3>"+a+'</h3><img id="trail_img" src="'+b+'">';gettrailobj().display="inline"}function hidetrail(){trailfader.Fade(function(){var b=gettrailobj();b.innerHTML="";b.display="none";b.left="-15000px";document.onmousemove=""})}function followmouse(b){var a=offsetfrommouse[0],c=offsetfrommouse[1];document.all&&(truebody(),truebody());var d=document.all?Math.min(truebody().scrollHeight,truebody().clientHeight):Math.min(window.innerHeight);ox=gettrailobjnostyle().clientWidth;oy=gettrailobjnostyle().clientHeight+12;if(typeof b!="undefined"){a=b.pageX-a-ox;if(d-b.pageY<currentimageheight+oy){scrollTop=document.body?Math.max(truebody().scrollTop,document.body.scrollTop):truebody().scrollTop;c+=b.pageY-Math.max(0,oy+currentimageheight+b.pageY-d-scrollTop)}else c+=b.pageY}else if(typeof window.event!="undefined"){a=event.clientX+truebody().scrollLeft-a-ox;c+=d-event.clientY<currentimageheight+oy?event.clientY+truebody().scrollTop-Math.max(0,oy+currentimageheight+event.clientY-d):truebody().scrollTop+event.clientY}if(c<0)c*=-1;gettrailobj().left=a+"px";gettrailobj().top=c+"px"}function Suggest(b){var a=this;a.pc=b&&b.pc?b.pc:"\u041a\u043e\u0434";a.pn=b&&b.pn?b.pn:'\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435<span style="margin:0 10px 0 20px;">&larr;&uarr;&darr;&rarr;</span>';a.pp=b&&b.pp?b.pp:"\u0426\u0435\u043d\u0430,&nbsp;\u0433\u0440\u043d";a.watermark="s_watermark";a.r_watermark=/\s*s_watermark\s*/i;a.defkeyword="\u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0441\u0430\u0439\u0442\u0443...";a.URL="suggest.php?s=";a.input="search_keywords";a.button="search_button";a.suggest="search_suggest";a.hl="suggest_tdhl";a.last_search="";a.col=0;a.calls=0;a.delay=0;a.xhr=0;a.visible=0;a.cache={};a.ttl=36E5;a.start=new Date;if("undefined"!=typeof XMLHttpRequest)a.xhr=new XMLHttpRequest;if(!a.xhr&&"undefined"!=typeof ActiveXObject){b=["Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];for(var c=0;c<b.length;c++)try{a.xhr=new ActiveXObject(b[c])}catch(d){a.xhr=null}}a.input=document.getElementById(a.input);a.button=document.getElementById(a.button);b=document.createElement("div");b.style.position="relative";b.style.clear="both";b.innerHTML='<div id="'+a.suggest+'"></div>';a.input.form.appendChild(b);a.suggest=document.getElementById(a.suggest);a.suggest.style.visibility="hidden";a.fader=new Fader(a.suggest);a.Listen(a.input,"blur",function(e){return a.Blur(e)});a.Listen(a.input,"focus",function(e){return a.Focus(e)});a.Listen(a.input,"keyup",function(e){return a.Keyup(e)});a.Listen(a.input,"keydown",function(e){return a.Keydown(e)});a.input.setAttribute("autocomplete","off");if(!a.input.value){a.input.value=a.defkeyword;a.input.className+=" "+a.watermark}self.suggest=self.parent.suggest=window.suggest=a}Suggest.prototype={Listen:function(b,a,c){if(b.addEventListener)b.addEventListener(a,c,false);else b.attachEvent&&b.attachEvent("on"+a,c)},Focus:function(){this.visible&&this.Show();if(this.input.className.match(this.watermark)){this.input.value="";this.input.className=this.input.className.replace(this.r_watermark,"")}},Blur:function(){this.visible&&this.Fade();if(!(this.input.className.match(this.watermark)||this.input.value)){this.input.className+=" "+this.watermark;this.input.value=this.defkeyword}},Keydown:function(b){b=b||window.event;var a=b.keyCode?b.keyCode:b.which?b.which:0,c=true;switch(a){case 37:case 38:case 39:case 40:if(b.shiftKey)break;if(this.visible)c=this.Move(a);else if(a==40&&this.input.value){this.visible=1;this.Show()}}return c},Keyup:function(b){b=b||window.event;b=b.keyCode?b.keyCode:b.which?b.which:0;switch(b){case 27:this.Fade();return true;case 8:case 46:break;default:if(b<48)return true}this.visible=1;this.Show();return true},RemoveTags:function(b){return b.replace(/<\/?[^>]+>/g,"")},FindHighlight:function(b){var a=document.getElementById(this.hl);if(a)a.id="";if(!a&&this.suggest.firstChild){a=this.suggest.firstChild.firstChild.childNodes;a=b?a[a.length-1].childNodes[this.col]:a[1].childNodes[this.col]}return a},Higlight:function(b,a){this.FindHighlight();b.id=a?this.hl:""},Search:function(b){if(b){this.input.value=this.RemoveTags(b);this.input.form.submit();return false}},Move:function(b){var a="",c=0;c=document.getElementById(this.hl);var d=b==38?this.FindHighlight(1):this.FindHighlight();if(d){switch(b){case 37:case 39:if(!c)return true;if(b==37){this.col=0;c=d.previousSibling}else{this.col=1;c=d.nextSibling&&d.nextSibling.nextSibling?d.nextSibling:0}if(c){c.id=this.hl;a=c.innerHTML}else{d.id=this.hl;a=d.innerHTML}break;case 40:case 38:if((c=c?b==38?d.parentNode.previousSibling:d.parentNode.nextSibling:d.parentNode)&&c.firstChild.tagName!="TH"){c=c.childNodes[this.col];c.id=this.hl;a=c.innerHTML}else a=this.last_search}a=this.RemoveTags(a);if(this.input.value!=a)this.input.value=a;return false}},Draw:function(b){if(typeof b=="object"&&b.length){for(var a=RegExp(this.input.value,"gi"),c="<table><tr><th>"+this.pc+"</th><th>"+this.pn+'</th></th><th style="border-right:0 none">'+this.pp+"</th></tr>",d=0;d<b.length;d++){c+='<tr><td onmouseover="window.suggest.Higlight(this,1);" onmouseout="window.suggest.Higlight(this,0);" onclick="window.suggest.Search(this.innerHTML);">'+b[d].pc.replace(a,"<strong>$&</strong>")+"</td>";c+='<td onmouseover="window.suggest.Higlight(this,1);" onmouseout="window.suggest.Higlight(this,0);" onclick="window.suggest.Search(this.innerHTML);">'+b[d].pn.replace(a,"<strong>$&</strong>")+"</td>";c+='<td style="font-weight:bold;text-align:right;border-right:0 none">'+b[d].pp+"</td></tr>"}c+="</table>";this.suggest.innerHTML=c;if(this.input.offsetWidth>this.suggest.offsetWidth)this.suggest.firstChild.style.width=this.input.offsetWidth+1+"px";this.suggest.style.visibility="visible";this.visible=1}else this.Fade()},Fade:function(b){var a=this;a.fader&&!b?a.fader.Fade(function(){a.Hide()}):setTimeout(function(){a.Hide()},100)},Hide:function(){if(this.visible){this.visible=0;this.last_search="";this.suggest.style.visibility="hidden";this.suggest.innerHTML=""}},Show:function(){if(this.visible&&this.input.value.length){this.last_search=this.input.value;if(this.cache[this.last_search])this.Draw(this.cache[this.last_search]);else{var b=this,a=this.last_search;setTimeout(function(){b.delay=new Date;b.xhr.open("GET",b.URL+encodeURIComponent(a),true);b.xhr.onreadystatechange=function(){try{b.Query()}catch(c){}};b.xhr.send(null)},200)}}else this.Fade()},Query:function(){if(this.xhr.readyState==4&&this.xhr.status==200){var b={},a="";this.calls++;this.delay=new Date-this.delay;try{b=window.JSON&&window.JSON.parse?window.JSON.parse(this.xhr.responseText):eval("("+this.xhr.responseText+")")||[];a=b.pop();this.cache[a]=b}catch(c){this.Hide();return}a===this.input.value?this.Draw(b):this.Show()}}};if(self!=self.parent)self.parent.Suggest=Suggest;Fader=function(b,a,c){t=this;t.e=b;t.steps=c?c:8;t.duration=a?a:100;t.timer=0};Fader.prototype={Fade:function(b){var a=this,c=2;this.Reset();this.timer=setInterval(function(){c++;a.setOpacity(1/Math.log(c));if(c-3>a.steps){try{typeof b=="function"&&b()}catch(d){}a.Reset()}},Math.round(a.duration/a.steps))},setOpacity:function(b){this.e.style.opacity=b;this.e.style.MozOpacity=b;this.e.style.KhtmlOpacity=b;this.e.style.filter="alpha(opacity="+b*100+");"},Reset:function(){if(this.timer){clearInterval(this.timer);this.timer=0}this.setOpacity(1)}};
