;(function($){$.fn.ajaxSubmit=function(w){if(!this.length){log('ajaxSubmit: skipping submit process - no element selected');return this}if(typeof w=='function')w={success:w};var x=$.trim(this.attr('action'));if(x){x=(x.match(/^([^#]+)/)||[])[1]}x=x||window.location.href||'';w=$.extend({url:x,type:this.attr('method')||'GET',iframeSrc:/^https/i.test(window.location.href||'')?'javascript:false':'about:blank'},w||{});var y={};this.trigger('form-pre-serialize',[this,w,y]);if(y.veto){log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this}if(w.beforeSerialize&&w.beforeSerialize(this,w)===false){log('ajaxSubmit: submit aborted via beforeSerialize callback');return this}var a=this.formToArray(w.semantic);if(w.data){w.extraData=w.data;for(var n in w.data){if(w.data[n]instanceof Array){for(var k in w.data[n])a.push({name:n,value:w.data[n][k]})}else a.push({name:n,value:w.data[n]})}}if(w.beforeSubmit&&w.beforeSubmit(a,this,w)===false){log('ajaxSubmit: submit aborted via beforeSubmit callback');return this}this.trigger('form-submit-validate',[a,this,w,y]);if(y.veto){log('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this}var q=$.param(a);if(w.type.toUpperCase()=='GET'){w.url+=(w.url.indexOf('?')>=0?'&':'?')+q;w.data=null}else w.data=q;var z=this,callbacks=[];if(w.resetForm)callbacks.push(function(){z.resetForm()});if(w.clearForm)callbacks.push(function(){z.clearForm()});if(!w.dataType&&w.target){var A=w.success||function(){};callbacks.push(function(a){var b=w.replaceTarget?'replaceWith':'html';$(w.target)[b](a).each(A,arguments)})}else if(w.success)callbacks.push(w.success);w.success=function(a,b,c){for(var i=0,max=callbacks.length;i<max;i++)callbacks[i].apply(w,[a,b,c||z,z])};var B=$('input:file',this).fieldValue();var C=false;for(var j=0;j<B.length;j++)if(B[j])C=true;var D=false;if((B.length&&w.iframe!==false)||w.iframe||C||D){if(w.closeKeepAlive)$.get(w.closeKeepAlive,fileUpload);else fileUpload()}else $.ajax(w);this.trigger('form-submit-notify',[this,w]);return this;function fileUpload(){var j=z[0];if($(':input[name=submit]',j).length){alert('Error: Form elements must not be named "submit".');return}var k=$.extend({},$.ajaxSettings,w);var s=$.extend(true,{},$.extend(true,{},$.ajaxSettings),k);var l='jqFormIO'+(new Date().getTime());var m=$('<iframe id="'+l+'" name="'+l+'" src="'+k.iframeSrc+'" onload="(jQuery(this).data(\'form-plugin-onload\'))()" />');var o=m[0];m.css({position:'absolute',top:'-1000px',left:'-1000px'});var p={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;m.attr('src',k.iframeSrc)}};var g=k.global;if(g&&!$.active++)$.event.trigger("ajaxStart");if(g)$.event.trigger("ajaxSend",[p,k]);if(s.beforeSend&&s.beforeSend(p,s)===false){s.global&&$.active--;return}if(p.aborted)return;var q=false;var r=0;var u=j.clk;if(u){var n=u.name;if(n&&!u.disabled){k.extraData=k.extraData||{};k.extraData[n]=u.value;if(u.type=="image"){k.extraData[n+'.x']=j.clk_x;k.extraData[n+'.y']=j.clk_y}}}function doSubmit(){var t=z.attr('target'),a=z.attr('action');j.setAttribute('target',l);if(j.getAttribute('method')!='POST')j.setAttribute('method','POST');if(j.getAttribute('action')!=k.url)j.setAttribute('action',k.url);if(!k.skipEncodingOverride){z.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'})}if(k.timeout)setTimeout(function(){r=true;cb()},k.timeout);var b=[];try{if(k.extraData)for(var n in k.extraData)b.push($('<input type="hidden" name="'+n+'" value="'+k.extraData[n]+'" />').appendTo(j)[0]);m.appendTo('body');m.data('form-plugin-onload',cb);j.submit()}finally{j.setAttribute('action',a);t?j.setAttribute('target',t):z.removeAttr('target');$(b).remove()}};if(k.forceSync)doSubmit();else setTimeout(doSubmit,10);var v=100;function cb(){if(q)return;var c=true;try{if(r)throw'timeout';var d,doc;doc=o.contentWindow?o.contentWindow.document:o.contentDocument?o.contentDocument:o.document;var f=k.dataType=='xml'||doc.XMLDocument||$.isXMLDoc(doc);log('isXml='+f);if(!f&&(doc.body==null||doc.body.innerHTML=='')){if(--v){log('requeing onLoad callback, DOM not available');setTimeout(cb,250);return}log('Could not access iframe DOM after 100 tries.');return}log('response detected');q=true;p.responseText=doc.body?doc.body.innerHTML:null;p.responseXML=doc.XMLDocument?doc.XMLDocument:doc;p.getResponseHeader=function(a){var b={'content-type':k.dataType};return b[a]};if(k.dataType=='json'||k.dataType=='script'){var h=doc.getElementsByTagName('textarea')[0];if(h)p.responseText=h.value;else{var i=doc.getElementsByTagName('pre')[0];if(i)p.responseText=i.innerHTML}}else if(k.dataType=='xml'&&!p.responseXML&&p.responseText!=null){p.responseXML=toXml(p.responseText)}d=$.httpData(p,k.dataType)}catch(e){log('error caught:',e);c=false;p.error=e;$.handleError(k,p,'error',e)}if(c){k.success(d,'success');if(g)$.event.trigger("ajaxSuccess",[p,k])}if(g)$.event.trigger("ajaxComplete",[p,k]);if(g&&!--$.active)$.event.trigger("ajaxStop");if(k.complete)k.complete(p,c?'success':'error');setTimeout(function(){m.removeData('form-plugin-onload');m.remove();p.responseXML=null},100)};function toXml(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(f){return this.ajaxFormUnbind().bind('submit.form-plugin',function(e){e.preventDefault();$(this).ajaxSubmit(f)}).bind('click.form-plugin',function(e){var a=e.target;var b=$(a);if(!(b.is(":submit,input:image"))){var t=b.closest(':submit');if(t.length==0)return;a=t[0]}var c=this;c.clk=a;if(a.type=='image'){if(e.offsetX!=undefined){c.clk_x=e.offsetX;c.clk_y=e.offsetY}else if(typeof $.fn.offset=='function'){var d=b.offset();c.clk_x=e.pageX-d.left;c.clk_y=e.pageY-d.top}else{c.clk_x=e.pageX-a.offsetLeft;c.clk_y=e.pageY-a.offsetTop}}setTimeout(function(){c.clk=c.clk_x=c.clk_y=null},100)})};$.fn.ajaxFormUnbind=function(){return this.unbind('submit.form-plugin 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,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,value:$(e).val()});a.push({name:n+'.x',value:c.clk_x},{name:n+'.y',value:c.clk_y})}continue}var v=$.fieldValue(e,true);if(v&&v.constructor==Array){for(var j=0,jmax=v.length;j<jmax;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 f=$(c.clk),input=f[0],n=input.name;if(n&&!input.disabled&&input.type=='image'){a.push({name:n,value:f.val()});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(b){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.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 $.param(a)};$.fn.fieldValue=function(a){for(var b=[],i=0,max=this.length;i<max;i++){var c=this[i];var v=$.fieldValue(c,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,tag=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||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=g.value;if(!v)v=(g.attributes&&g.attributes['value']&&!(g.attributes['value'].specified))?g.text:g.value;if(e)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,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})};$.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 log(){if($.fn.ajaxSubmit.debug){var a='[jquery.form] '+Array.prototype.join.call(arguments,'');if(window.console&&window.console.log)window.console.log(a);else if(window.opera&&window.opera.postError)window.opera.postError(a)}}})(jQuery);
