Mascara jquery é destruída após usar a4j:commandButton

Bom tarde gente.
Tenho uma aplicação que usa JSF2 com richfaces 4 e tenho um problema, tenho um formulario que serve pra cadastro, e nele eu utilizo uma função jquery para criar mascaras, até ai tudo bem, a primeira vez q utilizo o formulario para salvar um primeiro contato a mascara funciona perfeitamente, porém ao tentar salvar o segundo contato, a mascara do jquery ja nao funciona mais.

Percebi q isso deve ser culpa do richfaces, pois o botao que grava o contato no banco de dados é um a4j:commandButton, se eu troco ele por um h:commandButton, a mascara continua funcionando mesmo depois de salvar mais de um contato, porém eu gostaria ainda de usar o a4j:commandButton , alguém tem alguma ideia do pq isso acontece?

PS: é possivel carregar uma função do jquery externamente(ou seja, de dentro de um arquivo .js) usando alguma tag do richfaces tipo o rich:jquery?

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                template="/template/principalSec.xhtml"
                xmlns:h="http://java.sun.com/jsf/html"                
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:c="http://java.sun.com/jsp/jstl/core"
                >

    <ui:define name="migalha">
        Home > Curriculum > Cadastro > Pessoas
    </ui:define>

    <ui:define name="body">
        <div align="center">

            <rich:panel header="Pessoas" >
                <h:form id="FormPessoas" >
                    <h:inputHidden id="pesId" value="#{gravaPessoas.pes_id}"/>
                    <table  class="alinhaDireita">
                        <tr>
                            <td>ID:</td>
                            <td><h:inputText id="pesIdLeitura" disabled="true" value="#{gravaPessoas.pes_id}"/></td>
                        </tr>
                        <tr>
                            <td>Primeiro Nome:*</td>
                            <td><h:inputText id="pesPrenome" required="true" requiredMessage="O campo deve ser preenchido" value="#{gravaPessoas.pes_prenome}"/></td>                            
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesPrenome" /></td>
                        </tr>
                        <tr>
                            <td>Nome do Meio:*</td>
                            <td><h:inputText id="pesNomeMeio" required="true"  value="#{gravaPessoas.pes_nome_meio}"/></td>                            
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesNomeMeio" /></td>
                        </tr>
                        <tr>
                            <td>Sobrenome:*</td>
                            <td><h:inputText id="pesSobrenome" required="true"  value="#{gravaPessoas.pes_sobrenome}"/></td>                            
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesSobrenome" /></td>
                        </tr>
                        <tr>
                            <td>Nome do pais de Origem:*</td>
                            <td><h:inputText id="pesPaisOrigem" required="true"  value="#{gravaPessoas.pes_nome_pais_origem}"/></td>                            
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesPaisOrigem" /></td>
                        </tr>
                        <tr>
                            <td>Cidade:*</td>
                            <td><h:selectOneMenu id="cidId" required="true"  value="#{gravaPessoas.cid_id}">
                            <f:selectItems value="#{listaCidade.suaLista}" var="u" itemLabel="#{u.cid_nom}" itemValue="#{u.cid_id}" />
                        </h:selectOneMenu></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="cidId" /></td>
                        </tr>
                        <tr>
                            <td>Data de Nascimento:*</td>
                            <td><h:inputText id="pesDataNascimento" styleClass="data" required="true"  value="#{gravaPessoas.pes_data_nascimento}" >
                            <f:convertDateTime type="date" pattern="dd/MM/yyyy" locale="pt_BR" timeZone="GMT-3"/>
                        </h:inputText></td>
                        <td>dd/mm/aaaa</td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesDataNascimento" /></td>
                        </tr>
                        <tr>
                            <td>Data de Expedição do RG:</td>
                            <td><h:inputText id="pesRgDat" styleClass="data" value="#{gravaPessoas.pes_rg_dat}" >
                            <f:convertDateTime type="date" pattern="dd/MM/yyyy" locale="pt_BR" timeZone="GMT-3"/>
                        </h:inputText></td>
                        <td>dd/mm/aaaa</td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesRgDat" /></td>
                        </tr>
                        <tr>
                            <td>Numero do RG:</td>
                            <td><h:inputText id="pesRgNum" value="#{gravaPessoas.pes_rg_num}"/></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesRgNum" /></td>
                        </tr>
                        <tr>
                            <td>Orgão expedidor do RG:</td>
                            <td><h:inputText id="pesRgExpedido" value="#{gravaPessoas.pes_rg_expedidor}"/></td>
                        </tr>
                        <tr>
                            <td>Estado expedidor do RG:</td>
                            <td><h:selectOneMenu id="pesRgEstado" value="#{gravaPessoas.est_id}">
                            <f:selectItems value="#{listaEstado.suaLista}" var="u" itemLabel="#{u.est_nom}" itemValue="#{u.est_id}" />
                        </h:selectOneMenu></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesRgEstado" /></td>
                        </tr>
                        <tr>
                            <td>CPF:</td>
                            <td><h:inputText id="pesCpf" styleClass="cpf" value="#{gravaPessoas.pes_cpf}">
                                <f:converter converterId="CpfConverter"/>
                        </h:inputText></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesCpf" /></td>
                        </tr>
                        <tr>
                            <td>Telefone1:</td>
                            <td><h:inputText id="pesTelefone1" value="#{gravaPessoas.pes_telefone1}" styleClass="fone">
                                <f:converter converterId="TelefoneConverter"/>
                        </h:inputText></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesTelefone1" /></td>
                        </tr>
                        <tr>
                            <td>Telefone2:</td>
                            <td><h:inputText id="pesTelefone2" value="#{gravaPessoas.pes_telefone2}" styleClass="fone">
                                <f:converter converterId="TelefoneConverter"/>
                        </h:inputText></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesTelefone2" /></td>
                        </tr>
                        <tr>
                            <td>Telefone3:</td>
                            <td><h:inputText id="pesTelefone3" value="#{gravaPessoas.pes_telefone3}" styleClass="fone">
                                <f:converter converterId="TelefoneConverter"/>
                        </h:inputText></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesTelefone3" /></td>
                        </tr>
                        <tr>
                            <td>Email Pessoal:</td>
                            <td><h:inputText id="pesEmailPessoal" value="#{gravaPessoas.pes_email_pessoal}"/><br/></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesEmailPessoal" /></td>
                        </tr>
                        <tr>
                            <td>CEP:</td>
                            <td><h:inputText id="pesCep" value="#{gravaPessoas.pes_cep}" styleClass="cep">
                                <f:converter converterId="CepConverter"/>
                        </h:inputText>
                        </td>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesCep" /></td>
                        </tr>
                        </tr>
                        <tr>
                            <td>Logradouro:</td>
                            <td><h:inputText id="pesLogradouro" value="#{gravaPessoas.pes_logradouro}"/></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesLogradouro" /></td>
                        </tr>
                        <tr>
                            <td>Bairro:</td>
                            <td><h:inputText id="pesBairro" value="#{gravaPessoas.pes_bairro}"/></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesBairro" /></td>
                        </tr>
                        <tr>
                            <td>Numero:</td>
                            <td><h:inputText id="pesNumero" value="#{gravaPessoas.pes_numero}"/></td>
                        </tr>
                        <tr>
                            <td colspan="2"><h:message  styleClass="mensagemErro" for="pesNumero" /></td>
                        </tr>
                        <tr>
                            <td>Complemento:</td>
                            <td><h:inputText id="pesComplemento" value="#{gravaPessoas.pes_complemento}"/></td>
                        </tr>
                    </table>


                    <br/>
                    <h:commandButton immediate="true" onclick="limpador()"  value="Limpar"/>

                    <a4j:commandButton id="gravar" render="out,FormPessoas" value="Gravar" action="#{gravaPessoas.gravar}" />

                    <a4j:commandButton id="excluir" render="out,FormPessoas" value="Excluir" action="#{gravaPessoas.excluir}" />
                </h:form>
            </rich:panel>

            <br/>
            <rich:message for="gravar" /><rich:message for="excluir" />
            <br/><br/>

          
                    </a4j:outputPanel>
                    <br/>
                </h:form>
            </rich:panel>
            <br/>

        </div>            
    </ui:define>

</ui:composition>

Fábio,e qual o motivo pra não usar o h:commandButton se ele está funcionando?

preciso do a4j:commadButton, pois a tela é um pouco grande e minha mensagem de confirmação(ou erro) é exibida no final da pagina, se eu usar o h:commandButton, a tela volta pro topo e o usuario nao ira ver a minha mensagem de confirmação ou erro, ele tera de rolar a pagina para ve-la, enquanto o a4j:commandButton, a mensagem é exibida e a tela fica no mesmo lugar, assim o usuario pode ver a mensagem sem precisar rolar a tela, espero que eu tenha conseguido explicar direito, t+