( function( ) { var _connector = new XConnector; function XForm( ) { if ( ! ( arguments.length && arguments[ 0 ] && arguments[ 0 ].nodeName && arguments[ 0 ].nodeName.toLowerCase( ) == 'form' ) ) return false; var _form = arguments[ 0 ]; var _handler = null; if ( arguments.length > 1 && arguments[ 1 ] && arguments[ 1 ].constructor == Function ) _handler = arguments[ 1 ]; var a = [ ]; var _post = [ ]; function _input( _element ) { switch ( _element.type.toLowerCase( ) ) { case 'hidden' : case 'password' : case 'submit' : case 'text' : _post[ _post.length ] = _element.name + '=' + escape( _element.value.trim( ) ); break; case 'checkbox' : if ( _element.checked ) { _post[ _post.length ] = _element.name + '=' + escape( _element.value ); break; } default : a[ a.length ] = " input - " + _element.type + "\n\t" + _element.name; } } function _select( _element ) { if ( _element.type == 'select-one' ) _post[ _post.length ] = _element.name + '=' + escape( _element.value ); if ( _element.type == 'select-multiple' ) for ( var i = 0; i < _element.length; i++ ) if ( _element.options[ i ].selected ) _post[ _post.length ] = _element.name + '=' + escape( _element.options[ i ].value ); } function _textarea( _element ) { _post[ _post.length ] = _element.name + '=' + escape( _element.value.trim( ) ); } function _send( ) { _connector.go( { 'access' : _form.action, 'handler' : _handler, 'post' : _post.sort( ).join( "&" ) } ); } for ( var i = 0; i < _form.length; i++ ) if ( _form[ i ].name ) switch ( _form[ i ].nodeName.toLowerCase( ) ) { case 'input' : _input( _form[ i ] ); break; case 'select' : _select( _form[ i ] ); break; case 'textarea' : _textarea( _form[ i ] ); break; default : a[ a.length ] = _form[ i ].nodeName + "\t\t" + _form[ i ].type + "\t" + _form[ i ].name; } //alert( a.join( "\n" ) ); //alert( _post.sort( ).join( "\n" ) ); _send( ); return false; } window.XForm = XForm; } )( );