$.extend(Mindshark,{form:{autocomplete:{},submit:function(){window.location=window.location},onchange:function(url,elm,callback){var form=$(elm).parents("form");var param=Mindshark.form.extract(form);Mindshark.ajax("/ajax"+url,{data:param,success:function(data){var elm,html;for(var i in data.form)if(data.form[i].autocomplete===true){if(data.form[i].value!==undefined)$("#"+i).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 if(data.form[i].tokenlist!=undefined&&data.form[i].tokenlist==true)Mindshark.form.tokenlist_update($("#"+i),data.form[i].link);else{elm=$("#"+i,form);if(elm.length==0)elm=$('[name="'+i+'"]',form);elm.each(function(){switch(this.nodeName){case "SPAN":$(this).html(data.form[i].value);break;case "SELECT":Mindshark.form.update_select.call(this, data.form[i].options,data.form[i].value);break;case "INPUT":$(this).val(data.form[i].value);break}})}if(callback)callback.call(elm,data)}})},update_select:function(options,value){if(typeof options=="object"){var html="";for(var key in options)html+='";$(this).html(html)}$(this).val(value)},extract:function(form,name_callback){var data=$.J.form.extract(form,name_callback);data.form_submit=true;return data},populate:function(form,values,disabled){$('input[type!="checkbox"], textarea', form).each(function(){var id=$(this).attr("id");if(!id)return true;if(values[id]!=undefined)$(this).val(values[id]);if(disabled&&disabled[id])$(this).attr("disabled","disabled");else $(this).removeAttr("disabled")});$('input[type="checkbox"]',form).each(function(){var id=$(this).attr("id");if(!id)return true;if(values[id]!=undefined)$(this).attr("checked","checked");else $(this).removeAttr("checked");if(disabled&&disabled[id])$(this).attr("disabled","disabled");else $(this).removeAttr("disabled")}); $("select",form).each(function(){var id=$(this).attr("id");if(!id)return true;if(values[id]!=undefined)$(this).val(values[id]);if(disabled&&disabled[id])$(this).attr("disabled","disabled");else $(this).removeAttr("disabled")})},clear:function(form){$("input",form).each(function(){switch(this.type){case "checkbox":$(this).removeAttr("checked");break;case "submit":case "button":case "hidden":break;default:$(this).val("");break}});$("textarea",form).each(function(){$(this).val("")});$("select",form).each(function(){var first= $("option:first",this);$(this).val($(first).val())})},setup:function(parent){var form_elm=parent!=undefined&&$(parent).is("form")?parent:$("form",parent);if(!form_elm.length)form_elm=parent;$(form_elm).filter(".form_ajax").unbind("submit");$(form_elm).filter(".form_ajax").bind("submit",function(){var form=this;var opts=$.parseJSON(Mindshark.strip_slashes($(this).attr("rel")));var url=$(this).attr("action");var name,param;var self=this;if(url=="#")url=window.location.pathname;$('input[type="submit"], input[type="button"]', this).attr("disabled","disabled");param=Mindshark.form.extract(this,function(){if(opts.name_callback){var func=null;eval("func = "+opts.name_callback+";");return func.call(this)}return this.name});param["form_submit"]=2;Mindshark.ajax("/form"+url,{data:param,success:function(data){$(".error_label",self).each(function(){var name=this.id.substr(5,this.id.length-11);if(!data.form_error[name])$(this).remove();$("#form_"+name).removeClass("error")});$('input[type="submit"], input[type="button"]',self).removeAttr("disabled"); if(!data.form_status){var focus_set=false;for(var name in data.form_error){var input_elm=$("#form_"+name).addClass("error");var elm=$("#form_"+name+"_error");if(!elm.length)var elm=$('');$(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_elm.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});$(".form_tabs",form_elm).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_elm).each(function(){$(this).datepicker({dateFormat:$(this).attr("rel"),showOtherMonths:true,selectOtherMonths:true})});$(".timepicker",form_elm).timepicker({showPeriodLabels:false,showOn:"focus"});$(".token_list",form_elm).each(function(){var param=$.parseJSON($(this).attr("rel"));$(this).tokenInput("/ajax"+param.link,param)});$(".autocomplete",form_elm).each(function(){$.J.form.setup.autocomplete($(this))});$(".new_tokenlist",form_elm).each(function(){$.J.form.setup.tokenlist($(this))}); $(".field_cherrypick_container",form_elm).each(function(){$('ul[id^="field_cherrypick_sortable_"]',form_elm).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",form_elm).val($.toJSON($("#field_cherrypick_sortable_right").sortable("toArray")))});$("textarea.wysiwyg",form_elm).each(function(){Mindshark.form.wysiwyg_setup($(this))});$(".file_multiple",form_elm).each(function(){form_elm.attr("enctype","multipart/form-data");var uploader=new Uploader({},locale,form_elm);uploader.initialize()});var color_picker=$(".color_picker");var setup_color_picker=function(){$(color_picker,form_elm).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")))}})};if(color_picker.length)if(jQuery().ColorPicker)setup_color_picker();else{$.J.load_css("/css/jquery.colorpicker.css");$.getScript("/js/jquery.colorpicker.js",setup_color_picker)}$("input.inline_close",form_elm).click(function(){Mindshark.change.clear(form_elm.attr("id")); $("textarea.wysiwyg",form_elm).each(function(){$(this).ckeditorGet().destroy()})});$("input.form_dialog_close",form_elm).click(function(){var reload=false;var rel=$(this).attr("rel");if(rel)Mindshark.modal.close(reload);Mindshark.modal.close()});var input=$("table.form :input",form_elm).filter(":visible").not(".datepicker").filter(":first");if(input.length)input.focus();else $("#autocomplete_customer").focus();Mindshark.tooltip(parent)},autocomplete_setup:function(elem){var elm=elem.attr("id").split("_autocomplete"); elem.autocomplete(Mindshark.form.autocomplete[elm[0]],{max:30,minChars:0,matchContains:"word",autoFill:false,formatItem:function(item,i,max){return item.value},formatMatch:function(item,i,max){return item.value},formatResult:function(item){return item.value}}).result(function(e,item){var elm=this.id.split("_autocomplete");var id=item?item.id:0;$("#"+elm).val(id).trigger("change")})},wysiwyg_setup:function(elem){var config=[];Mindshark.form.wysiwyg_setup_toolbar(elem,config);Mindshark.form.wysiwyg_setup_language(elem, config);Mindshark.form.wysiwyg_setup_custom_config(elem,config);CKEDITOR.replace(elem.attr("id"),config)},wysiwyg_setup_toolbar:function(elem,config){if($("#"+elem.attr("id")+"_toolbar").length>0)if($("#"+elem.attr("id")+"_toolbar").attr("rel")!=="")config["toolbar"]=$("#"+elem.attr("id")+"_toolbar").attr("rel");else{var all=[];var options_cat=$("#"+elem.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(typeof all!=="undefined")return true;return false},wysiwyg_setup_language:function(elem,config){if($("#"+elem.attr("id")+"_language").length>0){config["language"]=$("#"+elem.attr("id")+"_language")[0].value;return true}return false},wysiwyg_setup_custom_config:function(elem,config){if($("#"+elem.attr("id")+"_custom_config").length>0){config["customConfig"]=$("#"+elem.attr("id")+"_custom_config")[0].value;return true}return false},tokenlist_update:function(elem,link){elem.trigger("change_url", link)}}});