(function($){var timeout;function delayed($this,func,delay){if(timeout){clearTimeout(timeout);}
timeout=setTimeout(function(){func($this);},delay);}
$.fn.extend({auto:function(options){var defaults={delay:1000,func:function(){},instant:false,propagateEnter:false};var options=$.extend(defaults,options);return this.each(function(){var $this=$(this);if(options.instant){options.func($this);}
$this.keyup(function(){delayed($this,options.func,options.delay);return false;});$this.keydown(function(e){if(e.keyCode=='13'){if(options.propagateEnter){return true}else{options.func($this);return false;}}});});}});})(jQuery);resize=function(url,width,height,extension){return template(url,width.toString()+"x"+height.toString(),extension);}
_getFile=function(url){var filenameStart=Math.max(url.lastIndexOf("/"),0);var path=url.substring(0,filenameStart);var filename=url.substring(filenameStart);var extensionStart=filename.lastIndexOf(".");if(extensionStart==-1){extensionStart=filename.length;}
var extension=filename.substring(extensionStart);var nameWithoutExt=filename.substring(0,extensionStart);return new File(path,nameWithoutExt,extension);}
File=function(path,name,extension){this.path=path;this.name=name;this.extension=extension||"";}
template=function(url,templateName,targetExtension){var f=_getFile(url);targetExtension=targetExtension||f.extension;return f.path+f.name+"."+templateName+targetExtension;}
Date.is=function(Ob){try{if(typeof Ob=="object"){if(Ob.constructor==Date){return true;};};}catch(CurError){};return false;};Date.parseFormat=function(CurDate,Mask,DefaultTo){if(typeof CurDate!="string"||CurDate==""){return null;};if(typeof Mask!="string"||Mask==""){return null;};if(typeof DefaultTo!=0&&DefaultTo!=1&&DefaultTo!=2){DefaultTo=0;};var MaskChars="DMYhHmsltTz";var RegExChars="^$.*+?=!:|\\/()[]{}-";var MonthRef={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11}
var RegEx="";Mask+=" ";var DF=[null,null,null,null,null,null,null,null];var CurChar;var MaskPart="";var MaskPartCnt=1;for(var Cnt=0;Cnt<Mask.length;Cnt++){CurChar=Mask.charAt(Cnt);if((MaskChars.indexOf(CurChar)==-1)||(MaskPart!=""&&CurChar!=MaskPart.charAt(MaskPart.length-1))){if(MaskPart!=""){switch(MaskPart){case"YY":case"YYYY":DF[0]=MaskPartCnt;break;case"M":case"MM":case"MMM":case"MMMM":DF[1]=MaskPartCnt;break;case"D":case"DD":case"DDD":case"DDDD":DF[2]=MaskPartCnt;break;case"h":case"hh":case"H":case"HH":DF[3]=MaskPartCnt;break;case"m":case"mm":DF[4]=MaskPartCnt;break;case"s":case"ss":DF[5]=MaskPartCnt;break;case"l":DF[6]=MaskPartCnt;break;case"t":case"T":case"tt":case"TT":DF[7]=MaskPartCnt;break;case"z":DF[8]=MaskPartCnt;break;};switch(MaskPart){case"h":RegEx+="(1[0-2]|[1-9])";break;case"hh":RegEx+="(1[0-2]|0[1-9])";break;case"H":RegEx+="(2[0-4]|1[0-9]|[0-9])";break;case"HH":RegEx+="(2[0-4]|1[0-9]|0[0-9])";break;case"s":case"m":RegEx+="([0-5]?[0-9])";break;case"ss":case"mm":RegEx+="([0-5]?[0-9])";break;case"l":RegEx+="([0-9]+)";break;case"t":case"T":RegEx+="(a|p)";break;case"tt":case"TT":RegEx+="(am|pm)";break;case"D":RegEx+="((?:3[01])|(?:[12][0-9])|(?:0[1-9])|[1-9])";break;case"DD":RegEx+="((?:3[01])|(?:[12][0-9])|(?:0[1-9]))";break;case"DDD":RegEx+="(sun|mon|tue|wed|thu|fri|sat)";break;case"DDDD":RegEx+="(sunday|monday|tuesday|wednesday|thursday|friday|saturday)";break;case"M":RegEx+="((?:1[012])|(?:0[1-9])|[1-9])";break;case"MM":RegEx+="((?:1[012])|(?:0[1-9]))";break;case"MMM":RegEx+="(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)";break;case"MMMM":RegEx+="(january|february|march|april|may|june|july|august|september|october|november|december)";break;case"YY":RegEx+="([0-9]{2})";break;case"YYYY":RegEx+="((?:1[6-9]|[2-9][0-9])[0-9]{2})";break;case"z":RegEx+="(Z|UT|[\+\-](?:1[012]|[0]?[0-9])(?::?[0-5]?[0-9]))";break;};MaskPart="";MaskPartCnt++;};if(MaskChars.indexOf(CurChar)>-1){MaskPart=CurChar;}else{if(RegExChars.indexOf(CurChar)>=0){RegEx+="\\";};RegEx+=CurChar;};}else{MaskPart+=CurChar;};};RegEx=RegEx.substring(0,RegEx.length-1);var ParsedDF;if(ParsedDF=new RegExp("^"+RegEx+"$","i").exec(CurDate)){};if(!ParsedDF){return null};for(var Cnt=0;Cnt<DF.length;Cnt++){if(DF[Cnt]!=null){DF[Cnt]=ParsedDF[DF[Cnt]];};};if(DF[1]!=null){var CurDF=MonthRef[DF[1].substring(0,3).toLowerCase()];if(CurDF!=null){DF[1]=CurDF;}else{DF[1]=DF[1]-1;};};if(DF[7]!=null&&DF[3]!=null&&DF[3]<13){var CurAP=DF[7].substring(0,1).toLowerCase();if(CurAP=="p"){DF[3]=DF[3]+12;};};if(DefaultTo==0){}else if(DefaultTo==1){var NowDate=new Date();if(DF[0]==null){DF[0]=NowDate.getFullYear()};if(DF[1]==null){DF[1]=NowDate.getMonth()};if(DF[2]==null){DF[2]=NowDate.getDate()};if(DF[3]==null){DF[3]=NowDate.getHours()};if(DF[4]==null){DF[4]=NowDate.getMinutes()};if(DF[5]==null){DF[5]=NowDate.getSeconds()};if(DF[6]==null){DF[6]=NowDate.getMilliseconds()};}else if(DefaultTo==2){var NowDate=new Date();if(DF[0]==null){DF[0]=NowDate.getUTCFullYear()};if(DF[1]==null){DF[1]=NowDate.getUTCMonth()};if(DF[2]==null){DF[2]=NowDate.getUTCDate()};if(DF[3]==null){DF[3]=NowDate.getUTCHours()};if(DF[4]==null){DF[4]=NowDate.getUTCMinutes()};if(DF[5]==null){DF[5]=NowDate.getUTCSeconds()};if(DF[6]==null){DF[6]=NowDate.getUTCMilliseconds()};};if(DF[8]==null){return new Date(DF[0],DF[1],DF[2],DF[3],DF[4],DF[5],DF[6]);}else{if(DF[8]=="Z"||DF[8]=="UT"){return new Date(Date.UTC(DF[0],DF[1],DF[2],DF[3],DF[4],DF[5],DF[6]));}else{var ParsedTZ=new RegExp("^([\+\-])(1[012]|[0]?[0-9])(?::?)([0-5]?[0-9])$").exec(DF[8])
var CurTZ=new Date().getTimezoneOffset();var CurTZh=ParsedTZ[1]+ParsedTZ[2]-((CurTZ>=0?"-":"+")+Math.floor(Math.abs(CurTZ)/60))
var CurTZm=ParsedTZ[1]+ParsedTZ[3]-((CurTZ>=0?"-":"+")+(Math.abs(CurTZ)%60))
return new Date(DF[0],DF[1],DF[2],DF[3]-CurTZh,DF[4]-CurTZm,DF[5],DF[6]);};};return null;};Date.parseHttpTimeFormat=function(CurDate){if(typeof CurDate!="string"||CurDate==""){return null;};return Date.parseFormat(CurDate,"DDD, D MMM YYYY HH:mm:ss z");};Date.parseIso8601=function(CurDate){if(typeof CurDate!="string"||CurDate==""){return null;};var S="[\\-/:.]";var Yr="((?:1[6-9]|[2-9][0-9])[0-9]{2})";var Mo=S+"((?:1[012])|(?:0[1-9])|[1-9])";var Dy=S+"((?:3[01])|(?:[12][0-9])|(?:0[1-9])|[1-9])";var Hr="(2[0-4]|[01]?[0-9])";var Mn=S+"([0-5]?[0-9])";var Sd="(?:"+S+"([0-5]?[0-9])(?:[.,]([0-9]+))?)?";var TZ="(?:(Z)|(?:([\+\-])(1[012]|[0]?[0-9])(?::?([0-5]?[0-9]))?))?";var TF;if(TF=new RegExp("^"+Yr+"(?:"+Mo+"(?:"+Dy+")?)?"+"$").exec(CurDate)){}else if(TF=new RegExp("^"+Yr+Mo+Dy+"[Tt ]"+Hr+Mn+Sd+TZ+"$").exec(CurDate)){};if(!TF){return null};if(!TF[2]){TF[2]=1}else{TF[2]=TF[2]-1};if(!TF[3]){TF[3]=1};if(!TF[4]){TF[4]=0};if(!TF[5]){TF[5]=0};if(!TF[6]){TF[6]=0};if(!TF[7]){TF[7]=0};if(!TF[8]){TF[8]=null};if(TF[9]!="-"&&TF[9]!="+"){TF[9]=null};if(!TF[10]){TF[10]=0}else{TF[10]=TF[9]+TF[10]};if(!TF[11]){TF[11]=0}else{TF[11]=TF[9]+TF[11]};if(!TF[8]&&!TF[9]){return new Date(TF[1],TF[2],TF[3],TF[4],TF[5],TF[6],TF[7]);};if(TF[8]=="Z"){return new Date(Date.UTC(TF[1],TF[2],TF[3],TF[4],TF[5],TF[6],TF[7]));};if(TF[9]=="-"||TF[9]=="+"){var CurTZ=new Date().getTimezoneOffset();var CurTZh=TF[10]-((CurTZ>=0?"-":"+")+Math.floor(Math.abs(CurTZ)/60))
var CurTZm=TF[11]-((CurTZ>=0?"-":"+")+(Math.abs(CurTZ)%60))
return new Date(TF[1],TF[2],TF[3],TF[4]-CurTZh,TF[5]-CurTZm,TF[6],TF[7]);};return null;};Date.prototype.isWeekday=function(){if(this.getDay()!=0&&this.getDay()!=6){return true;}else{return false;};};Date.prototype.isLeapYear=function(){var CurYear=this.getFullYear();if(CurYear%400==0){return true;}else if(CurYear%100==0){return false;}else if(CurYear%4==0){return true;}else{return false;};};Date.prototype.dateFormat=function(Mask){var FormattedDate="";var MaskChars="DMY";var Ref_MonthFullName=["January","February","March","April","May","June","July","August","September","October","November","December"];var Ref_MonthAbbreviation=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var Ref_DayFullName=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var Ref_DayAbbreviation=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];switch(Mask){case"short":Mask="M/D/YY";break;case"medium":Mask="MMM D, YYYY";break;case"long":Mask="MMMM D, YYYY";break;case"full":Mask="DDDD, MMMM D, YYYY";break;};Mask+=" ";var CurChar;var MaskPart="";for(var Cnt=0;Cnt<Mask.length;Cnt++){CurChar=Mask.charAt(Cnt);if((MaskChars.indexOf(CurChar)==-1)||(MaskPart!=""&&CurChar!=MaskPart.charAt(MaskPart.length-1))){if(MaskPart!=""){switch(MaskPart){case"D":FormattedDate+=this.getDate();break;case"DD":FormattedDate+=("0"+this.getDate()).slice(-2);break;case"DDD":FormattedDate+=Ref_DayAbbreviation[this.getDay()];break;case"DDDD":FormattedDate+=Ref_DayFullName[this.getDay()];break;case"M":FormattedDate+=this.getMonth()+1;break;case"MM":FormattedDate+=("0"+(this.getMonth()+1)).slice(-2);break;case"MMM":FormattedDate+=Ref_MonthAbbreviation[this.getMonth()];break;case"MMMM":FormattedDate+=Ref_MonthFullName[this.getMonth()];break;case"YY":FormattedDate+=("0"+this.getFullYear()).slice(-2);break;case"YYYY":FormattedDate+=("000"+this.getFullYear()).slice(-4);break;};MaskPart="";};if(MaskChars.indexOf(CurChar)>-1){MaskPart=CurChar;}else{FormattedDate+=CurChar;};}else{MaskPart+=CurChar;};};FormattedDate=FormattedDate.substring(0,FormattedDate.length-1);return FormattedDate;};Date.prototype.timeFormat=function(Mask){var FormattedTime="";var MaskChars="hHmsltT";switch(Mask){case"short":Mask="h:mm tt";break;case"medium":Mask="h:mm:ss tt";break;case"long":Mask="h:mm:ss.l tt";break;case"full":Mask="h:mm:ss.l tt";break;};Mask+=" ";var CurChar;var MaskPart="";for(var Cnt=0;Cnt<Mask.length;Cnt++){CurChar=Mask.charAt(Cnt);if((MaskChars.indexOf(CurChar)==-1)||(MaskPart!=""&&CurChar!=MaskPart.charAt(MaskPart.length-1))){if(MaskPart!=""){switch(MaskPart){case"h":var CurValue=this.getHours();if(CurValue>12){CurValue=CurValue-12;};FormattedTime+=CurValue;break;case"hh":var CurValue=this.getHours();if(CurValue>12){CurValue=CurValue-12;};FormattedTime+=("0"+CurValue).slice(-2);break;case"H":FormattedTime+=("0"+this.getHours()).slice(-2);break;case"HH":FormattedTime+=("0"+this.getHours()).slice(-2);break;case"m":FormattedTime+=this.getMinutes();break;case"mm":FormattedTime+=("0"+this.getMinutes()).slice(-2);break;case"s":FormattedTime+=this.getSeconds();break;case"ss":FormattedTime+=("0"+this.getSeconds()).slice(-2);break;case"l":FormattedTime+=("00"+this.getMilliseconds()).slice(-3);break;case"t":if(this.getHours()>12){FormattedTime+="p";}else{FormattedTime+="a";};break;case"tt":if(this.getHours()>12){FormattedTime+="pm";}else{FormattedTime+="am";};break;case"T":if(this.getHours()>12){FormattedTime+="P";}else{FormattedTime+="A";};break;case"TT":if(this.getHours()>12){FormattedTime+="PM";}else{FormattedTime+="AM";};break;};MaskPart="";};if(MaskChars.indexOf(CurChar)>-1){MaskPart=CurChar;}else{FormattedTime+=CurChar;};}else{MaskPart+=CurChar;};};FormattedTime=FormattedTime.substring(0,FormattedTime.length-1);return FormattedTime;};Date.prototype.iso8601Format=function(Style,isUTC){if(typeof Style!="string"&&typeof Style!="number"){var Style="YMDHMSM";};var FormattedDate="";var AddTZ=false;switch(Style){case"Y":case 1:FormattedDate+=this.dateFormat("YYYY");break;case"YM":case 2:FormattedDate+=this.dateFormat("YYYY-MM");break;case"YMD":case 3:FormattedDate+=this.dateFormat("YYYY-MM-DD");break;case"YMDHM":case 4:FormattedDate+=this.dateFormat("YYYY-MM-DD")+"T"+this.timeFormat("HH:mm");AddTZ=true;break;case"YMDHMS":case 5:FormattedDate+=this.dateFormat("YYYY-MM-DD")+"T"+this.timeFormat("HH:mm:ss");AddTZ=true;break;case"YMDHMSM":case 6:FormattedDate+=this.dateFormat("YYYY-MM-DD")+"T"+this.timeFormat("HH:mm:ss.l");AddTZ=true;break;};if(AddTZ){if(isUTC){FormattedDate+="Z";}else{var TimeZoneOffset=this.getTimezoneOffset();var TimeZoneInfo=(TimeZoneOffset>=0?"-":"+")+("0"+(Math.floor(Math.abs(TimeZoneOffset)/60))).slice(-2)+":"+("00"+(Math.abs(TimeZoneOffset)%60)).slice(-2);FormattedDate+=TimeZoneInfo;};};return FormattedDate;};Date.prototype.httpTimeFormat=function(isUTC){var FormattedDate="";FormattedDate+=this.dateFormat("DDD, D MMM YYYY ");FormattedDate+=this.timeFormat("HH:mm:ss ");if(isUTC){FormattedDate+="UT";}else{var TimeZoneOffset=this.getTimezoneOffset();var TimeZoneInfo=(TimeZoneOffset>=0?"-":"+")+("0"+(Math.floor(Math.abs(TimeZoneOffset)/60))).slice(-2)+("00"+(Math.abs(TimeZoneOffset)%60)).slice(-2);FormattedDate+=TimeZoneInfo;};return FormattedDate;};Date.prototype.dayOfYear=function(){var FirstOfYear=new Date(this.getFullYear(),0,1);return this.diff(FirstOfYear,"days")+1;};Date.prototype.weekOfYear=function(){var FirstOfYear=new Date(this.getFullYear(),0,1);return this.diff(FirstOfYear,"weeks")+1;};Date.prototype.add=function(Amount,DatePart,Destructive){DatePart=DatePart.toLowerCase();var ReturnDate=new Date(this);var CurAbsAmount=Math.abs(Amount);var Factors=new Object();Factors.milliseconds=1;Factors.seconds=1000;Factors.minutes=60000;Factors.quarterhours=900000;Factors.warhols=900000;Factors.halfhours=1800000;Factors.hours=3600000;Factors.days=86400000;Factors.weeks=604800000;switch(DatePart){case"milliseconds":case"seconds":case"minutes":case"quarterhours":case"warhols":case"halfhours":case"hours":case"days":case"weeks":ReturnDate=new Date(this.getTime()+(Amount*Factors[DatePart]));break;case"businessdays":if(CurAbsAmount>5){var CurWeeks=Math.floor(CurAbsAmount/5);var CurDays=CurAbsAmount%5;if(Amount<0){CurWeeks=-CurWeeks;CurDays=-CurDays;};}else{var CurWeeks=0;var CurDays=Amount;};ReturnDate=ReturnDate.add(CurWeeks,"weeks");ReturnDate=ReturnDate.add(CurDays,"days");if(ReturnDate.getDay()==0){if(Amount<0){ReturnDate=ReturnDate.add(-2,"days");}else{ReturnDate=ReturnDate.add(1,"days");};};if(ReturnDate.getDay()==6){if(Amount<0){ReturnDate=ReturnDate.add(-1,"days");}else{ReturnDate=ReturnDate.add(2,"days");};};break;case"businessweeks":ReturnDate=ReturnDate.add(Amount*5,"businessdays");break;case"wholeweeks":if(Amount<0){ReturnDate=ReturnDate.add(-(ReturnDate.getDay()),"days");}else{ReturnDate=ReturnDate.add(ReturnDate.getDay()+(6-ReturnDate.getDay()),"days");};ReturnDate=ReturnDate.add(Amount,"weeks");break;case"months":if(CurAbsAmount>11){var CurYears=Math.floor(CurAbsAmount/12);var CurMonths=CurAbsAmount%12;if(Amount<0){CurYears=-CurYears;CurMonths=-CurMonths;};}else{var CurYears=0;var CurMonths=Amount;};ReturnDate=ReturnDate.add(CurYears,"years");var TempReturnDate=new Date(ReturnDate);TempReturnDate.setDate(1);TempReturnDate=new Date(new Date(TempReturnDate).setMonth(TempReturnDate.getMonth()+CurMonths));ReturnDate=new Date(new Date(ReturnDate).setMonth(ReturnDate.getMonth()+CurMonths));if(ReturnDate.getMonth()!=TempReturnDate.getMonth()){ReturnDate.setDate(0)};break;case"years":var Feb29=false;if(ReturnDate.getMonth()==1&&ReturnDate.getDate()==29){Feb29=true;};ReturnDate=new Date(new Date(this).setFullYear(this.getFullYear()+Amount));if(Feb29){if(ReturnDate.getMonth!=1){ReturnDate.setDate(0);};};break;};if(!Destructive){return ReturnDate;}else{this.setTime(ReturnDate.getTime());return this;};};Date.prototype.diff=function(CompareDate,DatePart){DatePart=DatePart.toLowerCase();var Diff;if(this.getTime()<=CompareDate.getTime()){var Date1=new Date(this);var Date2=new Date(CompareDate);}else{var Date1=new Date(CompareDate);var Date2=new Date(this);};var Factors=new Object();Factors.milliseconds=1;Factors.seconds=1000;Factors.minutes=60000;Factors.quarterhours=900000;Factors.warhols=900000;Factors.halfhours=1800000;Factors.hours=3600000;Factors.days=86400000;Factors.weeks=604800000;switch(DatePart){case"milliseconds":case"seconds":case"minutes":case"quarterhours":case"warhols":case"halfhours":case"hours":case"days":case"weeks":var BaseDiff=Date1.getTime()-Date2.getTime();Diff=parseInt(BaseDiff/Factors[DatePart]);break;case"businessdays":var BDaysCnt=0;while(Date1.getTime()<Date2.getTime()){Date1=Date1.add(1,"days");if(Date1.getDay()>0&&Date1.getDay()<6){BDaysCnt++;};};if(Date2.getDay()==0||Date2.getDay()==6){Diff=BDaysCnt;}else{if(Date1.diff(Date2,"days")>0){Diff=BDaysCnt;}else{Diff=BDaysCnt-1;};};break;case"businessweeks":Diff=parseInt(Date1.diff(Date2,"businessdays")/5);break;case"wholeweeks":Date1=Date1.add(Date1.getDay()+(6-Date1.getDay()),"days");Diff=Date1.diff(Date2,"weeks");break;case"months":var MonthsCnt=Date1.diff(Date2,"years")*12;Date1=Date1.add(MonthsCnt,"months");while(Date1.getTime()<Date2.getTime()){Date1=Date1.add(1,"months");MonthsCnt++;};Diff=MonthsCnt-1;break;case"years":var YearsCnt=0;while(Date1.getTime()<Date2.getTime()){Date1=Date1.add(1,"years");YearsCnt++;};Diff=YearsCnt-1;break;};return Math.abs(Diff);};Date.prototype.compare=function(CompareDate,DatePart){if(!DatePart){var DatePart="millisecond";};DatePart=DatePart.toLowerCase();var Date1=new Date(this);var Date2=new Date(CompareDate);var Result;switch(DatePart){case"millisecond":break;case"second":Date1.setMilliseconds(1);Date2.setMilliseconds(1);break;case"minute":Date1.setMilliseconds(1);Date2.setMilliseconds(1);Date1.setSeconds(1);Date2.setSeconds(1);break;case"hour":Date1.setMilliseconds(1);Date2.setMilliseconds(1);Date1.setSeconds(1);Date2.setSeconds(1);Date1.setMinutes(1);Date2.setMinutes(1);break;case"day":Date1.setMilliseconds(1);Date2.setMilliseconds(1);Date1.setSeconds(1);Date2.setSeconds(1);Date1.setMinutes(1);Date2.setMinutes(1);Date1.setHours(1);Date2.setHours(1);break;case"month":Date1.setMilliseconds(1);Date2.setMilliseconds(1);Date1.setSeconds(1);Date2.setSeconds(1);Date1.setMinutes(1);Date2.setMinutes(1);Date1.setHours(1);Date2.setHours(1);Date1.setDate(1);Date2.setDate(1);break;case"year":Date1.setMilliseconds(1);Date2.setMilliseconds(1);Date1.setSeconds(1);Date2.setSeconds(1);Date1.setMinutes(1);Date2.setMinutes(1);Date1.setHours(1);Date2.setHours(1);Date1.setDate(1);Date2.setDate(1);Date1.setMonth(1);Date2.setMonth(1);break;};if(Date1.getTime()==Date2.getTime()){Result=0;}else if(Date1.getTime()<Date2.getTime()){Result=-1;}else{Result=1;};return Result;};(function($){$.fn.extend({search:function(options){var defaults={scrollDuration:1000,type:"products"};var options=$.extend(defaults,options);return this.each(function(){$this=$(this);var search=new Search();var args={query:options.query,type:options.type};search.fetch(args,function(result){options.resultRenderer($this,result,options.onSelect);if(options.onSelect){var $first=$this.children(":first");var $last=$this.children(":last");$first.addClass("selected");navigate=function(direction){if(direction=="down"){var $next=$this.children(".selected").removeClass("selected").next();if($next.size()==0){$next=$first;}}else{var $next=$this.children(".selected").removeClass("selected").prev();if($next.size()==0){$next=$last;}}
$next.addClass("selected");};select=function(){$this.find(".selected").trigger("itemselect");};}});});}});Search=function(args){};Search.prototype={fetch:function(args,callback){var start_date=args.start_date;var stop_date=args.stop_date;var query=args.query;var type=args.type;var params=new Array();if(query){params.push({name:"q",value:query});}
if(start_date){params.push({name:"start_date",value:timespan.start.iso8601Format("YMD")});}
if(stop_date){params.push({name:"end_date",value:timespan.end.iso8601Format("YMD")});}
$.getJSON("/search/api/"+type,params,callback);}};})(jQuery);(function($){$(document).ready(function(){var renderTagResult=function($target,tags){for(var tag_type in tags){var $result=$target.find(".tags ."+tag_type.toLowerCase()+" ul");var $noresult=$target.find(".tags ."+tag_type.toLowerCase()+" .no-result-inner");$result.empty();var tag_type_tags=tags[tag_type]
if(tag_type_tags.length==0){$noresult.fadeIn("fast");}else{$noresult.fadeOut("fast");$.each(tag_type_tags,function(i,tag){var $tag=$(".templates .autocomplete.tag").clone();$tag.find(".name").html(tag.highlighted_name);$tag.find(".count").text(tag.count);$tag.find(".tag-link").attr("href",tag.link);$result.append($tag);});}}}
var renderProductResult=function($target,products,type){var $resultList=$target.find(".products ."+type+" ul")
var $noResult=$("#auto-search-result ."+type+" .no-result-inner")
$resultList.empty();if(products.length==0){$noResult.fadeIn("fast");}else{$noResult.fadeOut("fast");$.each(products,function(i,product){var $product=$(".templates .autocomplete.product").clone();$product.find(".name").html(product.highlighted_name);$product.find(".release-date").text(product.release_date);$product.find(".product-link").attr("href","/pi/"+product.slug);var src=template(product.image,"timeline_product",".png");$product.find("img").attr("src",src).attr("width",30).attr("height",30);$resultList.append($product);});}};var renderResult=function($target,result){$("#auto-search-result .progress-indicator").fadeOut("fast");renderProductResult($target,result.products.released,"released")
renderProductResult($target,result.products.upcoming,"upcoming")
renderTagResult($target,result.tags)};var result=$("#auto-search").tooltip({position:'bottom center',events:{def:"error, error"},effect:'fade',fadeInSpeed:120,api:true});$("#auto-search form input.query").auto({delay:200,instant:false,propagateEnter:true,func:function($this){var query=$this.val();if(query==""){result.hide();}else{result.show();$("#auto-search-result .progress-indicator").fadeIn("fast");$("#auto-search-result").search({query:query,resultRenderer:renderResult,type:'releasedandupcomingproducts'});}}});});})(jQuery);