(function($){
$.fn.ajaxSubmit=function(_1){
if(typeof _1=="function"){
_1={success:_1};
}
_1=$.extend({url:this.attr("action")||window.location,type:this.attr("method")||"GET"},_1||{});
var _2={};
$.event.trigger("form.pre.serialize",[this,_1,_2]);
if(_2.veto){
return this;
}
var a=this.formToArray(_1.semantic);
if(_1.data){
for(var n in _1.data){
a.push({name:n,value:_1.data[n]});
}
}
if(_1.beforeSubmit&&_1.beforeSubmit(a,this,_1)===false){
return this;
}
$.event.trigger("form.submit.validate",[a,this,_1,_2]);
if(_2.veto){
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 _3=this,_4=[];
if(_1.resetForm){
_4.push(function(){
_3.resetForm();
});
}
if(_1.clearForm){
_4.push(function(){
_3.clearForm();
});
}
if(!_1.dataType&&_1.target){
var _5=_1.success||function(){
};
_4.push(function(_6){
if(this.evalScripts){
$(_1.target).attr("innerHTML",_6).evalScripts().each(_5,arguments);
}else{
$(_1.target).html(_6).each(_5,arguments);
}
});
}else{
if(_1.success){
_4.push(_1.success);
}
}
_1.success=function(_7,_8){
for(var i=0,_9=_4.length;i<_9;i++){
_4[i](_7,_8,_3);
}
};
var _a=$("input:file",this).fieldValue();
var _b=false;
for(var j=0;j<_a.length;j++){
if(_a[j]){
_b=true;
}
}
if(_1.iframe||_b){
_c();
}else{
$.ajax(_1);
}
$.event.trigger("form.submit.notify",[this,_1]);
return this;
function _c(){
var _d=_3[0];
var _e=$.extend({},$.ajaxSettings,_1);
var id="jqFormIO"+$.fn.ajaxSubmit.counter++;
var _f=$("<iframe id=\""+id+"\" name=\""+id+"\" />");
var io=_f[0];
var op8=$.browser.opera&&window.opera.version()<9;
if($.browser.msie||op8){
io.src="javascript:false;document.write(\"\");";
}
_f.css({position:"absolute",top:"-1000px",left:"-1000px"});
var xhr={responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){
},getResponseHeader:function(){
},setRequestHeader:function(){
}};
var g=_e.global;
if(g&&!$.active++){
$.event.trigger("ajaxStart");
}
if(g){
$.event.trigger("ajaxSend",[xhr,_e]);
}
var _10=0;
var _11=0;
setTimeout(function(){
_f.appendTo("body");
io.attachEvent?io.attachEvent("onload",cb):io.addEventListener("load",cb,false);
var _12=_d.encoding?"encoding":"enctype";
var t=_3.attr("target");
_3.attr({target:id,method:"POST",action:_e.url});
_d[_12]="multipart/form-data";
if(_e.timeout){
setTimeout(function(){
_11=true;
cb();
},_e.timeout);
}
_d.submit();
_3.attr("target",t);
},10);
function cb(){
if(_10++){
return;
}
io.detachEvent?io.detachEvent("onload",cb):io.removeEventListener("load",cb,false);
var ok=true;
try{
if(_11){
throw "timeout";
}
var _13,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(_e.dataType=="json"||_e.dataType=="script"){
var ta=doc.getElementsByTagName("textarea")[0];
_13=ta?ta.value:xhr.responseText;
if(_e.dataType=="json"){
eval("data = "+_13);
}else{
$.globalEval(_13);
}
}else{
if(_e.dataType=="xml"){
_13=xhr.responseXML;
if(!_13&&xhr.responseText!=null){
_13=_14(xhr.responseText);
}
}else{
_13=xhr.responseText;
}
}
}
catch(e){
ok=false;
$.handleError(_e,xhr,"error",e);
}
if(ok){
_e.success(_13,"success");
if(g){
$.event.trigger("ajaxSuccess",[xhr,_e]);
}
}
if(g){
$.event.trigger("ajaxComplete",[xhr,_e]);
}
if(g&&!--$.active){
$.event.trigger("ajaxStop");
}
if(_e.complete){
_e.complete(xhr,ok?"success":"error");
}
setTimeout(function(){
_f.remove();
xhr.responseXML=null;
},100);
};
function _14(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(_15){
return this.ajaxFormUnbind().submit(_16).each(function(){
this.formPluginId=$.fn.ajaxForm.counter++;
$.fn.ajaxForm.optionHash[this.formPluginId]=_15;
$(":submit,input:image",this).click(_17);
});
};
$.fn.ajaxForm.counter=1;
$.fn.ajaxForm.optionHash={};
function _17(e){
var _18=this.form;
_18.clk=this;
if(this.type=="image"){
if(e.offsetX!=undefined){
_18.clk_x=e.offsetX;
_18.clk_y=e.offsetY;
}else{
if(typeof $.fn.offset=="function"){
var _19=$(this).offset();
_18.clk_x=e.pageX-_19.left;
_18.clk_y=e.pageY-_19.top;
}else{
_18.clk_x=e.pageX-this.offsetLeft;
_18.clk_y=e.pageY-this.offsetTop;
}
}
}
setTimeout(function(){
_18.clk=_18.clk_x=_18.clk_y=null;
},10);
};
function _16(){
var id=this.formPluginId;
var _1a=$.fn.ajaxForm.optionHash[id];
$(this).ajaxSubmit(_1a);
return false;
};
$.fn.ajaxFormUnbind=function(){
this.unbind("submit",_16);
return this.each(function(){
$(":submit,input:image",this).unbind("click",_17);
});
};
$.fn.formToArray=function(_1b){
var a=[];
if(this.length==0){
return a;
}
var _1c=this[0];
var els=_1b?_1c.getElementsByTagName("*"):_1c.elements;
if(!els){
return a;
}
for(var i=0,max=els.length;i<max;i++){
var el=els[i];
var n=el.name;
if(!n){
continue;
}
if(_1b&&_1c.clk&&el.type=="image"){
if(!el.disabled&&_1c.clk==el){
a.push({name:n+".x",value:_1c.clk_x},{name:n+".y",value:_1c.clk_y});
}
continue;
}
var v=$.fieldValue(el,true);
if(v&&v.constructor==Array){
for(var j=0,_1d=v.length;j<_1d;j++){
a.push({name:n,value:v[j]});
}
}else{
if(v!==null&&typeof v!="undefined"){
a.push({name:n,value:v});
}
}
}
if(!_1b&&_1c.clk){
var _1e=_1c.getElementsByTagName("input");
for(var i=0,max=_1e.length;i<max;i++){
var _1f=_1e[i];
var n=_1f.name;
if(n&&!_1f.disabled&&_1f.type=="image"&&_1c.clk==_1f){
a.push({name:n+".x",value:_1c.clk_x},{name:n+".y",value:_1c.clk_y});
}
}
}
return a;
};
$.fn.formSerialize=function(_20){
return $.param(this.formToArray(_20));
};
$.fn.fieldSerialize=function(_21){
var a=[];
this.each(function(){
var n=this.name;
if(!n){
return;
}
var v=$.fieldValue(this,_21);
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(_22){
for(var val=[],i=0,max=this.length;i<max;i++){
var el=this[i];
var v=$.fieldValue(el,_22);
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,_23){
var n=el.name,t=el.type,tag=el.tagName.toLowerCase();
if(typeof _23=="undefined"){
_23=true;
}
if(_23&&(!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 _24=el.selectedIndex;
if(_24<0){
return null;
}
var a=[],ops=el.options;
var one=(t=="select-one");
var max=(one?_24+1:ops.length);
for(var i=(one?_24:0);i<max;i++){
var op=ops[i];
if(op.selected){
var v=$.browser.msie&&!(op.attributes["value"].specified)?op.text:op.value;
if(one){
return v;
}
a.push(v);
}
}
return a;
}
return el.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();
}
});
};
})(jQuery);


