charactername.htm

<html>
<head>
    <title>Name</title>

<script src="include.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
   //Declare variables
   var urlGet = "getweb.php";
   var urlPost = "putcolour.php";

   //Get two HTTP Request objects and set them for XML
   var httpGet = getHttpObject(true);
   var httpPost = getHttpObject(true);

   varAddFieldRows = 0;

   //TODO: Put this in a header file
   function getTextFromNode(node)
   {
       if (node != undefined)
       {
           if (node.firstChild != undefined)
           {
               return node.firstChild.data;
           }
      }

      return "";
   }

   function parseXml(xmlUsers) 
   {
            var nodeRoot = xmlUsers.getElementsByTagName('root').item(0);

            var status = "";

            if (nodeRoot != undefined)
            {
                  var nodeUserId = nodeRoot.getElementsByTagName('userid').item(0);

                  var webuserid = getTextFromNode(nodeUserId );

                  var nodeStatus = nodeRoot.getElementsByTagName('status').item(0);

                  status = getTextFromNode(nodeStatus);

                  if (status == "active")
                  {
                     emptyTable("tableDisplay");

                     var nodeWebItem = nodeRoot.getElementsByTagName('webitem').item(0);

                     displayChildrenAndRecurse(nodeWebItem, status, webuserid);

                     displayAddFields(nodeRoot, webuserid);
                  }
                  else
                     setTimeout("getWeb()",5000);
            }
            else
            {
                  ReportError("There seems to be an error in the database", "No root node in getusers.php XML document");
            }
   }

   function displayChildrenAndRecurse(nodeParent, status, webuserid) 
   {
       if (nodeParent.hasChildNodes())
       {
           var arrayChildren = nodeParent.childNodes;

           var nodeParentName = nodeParent.getElementsByTagName('name').item(0);

           var strParentName = getTextFromNode(nodeParentName);

           for (var i = 0; i < arrayChildren.length; i++) 
           {
               var node = arrayChildren[i];

               if (node.nodeName == "webitem")
               {
                   var nodeWebItemId = node.getElementsByTagName('webitemid').item(0);

                   var nodeName = node.getElementsByTagName('name').item(0);

                   displayWebItem(strParentName, getTextFromNode(nodeName));

                   displayChildrenAndRecurse(node, status, webuserid);
               }
           }

/*           var nodeWebItemId = nodeParent.getElementsByTagName('webitemid').item(0);

           var strWebItemId = getTextFromNode(nodeWebItemId);

           displayAddField(strParentName, strWebItemId, status, webuserid);*/

       }
    }

   function displayAddFields(nodeRoot, webuserid) 
   {
           var collWebItems = nodeRoot.getElementsByTagName('webitem');

           for (var i = 0; i < collWebItems.length; i++) 
           {
               var nodeToDisplay = collWebItems.item(i);

               var nodeName = nodeToDisplay .getElementsByTagName('name').item(0);

               var nodeWebItemId = nodeToDisplay.getElementsByTagName('webitemid').item(0);

               displayAddField(getTextFromNode(nodeName), getTextFromNode(nodeWebItemId), webuserid);
           }
    }


   function emptyTable(tablename) 
   {
       var tbl = document.getElementById(tablename);

       var lastRow = tbl.rows.length - 1;

       while (lastRow > -1)
       {
           tbl.deleteRow(lastRow);
           lastRow --;
       }
   }

   function deleteTableRows(tablename, numRowsToDelete) 
   {
       var tbl = document.getElementById(tablename);

       var lastRow = tbl.rows.length - 1;

       while (numRowsToDelete > 0) 
       {
           tbl.deleteRow(lastRow);
           numRowsToDelete --;
           lastRow --;
       }
   }

function Assert(bCondition)
{
    if (!bCondition)
    {
        alert("Assert failed!");
    }
}

function ReportError(strUser, strPrivate)
{
   alert(strPrivate);
}

function displayWebItem(nameParent, nameChild) 
{
     var table = document.getElementById("tableDisplay");

     var lastRow = table.rows.length;

     var row = table.insertRow(lastRow);

     var cell1 = row.insertCell(0);

     cell1.innerHTML = nameParent + " --- ";

     var cell2 = row.insertCell(1);

     cell2.innerHTML = nameChild;
}

function displayAddField(nameParent, webitemid, webuserid) 
{
     varAddFieldRows ++;

     var table = document.getElementById("tableDisplay");

     var lastRow = table.rows.length;

     var row = table.insertRow(lastRow);

     var cell0 = row.insertCell(0);

     cell0.id = "cellParentName" + webitemid;

     cell0.innerHTML = nameParent;

     var cell1 = row.insertCell(1);

     cell1.innerHTML = " --- ";

     var cell2 = row.insertCell(2);

     cell2.id = "cellWebItem" + webitemid;

     cell2.innerHTML = "<input type=\"text\" onKeyDown=\"handleKeyPress(event, " + webitemid + ", " + webuserid + ")\" id=\"txtWebItem" + webitemid + "\" /><input value=\"Submit\" type=\"button\" onclick=\"addWebItem(" + webitemid + ", " + webuserid + ")\" />";
}

/*function handleReturn(previouswebitemid, webuserid)
{
    addWebItem(previouswebitemid, webuserid);
}*/

function setName()
{
     var strName = document.getElementById("txtName").value;

     var urlPost = "putname.php?name=" + strName;

     doHttpRequest(httpPost, handlePostHttpResponse, urlPost, "POST");
}
 
   function getWeb() 
   {
        doHttpRequest(httpGet, handleGetHttpResponse, urlGet, "GET");
   }

   function handleGetHttpResponse() 
   {
       parseXml(httpGet.responseXML);
   }

   function handlePostHttpResponse() 
   {
       top.location = "conflict.htm";
   }

function handleReturn(param1, param2)
{
    setName();
}

</script>
</head>
<body>
<h1>Name</h1>
What's your character's name?
    <p><input type="text" id="txtName" value="" onKeyPress="handleKeyPress(event, this, 0)"/></p>
    <p><input type="button" value="Continue" onclick="setName()" /></p>
</body>
</html>