/*
  Seta o método que deverá ser chamado na action.
*/
function setMethod(method)
{
	for (var i = 0; i < document.forms.length; i++)
		document.forms[i].method.value = method;
}

/*
  Seta para onde a action deverá ir se não houver excessão.
*/
function setForward(forward)
{
	for (var i = 0; i < document.forms.length; i++)
		document.forms[i].forward.value = forward;
}

/*
  Seta se é necessário ou não realizar a validação do form.
*/
function setValidate(validate)
{
	for (var i = 0; i < document.forms.length; i++)
		document.forms[i].validate.value = validate;
}

/*
  Seta a página atual da paginação.
*/
function setPagingCurrentPage(currentPage)
{
	for (var i = 0; i < document.forms.length; i++)
		document.forms[i].pagingCurrentPage.value = currentPage;
}

/*
  Seta o arquivo xml que deverá ser utilizado na criação do relatório.
*/
function setXmlFile(xmlFile)
{
	for (var i = 0; i < document.forms.length; i++)
	{
		document.forms[i].xmlFile.value = xmlFile;
		document.forms[i].isReport.value = 'true';
	}
}

/*
  Realiza uma determinada ação efetuando um submit no form.
*/
function doSubmit(method, id, validate)
{
	for (var i = 0; i < document.forms.length; i++)
	{
		if (validate)
			document.forms[i].validate.value = 'true';
		else
			document.forms[i].validate.value = 'false';
	
		document.forms[i].id.value = id;
		document.forms[i].method.value = method;
		document.forms[i].submit();
	}
}

/*
  Formata um campo como moeda (Ex.: 1.500,00)
*/
function formatDate(field)
{
	var code = event.keyCode;

	// Se o usuário não digitar um valor numérico ou a tecla backspace, sai da função.
	if (!isNumeric(code))
		return;

	var value = field.value;
	var length = 0;

	// Remove as barras ('/').
	value = removeChar(value, '/');
	
	// Se a tecla digitada for "backspace", considera um caractere a menos.
	// Senão considera um caractere a mais.
	if (code == 8)
		length = value.length - 1;
	else
		length = value.length + 1;

	// Se após a formatação o tamanho da string for maior que 1, coloca a barra.
	if (length > 2)
	{
		value = value.substring(0, 2) + "/" + value.substring(2);

		if (length > 4)
			value = value.substring(0, 5) + "/" + value.substring(5);
	}

	// Coloca o valor formatado no campo.
	field.value = value;
}

/*
  Formata um campo como moeda (Ex.: 1.500,00)
*/
function formatCurrency(field)
{
	var code = event.keyCode;

	// Se o usuário não digitar um valor numérico ou a tecla backspace, sai da função.
	if (!isNumeric(code))
		return;

	var value = field.value;
	var length = 0;

	// Remove os caracteres vírgula (',') e ponto('.').
	value = removeChar(value, ',');
	value = removeChar(value, '.');
	
	// Se a tecla digitada for "backspace", considera um caractere a menos.
	// Senão considera um caractere a mais.
	if (code == 8)
		length = value.length - 1;
	else
		length = value.length + 1;

	// Se após a formatação o tamanho da string for maior que 2, coloca a vírgula.
	if (length > 2)
		value = value.substring(0, length - 2) + "," + value.substring(length - 2);

	// Desconsidera a string a partir da vírgula
	length = length - 2;

	// Coloca o ponto de 3 em 3 caracteres.
	while (value.substring(0, length).length > 3)
	{
		length = length - 3;
		value = value.substring(0, length) + "." + value.substring(length);
	}

	// Coloca o valor formatado no campo.
	field.value = value;
}

/*
  Remove um determinado caractere de uma string.
*/
function removeChar(str, char)
{
	for (var i = 0; i < str.length; i++)
	{
		if (str.charAt(i) == char)
		{
			str = str.substring(0, i) + str.substring(i + 1);
		}
	}
	
	return str;
}

function isNumeric(code)
{
	// Se o usuário não digitar um valor numérico ou a tecla backspace, retorna false.
	if ((code < 48 || code > 57) && (code < 96 || code > 105) && code != 8)
		return false;
		
	return true;
}

/*
  Desabilita o enter de um documento.
*/
function disableEnter()
{
	if (event.keyCode == 13)
		return false;
}

/*
  Desabilita os submits de um documento.
*/
function disableSubmits()
{
	var inputs = document.getElementsByTagName("INPUT");
	
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].type.toUpperCase() == "SUBMIT" || inputs[i].type.toUpperCase() == "BUTTON")
			inputs[i].disabled = true;
	}
}

/*
  Abre uma tela de relatório
*/
function openReport(link, screenName)
{
	window.open(link, screenName, 'top=0,left=0,width=750,height=550,resizable=yes');
}