nl_tokens: take a breath so that pending repaints get some cpu time before the upload starts
pl_tokens: function doSubmit ( ) { // make sure form attrs are set var t = $form . attr ( 'target' ) , a = $form . attr ( 'action' ) ; // update form attrs in IE friendly way form . setAttribute ( 'target' , id ) ; if ( form . getAttribute ( 'method' ) != 'POST' ) { form . setAttribute ( 'method' , 'POST' ) ; } if ( form . getAttribute ( 'action' ) != s . url ) { form . setAttribute ( 'action' , s . url ) ; } // ie borks in some cases when setting encoding if ( ! s . skipEncodingOverride ) { $form . attr ( { encoding : 'multipart/form-data' , enctype : 'multipart/form-data' } ) ; } // support timout if ( s . timeout ) { setTimeout ( function ( ) { timedOut = true ; cb ( ) ; } , s . timeout ) ; } // add "extra" data to form if provided in options var extraInputs = [ ] ; try { if ( s . extraData ) { for ( var n in s . extraData ) { extraInputs . push ( $ ( '<input type="hidden" name="' + n + '" value="' + s . extraData [ n ] + '" />' ) . appendTo ( form ) [ 0 ] ) ; } } // add iframe to doc and submit the form $io . appendTo ( 'body' ) ; $io . data ( 'form-plugin-onload' , cb ) ; <mask> . submit ( ) ; } finally { // reset attrs and remove "extra" input elements form . setAttribute ( 'action' , a ) ; if ( t ) { form . setAttribute ( 'target' , t ) ; } else { $form . removeAttr ( 'target' ) ; } $ ( extraInputs ) . remove ( ) ; } }