//****c* ExpressoLivreAPI/ExpressoLivre
// NAME
// ExpressoLivre
//
// DESCRIPTION
// Composto pelas classes utilizadas no ExpressoLivre
//
// AUTHOR
// Rodrigo Souza dos Santos
// |html
rodrigo.souza@celepar.pr.gov.br
// |html
rodrigosouzadossantos@gmail.com
//
// NOTES
// A composição possui instâncias configuradas de forma a atender a maioria
// dos casos independente do módulo.
//
//******
// You can use this space for remarks that should not be included
// in the documentation.
//
( function( )
{
var _configuration = ExpressoLivre( ).JSON( );
var _xconnector = null;
var _xlink = null;
window.array_lang = [ ];
var _language = [ ];
var _divAppboxHeader = null;
var _divAppbox = null;
var _loading = new Image( );
var _events_registred = {
"onload" : null,
"onunload" : null
};
function _events( )
{
return ( new function( )
{
//****m* ExpressoLivreAPI/ExpressoLivre/events/config
// NAME
// config
//
// DESCRIPTION
// Atribui uma ação a um evento em um objeto
//
// SYNOPSIS
// config( Object, String, Function )
//
// INPUTS
//
// EXAMPLE
// function myHandler( )
// {
// /*do something*/
// }
//
// ExpressoLivre.config( node, "onclick", myHandler );
//
// ExpressoLivre.config( node, "onclick", function( )
// {
// /*do something*/
// } );
//
//******
this.config = XEvents.add;
this.fire = ( new function( )
{
this.onload = function( )
{
if ( _events_registred.onload )
{
_events_registred.onload( );
_events_registred.onload = null;
}
};
this.onunload = function( )
{
if ( _events_registred.onunload )
{
_events_registred.onunload( );
_events_registred.onunload = null;
}
};
} );
this.onload = function( )
{
if ( arguments.length && arguments[ 0 ] == null )
return false;
if ( arguments[ 0 ].constructor == Boolean && arguments[ 0 ] == false )
{
_events_registred.onload = null;
return true;
}
if ( arguments[ 0 ].constructor == Function )
{
_events_registred.onload = arguments[ 0 ];
return true;
}
return false;
};
this.onunload = function( )
{
if ( arguments.length && arguments[ 0 ] == null )
return false;
if ( arguments[ 0 ].constructor == Boolean && arguments[ 0 ] == false )
{
_events_registred.onunload = null;
return true;
}
if ( arguments[ 0 ].constructor == Function )
{
_events_registred.onunload = arguments[ 0 ];
return true;
}
return false;
};
} );
}
function _form( )
{
if ( ! arguments.length )
return false;
var _handler = null;
if ( arguments.length > 1 && arguments[ 1 ] && arguments[ 1 ].constructor == Function )
_handler = arguments[ 1 ];
else
_handler = _xlink.manipulator;
_wait( );
return XForm( arguments[ 0 ], _handler );
}
function _go( )
{
_xconnector.go.apply( _xconnector, arguments );
}
function _lang( )
{
if ( ! ( arguments.length && arguments[ 0 ].constructor == String ) )
return false;
var module = arguments[ 0 ];
var lang = document.getElementsByTagName( 'html' ).item( 0 ).getAttribute( 'xml:lang' );
_xconnector.go( {
'access' : 'phpgwapi.expressolivre.lang&lang=' + lang + '&module=' + module,
'cache' : true,
'handler' : function( data )
{
data = data.JSON( );
for ( var key in data )
window.array_lang[ key ] = _language[ key ] = data[ key ];
}
} );
}
function _link( )
{
_xlink.click.apply( _xlink, arguments );
}
function _path( )
{
return _configuration.url;
}
function _template( )
{
return _configuration.template;
}
function _theme( )
{
return _configuration.theme;
}
function _translate( )
{
if ( ! ( arguments.length && arguments[ 0 ].constructor == String ) )
return false;
var _phrase = arguments[ 0 ];
if ( _language[ _phrase.toLowerCase( ) ] )
_phrase = _language[ _phrase.toLowerCase( ) ];
else
_phrase += '*';
if ( arguments.length > 1 )
for ( var j = 1; j < ( arguments.length ); j++ )
if ( arguments[ j ] && ( arguments[ j ].constructor == String || arguments[ j ].constructor == Number))
_phrase = _phrase.replace( "%" + j, arguments[ j ] );
return _phrase;
}
function _wait( )
{
_ExpressoLivre.events.fire.onunload( );
if ( _divAppboxHeader )
_divAppboxHeader.innerHTML = '';
if ( _divAppbox )
{
var _center = document.createElement( 'center' );
_center.appendChild( _loading );
_divAppbox.innerHTML = '';
_divAppbox.appendChild( _center );
}
}
var _ExpressoLivre = ( new function( )
{
//****m* ExpressoLivreAPI/ExpressoLivre/events
// NAME
// events
//
// DESCRIPTION
// Realiza uma requisição ao servidor.
//
// SYNOPSIS
// events( Object )
//
// INPUTS
//
// EXAMPLE
//
//******
this.events = _events( );
//****m* ExpressoLivreAPI/ExpressoLivre/form
// NAME
// form
//
// DESCRIPTION
// Processa e envia um formulário, utilizando a URL do atributo "action".
//
// SYNOPSIS
// form( Form )
//
// INPUTS
// Form : referencia ao formulário a ser enviado.
//
// EXAMPLE
//