blob: 905055ab8a7c37c407a77703b92575029a8d918c [file] [log] [blame]
var grp={jQuery:jQuery.noConflict(!0)},django={jQuery:grp.jQuery.noConflict(!0)},inputTypes=["[type='search']","[type='email']","[type='url']","[type='tel']","[type='number']","[type='range']","[type='date']","[type='month']","[type='week']","[type='time']","[type='datetime']","[type='datetime-local']","[type='color']"].join(",");!function(a){grappelli.getFormat=function(a){if("date"==a){var b=DATE_FORMAT.toLowerCase().replace(/%\w/g,function(a){return a=a.replace(/%/,""),a+a});return b}},grappelli.cleanInputTypes=function(){a("form").each(function(){a(this).find(":input").filter(inputTypes).each(function(){a(this).attr("type","text")})})},grappelli.initDateAndTimePicker=function(){a("p.datetime").each(function(){var b=a(this).html();b=b.replace(/^\w*: /,""),b=b.replace(/<br>[^<]*: /g,"<br>"),a(this).html(b)});var b={constrainInput:!1,showOn:"button",buttonImageOnly:!1,buttonText:"",dateFormat:grappelli.getFormat("date"),showButtonPanel:!0,showAnim:"",beforeShow:function(a,b,c){grappelli.datepicker_instance=this}},c=a("input[class*='vDateField']:not([id*='__prefix__'])");c.datepicker(b),"undefined"!=typeof IS_POPUP&&IS_POPUP&&c.datepicker("disable"),a(document).on("click",".ui-datepicker-current",function(){a.datepicker._selectDate(grappelli.datepicker_instance),grappelli.datepicker_instance=null}),a("input[class*='vTimeField']:not([id*='__prefix__'])").grp_timepicker()},grappelli.initFilter=function(){a("a.grp-pulldown-handler").click(function(){var b=a(this).closest(".grp-pulldown-container");a(b).toggleClass("grp-pulldown-state-open").children(".grp-pulldown-content").toggle()}),a("a.grp-pulldown-handler").bind("mouseout",function(){a(this).blur()}),a(".grp-filter-choice").change(function(){location.href=a(this).val()})},grappelli.initSearchbar=function(){var b=a("input.grp-search-field");b.focus()},grappelli.updateSelectFilter=function(a){"undefined"!=typeof SelectFilter&&(a.find(".selectfilter").each(function(a,b){var c=b.name.split("-");SelectFilter.init(b.id,c[c.length-1],!1,"{% admin_media_prefix %}")}),a.find(".selectfilterstacked").each(function(a,b){var c=b.name.split("-");SelectFilter.init(b.id,c[c.length-1],!0,"{% admin_media_prefix %}")}))},grappelli.reinitDateTimeFields=function(a){a.find(".vDateField").datepicker({constrainInput:!1,showOn:"button",buttonImageOnly:!1,buttonText:"",dateFormat:grappelli.getFormat("date")}),a.find(".vTimeField").grp_timepicker()},grappelli.get_app_label=function(a){var b=a.next("a");if(b.length>0){var c=b.attr("href").split("?")[0].split("/");return c[c.length-3]}return!1},grappelli.get_model_name=function(a){var b=a.next("a");if(b.length>0){var c=b.attr("href").split("?")[0].split("/");return c[c.length-2]}return!1},grappelli.get_query_string=function(a){var b=a.next("a");if(b.length>0){var c=b.attr("href").split("/");return pairs=c[c.length-1].replace("?","").split("&"),pairs.join(":")}return!1}}(grp.jQuery),function(a){var b={init:function(b){return b=a.extend({},a.fn.grp_autocomplete_fk.defaults,b),this.each(function(){var g=a(this);g.attr({tabindex:"-1",readonly:"readonly"}).addClass("grp-autocomplete-hidden-field"),g.next().next()&&"errorlist"!=g.next().next().attr("class")&&"grp-help"!=g.next().next().attr("class")&&g.next().next().remove(),g.next().after(c).after(d(g.attr("id"))),g.parent().wrapInner("<div class='grp-autocomplete-wrapper-fk'></div>"),g.parent().prepend("<input id='"+g.attr("id")+"-autocomplete' type='text' class='vTextField' value='' />"),b=a.extend({wrapper_autocomplete:g.parent(),input_field:g.prev(),remove_link:g.next().next().hide(),loader:g.next().next().next().hide()},a.fn.grp_autocomplete_fk.defaults,b),f(g,b),e(g,b),g.bind("change focus keyup",function(){f(g,b)}),a("label[for='"+g.attr("id")+"']").each(function(){a(this).attr("for",g.attr("id")+"-autocomplete")})})}};a.fn.grp_autocomplete_fk=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?(a.error("Method "+c+" does not exist on jQuery.grp_autocomplete_fk"),!1):b.init.apply(this,arguments)};var c=function(){var b=a('<div class="grp-loader">loader</div>');return b},d=function(b){var c=a('<a class="grp-related-remove"></a>');return c.attr("id","remove_"+b),c.attr("href","javascript://"),c.attr("onClick","return removeRelatedObject(this);"),c.hover(function(){a(this).parent().toggleClass("grp-autocomplete-preremove")}),c},e=function(b,c){c.wrapper_autocomplete.find("input:first").bind("focus",function(){c.wrapper_autocomplete.addClass("grp-state-focus")}).bind("blur",function(){c.wrapper_autocomplete.removeClass("grp-state-focus")}).autocomplete({minLength:1,autoFocus:!0,delay:1e3,source:function(d,e){a.ajax({url:c.autocomplete_lookup_url,dataType:"json",data:"term="+encodeURIComponent(d.term)+"&app_label="+grappelli.get_app_label(b)+"&model_name="+grappelli.get_model_name(b)+"&query_string="+grappelli.get_query_string(b),beforeSend:function(a){c.loader.show()},success:function(b){e(a.map(b,function(a){return{label:a.label,value:a.value}}))},complete:function(a,b){c.loader.hide()}})},focus:function(){return!1},select:function(d,e){return c.input_field.val(e.item.label),b.val(e.item.value),b.trigger("change"),b.val()?a(c.remove_link).show():a(c.remove_link).hide(),!1}}).data("ui-autocomplete")._renderItem=function(b,c){return c.value?a("<li></li>").data("item.autocomplete",c).append("<a>"+c.label+"</a>").appendTo(b):a("<li></li>").data("item.autocomplete",c).append("<span class='error'>"+c.label+"</span>").appendTo(b)}},f=function(b,c){a.getJSON(c.lookup_url,{object_id:b.val(),app_label:grappelli.get_app_label(b),model_name:grappelli.get_model_name(b)},function(d){a.each(d,function(e){c.input_field.val(d[e].label),b.val()?a(c.remove_link).show():a(c.remove_link).hide()})})};a.fn.grp_autocomplete_fk.defaults={autocomplete_lookup_url:"",lookup_url:""}}(grp.jQuery),function(a){var b={init:function(b){return b=a.extend({},a.fn.grp_autocomplete_generic.defaults,b),this.each(function(){var i=a(this);i.attr({tabindex:"-1",readonly:"readonly"}).addClass("grp-autocomplete-hidden-field");var j=a(b.content_type).val()||a(b.content_type).find(":checked").val();j&&i.after(c).after(d(i.attr("id"))).after(e(i.attr("id"),j)),i.parent().wrapInner("<div class='grp-autocomplete-wrapper-fk'></div>"),i.parent().prepend("<input id='"+i.attr("id")+"-autocomplete' type='text' class='vTextField' value='' />"),b=a.extend({wrapper_autocomplete:a(this).parent(),input_field:a(this).prev(),remove_link:i.nextAll("a.grp-related-remove").hide(),loader:i.nextAll("div.grp-loader").hide()},a.fn.grp_autocomplete_generic.defaults,b),j&&h(i,b),g(i,b),i.bind("change focus keyup",function(){h(i,b)}),a(b.content_type).bind("change",function(){f(a(this),b)}),a("label[for='"+i.attr("id")+"']").each(function(){a(this).attr("for",i.attr("id")+"-autocomplete")})})}};a.fn.grp_autocomplete_generic=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?(a.error("Method "+c+" does not exist on jQuery.grp_autocomplete_generic"),!1):b.init.apply(this,arguments)};var c=function(){var b=a('<div class="grp-loader">loader</div>');return b},d=function(b){var c=a('<a class="grp-related-remove"></a>');return c.attr("id","remove_"+b),c.attr("href","javascript://"),c.attr("onClick","return removeRelatedObject(this);"),c.hover(function(){a(this).parent().toggleClass("grp-autocomplete-preremove")}),c},e=function(b,c){var d=a('<a class="related-lookup"></a>');return d.attr("id","lookup_"+b),d.attr("href",window.ADMIN_URL+MODEL_URL_ARRAY[c].app+"/"+MODEL_URL_ARRAY[c].model+"/?"),d.attr("onClick","return showRelatedObjectLookupPopup(this);"),d},f=function(b,f){var g=a(f.object_id);g.val(""),g.prev().val(""),g.nextAll("a.related-lookup").remove(),g.nextAll("a.grp-related-remove").remove(),g.nextAll("div.grp-loader").remove();var h=a(b).val()||a(b).find(":checked").val();h&&(g.after(c).after(d(g.attr("id"))).after(e(g.attr("id"),h)),f.remove_link=g.nextAll("a.grp-related-remove").hide(),f.loader=g.nextAll("div.grp-loader").hide())},g=function(b,c){c.wrapper_autocomplete.find("input:first").bind("focus",function(){c.wrapper_autocomplete.addClass("grp-state-focus")}).bind("blur",function(){c.wrapper_autocomplete.removeClass("grp-state-focus")}).autocomplete({minLength:1,autoFocus:!0,delay:1e3,source:function(d,e){a.ajax({url:c.autocomplete_lookup_url,dataType:"json",data:"term="+encodeURIComponent(d.term)+"&app_label="+grappelli.get_app_label(b)+"&model_name="+grappelli.get_model_name(b)+"&query_string="+grappelli.get_query_string(b),beforeSend:function(b){var d=a(c.content_type).val()||a(c.content_type).find(":checked").val();return d?void c.loader.show():!1},success:function(b){e(a.map(b,function(a){return{label:a.label,value:a.value}}))},complete:function(a,b){c.loader.hide()}})},focus:function(){return!1},select:function(d,e){return c.input_field.val(e.item.label),b.val(e.item.value),b.trigger("change"),b.val()?a(c.remove_link).show():a(c.remove_link).hide(),!1}}).data("ui-autocomplete")._renderItem=function(b,c){return c.value?a("<li></li>").data("item.autocomplete",c).append("<a>"+c.label+"</a>").appendTo(b):a("<li></li>").data("item.autocomplete",c).append("<span class='error'>"+c.label+"</span>").appendTo(b)}},h=function(b,c){a.getJSON(c.lookup_url,{object_id:b.val(),app_label:grappelli.get_app_label(b),model_name:grappelli.get_model_name(b)},function(d){a.each(d,function(e){c.input_field.val(d[e].label),b.val()?a(c.remove_link).show():a(c.remove_link).hide()})})};a.fn.grp_autocomplete_generic.defaults={autocomplete_lookup_url:"",lookup_url:"",content_type:"",object_id:""}}(grp.jQuery),function(a){var b={init:function(b){return b=a.extend({},a.fn.grp_autocomplete_m2m.defaults,b),this.each(function(){var c=a(this);c.attr({tabindex:"-1",readonly:"readonly"}).addClass("grp-autocomplete-hidden-field"),c.next().after(e).after(f(c.attr("id"))),c.parent().wrapInner("<div class='grp-autocomplete-wrapper-m2m'></div>"),c.parent().prepend("<ul class='grp-repr'><li class='grp-search'><input id='"+c.attr("id")+"-autocomplete' type='text' class='vTextField' value='' /></li></ul>"),b=a.extend({wrapper_autocomplete:c.parent(),wrapper_repr:c.parent().find("ul.grp-repr"),wrapper_search:c.parent().find("li.grp-search"),remove_link:c.next().next().hide(),loader:c.next().next().next().hide()},a.fn.grp_autocomplete_m2m.defaults,b),c.parent().find("ul.errorlist")&&c.parent().find("ul.errorlist").detach().appendTo(c.parent().parent()),i(c,b),h(c,b),c.bind("change focus keyup",function(){i(c,b)}),a("label[for='"+c.attr("id")+"']").each(function(){a(this).attr("for",c.attr("id")+"-autocomplete")}),b.wrapper_autocomplete.bind("click",function(c){a(c.target).hasClass("related-lookup")||a(c.target).hasClass("grp-related-remove")||b.wrapper_search.find("input:first").focus()})})}};a.fn.grp_autocomplete_m2m=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?(a.error("Method "+c+" does not exist on jQuery.grp_autocomplete_m2m"),!1):b.init.apply(this,arguments)};var c=function(a,b,c){var d=[];return a.val()&&(d=a.val().split(",")),d.push(b),a.val(d.join(",")),a.trigger("change"),d.join(",")},d=function(a,b,c){var d=[];return a.val()&&(d=a.val().split(",")),d.splice(b,1),a.val(d.join(",")),a.trigger("change"),d.join(",")},e=function(){var b=a('<div class="grp-loader">loader</div>');return b},f=function(b){var c=a('<a class="grp-related-remove"></a>');return c.attr("id","remove_"+b),c.attr("href","javascript://"),c.attr("onClick","return removeRelatedObject(this);"),c.hover(function(){a(this).parent().toggleClass("grp-autocomplete-preremove")}),c},g=function(b,c,e){var f=a('<li class="grp-repr"></li>'),g=a('<a class="grp-m2m-remove" href="javascript://">'+c+"</a>");f.append(g),f.insertBefore(e.wrapper_search),g.bind("click",function(c){var f=a(this).parent().parent().children("li").index(a(this).parent());d(b,f,e),a(this).parent().remove(),b.val()?a(e.remove_link).show():a(e.remove_link).hide(),c.stopPropagation()}),g.hover(function(){a(this).parent().toggleClass("grp-autocomplete-preremove")})},h=function(b,d){d.wrapper_search.find("input:first").bind("keydown",function(b){b.keyCode===a.ui.keyCode.TAB&&a(this).data("uiAutocomplete").menu.active&&b.preventDefault()}).bind("focus",function(){d.wrapper_autocomplete.addClass("grp-state-focus")}).bind("blur",function(){d.wrapper_autocomplete.removeClass("grp-state-focus")}).autocomplete({minLength:1,autoFocus:!0,delay:1e3,position:{my:"left top",at:"left bottom",of:d.wrapper_autocomplete},open:function(b,c){a(".ui-menu").width(d.wrapper_autocomplete.outerWidth()-6)},source:function(c,e){a.ajax({url:d.autocomplete_lookup_url,dataType:"json",data:"term="+encodeURIComponent(c.term)+"&app_label="+grappelli.get_app_label(b)+"&model_name="+grappelli.get_model_name(b)+"&query_string="+grappelli.get_query_string(b),beforeSend:function(a){d.loader.show()},success:function(b){e(a.map(b,function(a){return{label:a.label,value:a.value}}))},complete:function(a,b){d.loader.hide()}})},focus:function(){return!1},select:function(e,f){return g(b,f.item.label,d),c(b,f.item.value,d),b.val()?a(d.remove_link).show():a(d.remove_link).hide(),a(this).val("").focus(),!1}}).data("ui-autocomplete")._renderItem=function(b,c){return c.value?a("<li></li>").data("item.autocomplete",c).append("<a>"+c.label+"</a>").appendTo(b):a("<li></li>").data("item.autocomplete",c).append("<span class='error'>"+c.label+"</span>").appendTo(b)}},i=function(b,c){a.getJSON(c.lookup_url,{object_id:b.val(),app_label:grappelli.get_app_label(b),model_name:grappelli.get_model_name(b)},function(d){c.wrapper_repr.find("li.grp-repr").remove(),c.wrapper_search.find("input").val(""),a.each(d,function(a){d[a].value&&g(b,d[a].label,c)}),b.val()?a(c.remove_link).show():a(c.remove_link).hide()})}}(grp.jQuery),function(a){a.fn.grp_collapsible=function(c){var d={toggle_handler_slctr:".grp-collapse-handler:first",closed_css:"grp-closed",open_css:"grp-open",on_init:function(){},on_toggle:function(){}},e=a.extend(d,c);return this.each(function(){b(a(this),e)})};var b=function(a,b){b.on_init(a,b),c(a,b)},c=function(a,b){d(a,b)},d=function(a,b){a.children(b.toggle_handler_slctr).click(function(){a.toggleClass(b.closed_css).toggleClass(b.open_css),b.on_toggle(a,b)})}}(grp.jQuery),function(a){a.fn.grp_collapsible_group=function(c){var d={open_handler_slctr:".grp-open-handler",close_handler_slctr:".grp-close-handler",collapsible_container_slctr:".grp-collapse",closed_css:"grp-closed",open_css:"grp-open",on_init:function(){},on_open:function(){},on_close:function(){}};return c=a.extend(d,c),this.each(function(){b(a(this),c)})};var b=function(a,b){b.on_init(a,b),c(a,b)},c=function(a,b){d(a,b),e(a,b)},d=function(b,c){b.find(c.open_handler_slctr).each(function(){a(this).click(function(){c.on_open(b,c),b.find(c.collapsible_container_slctr).removeClass(c.closed_css).addClass(c.open_css),b.removeClass(c.closed_css).addClass(c.open_css)})})},e=function(b,c){b.find(c.close_handler_slctr).each(function(){a(this).click(function(){c.on_close(b,c),b.find(c.collapsible_container_slctr).removeClass(c.open_css).addClass(c.closed_css)})})}}(grp.jQuery),function(a){a.fn.grp_inline=function(b){var c={prefix:"form",addText:"add another",deleteText:"remove",addCssClass:"grp-add-handler",removeCssClass:"grp-remove-handler",deleteCssClass:"grp-delete-handler",emptyCssClass:"grp-empty-form",formCssClass:"grp-dynamic-form",predeleteCssClass:"grp-predelete",onBeforeInit:function(a){},onBeforeAdded:function(a){},onBeforeRemoved:function(a){},onBeforeDeleted:function(a){},onAfterInit:function(a){},onAfterAdded:function(a){},onAfterRemoved:function(a){},onAfterDeleted:function(a){}};return b=a.extend(c,b),this.each(function(){var c=a(this),d=c.find("#id_"+b.prefix+"-TOTAL_FORMS");d.attr("autocomplete","off"),initInlineForms(c,b),initAddButtons(c,b),addButtonHandler(c.find("a."+b.addCssClass),b),removeButtonHandler(c.find("a."+b.removeCssClass),b),deleteButtonHandler(c.find("a."+b.deleteCssClass),b)})},getFormIndex=function(a,b,c){var d=a.find("[id^='id_"+b.prefix+"']").attr("id");return d?parseInt(c.exec(d)[1],10):-1},updateFormIndex=function(b,c,d,e){b.find(":input,span,table,iframe,label,a,ul,p,img,div").each(function(){var b=a(this),c=b.attr("id"),f=b.attr("name"),g=b.attr("for"),h=b.attr("href"),i=b.attr("class"),j=b.attr("onclick");c&&b.attr("id",c.replace(d,e)),f&&b.attr("name",f.replace(d,e)),g&&b.attr("for",g.replace(d,e)),h&&b.attr("href",h.replace(d,e)),i&&b.attr("class",i.replace(d,e)),j&&b.attr("onclick",j.replace(d,e))}),b.find(".prepopulated_field").each(function(){var b=a(this).data("dependency_ids")||[],c=[];a.each(b,function(a,b){c.push(b.replace(d,e))}),a(this).data("dependency_ids",c)})};var b=function(b,c){b.find(".prepopulated_field").each(function(){var b=a(this).data("dependency_ids")||[];a(this).prepopulate(b,a(this).attr("maxlength"))})};initInlineForms=function(b,c){b.find("div.grp-module").each(function(){var b=a(this);c.onBeforeInit(b),""!==b.attr("id")&&b.not("."+c.emptyCssClass).not(".grp-table").not(".grp-thead").not(".add-item").addClass(c.formCssClass),b.find("li.grp-delete-handler-container input").each(function(){a(this).is(":checked")&&b.hasClass("has_original")&&b.toggleClass(c.predeleteCssClass)}),c.onAfterInit(b)})},initAddButtons=function(a,b){var c=a.find("#id_"+b.prefix+"-TOTAL_FORMS"),d=a.find("#id_"+b.prefix+"-MAX_NUM_FORMS");a.find("a."+b.addCssClass);""!==d.val()&&d.val()-c.val()<=0&&hideAddButtons(a,b)},addButtonHandler=function(a,c){a.bind("click",function(){var d=a.parents(".grp-group"),e=d.find("#id_"+c.prefix+"-TOTAL_FORMS"),f=d.find("#id_"+c.prefix+"-MAX_NUM_FORMS"),g=(d.find("a."+c.addCssClass),d.find("#"+c.prefix+"-empty"));c.onBeforeAdded(d);var h=parseInt(e.val(),10),i=g.clone(!0);i.removeClass(c.emptyCssClass).attr("id",g.attr("id").replace("-empty",h));var j=/__prefix__/g;updateFormIndex(i,c,j,h),i.insertBefore(g).addClass(c.formCssClass),e.val(h+1),0!==f.val()&&""!==f.val()&&f.val()-e.val()<=0&&hideAddButtons(d,c),b(i,c),c.onAfterAdded(i)})},removeButtonHandler=function(b,c){b.bind("click",function(){var d=b.parents(".grp-group"),e=a(this).parents("."+c.formCssClass).first(),f=d.find("#id_"+c.prefix+"-TOTAL_FORMS"),g=d.find("#id_"+c.prefix+"-MAX_NUM_FORMS"),h=/-(\d+)-/,i=getFormIndex(e,c,h);c.onBeforeRemoved(e),e.remove(),f.val(parseInt(f.val(),10)-1),0!==g.val()&&g.val()-f.val()>0&&showAddButtons(d,c),d.find("."+c.formCssClass).each(function(){var b=a(this),d=getFormIndex(b,c,h);d>i&&updateFormIndex(b,c,h,"-"+(d-1)+"-")}),c.onAfterRemoved(d)})},deleteButtonHandler=function(b,c){b.bind("click",function(){var b=a(this).prev(),d=a(this).parents("."+c.formCssClass).first();c.onBeforeDeleted(d),d.hasClass("has_original")&&(d.toggleClass(c.predeleteCssClass),b.prop("checked")?b.removeAttr("checked"):b.prop("checked",!0)),c.onAfterDeleted(d)})},hideAddButtons=function(a,b){var c=a.find("a."+b.addCssClass);c.hide().parents(".grp-add-item").hide(),c.closest(".grp-module.grp-transparent").hide()},showAddButtons=function(a,b){var c=a.find("a."+b.addCssClass);c.show().parents(".grp-add-item").show(),c.closest(".grp-module.grp-transparent").show()}}(grp.jQuery),function(a){var b={init:function(b){return b=a.extend({},a.fn.grp_related_fk.defaults,b),this.each(function(){var d=a(this),e=d.parent();e.find("a.related-lookup").next().is("strong")&&(e.find("a.related-lookup").get(0).nextSibling.nodeValue="",e.find("a.related-lookup").next("strong").remove()),e.find("a.related-lookup").after(b.placeholder),d.addClass("grp-has-related-lookup"),c(d,b),d.bind("change focus keyup",function(){c(d,b)})})}};a.fn.grp_related_fk=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?(a.error("Method "+c+" does not exist on jQuery.grp_related_fk"),!1):b.init.apply(this,arguments)};var c=function(b,c){var d=b.parent().find(".grp-placeholder-related-fk");a.getJSON(c.lookup_url,{object_id:b.val(),app_label:grappelli.get_app_label(b),model_name:grappelli.get_model_name(b),query_string:grappelli.get_query_string(b)},function(a){""===a[0].label?d.hide():d.show(),d.html('<span class="grp-placeholder-label">'+a[0].label+"</span>")})};a.fn.grp_related_fk.defaults={placeholder:'<div class="grp-placeholder-related-fk"></div>',repr_max_length:30,lookup_url:""}}(grp.jQuery),function(a){var b={init:function(b){return b=a.extend({},a.fn.grp_related_generic.defaults,b),this.each(function(){var f=a(this),g=a(b.content_type).val()||a(b.content_type).find(":checked").val();g&&f.after(b.placeholder).after(c(f.attr("id"),g)),f.addClass("grp-has-related-lookup"),g&&e(f,b),f.bind("change focus keyup",function(){e(f,b)}),a(b.content_type).bind("change",function(){d(a(this),b)})})}};a.fn.grp_related_generic=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?(a.error("Method "+c+" does not exist on jQuery.grp_related_generic"),!1):b.init.apply(this,arguments)};var c=function(b,c){var d=a('<a class="related-lookup"></a>');return d.attr("id","lookup_"+b),d.attr("href",window.ADMIN_URL+MODEL_URL_ARRAY[c].app+"/"+MODEL_URL_ARRAY[c].model+"/?"),d.attr("onClick","return showRelatedObjectLookupPopup(this);"),d},d=function(b,d){var e=a(d.object_id);e.val(""),e.parent().find("a.related-lookup").remove(),e.parent().find(".grp-placeholder-related-generic").remove();var f=a(b).val()||a(b).find(":checked").val();f&&e.after(d.placeholder).after(c(e.attr("id"),f))},e=function(b,c){var d=b.next().next();a.getJSON(c.lookup_url,{object_id:b.val(),app_label:grappelli.get_app_label(b),model_name:grappelli.get_model_name(b),query_string:grappelli.get_query_string(b)},function(a){""===a[0].label?d.hide():d.show(),d.html('<span class="grp-placeholder-label">'+a[0].label+"</span>")})};a.fn.grp_related_generic.defaults={placeholder:'<div class="grp-placeholder-related-generic" style="display:none"></div>',repr_max_length:30,lookup_url:"",content_type:"",object_id:""}}(grp.jQuery),function(a){var b={init:function(b){return b=a.extend({},a.fn.grp_related_m2m.defaults,b),this.each(function(){var d=a(this);d.parent().find("a.related-lookup").after(b.placeholder),d.next().addClass("grp-m2m"),d.addClass("grp-has-related-lookup"),c(d,b),d.bind("change focus keyup",function(){c(d,b)})})}};a.fn.grp_related_m2m=function(c){return b[c]?b[c].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof c&&c?(a.error("Method "+c+" does not exist on jQuery.grp_related_m2m"),!1):b.init.apply(this,arguments)};var c=function(b,c){a.getJSON(c.lookup_url,{object_id:b.val(),app_label:grappelli.get_app_label(b),model_name:grappelli.get_model_name(b),query_string:grappelli.get_query_string(b)},function(c){values=a.map(c,function(a){return'<span class="grp-placeholder-label">'+a.label+"</span>"}),""===values?b.parent().find(".grp-placeholder-related-m2m").hide():b.parent().find(".grp-placeholder-related-m2m").show(),b.parent().find(".grp-placeholder-related-m2m").html(values.join('<span class="grp-separator"></span>'))})};a.fn.grp_related_m2m.defaults={placeholder:'<div class="grp-placeholder-related-m2m"></div>',repr_max_length:30,lookup_url:""}}(grp.jQuery),function(a){a.widget("ui.grp_timepicker",{options:{template:'<div id="ui-timepicker" class="module" style="position: absolute; display: none;"></div>',timepicker_selector:"#ui-timepicker",offset:{top:0},default_time_list:["now","00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"],time_list:[]},_create:function(){var b=this;a(document).mousedown(function(c){if(b.timepicker.is(":visible")){var d=a(c.target);d[0].id==b.timepicker[0].id||0!==d.parents(b.options.timepicker_selector).length||d.hasClass("hasTimepicker")||d.hasClass("ui-timepicker-trigger")||b.timepicker.hide()}}),a(document).keyup(function(a){27==a.keyCode&&b.timepicker.hide()}),0===a(this.options.timepicker_selector).size()&&a(this.options.template).appendTo("body"),this.timepicker=a(this.options.timepicker_selector),this.timepicker.hide(),this.element.addClass("hasTimepicker"),this.button=a('<button type="button" class="ui-timepicker-trigger"></button>'),this.element.after(this.button),this.element.prop("disabled")?this.button.prop("disabled",!0):this.button.click(function(){b._toggleTimepicker()})},_toggleTimepicker:function(){this.timepicker.is(":visible")?this.timepicker.hide():(this.element.focus(),this._generateTimepickerContents(),this._showTimepicker())},_generateTimepickerContents:function(){var b=this,c="<ul>";0===this.options.time_list.length&&(this.options.time_list=this.options.default_time_list);for(var d=0;d<this.options.time_list.length;d++)if("now"==this.options.time_list[d]){var e=new Date,f=e.getHours(),g=e.getMinutes();f=10>f?"0"+f:f,g=10>g?"0"+g:g,c+='<li class="ui-state-active row">'+f+":"+g+"</li>"}else c+='<li class="ui-state-default row">'+this.options.time_list[d]+"</li>";c+="</ul>",this.timepicker.html(c),this.timepicker.find("li").click(function(){a(this).parent().children("li").removeClass("ui-state-active"),a(this).addClass("ui-state-active"),b.element.val(a(this).html()),b.timepicker.hide()})},_showTimepicker:function(){var a=document.documentElement.clientHeight,b=document.documentElement.scrollTop||document.body.scrollTop,c=this.element.outerHeight(),d=this.timepicker.outerHeight()+c,e=this.element.offset().top,f=this.element.offset().left,g=e-b+d+60;if(a>g){var h=e+c;this.timepicker.css("left",f+"px").css("top",h+"px")}else{var i=e-d+c;this.timepicker.css("left",f+"px").css("top",i+"px")}this.timepicker.show()},destroy:function(){a.Widget.prototype.destroy.apply(this,arguments)}})}(grp.jQuery);