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