Pegar a posição de um objeto e passar para outro (JSF - JavaScript)

Pessoal é o seguinte gostaria de pegar a posição de um objeto na tela JSF e passar para outro por javaScript.

Quero que ao clicar no botão, é mostrado o painel na mesma posição do botão, veja como estou fazendo porem não está funcionando o posicionamento.

Meu JSF

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <link rel="stylesheet" type="text/css" href="css/fire.css" />
    <script type="text/javascript" src="js/saybien.js"></script>
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form id="frm">
            <p:commandButton id="cmdEmail"
                             value="Email"
                             onclick="posicionar('frm:cmdEmail','frm:pnlEmail');"/>

            <p:panel id="pnlEmail"
                     widgetVar="pnlEmail"
                     visible="false"
                     header="email"
                     style="height:300px; width: 300px ;"/>
        </h:form>
    </h:body>
</html>

JavaScript

function posicionar(btn, painel) {
    var atual_left = 0;
    var atual_top = 0;
    var botao = document.getElementById(btn);
    var pnl = document.getElementById(painel);

 if (botao.offsetParent) {
        while (botao.offsetParent) {
            atual_left += botao.offsetLeft
            botao = botao.offsetParent;
        }
    }

    if (botao.offsetParent) {
        while (botao.offsetParent) {
            atual_top += botao.offsetTop
            botao  = botao.offsetParent;
        }
    }

    pnl.offsetLeft = atual_left;
    pnl.offsetTop = atual_top;

    pnlEmail.show();
}

Alguem poderia me ajudar?
Deste já agradeço