;(function($){$.fn.ajaxSubmit=function(x){if(!this.length){F('ajaxSubmit: skipping submit process - no element selected');return this}if(typeof x=='function')x={success:x};x=$.extend({url:this.attr('action')||window.location.toString(),type:this.attr('method')||'GET'},x||{});var y={};this.trigger('form-pre-serialize',[this,x,y]);if(y.veto){F('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this}if(x.beforeSerialize&&x.beforeSerialize(this,x)===false){F('ajaxSubmit: submit aborted via beforeSerialize callback');return this}var a=this.formToArray(x.semantic);if(x.data){x.extraData=x.data;for(var n in x.data){if(x.data[n]instanceof Array){for(var k in x.data[n])a.push({name:n,value:x.data[n][k]})}else a.push({name:n,value:x.data[n]})}}if(x.beforeSubmit&&x.beforeSubmit(a,this,x)===false){F('ajaxSubmit: submit aborted via beforeSubmit callback');return this}this.trigger('form-submit-validate',[a,this,x,y]);if(y.veto){F('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this}var q=$.param(a);if(x.type.toUpperCase()=='GET'){x.url+=(x.url.indexOf('?')>=0?'&':'?')+q;x.data=null}else x.data=q;var z=this,A=[];if(x.resetForm)A.push(function(){z.resetForm()});if(x.clearForm)A.push(function(){z.clearForm()});if(!x.dataType&&x.target){var B=x.success||function(){};A.push(function(a){$(x.target).html(a).each(B,arguments)})}else if(x.success)A.push(x.success);x.success=function(a,b){for(var i=0,c=A.length;i<c;i++)A[i].apply(x,[a,b,z])};var C=$('input:file',this).fieldValue();var D=false;for(var j=0;j<C.length;j++)if(C[j])D=true;if(x.iframe||D){if(x.closeKeepAlive)$.get(x.closeKeepAlive,E);else E()}else $.ajax(x);this.trigger('form-submit-notify',[this,x]);return this;function E(){var i=z[0];if($(':input[name=submit]',i).length){alert('Error: Form elements must not be named "submit".');return}var j=$.extend({},$.ajaxSettings,x);var s=jQuery.extend(true,{},$.extend(true,{},$.ajaxSettings),j);var k='jqFormIO'+(new Date().getTime());var l=$('<iframe id="'+k+'" name="'+k+'" src="about:blank" />');var m=l[0];l.css({position:'absolute',top:'-1000px',left:'-1000px'});var o={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;l.attr('src','about:blank')}};var g=j.global;if(g&&!$.active++)$.event.trigger("ajaxStart");if(g)$.event.trigger("ajaxSend",[o,j]);if(s.beforeSend&&s.beforeSend(o,s)===false){s.global&&jQuery.active--;return}if(o.aborted)return;var p=0;var q=0;var r=i.clk;if(r){var n=r.name;if(n&&!r.disabled){x.extraData=x.extraData||{};x.extraData[n]=r.value;if(r.type=="image"){x.extraData[name+'.x']=i.clk_x;x.extraData[name+'.y']=i.clk_y}}}setTimeout(function(){var t=z.attr('target'),a=z.attr('action');i.setAttribute('target',k);if(i.getAttribute('method')!='POST')i.setAttribute('method','POST');if(i.getAttribute('action')!=j.url)i.setAttribute('action',j.url);if(!x.skipEncodingOverride){z.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'})}if(j.timeout)setTimeout(function(){q=true;v()},j.timeout);var b=[];try{if(x.extraData)for(var n in x.extraData)b.push($('<input type="hidden" name="'+n+'" value="'+x.extraData[n]+'" />').appendTo(i)[0]);l.appendTo('body');m.attachEvent?m.attachEvent('onload',v):m.addEventListener('load',v,false);i.submit()}finally{i.setAttribute('action',a);t?i.setAttribute('target',t):z.removeAttr('target');$(b).remove()}},10);var u=0;function v(){if(p++)return;m.detachEvent?m.detachEvent('onload',v):m.removeEventListener('load',v,false);var c=true;try{if(q)throw'timeout';var d,f;f=m.contentWindow?m.contentWindow.document:m.contentDocument?m.contentDocument:m.document;if((f.body==null||f.body.innerHTML=='')&&!u){u=1;p--;setTimeout(v,100);return}o.responseText=f.body?f.body.innerHTML:null;o.responseXML=f.XMLDocument?f.XMLDocument:f;o.getResponseHeader=function(a){var b={'content-type':j.dataType};return b[a]};if(j.dataType=='json'||j.dataType=='script'){var h=f.getElementsByTagName('textarea')[0];o.responseText=h?h.value:o.responseText}else if(j.dataType=='xml'&&!o.responseXML&&o.responseText!=null){o.responseXML=w(o.responseText)}d=$.httpData(o,j.dataType)}catch(e){c=false;$.handleError(j,o,'error',e)}if(c){j.success(d,'success');if(g)$.event.trigger("ajaxSuccess",[o,j])}if(g)$.event.trigger("ajaxComplete",[o,j]);if(g&&!--$.active)$.event.trigger("ajaxStop");if(j.complete)j.complete(o,c?'success':'error');setTimeout(function(){l.remove();o.responseXML=null},100)};function w(s,a){if(window.ActiveXObject){a=new ActiveXObject('Microsoft.XMLDOM');a.async='false';a.loadXML(s)}else a=(new DOMParser()).parseFromString(s,'text/xml');return(a&&a.documentElement&&a.documentElement.tagName!='parsererror')?a:null}}};$.fn.ajaxForm=function(c){return this.ajaxFormUnbind().bind('submit.form-plugin',function(){$(this).ajaxSubmit(c);return false}).each(function(){$(":submit,input:image",this).bind('click.form-plugin',function(e){var a=this.form;a.clk=this;if(this.type=='image'){if(e.offsetX!=undefined){a.clk_x=e.offsetX;a.clk_y=e.offsetY}else if(typeof $.fn.offset=='function'){var b=$(this).offset();a.clk_x=e.pageX-b.left;a.clk_y=e.pageY-b.top}else{a.clk_x=e.pageX-this.offsetLeft;a.clk_y=e.pageY-this.offsetTop}}setTimeout(function(){a.clk=a.clk_x=a.clk_y=null},10)})})};$.fn.ajaxFormUnbind=function(){this.unbind('submit.form-plugin');return this.each(function(){$(":submit,input:image",this).unbind('click.form-plugin')})};$.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,e=d.length;i<e;i++){var f=d[i];var n=f.name;if(!n)continue;if(b&&c.clk&&f.type=="image"){if(!f.disabled&&c.clk==f)a.push({name:n+'.x',value:c.clk_x},{name:n+'.y',value:c.clk_y});continue}var v=$.fieldValue(f,true);if(v&&v.constructor==Array){for(var j=0,g=v.length;j<g;j++)a.push({name:n,value:v[j]})}else if(v!==null&&typeof v!='undefined')a.push({name:n,value:v})}if(!b&&c.clk){var h=c.getElementsByTagName("input");for(var i=0,e=h.length;i<e;i++){var k=h[i];var n=k.name;if(n&&!k.disabled&&k.type=="image"&&c.clk==k)a.push({name:n+'.x',value:c.clk_x},{name:n+'.y',value:c.clk_y})}}return a};$.fn.formSerialize=function(a){return $.param(this.formToArray(a))};$.fn.fieldSerialize=function(c){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,c);if(v&&v.constructor==Array){for(var i=0,b=v.length;i<b;i++)a.push({name:n,value:v[i]})}else if(v!==null&&typeof v!='undefined')a.push({name:this.name,value:v})});return $.param(a)};$.fn.fieldValue=function(a){for(var b=[],i=0,c=this.length;i<c;i++){var d=this[i];var v=$.fieldValue(d,a);if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))continue;v.constructor==Array?$.merge(b,v):b.push(v)}return b};$.fieldValue=function(b,c){var n=b.name,t=b.type,d=b.tagName.toLowerCase();if(typeof c=='undefined')c=true;if(c&&(!n||b.disabled||t=='reset'||t=='button'||(t=='checkbox'||t=='radio')&&!b.checked||(t=='submit'||t=='image')&&b.form&&b.form.clk!=b||d=='select'&&b.selectedIndex==-1))return null;if(d=='select'){var e=b.selectedIndex;if(e<0)return null;var a=[],f=b.options;var g=(t=='select-one');var h=(g?e+1:f.length);for(var i=(g?e:0);i<h;i++){var j=f[i];if(j.selected){var v=j.value;if(!v)v=(j.attributes&&j.attributes['value']&&!(j.attributes['value'].specified))?j.text:j.value;if(g)return v;a.push(v)}}return a}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 t=this.type,a=this.tagName.toLowerCase();if(t=='text'||t=='password'||a=='textarea')this.value='';else if(t=='checkbox'||t=='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()})};$.fn.enable=function(b){if(b==undefined)b=true;return this.each(function(){this.disabled=!b})};$.fn.selected=function(b){if(b==undefined)b=true;return this.each(function(){var t=this.type;if(t=='checkbox'||t=='radio')this.checked=b;else if(this.tagName.toLowerCase()=='option'){var a=$(this).parent('select');if(b&&a[0]&&a[0].type=='select-one'){a.find('option').selected(false)}this.selected=b}})};function F(){if($.fn.ajaxSubmit.debug&&window.console&&window.console.log)window.console.log('[jquery.form] '+Array.prototype.join.call(arguments,''))}})(jQuery);
