<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script>
if (window.testRunner)
     testRunner.dumpEditingCallbacks();
</script>

<title>Editing Test</title>
<script type="text/javascript">
function getContainer(containerID) {return document.getElementById(containerID);}


window.onload = function() {

  var newcontainer = getContainer('identity-options-horiz');
  var oldcontainer = getContainer('identity-options');

  if (oldcontainer) {
    var paranodes = oldcontainer.getElementsByTagName("p");

    // move all the paragraph nodes to new container
    while (paranodes.length > 0) {
      newcontainer.appendChild(paranodes[0]);
    }  
  }
}

</script>
</head>
<body>

<div style="border-style:solid; border-color:red" id="identity-options-horiz">Destination container</div>
<div style="border-style:solid; border-color:blue" id="identity-options">
Source container
<p class="label">one</p>
<p class="label">two</p>
</div>

</body>
</html> 
