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

