function inserirFundo()
{
	var divFundo = document.createElement( "div" );	
	divFundo.className = "fundo";
	divFundo.id = "windowBackground";
	document.body.appendChild( divFundo );
}

function retirarFundo()
{
	$("windowBackground").parentNode.removeChild( $("windowBackground") );
}

function openWindow( content , width , height )
{
	if( $( "internalWindow" ) ) closeWindow();
	inserirFundo();
	var divInternalWindow= document.createElement( "div" );
	divInternalWindow.id = "internalWindow";
	divInternalWindow.className = "internalWindow";
	divInternalWindow.innerHTML = content;
	if( width )  divInternalWindow.style.width = width + "px";
	if( height )  divInternalWindow.style.height = height + "px";
	document.body.appendChild( divInternalWindow );
}

function closeWindow()
{
	retirarFundo();
	$("internalWindow").parentNode.removeChild( $("internalWindow") );
	
}

function montaUrl( controller , action , params )
{
	var url = 	URL_ROOT + arguments[0] ;
	for( var i = 1 ; i < arguments.length ; ++i )
	{
		url += "/" + arguments[i];
	}
	
	return( url );
}

function truncate( strText , intLength )
{
	var etc = "...";
	var strReturn;
	if ( strText.length  > intLength ) {
        intLength -= etc.length ;

        regex = /\s+?(\S+)?$/;

        strText.replace( regex , strText.substring( 0 , intLength + 1 ) );

         var strReturn = strText.substring( 0 , intLength) + etc ;
    } else {
        strReturn = strText;
    }
    return( strReturn );
}

/**
 * Contem numero de requisicoes pendentes
 *
 * Esse controle garante que o aviso de carregando sumira somente
 * apos todas as requisicoes serem atendidas
 * 
 * @var int numLoadings
 */
var numLoadings = 0;

function showLoading()
{
	numLoadings++;
	$("#carregando").slideDown();
}

function hideLoading()
{
	numLoadings--;
	if( numLoadings < 0 ) numLoadings = 0;
	if( numLoadings == 0 ) $("#carregando").slideUp();
}

function $D( element )
{
	return( document.getElementById( element ) );
}

function getArrayMonths()
{
	arrMonths = [
		null ,
		"Janeiro" ,
		"Fevereiro" ,
		"Mar&ccedil;o" ,
		"Abril" ,
		"Maio" ,
		"Junho" ,
		"Julho" ,
		"Agosto" ,
		"Setembro" ,
		"Outubro" ,
		"Novembro" ,
		"Dezembro"
	];
	
	return( arrMonths );
}

function getTextualMonth( month , abrv )
{
	if( abrv == undefined ) abrv = false;
		
	arrMonths = getArrayMonths();
	month = arrMonths[ month ];
	if( abrv == true )
	{
		month = month.substing( 0 , 3 );
	}
	
	return ( month );
}

/**
 * Serarch for a item in the array and return his position if founded or -1
 * in other case
 *@date 2005-11-06 17:35
 *@param mixObject mixElement
 *@param array arrConteiner
 *@return integer
 */
function array_search( mixElement, arrConteiner )
{
	if (!arrConteiner)
		return -1;

	for(var i = 0; i < arrConteiner.length; ++i)
	{
		if (arrConteiner[i] == mixElement)
			return i;
	}
	return -1;
}

function cycle(table, style1, style2){
		
	$('#' + table + ' tr:odd').removeClass(style2);
	$('#' + table + ' tr:odd').addClass(style1);
    $('#' + table + ' tr:even').removeClass(style1);
	$('#' + table + ' tr:even').addClass(style2);
	
}
