(function($,undefined){$.extend($.J,{form:{init:function(form){$(form).filter(".form_ajax").bind("submit",$.J.form.event.submit);$("input[type=submit]",form).click(function(){$("input[type=submit]",$(this).parents("form")).removeAttr("clicked");$(this).attr("clicked","true")});$("input.inline_close",form).click(function(){Mindshark.change.clear(form.attr("id"));$("textarea.wysiwyg",form).each(function(){$(this).ckeditorGet().destroy()})});$("input.form_dialog_close",form).click(function(){var reload= false;var rel=$(this).attr("rel");if(rel)Mindshark.modal.close(reload);Mindshark.modal.close()});$("input,textarea,select",form).each(function(){var $this=$(this);var onchange=$this.data("onchange");if(onchange)$this.change($.J.form.event.change)});$(".form_tabs",form).tabs({load:function(){Mindshark.tab_selected=$(this).tabs("option","idPrefix")+($(this).tabs("option","selected")+1)},select:function(){}}).each(function(){$(this).children("ul").removeClass("ui-widget-header");$(this).removeClass("ui-widget-content")}); $(".datepicker",form).each(function(){$(this).datepicker({dateFormat:$(this).data("date-format"),showOtherMonths:true,selectOtherMonths:true})});$(".timepicker",form).timepicker({showPeriodLabels:false,showOn:"focus"});$(".autocomplete",form).each(function(){$.J.form.setup.autocomplete(form,$(this))});$(".token_list",form).each(function(){var param=$.parseJSON($(this).attr("rel"));param["method"]="POST";$(this).tokenInput("/ajax"+param.link,param)});$(".new_tokenlist",form).each(function(){$.J.form.setup.tokenlist(form, $(this))});$("textarea.wysiwyg",form).each(function(){$.J.form.setup.wysiwyg(form,$(this))});$(".field_cherrypick_container",form).each(function(){$.J.form.setup.cherrypicker(form,$(this))});$(".color_picker",form).each(function(){$.J.form.setup.colorpicker(form,$(this))});$(".j-form-upload",form).each(function(){$.J.form.setup.upload(form,$(this))});$(".f_input_icon img",form).click(function(){$(this).parent().find("input:visible").focus()});$("table.form :input",form).filter(":visible").not(".datepicker").filter(":first").focus(); $.J.tooltip(form)},setup:{autocomplete:function(form,$this){var name=$this.attr("id").split("_autocomplete")[0];$this.data("autocomplete-input",$("#"+name,form)).autocomplete({delay:250,autoFocus:true,source:$this.data("autocomplete-link")?$.J.form.event.autocomplete.source_ajax:$this.data("autocomplete-list"),select:$.J.form.event.autocomplete.select})},tokenlist:function(form,$this){var container=$("#"+$this.attr("id")+"_tokencontainer tbody");var template=$("tr.hidden",container);$(".tokenlist_remove", container).click($.J.form.event.tokenlist.remove);$this.data("tokenlist-container",container).data("tokenlist-template",template).autocomplete({delay:250,source:$this.data("autocomplete-link")?$.J.form.event.autocomplete.source_ajax:$this.data("autocomplete-list"),select:$.J.form.event.tokenlist.select})},wysiwyg:function(form,$this){var config=[];if($("#"+$this.attr("id")+"_toolbar").length>0)if($("#"+$this.attr("id")+"_toolbar").attr("rel")!=="")config["toolbar"]=$("#"+this.attr("id")+"_toolbar").attr("rel"); else{var all=[];var options_cat=$("#"+$this.attr("id")+"_toolbar")[0].value.split("&");$.each(options_cat,function(index,value){if(value=="/")all.push("/");else all.push(value.split(","))});config["toolbar"]=all}if($("#"+$this.attr("id")+"_language").length>0)config["language"]=$("#"+$this.attr("id")+"_language")[0].value;if($("#"+$this.attr("id")+"_custom_config").length>0)config["customConfig"]=$("#"+$this.attr("id")+"_custom_config")[0].value;CKEDITOR.replace($this.attr("id"),config)},cherrypicker:function(form, $this){$('ul[id^="field_cherrypick_sortable_"]',$this).sortable({connectWith:".sortable_cherrypick",receive:function(e,ui){if(ui.item.hasClass("sortable_required"))$(ui.sender).sortable("cancel");$("input.cherrypick_value",$(ui.item).parents(".field_cherrypick_container:first")).val($.toJSON($("#field_cherrypick_sortable_right").sortable("toArray")))},stop:function(e,ui){$("input.cherrypick_value",$(ui.item).parents(".field_cherrypick_container:first")).val($.toJSON($("#field_cherrypick_sortable_right").sortable("toArray")))}}); $("input.cherrypick_value",$this).val($.toJSON($("#field_cherrypick_sortable_right").sortable("toArray")))},colorpicker:function(form,$this){$this.ColorPicker({onSubmit:function(hsb,hex,rgb,el){var id=$(el).attr("id");id=id.substring(0,id.length-12);$("#"+id).val(hex);$(el).css("background-color","#"+hex);$(el).ColorPickerHide()},onBeforeShow:function(){$(this).ColorPickerSetColor(Mindshark.rgb2hex($(this).css("background-color")))}})},upload:function(form,$this){var container=$(".j-form-upload-info", $this),progress=$(".j-form-upload-progress",$this),ptable=$("table",container),list={};var _id=function(file){return file.name+"_"+file.size};progress.progressbar({value:0});$this.fileupload({url:"/empty/fs/upload/?fs_session="+$this.data("fs-session"),singleFileUploads:false,limitMultiFileUploads:3}).bind("fileuploadadd",function(ev,data){if(!container.is(":visible"))container.slideDown();if(!progress.is(":visible"))progress.fadeIn();var elm;for(i=0;i"+data.files[i].name+""+data.files[i].size+""+_("Starting upload")+"").appendTo(ptable).data("fs-id",id)}}).bind("fileuploadsend",function(ev,data){$this.data("filecount",$this.data("filecount")+data.files.length);if($this.data("filelimit")>0&&$this.data("filelimit")<$this.data("filecount")){for(i=0;i').progressbar({value:0}))}}).bind("fileuploaddone",function(ev,data){for(var i=0;i'+data.result.error[id]+"");list[id].data("fs-id",null)}else{msg=$(''+_("Remove")+"").click(function(ev){var elm=$(this).parents("tr:first");$.J.ajax("/ajax/fs/remove/?fs_session="+$this.data("fs-session")+"&entry_id="+elm.data("fs-id"),{success:function(data){$this.data("filecount",$this.data("filecount")-1);elm.fadeOut(function(){$(this).remove();if($("tr",ptable).length<=1)container.slideUp()})}})});list[id].data("fs-id",data.result.ids[id])}$("td:nth(2) div", list[id]).replaceWith(msg);if($(".j-form-upload-progress",ptable).length==0)progress.fadeOut()}}).bind("fileuploadfail",function(ev,data){for(var i=0;i'+_("Unable to upload file")+""))}}).bind("fileuploadprogress",function(ev,data){for(var i=0;i');$(input_elm).before(elm);$("td",elm).html(data.form_error[name]);if(!focus_set)focus_set=$("input, select, textarea",input_elm)}$('input[type="submit"], input[type="button"]',self).removeAttr("disabled");if(opts.failure!=undefined)eval(opts.failure);if(typeof data.callback== "object"&&data.callback.status!=true)if(data.callback.message!=undefined)if(data.callback.parent||Mindshark.modal!=undefined)window.parent.Mindshark.alert(data.callback.message,function(){if(focus_set)focus_set.focus()});else Mindshark.alert(data.callback.message,function(){if(focus_set)focus_set.focus()});return}Mindshark.change.clear(form.attr("id"));if(opts.ajax_validate!=undefined){$(form).unbind("submit");$(form).submit();return}if(opts.success!=undefined&&opts.success!="no_action")eval(opts.success); if(typeof data.callback=="object"&&data.callback.message!=undefined)Mindshark.gritter(data.callback.message,Mindshark.modal!=undefined)},failure:function(){$('input[type="submit"], input[type="button"]',self).removeAttr("disabled")}});return false},change:function(event){var $this=$(this);var form=$this.parents("form");var data=$.J.form.extract(form);data.form_submit=true;$.J.ajax("/ajax"+$this.data("onchange"),{data:data,success:function(data){for(var i in data.form){var elm=$("#"+i);if(data.form[i].autocomplete=== true){if(data.form[i].value!==undefined)elm.val(data.form[i].value);if(data.form[i].label!==undefined)$("#"+i+"_autocomplete").val(data.form[i].label);if(data.form[i].link!==undefined)$("#"+i+"_autocomplete").data("autocomplete-link",data.form[i].link);if(data.form[i].options!==undefined)$("#"+i+"_autocomplete").autocomplete("option","source",data.form[i].options)}else elm.each(function(){switch(this.nodeName){case "SPAN":$(this).html(data.form[i].value);break;case "SELECT":var value=typeof data.form[i].value!== undefined?data.form[i].value:$(this).val();if(typeof data.form[i].options=="object"){var html="";for(var key in data.form[i].options)html+='";$(this).html(html)}$(this).val(value);if($.mobile)$(this).selectmenu("refresh",true);break;case "INPUT":$(this).val(data.form[i].value);break}})}}})},autocomplete:{source_ajax:function(request,response){var $this=$(this.element);var form=$this.parents("form:first");if(form.length)request.form=$.J.form.extract(form); var url=$this.data("autocomplete-link");$.J.ajax("/ajax"+url+(url[url.length-1]=="/"?"?":"&")+"q="+request.term,{data:request,success:function(data){response($.map(data.result,function(item){return{label:item.name,value:item.name,id:item.id}}))}})},select:function(event,ui){var input=$(this).data("autocomplete-input");input.val(ui.item.id).trigger("change")}},tokenlist:{select:function(event,ui){var $this=$(this);var found=false;$("tr",$(this).data("tokenlist-container")).each(function(){if($(this).data("tokenlist-id")== ui.item.id){found=true;return false}});if(found)return;var elm=$this.data("tokenlist-template").clone().removeClass("hidden").data("tokenlist-id",ui.item.id);$("input,select,textarea",elm).each(function(){var $this=$(this);$this.attr("name",$this.attr("name")+"_"+ui.item.id);$this.attr("id",$this.attr("id")+"_"+ui.item.id)});$("td:first",elm).html(ui.item.label);$(".tokenlist_remove",elm).click($.J.form.event.tokenlist.remove);$this.data("tokenlist-container").append(elm);$this.val("");if($.mobile){$("[data-role]", elm).each(function(){$(this).removeAttr("data-role")});$("[data-org-role]",elm).each(function(){var $this=$(this);var role=$this.data("org-role");$this.attr("data-role",role)});elm.page()}return false},remove:function(){$(this).parents("tr:first").remove()}}},validate:{error:function(form,error){var is_error=typeof error==="object";$(".error_label",form).each(function(){var name=this.id.substr(5,this.id.length-11);if(!is_error||!error[name])$(this).remove();$("#form_"+name,form).removeClass("error")}); var focus_set=false;if(is_error)for(var name in error){var input_elm=$("#form_"+name,form).addClass("error");var elm=$("#form_"+name+"_error",form);if(!elm.length)var elm=$('');$(input_elm).before(elm);$("td",elm).html(error[name]);if(!focus_set)focus_set=$("input, select, textarea",input_elm)}}},success:function(){window.location=window.location}}})})(jQuery);