/*
 *  © 2000-2010 deviantART, Inc. All rights reserved.
 */
if(!window.AutoExec){AutoExec=[]}var DeviationPicker=(function(C){var A=['<div class="deepee-box">','<div class="deepee-title"></div>','<div class="deepee-navbar">','<div class="deepee-search">','<input class="search-field" type="text" value="" />','<input class="search-button" type="submit" value="" />','<input class="search-cancel" type="button" value="" />',"</div>",'<div class="deepee-navtabs"></div>','<div class="deepee-navinfo">','<span class="deepee-navstatus"></span>','<span class="deepee-navextra"></span>','<span class="deepee-tabnavextra"></span>',"</div>","</div>",'<div class="deepee-body">','<div class="deepee-searchcontainer">','<div class="browse-bar">','<div class="browse-bar-custom"></div>','<div class="browse-bar-left"><a href="#" class="a bb-popular">Popular</a><a href="#" class="a bb-newest">Newest</a></div>','<div class="browse-bar-right"><a href="#" class="a bb-8h">8 hours</a><a href="#" class="a bb-24h">24 hours</a><a href="#" class="a bb-72h">3 days</a><a href="#" class="a bb-168h">1 week</a><a href="#" class="a bb-744h">1 month</a><a href="#" class="a bb-alltime">All time</a></div>',"</div>",'<div class="deepee-searchbody">','<div class="deepee-sidebar"></div>','<div class="search-results"><p><i></i></p></div>','<div class="search-pager"></div>',"</div>","</div>",'<div class="deepee-custom"></div>',"</div>",'<div class="bottom-bit">','<table class="f" align="center"><tbody><tr class="action-buttons">','<td class="f"><a class="gmbutton2 gmbutton2gg dialog-ok" href="#"><span class="ok-label">OK</span><span class="deepee-submit-count"></span><b></b></a></td>','<td class="f"><a class="gmbutton2 gmbutton2c dialog-cancel" href="#"><span class="cancel-label">Cancel</span><b></b></a></td>',"</tr></tbody></table>","</div>","</div>"].join("");var B=function(E){var D=[];C.each(E,function(G,F){if(Boolean(F)===F){F=F&&"1"||"0"}D.push(G+":"+F)});return D.join(",")};return Base.extend({query_string:false,page_index:0,page_cache:[],last_page:0,selection:{},tabs:false,tab_index:false,defaults:{class_name:"light phone-modal",multiple:false,page_size:8,page_size_options:false,title:"<strong>Choose A Deviation</strong>",subtitle:"",nav_extra:"",search:true,pager:true,search_query:"",attribute_rid:"collect_rid",query_options:{},resource_label:"deviations",no_results_label:"<p><i>No results.</i></p>",onselect:function(){},onunselect:function(){},onclose:function(){},onsearchresults:function(){},width:835,height:600,ok_label:"OK",cancel_label:"Cancel",only_submit_when_selection:false,select_across_pages:true,browsebar:false,browsebar_custom:false},tab_defaults:{enabled:true,selectable:true,search:true,label:"deviantART",search_query:"",no_results_label:false,nav_extra:"",callback:function(){},browsebar:false,browsebar_custom:false},constructor:function(F,G,D){this.callback=G;this.options=C.extend({},this.defaults,D);if(typeof F=="string"){this.query_string=F;this.options.search_query=this.options.search_query||F}else{this.tabs=F;for(var E=0;E<F.length;E++){F[E]=C.extend({},this.tab_defaults,F[E]);if(F[E].enabled&&F[E].selectable&&(this.tab_index===false||F[E].selected)){this.tab_index=E}}}},switch_tab:function(D){if(!(D!==false&&this.tabs&&this.tabs[D]&&this.tabs[D].enabled)){return }var E=this.tabs[D];this.tab_index=D;this.query_string=E.query;this.options.search_query=E.search_query||E.query;if(E.browsebar!=undefined){this.options.browsebar=E.browsebar}if(E.browsebar_custom!=undefined){this.options.browsebar_custom=E.browsebar_custom}if(this.$container){if(E.search){this.$container.find(".deepee-search").show()}else{this.$container.find(".deepee-search").hide()}if(E.sidebar){var F=this.$container.find(".deepee-sidebar");if(jQuery.isFunction(E.sidebar)){E.sidebar.call(this,F)}else{F.html(E.sidebar)}F.show()}else{this.$container.find(".deepee-sidebar").empty().hide()}}this._setup_browsebar();this.$container.find(".deepee-tabnavextra").html(E.nav_extra);if(E.callback.call(this)===false){return }if(this.$container){this.search()}this._size();return true},show:function(){this._build_html();var D=this.$search_results;this._show_modal();if(this.tabs){this.$container.find(".deepee-navtabs a.selected").click()}else{this.search()}},submit:function(E){var G=[],D={},H,I;if(E){for(var F=E.length-1;F>=0;F--){H=this._proper_rid(E[F]);I=this._find_by_rid(H);if(!I){continue}H=H.split(":");H=[Number(H[0]),Number(H[1])];G.push(H);D[H]=I}}else{for(H in this.selection){I=this.selection[H];H=H.split(":");H=[Number(H[0]),Number(H[1])];G.push(H);D[H]=I}}if(this.options.only_submit_when_selection&&G.length==0){var J=C(this);if(J.blur){J.blur()}return }var K=this.callback.call(this,G,D);if(K===undefined||K==true){this.close("success")}},close:function(D){this.options.onclose.call(this,D);Modals.close(this._modal,D)},fetch:function(){var D=this.query_string;if(this.search_string){D=this.options.search_query+" "+this.search_string}this.$container.css("cursor","wait");this.$container.find(".deepee-navstatus").html("Loading...");this.$container.find(".deepee-navextra").html("");this.$search_results.html('<div class="stream"><p class="stream-message loading">Loading</p></div>');DiFi.pushPrivateGet("Resources","htmlFromQuery",[D,this.page_index*this.options.page_size,this.options.page_size,"thumb150",B(this.options.query_options)],bind(this,function(K,I){var G;if(K){var F=[];var J="";var H=I.response.content.total;G=I.response.content.resources;if(this.search_string){J='"'+this.search_string+'"'}if(this.search_string&&(H||I.response.content.more)){J=J+" : "}if(H){J=J+H+" "+this.options.resource_label;this.last_page=Math.floor(H/this.options.page_size)}else{if(I.response.content.more){J=J+"a lot of "+this.options.resource_label;this.last_page=true}else{this.last_page=this.page_index}}this.$container.find(".deepee-navstatus").html(J);for(var E=0;G[E];E++){F.push(G[E][2])}F=F.join("");if(!F){var L=this.tabs[this.tab_index]||{};F='<div class="empty_result_label">';F+=(L.no_results_label||this.options.no_results_label);F+="</div>"}}else{F="<p><i>Error retrieving data.</i></p>"}this._add_results(F);this._update_pager();this._size();this.$container.css("cursor","default");this.options.onsearchresults.call(this,G)}));DiFi.timer(1)},search:function(D){if(D===true){D=this.$container.find(".search-field").val()}this.search_string=D||"";this.page_cache=[];this.page_index=0;this.selection={};this._update_selection_count();this.$container.find("div.deepee-searchcontainer").show();this.$container.find("div.deepee-custom").hide();this.$container.find("input.search-field").val(this.search_string);this.fetch()},go:function(D){if(!this.options.select_across_pages){C.each(this.selection,bind(this,function(F,E){delete this.selection[F];E.find(".selected").removeClass("selected");this.options.onunselect.call(this,F,this.selection)}));this._update_selection_count()}this.page_cache[this.page_index]=this.$search_results.children();this.page_index=D;if(this.page_cache[this.page_index]){this.$search_results.html(this.page_cache[this.page_index])}else{this.fetch()}this._update_pager()},next:function(){if(this.page_index>=this.last_page){return }this.go(this.page_index+1)},prev:function(){if(this.page_index<=0){return }this.go(this.page_index-1)},custom:function(D){this.$container.find("div.deepee-searchcontainer").hide();var E=this.$container.find("div.deepee-custom");if(D){E.append(D)}return E.show()},set_title:function(D){D=D||(this.options.title+" "+this.options.subtitle);this.$container.find(".deepee-title").html(D)},is_selected:function(E){var D=this._find_by_rid(E);if(!D.length){return false}E=this._proper_rid(E);return this.selection[E]},toggle_selection:function(F,G){var E=this._find_by_rid(F);if(!E.length){return }F=this._proper_rid(F);if(!this.options.multiple){C.each(this.selection,bind(this,function(H,I){if(F==H){return }delete this.selection[H];I.find(".selected").removeClass("selected")}))}var D=E.children("div.tt-w, span");if(this.selection[F]){if(G===true||E.attr("block_deselect")){return }delete this.selection[F];D.removeClass("selected");this.options.onunselect.call(this,F,this.selection)}else{if(G===false||E.attr("block_select")){return }this.selection[F]=E;D.addClass("selected");this.options.onselect.call(this,F,this.selection)}this._update_selection_count()},add_icon:function(E,D){this.remove_icon(E);this._find_by_rid(E).append('<div class="deepee-icon deepee-icon-'+D+'"></div>')},remove_icon:function(D){this._find_by_rid(D).find("div.deepee-icon").remove()},add_message:function(E,D,F,G){this.remove_message(E);if(F){this._find_by_rid(E).append(C('<div class="deepee-message deepee-message-'+D+'"></div>').append(C('<div class="deepee-message-text"></div>').html(F)))}if(G){this.add_icon(E,D)}},remove_message:function(D){this._find_by_rid(D).find("div.deepee-message").remove()},_proper_rid:function(D){if(C.isArray(D)){D=D.join(":")}return D},_find_by_rid:function(D){return this.$search_results.find("div["+this.options.attribute_rid+"="+this._proper_rid(D)+"]")},_build_html:function(){if(this.$container){return }var H=this,L;this.$container=L=C(A).addClass(this.options.class_name).data("picker",this);this.set_title();L.find(".dialog-ok").click(function(N){N.preventDefault();H.submit()}).end().find(".dialog-cancel").click(function(N){N.preventDefault();H.close("cancel")}).end().find(".deepee-navbar").append(this.options.nav_extra).end();if(this.tabs){L.addClass("deepee-box-tabbed");var I=L.find(".deepee-navtabs");for(var F=0;F<this.tabs.length;F++){var K=C('<span><a href="#"><i></i>'+this.tabs[F].label+"<b></b></a></span>").find("a").data("index",F).end();if(F==0){K.addClass("first")}if(F==this.tabs.length-1){K.addClass("last")}if(F==this.tab_index){K.find("a").addClass("selected")}if(!this.tabs[F].enabled){K.find("a").addClass("disabled")}I.append(K)}I.find("a").click(function(P){P.preventDefault();var O=C(this).blur();var N=O.data("index");if(!H.tabs[N].enabled){return }if(H.tabs[N].selectable){I.find("a.selected").removeClass("selected");O.addClass("selected")}H.switch_tab(N)});L.find(".deepee-navinfo").remove().appendTo(L.find(".deepee-body"))}L.find(".search-button").click(function(N){N.preventDefault();H.search(true);if(val.length>0){C(this).siblings(".search-cancel").show().siblings(".search-field").addClass("search-field-cancellable")}else{C(this).siblings(".search-cancel").hide().siblings(".search-field").removeClass("search-field-cancellable")}}).end().find(".search-field").keydown(function(N){if(N.keyCode==13){N.preventDefault();C(this).next().click()}}).end().find(".search-cancel").click(function(N){N.preventDefault();C(this).siblings(".search-field").val("").siblings(".search-button").click()}).end();if(!this.options.search){setTimeout(function(){L.find(".deepee-search").hide()},50)}this.$search_results=L.find(".search-results").click(bind(this,function(P){var N=C(P.target).parents("div[class*='empty_result_label']");if(N.length>0){return }P.preventDefault();var O=C(P.target).parents("div["+this.options.attribute_rid+"]").attr(this.options.attribute_rid);if(!O){return }this.toggle_selection(O)}));L.find("span.ok-label").html(this.options.ok_label);L.find("span.cancel-label").html(this.options.cancel_label);this._setup_browsebar();if(this.options.page_size_options){var M,G,D,J,E;M=C('<div class="deepee-limits"></div>');J=function(N,P,O){O.preventDefault();if(P.blur){P.blur()}this.options.page_size=N;M.find("a").removeClass("selected").filter("[rel="+N+"]").addClass("selected");this.search(true)};E=this.options.page_size_options.length;for(var F=0;F<E;F++){G=this.options.page_size_options[F];D=C('<a href="#" rel="'+G+'">'+G+"</a>");D.click(bind(this,J,G,D));if(G==this.options.page_size){D.addClass("selected")}if(E<=3){D.prepend(C('<i class="thumb-select-'+(F+1)+'"></i>'))}M.append(D)}if(E<=3){M.addClass("thumb-selector")}this.$container.append(M)}this._size();C(window).resize(bind(this,function(N){this._size()}))},_setup_browsebar:function(){if(this.options.browsebar){var D=this.$container.find("div.browse-bar");D.find("a").removeClass("active").click(bind(this,function(I){I.preventDefault();var F;var E=C(I.target);if(E.parent().hasClass("browse-bar-left")){F="boost"}else{F="max_age"}var H=/bb-([^ ]+)/.exec(I.target.className);if(H){H=H[1];var G=this.options.search_query.replace(new RegExp(F+":[^ ]+"),"");if(F=="boost"){G=G.replace("sort:time","")}if(H=="newest"||H=="alltime"){G=G.replace(/max_age:[^ ]+/,"");if(H=="newest"){G+=" sort:time"}}else{if(H!="alltime"){G+=" "+F+":"+H}}this.options.search_query=this.query_string=G.replace(/\s+/," ").replace(/^\s+/,"").replace(/\s+$/,"");this._select_browsebar_links();this.search(true)}})).end().find(".browse-bar-custom").empty().hide();this._select_browsebar_links();if(this.options.browsebar_custom){if(C.isFunction(this.options.browsebar_custom)){this.options.browsebar_custom.call(this,D)}else{D.find(".browse-bar-custom").html(this.options.browsebar_custom).show()}}D.show()}else{this.$container.find(".browse-bar").hide()}},_select_browsebar_links:function(){var F=this.$container.find("div.browse-bar");F.find("div.browse-bar-left").show().end().find("a").removeClass("active");var E=/boost:([^ ]+)/.exec(this.query_string);if(E){E=E[1];F.find("a.bb-"+E).addClass("active");F.find(".browse-bar-right").show()}else{F.find("a.bb-newest").addClass("active");F.find(".browse-bar-right").hide()}var D=/max_age:([^ ]+)/.exec(this.query_string);if(D){D=D[1];F.find("a.bb-"+D).addClass("active")}else{F.find("a.bb-alltime").addClass("active")}},_show_modal:function(){var D=this;this._modal=Modals.push(this.$container.get(0),function(){});C(this._modal).find("a.x").addClass("deepee-x").removeAttr("onclick").click(function(E){E.preventDefault();D.close("cancel")})},_size:function(D,H){var E,K,I;E=C(window);D=D||this.options.width;H=H||this.options.height;if(D<1){D=E.width()*D}if(H<1){H=E.height()*H}searchcontainer_height=H-(44+46+38);K=searchcontainer_height-(this.options.browsebar?27:0);this.$container.height(H).width(D);this.$container.find("div.deepee-searchcontainer, div.deepee-custom").height(searchcontainer_height);this.$container.find("div.deepee-searchbody").height(K);var N=this.$container.find("div.deepee-sidebar");var F=this.$container.find("div.search-pager"),G=this.$container.find("div.deepee-searchcontainer");var J=this.$container.find("div.search-results").height();var M=F.height();if(J>(G.height()-M-15)){F.removeClass("search-pager-fixed")}else{F.addClass("search-pager-fixed");F.css("left",(0.5*(G.width()-F.width())))}var L=N.height();if(Math.max(K,J+M)>L){L=Math.max(K,J+M)}N.height(L);if(this._modal){Modals.close(this._modal,"cancel");this._show_modal()}},_add_results:function(D){this.$search_results.html('<div class="stream">'+D+"</div>");Shadows.nodes(this.$search_results.get(0))},_update_pager:function(){if(!this.options.pager){return }if(this.page_index<1&&((!this.last_page)||(this.last_page==0))){this.$container.find("div.search-pager").css("visibility","hidden");return }this.$container.find("div.search-pager").css("visibility","visible");if(!this.pager){this.pager=new HTMLPager(this,{page:this.page_index,pages:typeof this.last_page=="boolean"||(this.last_page+1),prev_label:"&nbsp;",next_label:"&nbsp;",alt:true},bind(this,this.go));this.$container.find("div.search-pager").append(this.pager.node)}this.pager.page=this.page_index;if(typeof this.last_page=="boolean"){this.pager.pages=this.last_page}else{this.pager.pages=this.last_page+1}this.pager.on()},_update_selection_count:function(){var E=this.$container.find("span.deepee-submit-count").hide();var D=0;C.each(this.selection,function(){D++});if(this.options.multiple&&D>1){E.html(" ("+D+")").show()}if(this.options.only_submit_when_selection){if(D>0){this.$container.find(".dialog-ok").removeClass("disabledbutton")}else{this.$container.find(".dialog-ok").addClass("disabledbutton")}}}})})(jQuery);if(window.DWait){DWait.run("jms/lib/deviation_picker.js")};