/*

 SearchNavigator - based on the Autocomplete jQuery plugin.

 Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, J?rn Zaefferer
 Copyright (c) 2011 exorbyte GmbH

 The code has been used under the MIT license:
 http://www.opensource.org/licenses/mit-license.php


 Please be aware that the removal of the Exorbyte logo from the Suggest may incur
 additional monthly costs. Please contact Exorbyte to discuss the costs of removing the logo.

 Bitte beachten Sie, dass die Entfernung des Exorbyte-Logos mit einem Aufpreis auf 
 die monatliche Geb?hr berechnet wird. Sollten Sie Interesse an der Entfernung des Logos
 haben, so kontaktieren Sie bitte Ihren Ansprechpartner bei Exorbyte. 

 Version: $Id: sn-ajaxQueue-bgiframe-cookie.min.js 5901 2011-09-21 13:43:48Z plancaster $

*/
(function(b){b.fn.extend({autocomplete:function(a,c){var d=typeof a==="string",c=b.extend({},b.Autocompleter.defaults,{url:d?a:null,data:d?null:a,delay:d?b.Autocompleter.defaults.delay:10,max:c&&!c.scroll?b.Autocompleter.defaults.max:50},c),d="";b.cookie&&(d=b.cookie("ecs-userId"),d||(d=b.Autocompleter.exoid(),b.cookie("ecs-userId",d,{expires:30})));var e=location.host.replace(/^www./,"");b.extend(c.extraParams,{d:e,u:d});c.highlight=c.highlight||function(a){return a};return this.each(function(){new b.Autocompleter(this,
c)})},result:function(a){return this.bind("result",a)},search:function(a){return this.trigger("search",[a])},triggerSearch:function(a){return this.trigger("triggerSearch",[a])},setOptions:function(a){return this.trigger("setOptions",[a])},unautocomplete:function(){return this.trigger("unautocomplete")}});b.Autocompleter=function(a,c){function d(){k.focus();i.show()}function e(){h=!1;b(a.form).submit()}function g(){s=i.selected();if(!s)return!1;var p=s.value;v=p;b.Autocompleter.SubmitTrackingMsg(s.term,
p,s.data.Type,i.getIndexActive()+1,"sn_click",c);k.val(p);t();setTimeout(n,150);return!0}function n(){h=!1;doSubmit=k.trigger("result",[s.data,s.value,s.term])}function m(p,a){if(w===f.DEL)i.hide();else{var b=k.val();if(a||b!==v)v=b,b=q(b),b=b[b.length-1],b.length>=c.minChars?(k.addClass(c.loadingClass),o(b,x,t)):(k.removeClass(c.loadingClass),i.hide())}}function q(a){if(!a)return[""];return[a]}function t(){i.hide();clearTimeout(r);k.removeClass(c.loadingClass)}function x(a,b){b&&b.length&&u?(k.removeClass(c.loadingClass),
i.display(b,a),i.show()):t()}function o(p,d,e){if(typeof c.url==="string"&&c.url.length>0){var f={sv:"sn",limit:c.max};b.each(c.extraParams,function(a,b){var p=typeof b==="function"?b():b;p&&(f[a]=p)});b.each(c.searchFields,function(b,a){f[a]=p});b.ajax({mode:"abort",port:"autocomplete"+a.name,dataType:c.dataType,cache:c.httpCaching,url:c.url,data:f,scriptCharset:"utf-8",success:function(a){var b=a;c.dataType==="text"&&(b=c.parse&&c.parse(a));d(p,b)}})}else i.emptyList(),e(p)}var f={UP:38,DOWN:40,
DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8},j={X:0,Y:0};b().mousemove(function(a){j.X=a.pageX;j.Y=a.pageY});var k=b(a).attr("autocomplete","off").addClass(c.inputClass),r,v="",u=0,w,l={mouseDownOnSelect:!1},i=b.Autocompleter.Select(c,a,g,l),s,h;b.browser.opera&&b(a.form).bind("submit.autocomplete",function(){if(h)return h=!1});k.bind((b.browser.opera?"keypress":"keydown")+".autocomplete",function(a){u=1;w=a.keyCode;switch(a.keyCode){case f.UP:a.preventDefault();i.visible()?
i.prev():m(0,!0);break;case f.DOWN:a.preventDefault();i.visible()?i.next():m(0,!0);break;case f.PAGEUP:a.preventDefault();i.visible()?i.pageUp():m(0,!0);break;case f.PAGEDOWN:a.preventDefault();i.visible()?i.pageDown():m(0,!0);break;case f.TAB:case f.RETURN:if(!i.visible()||!g())b.Mainsearch?setTimeout(e,50):(b.Autocompleter.SubmitTrackingMsg(k.val(),null,null,null,"fullsearch",c),setTimeout(e,150)),a.preventDefault(),h=!0;a.preventDefault();h=!0;return!1;case f.ESC:i.hide();break;default:clearTimeout(r),
r=setTimeout(m,c.delay)}}).bind("keypress.autocomplete",function(){}).focus(function(){u++}).blur(function(){u=0;if(i.visible()&&c.scroll){var a=i.boxOffset(),b=a.left+a.width,d=a.top+a.height;j.X>a.left&&j.X<b&&j.Y>a.top&&j.Y<d?k.focus():document.activeElement&&document.activeElement.tagName==="HTML"?k.focus():l.mouseDownOnSelect||(clearTimeout(r),r=setTimeout(t,200))}else i.visible()&&document.activeElement&&document.activeElement.tagName==="HTML"?k.focus():l.mouseDownOnSelect||(clearTimeout(r),
r=setTimeout(t,200))}).bind("stopBlur",function(){clearTimeout(r);r=setTimeout(d,50)}).click(function(){u++>1&&!i.visible()&&m(0,!0)}).bind("search",function(){function a(b,p){if(p&&p.length)for(e=0;e<p.length;e++)if(p[e].value.toLowerCase()===b.toLowerCase()){d=p[e];break}typeof c==="function"?c(d):k.trigger("result",d&&[d.data,d.value,d.term])}var c=arguments.length>1?arguments[1]:null,d,e;b.each(q(k.val()),function(b,c){o(c,a,a)})}).bind("triggerSearch",function(){if(i.visible())k.blur();else{var a=
arguments.length>1?arguments[1]:null;a&&(k.focus(),k.addClass(c.loadingClass),o(a,x,t))}}).bind("setOptions",function(a,d){b.extend(c,d)}).bind("unautocomplete",function(){i.unbind();k.unbind();k.unbind(".autocomplete");b(a.form).unbind(".autocomplete")})};b.Autocompleter.defaults={inputClass:"ac_input",windowClass:"ac_box",headerClass:"ac_header",footerClass:"ac_footer",logoClass:"ac_logo",resultsClass:"ac_results",loadingClass:"ac_loading",treeviewClass:"treeview-famfamfam",showLogo:!0,exoUrl:"http://commerce.exorbyte.de/",
treeview:!1,selectableCats:!1,minChars:2,delay:300,httpCaching:!1,max:15,dataType:"json",projectId:-1,extraParams:{},searchFields:["q"],displayField:"",selectFirst:!1,formatHeader:null,formatFooter:null,formatItem:function(a,b,d,e){return e},width:0,leftOffset:0,topOffset:0,highlight:!1,scroll:!1,scrollHeight:180};b.Autocompleter.Select=function(a,c,d,e){function g(){if(w){l=b("<div/>").hide().addClass(a.windowClass).css("position","absolute").appendTo(document.body);l.mouseout(function(){h&&h.find("span."+
o.ACTIVE).removeClass(o.ACTIVE)});a.width>0&&l.css("width",a.width);a.formatHeader&&(i=b("<div/>").addClass(a.headerClass).html(a.formatHeader()).appendTo(l));var c=b("<div/>").addClass(a.resultsClass).appendTo(l);h=b("<ul>").appendTo(c);a.treeview&&b(h).treeview({collapsed:!0});a.formatFooter&&(s=b("<div/>").addClass(a.footerClass).html(a.formatFooter()).appendTo(l));a.showLogo&&b("<div/>").appendTo(l).addClass(a.logoClass).html('<span class="exo_logo">Powered by <img alt="exorbyte" src="'+document.location.protocol+
'//content.exorbyte.com/sn/img/exlogo_tiny.png" /></span>').click(function(){window.open(a.exoUrl,"_blank");return!1});w=!1}}function n(a){for(a=a.target;a&&a.tagName==="SPAN"&&a.parentNode&&a.parentNode.tagName!=="LI";)a=a.parentNode;if(!a)return[];return a}function m(b){f.slice(j,j+1).removeClass(o.ACTIVE);j+=b;j<0?j=f.size()-1:j>=f.size()&&(j=0);b=f.slice(j,j+1).addClass(o.ACTIVE);if(a.scroll){var c=0;f.slice(0,j).each(function(){c+=this.offsetHeight});c+b[0].offsetHeight-h.scrollTop()>h[0].clientHeight?
h.scrollTop(c+b[0].offsetHeight-h.innerHeight()):c<h.scrollTop()&&h.scrollTop(c)}}function q(c){var d=a.displayField?this.data[a.displayField]:this.text,e=a.formatItem(this.data,r+1,v,d,u);if(e===!1)return r++,!0;c=b("<li/>").attr("id",this.id||r).appendTo(c);c.html(d);d=c.text();c.html("");e=b("<span/>").addClass(o.ITEM).html(a.highlight(e,u)+"&nbsp;").appendTo(c);b.data(e[0],"ac_data",{data:this.data,value:d,term:u});r++;this.data.SN_type.split("_")[0]==="cat"&&c.children("span").addClass(o.CATEGORY);
a.treeview&&this.expanded&&c.addClass("open");if(this.hasChildren||this.children&&this.children.length)d=b("<ul/>").appendTo(c),this.children&&this.children.length&&b.each(this.children,q,[d])}function t(){f=h.find("span."+o.ITEM);a.selectableCats||(f=f.not("span."+o.CATEGORY));f.mouseover(function(a){for(a=n(a);f.index(a)<0;)a=a.parentNode;j=f.removeClass(o.ACTIVE).index(a);b(a).addClass(o.ACTIVE)}).click(function(a){b(n(a)).addClass(o.ACTIVE);d();c.focus();return!1}).mousedown(function(){e.mouseDownOnSelect=
!0}).mouseup(function(){e.mouseDownOnSelect=!1})}function x(){h.empty();r=0;v=k.length;child=h;b.each(k,q,[child]);a.treeview&&(b(h).addClass(a.treeviewClass),b(h).treeview({add:child}),h.find("div."+b.fn.treeview.classes.hitarea).click(function(){b(c).trigger("stopBlur")}));t();a.selectFirst&&!a.treeview&&(f.slice(0,1).addClass(o.ACTIVE),j=0)}var o={ACTIVE:"ac_over",ITEM:"ac_item",CATEGORY:"ac_cat"},f,j=-1,k,r=0,v=0,u="",w=!0,l,i,s,h;return{display:function(b,c){g();k=b;u=c;x();a.formatFooter&&s.html(a.formatFooter());
a.formatHeader&&i.html(a.formatHeader())},next:function(){m(1)},prev:function(){m(-1)},pageUp:function(){j!==0&&j-8<0?m(-j):m(-8)},pageDown:function(){j!==f.size()-1&&j+8>f.size()?m(f.size()-1-j):m(8)},hide:function(){l&&l.hide();j=-1},visible:function(){return l&&l.is(":visible")},current:function(){return this.visible()&&(f.filter("."+o.ACTIVE)[0]||a.selectFirst&&f[0])},boxOffset:function(){var a=l&&l.offset();return l&&{width:l.innerWidth(),height:l.innerHeight(),top:a.top,left:a.left}},show:function(){var d=
b(c).offset();b.browser.msie&&b.browser.version==="6.0"&&b.fn.bgiframe&&l.bgiframe();l.css({width:typeof a.width==="string"||a.width>0?a.width:b(c).width(),top:d.top+c.offsetHeight+a.topOffset,left:d.left+a.leftOffset}).show();if(a.scroll&&(h.scrollTop(0),h.css({maxHeight:a.scrollHeight,overflowY:"auto"}),b.browser.msie&&typeof document.body.style.maxHeight==="undefined")){var e=0;f.each(function(){e+=this.offsetHeight});d=e>a.scrollHeight;h.css("height",d?a.scrollHeight:e);d||f.width(h.width()-parseInt(f.css("padding-left"),
10)-parseInt(f.css("padding-right"),10))}},selected:function(){var a=f&&f.filter("."+o.ACTIVE).removeClass(o.ACTIVE),c;a&&a.length&&(c=b.data(a[0],"ac_data"));return c},emptyList:function(){h&&h.empty()},getIndexActive:function(){return j},unbind:function(){l&&l.remove()}}};b.Autocompleter.Selection=function(a,b,d){if(a.createTextRange){var e=a.createTextRange();e.collapse(!0);e.moveStart("character",b);e.moveEnd("character",d);e.select()}else if(a.setSelectionRange)a.setSelectionRange(b,d);else if(a.selectionStart)a.selectionStart=
b,a.selectionEnd=d;a.focus()};b.Autocompleter.SubmitTrackingMsg=function(a,c,d,e,g,n){var m=typeof n.extraParams.u==="string"?n.extraParams.u:"";m===""&&b.cookie&&(m=b.cookie("ecs-userId"));var q=typeof n.extraParams.d==="string"?n.extraParams.d:location.host.replace(/^www./,""),t={sv:"tracker"};b.each({st:a,ct:c,ctt:d,d:q,a:g,cp:e,u:m,p:n.projectId},function(a,b){b&&(t[a]=b)});typeof useGA!="undefined"&&useGA&&typeof _gat!="undefined"&&(c=_gat._getTrackerByName(),typeof c!="undefined"&&(g=="fullsearch"||
g=="sn_click")&&c._trackPageview("/exorbyteSearch?query='"+a+"'&search_type='"+g));b.ajax({async:"false",dataType:"jsonp",type:"GET",cache:!1,url:n.url,data:t})};b.Autocompleter.exoid=function(a){var b=function(){return((1+Math.random())*65536|0).toString(16).substring(1)};if(typeof a==="object"&&typeof a.prefix==="string")a=a.prefix;else return(a||"")+b()+b()+"-"+b()+"-"+b()+"-"+b()+"-"+b()+b()+b()}})(jQuery);
function urlencode(b){b=(b+"").toString();return encodeURIComponent(b).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A")}
(function(b){b.cookie=function(a,c,d){if(typeof c!=="undefined"){d=d||{};if(c===null)c="",d.expires=-1;var e="";if(d.expires&&(typeof d.expires==="number"||d.expires.toUTCString))typeof d.expires==="number"?(e=new Date,e.setTime(e.getTime()+d.expires*864E5)):e=d.expires,e="; expires="+e.toUTCString();var g=d.path?"; path="+d.path:"",n=d.domain?"; domain="+d.domain:"",d=d.secure?"; secure":"";document.cookie=[a,"=",encodeURIComponent(c),e,g,n,d].join("")}else{c=null;if(document.cookie&&document.cookie!==
""){d=document.cookie.split(";");for(e=0;e<d.length;e++)if(g=b.trim(d[e]),g.substring(0,a.length+1)===a+"="){c=decodeURIComponent(g.substring(a.length+1));break}}return c}}})(jQuery);
(function(b){var a=b.ajax,c={},d=[],e=[];b.ajax=function(g){var g=b.extend(g,b.extend({},b.ajaxSettings,g)),n=g.port;switch(g.mode){case "abort":return c[n]&&c[n].abort(),c[n]=a.apply(this,arguments);case "queue":var m=g.complete;g.complete=function(){m&&m.apply(this,arguments);b([a]).dequeue("ajax"+n)};b([a]).queue("ajax"+n,function(){a(g)});return;case "sync":var q=d.length;d[q]={error:g.error,success:g.success,complete:g.complete,done:!1};e[q]={error:[],success:[],complete:[]};g.error=function(){e[q].error=
arguments};g.success=function(){e[q].success=arguments};g.complete=function(){e[q].complete=arguments;d[q].done=!0;if(q==0||!d[q-1])for(var a=q;a<d.length&&d[a].done;a++)d[a].error&&d[a].error.apply(b,e[a].error),d[a].success&&d[a].success.apply(b,e[a].success),d[a].complete&&d[a].complete.apply(b,e[a].complete),d[a]=null,e[a]=null}}return a.apply(this,arguments)}})(jQuery);

