Changeset 12895


Ignore:
Timestamp:
Sep 18, 2011, 11:12:31 PM (10 years ago)
Author:
livings124
Message:

update jquery.form.min

Location:
trunk/web/javascript/jquery
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/web/javascript/jquery/jquery.form.js

    r12450 r12895  
    11/*!
    22 * jQuery Form Plugin
    3  * version: 2.75 (20-MAY-2011)
     3 * version: 2.84 (12-AUG-2011)
    44 * @requires jQuery v1.3.2 or later
    55 *
     
    5050                return this;
    5151        }
     52       
     53        var method, action, url, $form = this;
    5254
    5355        if (typeof options == 'function') {
     
    5557        }
    5658
    57         var action = this.attr('action');
    58         var url = (typeof action === 'string') ? $.trim(action) : '';
     59        method = this.attr('method');
     60        action = this.attr('action');
     61        url = (typeof action === 'string') ? $.trim(action) : '';
    5962        url = url || window.location.href || '';
    6063        if (url) {
     
    6669                url:  url,
    6770                success: $.ajaxSettings.success,
    68                 type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
     71                type: method || 'GET',
    6972                iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
    7073        }, options);
     
    8992                options.extraData = options.data;
    9093                for (n in options.data) {
    91                         if(options.data[n] instanceof Array) {
     94                        if( $.isArray(options.data[n]) ) {
    9295                                for (var k in options.data[n]) {
    9396                                        a.push( { name: n, value: options.data[n][k] } );
     
    125128        }
    126129
    127         var $form = this, callbacks = [];
     130        var callbacks = [];
    128131        if (options.resetForm) {
    129132                callbacks.push(function() { $form.resetForm(); });
     
    163166           // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
    164167           if (options.closeKeepAlive) {
    165                    $.get(options.closeKeepAlive, fileUpload);
     168                   $.get(options.closeKeepAlive, function() { fileUpload(a); });
    166169                }
    167170           else {
    168                    fileUpload();
     171                   fileUpload(a);
    169172                }
    170173   }
    171174   else {
     175                // IE7 massage (see issue 57)
     176                if ($.browser.msie && method == 'get') {
     177                        var ieMeth = $form[0].getAttribute('method');
     178                        if (typeof ieMeth === 'string')
     179                                options.type = ieMeth;
     180                }
    172181                $.ajax(options);
    173182   }
     
    179188
    180189        // private function for handling file uploads (hat tip to YAHOO!)
    181         function fileUpload() {
    182                 var form = $form[0];
     190        function fileUpload(a) {
     191                var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
     192        var useProp = !!$.fn.prop;
     193
     194        if (a) {
     195                // ensure that every serialized input is still enabled
     196                for (i=0; i < a.length; i++) {
     197                el = $(form[a[i].name]);
     198                el[ useProp ? 'prop' : 'attr' ]('disabled', false);
     199                }
     200        }
    183201
    184202                if ($(':input[name=submit],:input[id=submit]', form).length) {
     
    189207                }
    190208               
    191                 var s = $.extend(true, {}, $.ajaxSettings, options);
     209                s = $.extend(true, {}, $.ajaxSettings, options);
    192210                s.context = s.context || s;
    193                 var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
    194                 var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />');
    195                 var io = $io[0];
    196 
    197                 $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
    198 
    199                 var xhr = { // mock object
     211                id = 'jqFormIO' + (new Date().getTime());
     212                if (s.iframeTarget) {
     213                        $io = $(s.iframeTarget);
     214                        n = $io.attr('name');
     215                        if (n == null)
     216                                $io.attr('name', id);
     217                        else
     218                                id = n;
     219                }
     220                else {
     221                        $io = $('<iframe name="' + id + '" src="'+ s.iframeSrc +'" />');
     222                        $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
     223                }
     224                io = $io[0];
     225
     226
     227                xhr = { // mock object
    200228                        aborted: 0,
    201229                        responseText: null,
     
    212240                                $io.attr('src', s.iframeSrc); // abort op in progress
    213241                                xhr.error = e;
    214                                 s.error && s.error.call(s.context, xhr, e, e);
     242                                s.error && s.error.call(s.context, xhr, e, status);
    215243                                g && $.event.trigger("ajaxError", [xhr, s, e]);
    216244                                s.complete && s.complete.call(s.context, xhr, e);
     
    218246                };
    219247
    220                 var g = s.global;
     248                g = s.global;
    221249                // trigger ajax global events so that activity/block indicators work like normal
    222250                if (g && ! $.active++) {
     
    228256
    229257                if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
    230                         if (s.global) { 
     258                        if (s.global) {
    231259                                $.active--;
    232260                        }
     
    237265                }
    238266
    239                 var timedOut = 0, timeoutHandle;
    240 
    241267                // add submitting element to data if we know it
    242                 var sub = form.clk;
     268                sub = form.clk;
    243269                if (sub) {
    244                         var n = sub.name;
     270                        n = sub.name;
    245271                        if (n && !sub.disabled) {
    246272                                s.extraData = s.extraData || {};
     
    252278                        }
    253279                }
    254 
     280               
     281                var CLIENT_TIMEOUT_ABORT = 1;
     282                var SERVER_ABORT = 2;
     283
     284                function getDoc(frame) {
     285                        var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
     286                        return doc;
     287                }
     288               
    255289                // take a breath so that pending repaints get some cpu time before the upload starts
    256290                function doSubmit() {
     
    260294                        // update form attrs in IE friendly way
    261295                        form.setAttribute('target',id);
    262                         if (form.getAttribute('method') != 'POST') {
     296                        if (!method) {
    263297                                form.setAttribute('method', 'POST');
    264298                        }
    265                         if (form.getAttribute('action') != s.url) {
     299                        if (a != s.url) {
    266300                                form.setAttribute('action', s.url);
    267301                        }
    268302
    269303                        // ie borks in some cases when setting encoding
    270                         if (! s.skipEncodingOverride) {
     304                        if (! s.skipEncodingOverride && (!method || /post/i.test(method))) {
    271305                                $form.attr({
    272306                                        encoding: 'multipart/form-data',
     
    277311                        // support timout
    278312                        if (s.timeout) {
    279                                 timeoutHandle = setTimeout(function() { timedOut = true; cb(true); }, s.timeout);
     313                                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
     314                        }
     315                       
     316                        // look for server aborts
     317                        function checkState() {
     318                                try {
     319                                        var state = getDoc(io).readyState;
     320                                        log('state = ' + state);
     321                                        if (state.toLowerCase() == 'uninitialized')
     322                                                setTimeout(checkState,50);
     323                                }
     324                                catch(e) {
     325                                        log('Server abort: ' , e, ' (', e.name, ')');
     326                                        cb(SERVER_ABORT);
     327                                        timeoutHandle && clearTimeout(timeoutHandle);
     328                                        timeoutHandle = undefined;
     329                                }
    280330                        }
    281331
     
    286336                                        for (var n in s.extraData) {
    287337                                                extraInputs.push(
    288                                                         $('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
     338                                                        $('<input type="hidden" name="'+n+'" />').attr('value',s.extraData[n])
    289339                                                                .appendTo(form)[0]);
    290340                                        }
    291341                                }
    292342
    293                                 // add iframe to doc and submit the form
    294                                 $io.appendTo('body');
    295                 io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
     343                                if (!s.iframeTarget) {
     344                                        // add iframe to doc and submit the form
     345                                        $io.appendTo('body');
     346                        io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
     347                                }
     348                                setTimeout(checkState,15);
    296349                                form.submit();
    297350                        }
     
    314367                        setTimeout(doSubmit, 10); // this lets dom updates render
    315368                }
    316        
     369
    317370                var data, doc, domCheckCount = 50, callbackProcessed;
    318371
     
    321374                                return;
    322375                        }
    323                         if (e === true && xhr) {
     376                        try {
     377                                doc = getDoc(io);
     378                        }
     379                        catch(ex) {
     380                                log('cannot access response document: ', ex);
     381                                e = SERVER_ABORT;
     382                        }
     383                        if (e === CLIENT_TIMEOUT_ABORT && xhr) {
    324384                                xhr.abort('timeout');
    325385                                return;
    326386                        }
    327                        
    328                         var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
     387                        else if (e == SERVER_ABORT && xhr) {
     388                                xhr.abort('server abort');
     389                                return;
     390                        }
     391
    329392                        if (!doc || doc.location.href == s.iframeSrc) {
    330393                                // response not received yet
     
    334397            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
    335398
    336                         var ok = true;
     399                        var status = 'success', errMsg;
    337400                        try {
    338401                                if (timedOut) {
     
    356419
    357420                                //log('response detected');
    358                                 xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null;
     421                var docRoot = doc.body ? doc.body : doc.documentElement;
     422                xhr.responseText = docRoot ? docRoot.innerHTML : null;
    359423                                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
    360424                                if (isXml)
     
    364428                                        return headers[header];
    365429                                };
    366 
    367                                 var scr = /(json|script|text)/.test(s.dataType);
     430                // support for XHR 'status' & 'statusText' emulation :
     431                if (docRoot) {
     432                    xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;
     433                    xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
     434                }
     435
     436                                var dt = s.dataType || '';
     437                                var scr = /(json|script|text)/.test(dt.toLowerCase());
    368438                                if (scr || s.textarea) {
    369439                                        // see if user embedded response in textarea
     
    371441                                        if (ta) {
    372442                                                xhr.responseText = ta.value;
     443                        // support for XHR 'status' & 'statusText' emulation :
     444                        xhr.status = Number( ta.getAttribute('status') ) || xhr.status;
     445                        xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
    373446                                        }
    374447                                        else if (scr) {
     
    382455                                                        xhr.responseText = b.innerHTML;
    383456                                                }
    384                                         }                         
     457                                        }
    385458                                }
    386459                                else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
    387460                                        xhr.responseXML = toXml(xhr.responseText);
    388461                                }
    389                                
    390                                 data = httpData(xhr, s.dataType, s);
    391                         }
    392                         catch(e){
    393                                 log('error caught:',e);
    394                                 ok = false;
    395                                 xhr.error = e;
    396                                 s.error && s.error.call(s.context, xhr, 'error', e);
    397                                 g && $.event.trigger("ajaxError", [xhr, s, e]);
    398                         }
    399                        
     462
     463                try {
     464                    data = httpData(xhr, s.dataType, s);
     465                }
     466                catch (e) {
     467                    status = 'parsererror';
     468                    xhr.error = errMsg = (e || status);
     469                }
     470                        }
     471                        catch (e) {
     472                                log('error caught: ',e);
     473                                status = 'error';
     474                xhr.error = errMsg = (e || status);
     475                        }
     476
    400477                        if (xhr.aborted) {
    401478                                log('upload aborted');
    402                                 ok = false;
    403                         }
     479                                status = null;
     480                        }
     481
     482            if (xhr.status) { // we've set xhr.status
     483                status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';
     484            }
    404485
    405486                        // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
    406                         if (ok) {
     487                        if (status === 'success') {
    407488                                s.success && s.success.call(s.context, data, 'success', xhr);
    408489                                g && $.event.trigger("ajaxSuccess", [xhr, s]);
    409490                        }
    410                        
     491            else if (status) {
     492                                if (errMsg == undefined)
     493                                        errMsg = xhr.statusText;
     494                                s.error && s.error.call(s.context, xhr, status, errMsg);
     495                                g && $.event.trigger("ajaxError", [xhr, s, errMsg]);
     496            }
     497
    411498                        g && $.event.trigger("ajaxComplete", [xhr, s]);
    412499
     
    414501                                $.event.trigger("ajaxStop");
    415502                        }
    416                        
    417                         s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error');
     503
     504                        s.complete && s.complete.call(s.context, xhr, status);
    418505
    419506                        callbackProcessed = true;
     
    423510                        // clean up
    424511                        setTimeout(function() {
    425                                 $io.removeData('form-plugin-onload');
    426                                 $io.remove();
     512                                if (!s.iframeTarget)
     513                                        $io.remove();
    427514                                xhr.responseXML = null;
    428515                        }, 100);
     
    443530                        return window['eval']('(' + s + ')');
    444531                };
    445                
     532
    446533                var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
     534
    447535                        var ct = xhr.getResponseHeader('content-type') || '',
    448536                                xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
     
    497585                return this;
    498586        }
    499        
     587
    500588        return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
    501589                if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
     
    561649                return a;
    562650        }
    563        
     651
    564652        var i,j,n,v,el,max,jmax;
    565653        for(i=0, max=els.length; i < max; i++) {
     
    746834 */
    747835$.fn.clearFields = $.fn.clearInputs = function() {
     836        var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
    748837        return this.each(function() {
    749838                var t = this.type, tag = this.tagName.toLowerCase();
    750                 if (t == 'text' || t == 'password' || tag == 'textarea') {
     839                if (re.test(t) || tag == 'textarea') {
    751840                        this.value = '';
    752841                }
     
    810899
    811900// helper fn for console logging
    812 // set $.fn.ajaxSubmit.debug to true to enable debug logging
    813901function log() {
    814         if ($.fn.ajaxSubmit.debug) {
    815                 var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
    816                 if (window.console && window.console.log) {
    817                         window.console.log(msg);
    818                 }
    819                 else if (window.opera && window.opera.postError) {
    820                         window.opera.postError(msg);
    821                 }
     902        var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
     903        if (window.console && window.console.log) {
     904                window.console.log(msg);
     905        }
     906        else if (window.opera && window.opera.postError) {
     907                window.opera.postError(msg);
    822908        }
    823909};
  • trunk/web/javascript/jquery/jquery.form.min.js

    r12830 r12895  
    1 (function(a){function b(){if(a.fn.ajaxSubmit.debug){var b="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(b):window.opera&&window.opera.postError&&window.opera.postError(b)}}a.fn.ajaxSubmit=function(c){function r(){function q(){var b=l.attr("target"),c=l.attr("action");d.setAttribute("target",f),d.getAttribute("method")!="POST"&&d.setAttribute("method","POST"),d.getAttribute("action")!=e.url&&d.setAttribute("action",e.url),e.skipEncodingOverride||l.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),e.timeout&&(n=setTimeout(function(){m=!0,v(!0)},e.timeout));var g=[];try{if(e.extraData)for(var j in e.extraData)g.push(a('<input type="hidden" name="'+j+'" value="'+e.extraData[j]+'" />').appendTo(d)[0]);h.appendTo("body"),i.attachEvent?i.attachEvent("onload",v):i.addEventListener("load",v,!1),d.submit()}finally{d.setAttribute("action",c),b?d.setAttribute("target",b):l.removeAttr("target"),a(g).remove()}}function v(c){if(j.aborted||u)return;if(c===!0&&j){j.abort("timeout");return}var d=i.contentWindow?i.contentWindow.document:i.contentDocument?i.contentDocument:i.document;if(!d||d.location.href==e.iframeSrc)if(!m)return;i.detachEvent?i.detachEvent("onload",v):i.removeEventListener("load",v,!1);var f=!0;try{if(m)throw"timeout";var g=e.dataType=="xml"||d.XMLDocument||a.isXMLDoc(d);b("isXml="+g);if(!g&&window.opera&&(d.body==null||d.body.innerHTML=="")&&--t){b("requeing onLoad callback, DOM not available"),setTimeout(v,250);return}j.responseText=d.body?d.body.innerHTML:d.documentElement?d.documentElement.innerHTML:null,j.responseXML=d.XMLDocument?d.XMLDocument:d,g&&(e.dataType="xml"),j.getResponseHeader=function(a){var b={"content-type":e.dataType};return b[a]};var l=/(json|script|text)/.test(e.dataType);if(l||e.textarea){var o=d.getElementsByTagName("textarea")[0];if(o)j.responseText=o.value;else if(l){var p=d.getElementsByTagName("pre")[0],q=d.getElementsByTagName("body")[0];p?j.responseText=p.textContent?p.textContent:p.innerHTML:q&&(j.responseText=q.innerHTML)}}else e.dataType=="xml"&&!j.responseXML&&j.responseText!=null&&(j.responseXML=w(j.responseText));r=y(j,e.dataType,e)}catch(c){b("error caught:",c),f=!1,j.error=c,e.error&&e.error.call(e.context,j,"error",c),k&&a.event.trigger("ajaxError",[j,e,c])}j.aborted&&(b("upload aborted"),f=!1),f&&(e.success&&e.success.call(e.context,r,"success",j),k&&a.event.trigger("ajaxSuccess",[j,e])),k&&a.event.trigger("ajaxComplete",[j,e]),k&&!--a.active&&a.event.trigger("ajaxStop"),e.complete&&e.complete.call(e.context,j,f?"success":"error"),u=!0,e.timeout&&clearTimeout(n),setTimeout(function(){h.removeData("form-plugin-onload"),h.remove(),j.responseXML=null},100)}var d=l[0];if(a(":input[name=submit],:input[id=submit]",d).length){alert('Error: Form elements must not have name or id of "submit".');return}var e=a.extend(!0,{},a.ajaxSettings,c);e.context=e.context||e;var f="jqFormIO"+(new Date).getTime(),g="_"+f,h=a('<iframe id="'+f+'" name="'+f+'" src="'+e.iframeSrc+'" />'),i=h[0];h.css({position:"absolute",top:"-1000px",left:"-1000px"});var j={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(c){var d=c==="timeout"?"timeout":"aborted";b("aborting upload... "+d),this.aborted=1,h.attr("src",e.iframeSrc),j.error=d,e.error&&e.error.call(e.context,j,d,d),k&&a.event.trigger("ajaxError",[j,e,d]),e.complete&&e.complete.call(e.context,j,d)}},k=e.global;k&&!(a.active++)&&a.event.trigger("ajaxStart"),k&&a.event.trigger("ajaxSend",[j,e]);if(e.beforeSend&&e.beforeSend.call(e.context,j,e)===!1){e.global&&a.active--;return}if(j.aborted)return;var m=0,n,o=d.clk;if(o){var p=o.name;p&&!o.disabled&&(e.extraData=e.extraData||{},e.extraData[p]=o.value,o.type=="image"&&(e.extraData[p+".x"]=d.clk_x,e.extraData[p+".y"]=d.clk_y))}e.forceSync?q():setTimeout(q,10);var r,s,t=50,u,w=a.parseXML||function(a,b){return window.ActiveXObject?(b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)):b=(new DOMParser).parseFromString(a,"text/xml"),b&&b.documentElement&&b.documentElement.nodeName!="parsererror"?b:null},x=a.parseJSON||function(a){return window.eval("("+a+")")},y=function(b,c,d){var e=b.getResponseHeader("content-type")||"",f=c==="xml"||!c&&e.indexOf("xml")>=0,g=f?b.responseXML:b.responseText;return f&&g.documentElement.nodeName==="parsererror"&&a.error&&a.error("parsererror"),d&&d.dataFilter&&(g=d.dataFilter(g,c)),typeof g=="string"&&(c==="json"||!c&&e.indexOf("json")>=0?g=x(g):(c==="script"||!c&&e.indexOf("javascript")>=0)&&a.globalEval(g)),g}}if(!this.length)return b("ajaxSubmit: skipping submit process - no element selected"),this;typeof c=="function"&&(c={success:c});var d=this.attr("action"),e=typeof d=="string"?a.trim(d):"";e=e||window.location.href||"",e&&(e=(e.match(/^([^#]+)/)||[])[1]),c=a.extend(!0,{url:e,success:a.ajaxSettings.success,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},c);var f={};this.trigger("form-pre-serialize",[this,c,f]);if(f.veto)return b("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(c.beforeSerialize&&c.beforeSerialize(this,c)===!1)return b("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var g,h,i=this.formToArray(c.semantic);if(c.data){c.extraData=c.data;for(g in c.data)if(c.data[g]instanceof Array)for(var j in c.data[g])i.push({name:g,value:c.data[g][j]});else h=c.data[g],h=a.isFunction(h)?h():h,i.push({name:g,value:h})}if(c.beforeSubmit&&c.beforeSubmit(i,this,c)===!1)return b("ajaxSubmit: submit aborted via beforeSubmit callback"),this;this.trigger("form-submit-validate",[i,this,c,f]);if(f.veto)return b("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var k=a.param(i);c.type.toUpperCase()=="GET"?(c.url+=(c.url.indexOf("?")>=0?"&":"?")+k,c.data=null):c.data=k;var l=this,m=[];c.resetForm&&m.push(function(){l.resetForm()}),c.clearForm&&m.push(function(){l.clearForm()});if(!c.dataType&&c.target){var n=c.success||function(){};m.push(function(b){var d=c.replaceTarget?"replaceWith":"html";a(c.target)[d](b).each(n,arguments)})}else c.success&&m.push(c.success);c.success=function(a,b,d){var e=c.context||c;for(var f=0,g=m.length;f<g;f++)m[f].apply(e,[a,b,d||l,l])};var o=a("input:file",this).length>0,p="multipart/form-data",q=l.attr("enctype")==p||l.attr("encoding")==p;return c.iframe!==!1&&(o||c.iframe||q)?c.closeKeepAlive?a.get(c.closeKeepAlive,r):r():a.ajax(c),this.trigger("form-submit-notify",[this,c]),this},a.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};return!a.isReady&&d.s?(b("DOM not ready, queuing ajaxForm"),a(function(){a(d.s,d.c).ajaxForm(c)}),this):(b("terminating; zero elements found by selector"+(a.isReady?"":" (DOM not ready)")),this)}return this.ajaxFormUnbind().bind("submit.form-plugin",function(b){b.isDefaultPrevented()||(b.preventDefault(),a(this).ajaxSubmit(c))}).bind("click.form-plugin",function(b){var c=b.target,d=a(c);if(!d.is(":submit,input:image")){var e=d.closest(":submit");if(e.length==0)return;c=e[0]}var f=this;f.clk=c;if(c.type=="image")if(b.offsetX!=undefined)f.clk_x=b.offsetX,f.clk_y=b.offsetY;else if(typeof a.fn.offset=="function"){var g=d.offset();f.clk_x=b.pageX-g.left,f.clk_y=b.pageY-g.top}else f.clk_x=b.pageX-c.offsetLeft,f.clk_y=b.pageY-c.offsetTop;setTimeout(function(){f.clk=f.clk_x=f.clk_y=null},100)})},a.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")},a.fn.formToArray=function(b){var c=[];if(this.length===0)return c;var d=this[0],e=b?d.getElementsByTagName("*"):d.elements;if(!e)return c;var f,g,h,i,j,k,l;for(f=0,k=e.length;f<k;f++){j=e[f],h=j.name;if(!h)continue;if(b&&d.clk&&j.type=="image"){!j.disabled&&d.clk==j&&(c.push({name:h,value:a(j).val()}),c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y}));continue}i=a.fieldValue(j,!0);if(i&&i.constructor==Array)for(g=0,l=i.length;g<l;g++)c.push({name:h,value:i[g]});else i!==null&&typeof i!="undefined"&&c.push({name:h,value:i})}if(!b&&d.clk){var m=a(d.clk),n=m[0];h=n.name,h&&!n.disabled&&n.type=="image"&&(c.push({name:h,value:m.val()}),c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y}))}return c},a.fn.formSerialize=function(b){return a.param(this.formToArray(b))},a.fn.fieldSerialize=function(b){var c=[];return this.each(function(){var d=this.name;if(!d)return;var e=a.fieldValue(this,b);if(e&&e.constructor==Array)for(var f=0,g=e.length;f<g;f++)c.push({name:d,value:e[f]});else e!==null&&typeof e!="undefined"&&c.push({name:this.name,value:e})}),a.param(c)},a.fn.fieldValue=function(b){for(var c=[],d=0,e=this.length;d<e;d++){var f=this[d],g=a.fieldValue(f,b);if(g===null||typeof g=="undefined"||g.constructor==Array&&!g.length)continue;g.constructor==Array?a.merge(c,g):c.push(g)}return c},a.fieldValue=function(b,c){var d=b.name,e=b.type,f=b.tagName.toLowerCase();c===undefined&&(c=!0);if(c&&(!d||b.disabled||e=="reset"||e=="button"||(e=="checkbox"||e=="radio")&&!b.checked||(e=="submit"||e=="image")&&b.form&&b.form.clk!=b||f=="select"&&b.selectedIndex==-1))return null;if(f=="select"){var g=b.selectedIndex;if(g<0)return null;var h=[],i=b.options,j=e=="select-one",k=j?g+1:i.length;for(var l=j?g:0;l<k;l++){var m=i[l];if(m.selected){var n=m.value;n||(n=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value);if(j)return n;h.push(n)}}return h}return a(b).val()},a.fn.clearForm=function(){return this.each(function(){a("input,select,textarea",this).clearFields()})},a.fn.clearFields=a.fn.clearInputs=function(){return this.each(function(){var a=this.type,b=this.tagName.toLowerCase();a=="text"||a=="password"||b=="textarea"?this.value="":a=="checkbox"||a=="radio"?this.checked=!1:b=="select"&&(this.selectedIndex=-1)})},a.fn.resetForm=function(){return this.each(function(){(typeof this.reset=="function"||typeof this.reset=="object"&&!this.reset.nodeType)&&this.reset()})},a.fn.enable=function(a){return a===undefined&&(a=!0),this.each(function(){this.disabled=!a})},a.fn.selected=function(b){return b===undefined&&(b=!0),this.each(function(){var c=this.type;if(c=="checkbox"||c=="radio")this.checked=b;else if(this.tagName.toLowerCase()=="option"){var d=a(this).parent("select");b&&d[0]&&d[0].type=="select-one"&&d.find("option").selected(!1),this.selected=b}})}})(jQuery)
     1(function(a){function b(){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)}}a.fn.ajaxSubmit=function(c){function t(e){function C(c){if(o.aborted||B){return}try{z=w(n)}catch(d){b("cannot access response document: ",d);c=v}if(c===u&&o){o.abort("timeout");return}else if(c==v&&o){o.abort("server abort");return}if(!z||z.location.href==j.iframeSrc){if(!r)return}n.detachEvent?n.detachEvent("onload",C):n.removeEventListener("load",C,false);var e="success",f;try{if(r){throw"timeout"}var g=j.dataType=="xml"||z.XMLDocument||a.isXMLDoc(z);b("isXml="+g);if(!g&&window.opera&&(z.body==null||z.body.innerHTML=="")){if(--A){b("requeing onLoad callback, DOM not available");setTimeout(C,250);return}}var h=z.body?z.body:z.documentElement;o.responseText=h?h.innerHTML:null;o.responseXML=z.XMLDocument?z.XMLDocument:z;if(g)j.dataType="xml";o.getResponseHeader=function(a){var b={"content-type":j.dataType};return b[a]};if(h){o.status=Number(h.getAttribute("status"))||o.status;o.statusText=h.getAttribute("statusText")||o.statusText}var i=j.dataType||"";var l=/(json|script|text)/.test(i.toLowerCase());if(l||j.textarea){var p=z.getElementsByTagName("textarea")[0];if(p){o.responseText=p.value;o.status=Number(p.getAttribute("status"))||o.status;o.statusText=p.getAttribute("statusText")||o.statusText}else if(l){var q=z.getElementsByTagName("pre")[0];var t=z.getElementsByTagName("body")[0];if(q){o.responseText=q.textContent?q.textContent:q.innerHTML}else if(t){o.responseText=t.innerHTML}}}else if(j.dataType=="xml"&&!o.responseXML&&o.responseText!=null){o.responseXML=D(o.responseText)}try{y=F(o,j.dataType,j)}catch(c){e="parsererror";o.error=f=c||e}}catch(c){b("error caught: ",c);e="error";o.error=f=c||e}if(o.aborted){b("upload aborted");e=null}if(o.status){e=o.status>=200&&o.status<300||o.status===304?"success":"error"}if(e==="success"){j.success&&j.success.call(j.context,y,"success",o);k&&a.event.trigger("ajaxSuccess",[o,j])}else if(e){if(f==undefined)f=o.statusText;j.error&&j.error.call(j.context,o,e,f);k&&a.event.trigger("ajaxError",[o,j,f])}k&&a.event.trigger("ajaxComplete",[o,j]);if(k&&!--a.active){a.event.trigger("ajaxStop")}j.complete&&j.complete.call(j.context,o,e);B=true;if(j.timeout)clearTimeout(s);setTimeout(function(){if(!j.iframeTarget)m.remove();o.responseXML=null},100)}function x(){function h(){try{var a=w(n).readyState;b("state = "+a);if(a.toLowerCase()=="uninitialized")setTimeout(h,50)}catch(c){b("Server abort: ",c," (",c.name,")");C(v);s&&clearTimeout(s);s=undefined}}var c=g.attr("target"),e=g.attr("action");f.setAttribute("target",l);if(!d){f.setAttribute("method","POST")}if(e!=j.url){f.setAttribute("action",j.url)}if(!j.skipEncodingOverride&&(!d||/post/i.test(d))){g.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(j.timeout){s=setTimeout(function(){r=true;C(u)},j.timeout)}var i=[];try{if(j.extraData){for(var k in j.extraData){i.push(a('<input type="hidden" name="'+k+'" />').attr("value",j.extraData[k]).appendTo(f)[0])}}if(!j.iframeTarget){m.appendTo("body");n.attachEvent?n.attachEvent("onload",C):n.addEventListener("load",C,false)}setTimeout(h,15);f.submit()}finally{f.setAttribute("action",e);if(c){f.setAttribute("target",c)}else{g.removeAttr("target")}a(i).remove()}}function w(a){var b=a.contentWindow?a.contentWindow.document:a.contentDocument?a.contentDocument:a.document;return b}var f=g[0],h,i,j,k,l,m,n,o,p,q,r,s;var t=!!a.fn.prop;if(e){for(i=0;i<e.length;i++){h=a(f[e[i].name]);h[t?"prop":"attr"]("disabled",false)}}if(a(":input[name=submit],:input[id=submit]",f).length){alert('Error: Form elements must not have name or id of "submit".');return}j=a.extend(true,{},a.ajaxSettings,c);j.context=j.context||j;l="jqFormIO"+(new Date).getTime();if(j.iframeTarget){m=a(j.iframeTarget);q=m.attr("name");if(q==null)m.attr("name",l);else l=q}else{m=a('<iframe name="'+l+'" src="'+j.iframeSrc+'" />');m.css({position:"absolute",top:"-1000px",left:"-1000px"})}n=m[0];o={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(c){var d=c==="timeout"?"timeout":"aborted";b("aborting upload... "+d);this.aborted=1;m.attr("src",j.iframeSrc);o.error=d;j.error&&j.error.call(j.context,o,d,c);k&&a.event.trigger("ajaxError",[o,j,d]);j.complete&&j.complete.call(j.context,o,d)}};k=j.global;if(k&&!(a.active++)){a.event.trigger("ajaxStart")}if(k){a.event.trigger("ajaxSend",[o,j])}if(j.beforeSend&&j.beforeSend.call(j.context,o,j)===false){if(j.global){a.active--}return}if(o.aborted){return}p=f.clk;if(p){q=p.name;if(q&&!p.disabled){j.extraData=j.extraData||{};j.extraData[q]=p.value;if(p.type=="image"){j.extraData[q+".x"]=f.clk_x;j.extraData[q+".y"]=f.clk_y}}}var u=1;var v=2;if(j.forceSync){x()}else{setTimeout(x,10)}var y,z,A=50,B;var D=a.parseXML||function(a,b){if(window.ActiveXObject){b=new ActiveXObject("Microsoft.XMLDOM");b.async="false";b.loadXML(a)}else{b=(new DOMParser).parseFromString(a,"text/xml")}return b&&b.documentElement&&b.documentElement.nodeName!="parsererror"?b:null};var E=a.parseJSON||function(a){return window["eval"]("("+a+")")};var F=function(b,c,d){var e=b.getResponseHeader("content-type")||"",f=c==="xml"||!c&&e.indexOf("xml")>=0,g=f?b.responseXML:b.responseText;if(f&&g.documentElement.nodeName==="parsererror"){a.error&&a.error("parsererror")}if(d&&d.dataFilter){g=d.dataFilter(g,c)}if(typeof g==="string"){if(c==="json"||!c&&e.indexOf("json")>=0){g=E(g)}else if(c==="script"||!c&&e.indexOf("javascript")>=0){a.globalEval(g)}}return g}}if(!this.length){b("ajaxSubmit: skipping submit process - no element selected");return this}var d,e,f,g=this;if(typeof c=="function"){c={success:c}}d=this.attr("method");e=this.attr("action");f=typeof e==="string"?a.trim(e):"";f=f||window.location.href||"";if(f){f=(f.match(/^([^#]+)/)||[])[1]}c=a.extend(true,{url:f,success:a.ajaxSettings.success,type:d||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},c);var h={};this.trigger("form-pre-serialize",[this,c,h]);if(h.veto){b("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(c.beforeSerialize&&c.beforeSerialize(this,c)===false){b("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var i,j,k=this.formToArray(c.semantic);if(c.data){c.extraData=c.data;for(i in c.data){if(a.isArray(c.data[i])){for(var l in c.data[i]){k.push({name:i,value:c.data[i][l]})}}else{j=c.data[i];j=a.isFunction(j)?j():j;k.push({name:i,value:j})}}}if(c.beforeSubmit&&c.beforeSubmit(k,this,c)===false){b("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[k,this,c,h]);if(h.veto){b("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var m=a.param(k);if(c.type.toUpperCase()=="GET"){c.url+=(c.url.indexOf("?")>=0?"&":"?")+m;c.data=null}else{c.data=m}var n=[];if(c.resetForm){n.push(function(){g.resetForm()})}if(c.clearForm){n.push(function(){g.clearForm()})}if(!c.dataType&&c.target){var o=c.success||function(){};n.push(function(b){var d=c.replaceTarget?"replaceWith":"html";a(c.target)[d](b).each(o,arguments)})}else if(c.success){n.push(c.success)}c.success=function(a,b,d){var e=c.context||c;for(var f=0,h=n.length;f<h;f++){n[f].apply(e,[a,b,d||g,g])}};var p=a("input:file",this).length>0;var q="multipart/form-data";var r=g.attr("enctype")==q||g.attr("encoding")==q;if(c.iframe!==false&&(p||c.iframe||r)){if(c.closeKeepAlive){a.get(c.closeKeepAlive,function(){t(k)})}else{t(k)}}else{if(a.browser.msie&&d=="get"){var s=g[0].getAttribute("method");if(typeof s==="string")c.type=s}a.ajax(c)}this.trigger("form-submit-notify",[this,c]);return this};a.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};if(!a.isReady&&d.s){b("DOM not ready, queuing ajaxForm");a(function(){a(d.s,d.c).ajaxForm(c)});return this}b("terminating; zero elements found by selector"+(a.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(b){if(!b.isDefaultPrevented()){b.preventDefault();a(this).ajaxSubmit(c)}}).bind("click.form-plugin",function(b){var c=b.target;var d=a(c);if(!d.is(":submit,input:image")){var e=d.closest(":submit");if(e.length==0){return}c=e[0]}var f=this;f.clk=c;if(c.type=="image"){if(b.offsetX!=undefined){f.clk_x=b.offsetX;f.clk_y=b.offsetY}else if(typeof a.fn.offset=="function"){var g=d.offset();f.clk_x=b.pageX-g.left;f.clk_y=b.pageY-g.top}else{f.clk_x=b.pageX-c.offsetLeft;f.clk_y=b.pageY-c.offsetTop}}setTimeout(function(){f.clk=f.clk_x=f.clk_y=null},100)})};a.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};a.fn.formToArray=function(b){var c=[];if(this.length===0){return c}var d=this[0];var e=b?d.getElementsByTagName("*"):d.elements;if(!e){return c}var f,g,h,i,j,k,l;for(f=0,k=e.length;f<k;f++){j=e[f];h=j.name;if(!h){continue}if(b&&d.clk&&j.type=="image"){if(!j.disabled&&d.clk==j){c.push({name:h,value:a(j).val()});c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y})}continue}i=a.fieldValue(j,true);if(i&&i.constructor==Array){for(g=0,l=i.length;g<l;g++){c.push({name:h,value:i[g]})}}else if(i!==null&&typeof i!="undefined"){c.push({name:h,value:i})}}if(!b&&d.clk){var m=a(d.clk),n=m[0];h=n.name;if(h&&!n.disabled&&n.type=="image"){c.push({name:h,value:m.val()});c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y})}}return c};a.fn.formSerialize=function(b){return a.param(this.formToArray(b))};a.fn.fieldSerialize=function(b){var c=[];this.each(function(){var d=this.name;if(!d){return}var e=a.fieldValue(this,b);if(e&&e.constructor==Array){for(var f=0,g=e.length;f<g;f++){c.push({name:d,value:e[f]})}}else if(e!==null&&typeof e!="undefined"){c.push({name:this.name,value:e})}});return a.param(c)};a.fn.fieldValue=function(b){for(var c=[],d=0,e=this.length;d<e;d++){var f=this[d];var g=a.fieldValue(f,b);if(g===null||typeof g=="undefined"||g.constructor==Array&&!g.length){continue}g.constructor==Array?a.merge(c,g):c.push(g)}return c};a.fieldValue=function(b,c){var d=b.name,e=b.type,f=b.tagName.toLowerCase();if(c===undefined){c=true}if(c&&(!d||b.disabled||e=="reset"||e=="button"||(e=="checkbox"||e=="radio")&&!b.checked||(e=="submit"||e=="image")&&b.form&&b.form.clk!=b||f=="select"&&b.selectedIndex==-1)){return null}if(f=="select"){var g=b.selectedIndex;if(g<0){return null}var h=[],i=b.options;var j=e=="select-one";var k=j?g+1:i.length;for(var l=j?g:0;l<k;l++){var m=i[l];if(m.selected){var n=m.value;if(!n){n=m.attributes&&m.attributes["value"]&&!m.attributes["value"].specified?m.text:m.value}if(j){return n}h.push(n)}}return h}return a(b).val()};a.fn.clearForm=function(){return this.each(function(){a("input,select,textarea",this).clearFields()})};a.fn.clearFields=a.fn.clearInputs=function(){var a=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var b=this.type,c=this.tagName.toLowerCase();if(a.test(b)||c=="textarea"){this.value=""}else if(b=="checkbox"||b=="radio"){this.checked=false}else if(c=="select"){this.selectedIndex=-1}})};a.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||typeof this.reset=="object"&&!this.reset.nodeType){this.reset()}})};a.fn.enable=function(a){if(a===undefined){a=true}return this.each(function(){this.disabled=!a})};a.fn.selected=function(b){if(b===undefined){b=true}return this.each(function(){var c=this.type;if(c=="checkbox"||c=="radio"){this.checked=b}else if(this.tagName.toLowerCase()=="option"){var d=a(this).parent("select");if(b&&d[0]&&d[0].type=="select-one"){d.find("option").selected(false)}this.selected=b}})};})(jQuery)
Note: See TracChangeset for help on using the changeset viewer.