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

