function(options){
		var $form=this,submit;
		if(!S.isObj(options)) options = { success: options };
		this.on('submit',function(evt){
			evt.preventDefault();
			evt.stopPropagation();
			submit=this.find('[type="submit"]');
			this.fadeTo(0.4, 180);
			this.fire(this._eventBeforeSubmit);
			if(options.beforeSubmit && options.beforeSubmit()===false)
				this.stop().style('opacity',1) && hasPlaceholders && this.resetPlaceholders();
			else{
				submit.hide().forEach(function($e){ $e.insertAfter($.imgLoading()); });
				options.success(this,function(){
					submit.show().blur(); this.find('.imgLoading').remove(); this.fadeTo(1, 150);
					this.fire(this._eventAfterSubmit);
				}.bind(this));
			}
			return false;
		});
		return this;
	}
function(options){
		var $form=this,submit;
		if(!S.isObj(options)) options = { success: options };
		this.on('submit',function(evt){
			evt.preventDefault();
			evt.stopPropagation();
			submit=this.find('[type="submit"]');
			this.fadeTo(0.4, 180);
			this.fire(this._eventBeforeSubmit);
			if(options.beforeSubmit && options.beforeSubmit()===false)
				this.stop().style('opacity',1) && hasPlaceholders && this.resetPlaceholders();
			else{
				submit.hide().forEach(function($e){ $e.insertAfter($.imgLoading()); });
				options.success(this,function(){
					submit.show().blur(); this.find('.imgLoading').remove(); this.fadeTo(1, 150);
					this.fire(this._eventAfterSubmit);
				}.bind(this));
			}
			return false;
		});
		return this;
	}
function ( options ) { var $form = this , submit ; if ( ! S . isObj ( options ) ) options = { success : options } ; this . on ( 'submit' , function ( evt ) { evt . preventDefault ( ) ; evt . stopPropagation ( ) ; submit = this . find ( '[type="submit"]' ) ; this . fadeTo ( 0.4 , 180 ) ; this . fire ( this . _eventBeforeSubmit ) ; if ( options . beforeSubmit && options . beforeSubmit ( ) === false ) this . stop ( ) . style ( 'opacity' , 1 ) && hasPlaceholders && this . resetPlaceholders ( ) ; else { submit . hide ( ) . forEach ( function ( $e ) { $e . insertAfter ( $ . imgLoading ( ) ) ; } ) ; options . success ( this , function ( ) { submit . show ( ) . blur ( ) ; this . find ( '.imgLoading' ) . remove ( ) ; this . fadeTo ( 1 , 150 ) ; this . fire ( this . _eventAfterSubmit ) ; } . bind ( this ) ) ; } return false ; } ) ; return this ; }
/*#if BROWSER
/ * #if BROWSER