/** 
 * @name config.js
 * @author COSIMP
 * @version 12/05/2008
 * @package
 * @access public
 * @classDescription 
 */

/**
 * @abstract Reseta o formulário.
 * @author 
 * @access public
 * @return void
 */ 
function limpaForm(form) {
	if (confirm('Tem certeza que deseja LIMPAR este formulário?')) form.reset();
}

/**
 * @abstract Seta o foco em um campo passado por parâmetro
 * @author 
 * @access public
 * @return void
 */ 
function setFocus(campo)
{
	document.getElementById(campo).focus();
}

/**
 * @abstract Salta para o próximo campo se a tecla pressionada for TAB.
 * @author
 * @access public
 * @return
 * @param objeto
 */
function proximoCampo(field)
{
	for (i = 0; i < field.form.elements.length; i++)
	{
		if (field == field.form.elements[i])
		{
			i = (i + 1) % field.form.elements.length - 1;
			field.form.elements[i].focus();
			return false;
		}
	}
	return true;
}

/**
 * @abstract Retorna uma máscara de acordo com o formato passado.
 * @author
 * @access public
 * @return
 * @param 
 * 		Data:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '99/99/9999', event);">
 *		RG:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '99.999.999-9', event);">
 *		Telefone:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '(99)9999-9999', event);">
 *		Código:<input type="text" size="20" onkeypress="return mascaraFormat(this, '99-999', event);"> 
 */ 
function mascaraFormat(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

    if(document.all) { // internet explorer
        nTecla = evtKeyPress.keyCode;
    } else if(document.layers) { // nestcape
        nTecla = evtKeyPress.which;
    } else {
        nTecla = evtKeyPress.which;
        if (nTecla == 8) {
           return true;
        } else if (nTecla == 0) {
			proximoCampo(objeto);
			return true;
		}
    }
	sValue = objeto.value;
    // limpa todos os caracteres de formatação que já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++;
		} else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		i++;
	}
    objeto.value = sCod;
	if (nTecla != 8) { // backspace
		if (sMask.charAt(i-1) == "9") { // apenas numeros...
			return ((nTecla > 47) && (nTecla < 58)); // numeros de 0 a 9
		} else { // qualquer caracter...
			return true;
		} 
	} else {
		return true;
	}
}

function popup(URL,nome, width, height, top, left, scrollbars, status, toolbar, location, directories, menubar, resizable, fullscreen)
{
	window.open(URL,nome, 'width='+width+', height='+height+', top='+top+', left='+left+', scrollbars='+scrollbars+', status='+status+', toolbar='+toolbar+', location='+location+', directories='+directories+', menubar='+menubar+', resizable='+resizable+', fullscreen='+fullscreen);
}