// +--------------------------------------------------------+
// | Class: classError          
// |
// | Uma classe para o gerenciamento dos erros nos formulários do sistema.           
// +--------------------------------------------------------+
function classError()
{
	// +--------------------------------------------------------+
	// | Variable: aErrors
	// | Vetor que representa os campos com erros.
	// +--------------------------------------------------------+   
    var aErrors = new Array();
    this.getContErr = getCont; 
    this.insertErr = insert; 
    this.findErr = find; 
    this.removeErr = remove;
    this.showErr = show; 
    this.cleanErr = clean;

	// +--------------------------------------------------------+
	// | Function: getCont
	// | Função para retornar o número de erros. Para ser acessada 
	// | deve ser chamada como: getContErr
	// |             
	// | Returns:
	// | Retorna o número de erros cadastrados.
	// +--------------------------------------------------------+
    function getCont()
    {
        return aErrors.length;
    }

	// +--------------------------------------------------------+
	// | Function: insert
	// | Função que insere um erro no final da lista.  
	// | Para ser acessada deve ser chamada como: insertErr           
	// |
	// | Parameters: 
	// | _sName - id do campo que está errado.
	// +--------------------------------------------------------+ 
    function insert(_sName)
    {
	    var verif = false;
	    for (var i=0; i < aErrors.length; i++)
	    {
		    if (aErrors[i].sName == _sName)
		    {
			    aErrors[i].bConfirm = 1;
			    verif = true;
				break;
		    }
	    }
	    if (!verif)
		    aErrors[aErrors.length] = new error(_sName, 1);
    }

	// +--------------------------------------------------------+
	// | Function: find
	// | Busca a posição do erro passado como parâmetro na lista.
	// | Para ser acessada deve ser chamada como: findErr 
	// |             
	// | Parameters:  
	// | _sName - id do campo que está errado.             
	// |             
	// | Returns:     
	// | Retorna -1 caso o campo não tenha erro na lista ou retorna a posição do erro na lista.
	// +--------------------------------------------------------+
    function find(_sName)
    {
        for (var i=0; i < aErrors.length; i++)
        {
            if (aErrors[i].sName == _sName)
                return i;
        }
        return -1;
    }

	// +--------------------------------------------------------+
	// | Function: remove
	// | Retira o erro passado como parâmetro da lista. Para ser 
	// | acessada deve ser chamada como: removeErr
	// |
	// | Parameters: 
	// | _sName - id do campo que está errado.            
	// +--------------------------------------------------------+
    function remove(_sName)
    {
        var iPosition = find(_sName);
        if (iPosition == -1)
            return -1;
        else
        {
            aErrors.splice(iPosition, 1);
            return iPosition;
        }
    } 

	// +--------------------------------------------------------+
	// | Function: show
	// | Mostra a mensagem do erro que ocorreu no lugar passado como parâmetro.
	// | Para ser acessada deve ser chamada como: showErr
	// |             
	// | Parameters: 
	// | _sName - id do campo que está errado.
	// | _sDiv - id do elemento DIV que será destacado para mostrar o erro.
	// | _sSpan - id do elemento SPAN que receberá a mensagem de erro.
	// | _sMsg - mensagem de erro.           
	// +--------------------------------------------------------+
    function show(_sName, _sDiv, _sSpan, _sMsg)
    {
	    document.getElementById(_sDiv).style.border = "solid thin #FF0000";
	    $("#" + _sSpan).html(_sMsg);
	    $("#" + _sSpan).show();
	    insert(_sName);
    }

	// +--------------------------------------------------------+
	// | Function: clean 
	// | Apaga a mensagem de erro.
	// | Para ser acessada deve ser chamada como: cleanErr
	// |
	// | Parameters: 
	// | _sName - id do campo que está errado.
	// | _sDiv - id do elemento DIV que será destacado para mostrar o erro.
	// | _sSpan - id do elemento SPAN que receberá a mensagem de erro.            
	// +--------------------------------------------------------+
    function clean(_sName, _sDiv, _sSpan)
    {
	    document.getElementById(_sDiv).style.border = "none";
	    $("#" + _sSpan).hide();
	    remove(_sName);	
    }
          
}