/*
 * jQuery Form Plugin
 * version: 2.21 (08-FEB-2009)
 * @requires jQuery v1.2.2 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */




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

