$.fn.ajaxSubmit=function(options){if(typeof options=="function"){options={success:options}}options=options||{};options.url=options.url||this.attr("action")||window.location;options.type=options.type||this.attr("method")||"GET";var a=this.formToArray(options.semantic);if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){return this}var veto={};$.event.trigger("form.submit.validate",[a,this,options,veto]);if(veto.veto){return this}var q=$.param(a);if(options.type.toUpperCase()=="GET"){options.url+=(options.url.indexOf("?")>=0?"&":"?")+q;options.data=null}else{options.data=q}var $form=this,callbacks=[];if(options.resetForm){callbacks.push(function(){$form.resetForm()})}if(options.clearForm){callbacks.push(function(){$form.clearForm()})}if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data,status){$(options.target).attr("innerHTML",data).evalScripts().each(oldSuccess,[data,status])})}else{if(options.success){callbacks.push(options.success)}}options.success=function(data,status){for(var i=0,max=callbacks.length;i<max;i++){callbacks[i](data,status)}};var files=$("input:file",this).fieldValue();var found=false;for(var j=0;j<files.length;j++){if(files[j]){found=true}}if(options.iframe||found){fileUpload()}else{$.ajax(options)}$.event.trigger("form.submit.notify",[this,options]);return this;function fileUpload(){var form=$form[0];var opts=$.extend({},$.ajaxSettings,options);var id="jqFormIO"+$.fn.ajaxSubmit.counter++;var $io=$('<iframe id="'+id+'" name="'+id+'" />');var io=$io[0];var op8=$.browser.opera&&window.opera.version()<9;if($.browser.msie||op8){io.src='javascript:false;document.write("");'}$io.css({position:"absolute",top:"-1000px",left:"-1000px"});form.method="POST";form.encoding?form.encoding="multipart/form-data":form.enctype="multipart/form-data";var xhr={responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){}};var g=opts.global;if(g&&!$.active++){$.event.trigger("ajaxStart")}if(g){$.event.trigger("ajaxSend",[xhr,opts])}var cbInvoked=0;var timedOut=0;setTimeout(function(){$io.appendTo("body");io.attachEvent?io.attachEvent("onload",cb):io.addEventListener("load",cb,false);form.action=opts.url;var t=form.target;form.target=id;if(opts.timeout){setTimeout(function(){timedOut=true;cb()},opts.timeout)}form.submit();form.target=t},10);function cb(){if(cbInvoked++){return}io.detachEvent?io.detachEvent("onload",cb):io.removeEventListener("load",cb,false);var ok=true;try{if(timedOut){throw"timeout"}var data,doc;doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;xhr.responseText=doc.body?doc.body.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;if(opts.dataType=="json"||opts.dataType=="script"){var ta=doc.getElementsByTagName("textarea")[0];data=ta?ta.value:xhr.responseText;if(opts.dataType=="json"){eval("data = "+data)}else{$.globalEval(data)}}else{if(opts.dataType=="xml"){data=xhr.responseXML;if(!data&&xhr.responseText!=null){data=toXml(xhr.responseText)}}else{data=xhr.responseText}}}catch(e){ok=false;$.handleError(opts,xhr,"error",e)}if(ok){opts.success(data,"success");if(g){$.event.trigger("ajaxSuccess",[xhr,opts])}}if(g){$.event.trigger("ajaxComplete",[xhr,opts])}if(g&&!--$.active){$.event.trigger("ajaxStop")}if(opts.complete){opts.complete(xhr,ok?"success":"error")}setTimeout(function(){$io.remove();xhr.responseXML=null},100)}function toXml(s,doc){if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";doc.loadXML(s)}else{doc=(new DOMParser()).parseFromString(s,"text/xml")}return(doc&&doc.documentElement&&doc.documentElement.tagName!="parsererror")?doc:null}}};$.fn.ajaxSubmit.counter=0;$.fn.ajaxForm=function(a){return this.each(function(){$("input:submit,input:image,button:submit",this).click(function(c){var b=this.form;b.clk=this;if(this.type=="image"){if(c.offsetX!=undefined){b.clk_x=c.offsetX;b.clk_y=c.offsetY}else{if(typeof $.fn.offset=="function"){var d=$(this).offset();b.clk_x=c.pageX-d.left;b.clk_y=c.pageY-d.top}else{b.clk_x=c.pageX-this.offsetLeft;b.clk_y=c.pageY-this.offsetTop}}}setTimeout(function(){b.clk=b.clk_x=b.clk_y=null},10)})}).submit(function(b){$(this).ajaxSubmit(a);return false})};$.fn.formToArray=function(p){var o=[];if(this.length==0){return o}var c=this[0];var g=p?c.getElementsByTagName("*"):c.elements;if(!g){return o}for(var h=0,l=g.length;h<l;h++){var d=g[h];var e=d.name;if(!e){continue}if(p&&c.clk&&d.type=="image"){if(!d.disabled&&c.clk==d){o.push({name:e+".x",value:c.clk_x},{name:e+".y",value:c.clk_y})}continue}var q=$.fieldValue(d,true);if(q===null){continue}if(q.constructor==Array){for(var f=0,b=q.length;f<b;f++){o.push({name:e,value:q[f]})}}else{o.push({name:e,value:q})}}if(!p&&c.clk){var k=c.getElementsByTagName("input");for(var h=0,l=k.length;h<l;h++){var m=k[h];var e=m.name;if(e&&!m.disabled&&m.type=="image"&&c.clk==m){o.push({name:e+".x",value:c.clk_x},{name:e+".y",value:c.clk_y})}}}return o};$.fn.formSerialize=function(a){return $.param(this.formToArray(a))};$.fn.fieldSerialize=function(c){var b=[];this.each(function(){var f=this.name;if(!f){return}var d=$.fieldValue(this,c);if(d&&d.constructor==Array){for(var e=0,a=d.length;e<a;e++){b.push({name:f,value:d[e]})}}else{if(d!==null&&typeof d!="undefined"){b.push({name:this.name,value:d})}}});return $.param(b)};$.fn.fieldValue=function(g){var f=[],c;for(var d=0,a=this.length;d<a;d++){var e=this[d];var b=$.fieldValue(e,g);if(b===null||typeof b=="undefined"||(b.constructor==Array&&!b.length)){continue}c=c||e.name;if(c!=e.name){continue}b.constructor==Array?$.merge(f,b):f.push(b)}return f};$.fieldValue=function(b,h){var d=b.name,o=b.type,p=b.tagName.toLowerCase();if(typeof h=="undefined"){h=true}if(h&&(!d||b.disabled||o=="reset"||o=="button"||(o=="checkbox"||o=="radio")&&!b.checked||(o=="submit"||o=="image")&&b.form&&b.form.clk!=b||p=="select"&&b.selectedIndex==-1)){return null}if(p=="select"){var j=b.selectedIndex;if(j<0){return null}var l=[],c=b.options;var f=(o=="select-one");var k=(f?j+1:c.length);for(var e=(f?j:0);e<k;e++){var g=c[e];if(g.selected){var m=$.browser.msie&&!(g.attributes.value.specified)?g.text:g.value;if(f){return m}l.push(m)}}return l}return b.value};$.fn.clearForm=function(){return this.each(function(){$("input,select,textarea",this).clearFields()})};$.fn.clearFields=$.fn.clearInputs=function(){return this.each(function(){var b=this.type,a=this.tagName.toLowerCase();if(b=="text"||b=="password"||a=="textarea"){this.value=""}else{if(b=="checkbox"||b=="radio"){this.checked=false}else{if(a=="select"){this.selectedIndex=-1}}}})};$.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};
