(function($){
$.fn.ajaxSubmit=function(_1){
if(!this.length){
_2("ajaxSubmit: skipping submit process - no element selected");
return this;
}
if(typeof _1=="function"){
_1={success:_1};
}
var _3=this.attr("action");
var _4=(typeof _3==="string")?$.trim(_3):"";
if(_4){
_4=(_4.match(/^([^#]+)/)||[])[1];
}
_4=_4||window.location.href||"";
_1=$.extend(true,{url:_4,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},_1);
var _5={};
this.trigger("form-pre-serialize",[this,_1,_5]);
if(_5.veto){
_2("ajaxSubmit: submit vetoed via form-pre-serialize trigger");
return this;
}
if(_1.beforeSerialize&&_1.beforeSerialize(this,_1)===false){
_2("ajaxSubmit: submit aborted via beforeSerialize callback");
return this;
}
var n,v,a=this.formToArray(_1.semantic);
if(_1.data){
_1.extraData=_1.data;
for(n in _1.data){
if(_1.data[n] instanceof Array){
for(var k in _1.data[n]){
a.push({name:n,value:_1.data[n][k]});
}
}else{
v=_1.data[n];
v=$.isFunction(v)?v():v;
a.push({name:n,value:v});
}
}
}
if(_1.beforeSubmit&&_1.beforeSubmit(a,this,_1)===false){
_2("ajaxSubmit: submit aborted via beforeSubmit callback");
return this;
}
this.trigger("form-submit-validate",[a,this,_1,_5]);
if(_5.veto){
_2("ajaxSubmit: submit vetoed via form-submit-validate trigger");
return this;
}
var q=$.param(a);
if(_1.type.toUpperCase()=="GET"){
_1.url+=(_1.url.indexOf("?")>=0?"&":"?")+q;
_1.data=null;
}else{
_1.data=q;
}
var _6=this,_7=[];
if(_1.resetForm){
_7.push(function(){
_6.resetForm();
});
}
if(_1.clearForm){
_7.push(function(){
_6.clearForm();
});
}
if(!_1.dataType&&_1.target){
var _8=_1.success||function(){
};
_7.push(function(_9){
var fn=_1.replaceTarget?"replaceWith":"html";
$(_1.target)[fn](_9).each(_8,arguments);
});
}else{
if(_1.success){
_7.push(_1.success);
}
}
_1.success=function(_a,_b,_c){
var _d=_1.context||_1;
for(var i=0,_e=_7.length;i<_e;i++){
_7[i].apply(_d,[_a,_b,_c||_6,_6]);
}
};
var _f=$("input:file",this).length>0;
var mp="multipart/form-data";
var _10=(_6.attr("enctype")==mp||_6.attr("encoding")==mp);
if(_1.iframe!==false&&(_f||_1.iframe||_10)){
if(_1.closeKeepAlive){
$.get(_1.closeKeepAlive,_11);
}else{
_11();
}
}else{
$.ajax(_1);
}
this.trigger("form-submit-notify",[this,_1]);
return this;
function _11(){
var _12=_6[0];
if($(":input[name=submit],:input[id=submit]",_12).length){
alert("Error: Form elements must not have name or id of \"submit\".");
return;
}
var s=$.extend(true,{},$.ajaxSettings,_1);
s.context=s.context||s;
var id="jqFormIO"+(new Date().getTime()),fn="_"+id;
var $io=$("<iframe id=\""+id+"\" name=\""+id+"\" src=\""+s.iframeSrc+"\" />");
var io=$io[0];
$io.css({position:"absolute",top:"-1000px",left:"-1000px"});
var xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){
},getResponseHeader:function(){
},setRequestHeader:function(){
},abort:function(){
_2("aborting upload...");
var e="aborted";
this.aborted=1;
$io.attr("src",s.iframeSrc);
xhr.error=e;
s.error&&s.error.call(s.context,xhr,"error",e);
g&&$.event.trigger("ajaxError",[xhr,s,e]);
s.complete&&s.complete.call(s.context,xhr,"error");
}};
var g=s.global;
if(g&&!$.active++){
$.event.trigger("ajaxStart");
}
if(g){
$.event.trigger("ajaxSend",[xhr,s]);
}
if(s.beforeSend&&s.beforeSend.call(s.context,xhr,s)===false){
if(s.global){
$.active--;
}
return;
}
if(xhr.aborted){
return;
}
var _13=0;
var sub=_12.clk;
if(sub){
var n=sub.name;
if(n&&!sub.disabled){
s.extraData=s.extraData||{};
s.extraData[n]=sub.value;
if(sub.type=="image"){
s.extraData[n+".x"]=_12.clk_x;
s.extraData[n+".y"]=_12.clk_y;
}
}
}
function _14(){
var t=_6.attr("target"),a=_6.attr("action");
_12.setAttribute("target",id);
if(_12.getAttribute("method")!="POST"){
_12.setAttribute("method","POST");
}
if(_12.getAttribute("action")!=s.url){
_12.setAttribute("action",s.url);
}
if(!s.skipEncodingOverride){
_6.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});
}
if(s.timeout){
setTimeout(function(){
_13=true;
cb();
},s.timeout);
}
var _15=[];
try{
if(s.extraData){
for(var n in s.extraData){
_15.push($("<input type=\"hidden\" name=\""+n+"\" value=\""+s.extraData[n]+"\" />").appendTo(_12)[0]);
}
}
$io.appendTo("body");
io.attachEvent?io.attachEvent("onload",cb):io.addEventListener("load",cb,false);
_12.submit();
}
finally{
_12.setAttribute("action",a);
if(t){
_12.setAttribute("target",t);
}else{
_6.removeAttr("target");
}
$(_15).remove();
}
};
if(s.forceSync){
_14();
}else{
setTimeout(_14,10);
}
var _16,doc,_17=50;
function cb(){
if(xhr.aborted){
return;
}
var doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;
if(!doc||doc.location.href==s.iframeSrc){
return;
}
io.detachEvent?io.detachEvent("onload",cb):io.removeEventListener("load",cb,false);
var ok=true;
try{
if(_13){
throw "timeout";
}
var _18=s.dataType=="xml"||doc.XMLDocument||$.isXMLDoc(doc);
_2("isXml="+_18);
if(!_18&&window.opera&&(doc.body==null||doc.body.innerHTML=="")){
if(--_17){
_2("requeing onLoad callback, DOM not available");
setTimeout(cb,250);
return;
}
}
xhr.responseText=doc.body?doc.body.innerHTML:doc.documentElement?doc.documentElement.innerHTML:null;
xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;
xhr.getResponseHeader=function(_19){
var _1a={"content-type":s.dataType};
return _1a[_19];
};
var scr=/(json|script)/.test(s.dataType);
if(scr||s.textarea){
var ta=doc.getElementsByTagName("textarea")[0];
if(ta){
xhr.responseText=ta.value;
}else{
if(scr){
var pre=doc.getElementsByTagName("pre")[0];
var b=doc.getElementsByTagName("body")[0];
if(pre){
xhr.responseText=pre.textContent;
}else{
if(b){
xhr.responseText=b.innerHTML;
}
}
}
}
}else{
if(s.dataType=="xml"&&!xhr.responseXML&&xhr.responseText!=null){
xhr.responseXML=_1b(xhr.responseText);
}
}
_16=_1d(xhr,s.dataType,s);
}
catch(e){
_2("error caught:",e);
ok=false;
xhr.error=e;
s.error&&s.error.call(s.context,xhr,"error",e);
g&&$.event.trigger("ajaxError",[xhr,s,e]);
}
if(xhr.aborted){
_2("upload aborted");
ok=false;
}
if(ok){
s.success&&s.success.call(s.context,_16,"success",xhr);
g&&$.event.trigger("ajaxSuccess",[xhr,s]);
}
g&&$.event.trigger("ajaxComplete",[xhr,s]);
if(g&&!--$.active){
$.event.trigger("ajaxStop");
}
s.complete&&s.complete.call(s.context,xhr,ok?"success":"error");
setTimeout(function(){
$io.removeData("form-plugin-onload");
$io.remove();
xhr.responseXML=null;
},100);
};
var _1b=$.parseXML||function(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.nodeName!="parsererror")?doc:null;
};
var _1c=$.parseJSON||function(s){
return window["eval"]("("+s+")");
};
var _1d=function(xhr,_1e,s){
var ct=xhr.getResponseHeader("content-type")||"",xml=_1e==="xml"||!_1e&&ct.indexOf("xml")>=0,_16=xml?xhr.responseXML:xhr.responseText;
if(xml&&_16.documentElement.nodeName==="parsererror"){
$.error&&$.error("parsererror");
}
if(s&&s.dataFilter){
_16=s.dataFilter(_16,_1e);
}
if(typeof _16==="string"){
if(_1e==="json"||!_1e&&ct.indexOf("json")>=0){
_16=_1c(_16);
}else{
if(_1e==="script"||!_1e&&ct.indexOf("javascript")>=0){
$.globalEval(_16);
}
}
}
return _16;
};
};
};
$.fn.ajaxForm=function(_1f){
if(this.length===0){
var o={s:this.selector,c:this.context};
if(!$.isReady&&o.s){
_2("DOM not ready, queuing ajaxForm");
$(function(){
$(o.s,o.c).ajaxForm(_1f);
});
return this;
}
_2("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));
return this;
}
return this.ajaxFormUnbind().bind("submit.form-plugin",function(e){
if(!e.isDefaultPrevented()){
e.preventDefault();
$(this).ajaxSubmit(_1f);
}
}).bind("click.form-plugin",function(e){
var _20=e.target;
var $el=$(_20);
if(!($el.is(":submit,input:image"))){
var t=$el.closest(":submit");
if(t.length==0){
return;
}
_20=t[0];
}
var _21=this;
_21.clk=_20;
if(_20.type=="image"){
if(e.offsetX!=undefined){
_21.clk_x=e.offsetX;
_21.clk_y=e.offsetY;
}else{
if(typeof $.fn.offset=="function"){
var _22=$el.offset();
_21.clk_x=e.pageX-_22.left;
_21.clk_y=e.pageY-_22.top;
}else{
_21.clk_x=e.pageX-_20.offsetLeft;
_21.clk_y=e.pageY-_20.offsetTop;
}
}
}
setTimeout(function(){
_21.clk=_21.clk_x=_21.clk_y=null;
},100);
});
};
$.fn.ajaxFormUnbind=function(){
return this.unbind("submit.form-plugin click.form-plugin");
};
$.fn.formToArray=function(_23){
var a=[];
if(this.length===0){
return a;
}
var _24=this[0];
var els=_23?_24.getElementsByTagName("*"):_24.elements;
if(!els){
return a;
}
var i,j,n,v,el,max,_25;
for(i=0,max=els.length;i<max;i++){
el=els[i];
n=el.name;
if(!n){
continue;
}
if(_23&&_24.clk&&el.type=="image"){
if(!el.disabled&&_24.clk==el){
a.push({name:n,value:$(el).val()});
a.push({name:n+".x",value:_24.clk_x},{name:n+".y",value:_24.clk_y});
}
continue;
}
v=$.fieldValue(el,true);
if(v&&v.constructor==Array){
for(j=0,_25=v.length;j<_25;j++){
a.push({name:n,value:v[j]});
}
}else{
if(v!==null&&typeof v!="undefined"){
a.push({name:n,value:v});
}
}
}
if(!_23&&_24.clk){
var _26=$(_24.clk),_27=_26[0];
n=_27.name;
if(n&&!_27.disabled&&_27.type=="image"){
a.push({name:n,value:_26.val()});
a.push({name:n+".x",value:_24.clk_x},{name:n+".y",value:_24.clk_y});
}
}
return a;
};
$.fn.formSerialize=function(_28){
return $.param(this.formToArray(_28));
};
$.fn.fieldSerialize=function(_29){
var a=[];
this.each(function(){
var n=this.name;
if(!n){
return;
}
var v=$.fieldValue(this,_29);
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(_2a){
for(var val=[],i=0,max=this.length;i<max;i++){
var el=this[i];
var v=$.fieldValue(el,_2a);
if(v===null||typeof v=="undefined"||(v.constructor==Array&&!v.length)){
continue;
}
v.constructor==Array?$.merge(val,v):val.push(v);
}
return val;
};
$.fieldValue=function(el,_2b){
var n=el.name,t=el.type,tag=el.tagName.toLowerCase();
if(_2b===undefined){
_2b=true;
}
if(_2b&&(!n||el.disabled||t=="reset"||t=="button"||(t=="checkbox"||t=="radio")&&!el.checked||(t=="submit"||t=="image")&&el.form&&el.form.clk!=el||tag=="select"&&el.selectedIndex==-1)){
return null;
}
if(tag=="select"){
var _2c=el.selectedIndex;
if(_2c<0){
return null;
}
var a=[],ops=el.options;
var one=(t=="select-one");
var max=(one?_2c+1:ops.length);
for(var i=(one?_2c:0);i<max;i++){
var op=ops[i];
if(op.selected){
var v=op.value;
if(!v){
v=(op.attributes&&op.attributes["value"]&&!(op.attributes["value"].specified))?op.text:op.value;
}
if(one){
return v;
}
a.push(v);
}
}
return a;
}
return $(el).val();
};
$.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(_2d){
if(_2d===undefined){
_2d=true;
}
return this.each(function(){
var t=this.type;
if(t=="checkbox"||t=="radio"){
this.checked=_2d;
}else{
if(this.tagName.toLowerCase()=="option"){
var _2e=$(this).parent("select");
if(_2d&&_2e[0]&&_2e[0].type=="select-one"){
_2e.find("option").selected(false);
}
this.selected=_2d;
}
}
});
};
function _2(){
if($.fn.ajaxSubmit.debug){
var msg="[jquery.form] "+Array.prototype.join.call(arguments,"");
if(window.console&&window.console.log){
window.console.log(msg);
}else{
if(window.opera&&window.opera.postError){
window.opera.postError(msg);
}
}
}
};
})(jQuery);


