jQuery.fn.ajaxSubmit=function(c){if(typeof c=='function')c={success:c};c=jQuery.extend({url:this.attr('action')||'',method:this.attr('method')||'GET'},c||{});c.success=c.success||c.after;c.beforeSubmit=c.beforeSubmit||c.before;c.type=c.type||c.method;var a=this.formToArray(c.semantic);if(c.beforeSubmit&&c.beforeSubmit(a,this,c)===false)return this;var q=jQuery.param(a);if(c.type.toUpperCase()=='GET'){c.url+=(c.url.indexOf('?')>=0?'&':'?')+q;c.data=null}else c.data=q;var d=this,callbacks=[];if(c.resetForm)callbacks.push(function(){d.resetForm()});if(c.clearForm)callbacks.push(function(){d.clearForm()});if(!c.dataType&&c.target){var e=c.success||function(){};callbacks.push(function(a,b){jQuery(c.target).attr("innerHTML",a).evalScripts().each(e,[a,b])})}else if(c.success)callbacks.push(c.success);c.success=function(a,b){for(var i=0,max=callbacks.length;i<max;i++)callbacks[i](a,b)};jQuery.ajax(c);return this};jQuery.fn.ajaxForm=function(d){return this.each(function(){jQuery("input:submit,input:image,button:submit",this).click(function(a){var b=this.form;b.clk=this;if(this.type=='image'){if(a.offsetX!=undefined){b.clk_x=a.offsetX;b.clk_y=a.offsetY}else if(typeof jQuery.fn.offset=='function'){var c=jQuery(this).offset();b.clk_x=a.pageX-c.left;b.clk_y=a.pageY-c.top}else{b.clk_x=a.pageX-this.offsetLeft;b.clk_y=a.pageY-this.offsetTop}}setTimeout(function(){b.clk=b.clk_x=b.clk_y=null},10)})}).submit(function(e){jQuery(this).ajaxSubmit(d);return false})};jQuery.fn.formToArray=function(b){var a=[];if(this.length==0)return a;var c=this[0];var d=b?c.getElementsByTagName('*'):c.elements;if(!d)return a;for(var i=0,max=d.length;i<max;i++){var e=d[i];var n=e.name;if(!n)continue;if(b&&c.clk&&e.type=="image"){if(!e.disabled&&c.clk==e)a.push({name:n+'.x',value:c.clk_x},{name:n+'.y',value:c.clk_y});continue}var v=jQuery.fieldValue(e,true);if(v===null)continue;if(v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;j++)a.push({name:n,value:v[j]})}else a.push({name:n,value:v})}if(!b&&c.clk){var f=c.getElementsByTagName("input");for(var i=0,max=f.length;i<max;i++){var g=f[i];var n=g.name;if(n&&!g.disabled&&g.type=="image"&&c.clk==g)a.push({name:n+'.x',value:c.clk_x},{name:n+'.y',value:c.clk_y})}}return a};jQuery.fn.formSerialize=function(a){return jQuery.param(this.formToArray(a))};jQuery.fn.fieldSerialize=function(b){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=jQuery.fieldValue(this,b);if(v&&v.constructor==Array){for(var i=0,max=v.length;i<max;i++)a.push({name:n,value:v[i]})}else if(v!==null&&typeof v!='undefined')a.push({name:this.name,value:v})});return jQuery.param(a)};jQuery.fn.fieldValue=function(a){var b,cbName;for(var i=0,max=this.length;i<max;i++){var c=this[i];var v=jQuery.fieldValue(c,a);if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))continue;if(c.type!='checkbox')return v;cbName=cbName||c.name;if(cbName!=c.name)return b;b=b||[];b.push(v)}return b};jQuery.fieldValue=function(b,c){var n=b.name,t=b.type,tag=b.tagName.toLowerCase();if(typeof c=='undefined')c=true;if(c&&(!n||b.disabled||t=='reset'||(t=='checkbox'||t=='radio')&&!b.checked||(t=='submit'||t=='image')&&b.form&&b.form.clk!=b||tag=='select'&&b.selectedIndex==-1))return null;if(tag=='select'){var d=b.selectedIndex;if(d<0)return null;var a=[],ops=b.options;var e=(t=='select-one');var f=(e?d+1:ops.length);for(var i=(e?d:0);i<f;i++){var g=ops[i];if(g.selected){var v=jQuery.browser.msie&&!(g.attributes['value'].specified)?g.text:g.value;if(e)return v;a.push(v)}}return a}return b.value};jQuery.fn.clearForm=function(){return this.each(function(){jQuery('input,select,textarea',this).clearFields()})};jQuery.fn.clearFields=jQuery.fn.clearInputs=function(){return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(t=='text'||t=='password'||tag=='textarea')this.value='';else if(t=='checkbox'||t=='radio')this.checked=false;else if(tag=='select')this.selectedIndex=-1})};jQuery.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))this.reset()})};
