function toggleDisp(id) {
	el = document.getElementById(id);
	var display = el.style.display ? '' : 'none';
	el.style.display = display;
}

function hideObj(o) {
	if (typeof o == "string") o = document.getElementById(o);
	if (document.layers)
		o.display = 'none';
	else
		o.style.display = 'none';
}

function showObj(o) {
	if (typeof o == "string") o = document.getElementById(o);
	if (document.layers)
		o.display = 'table-row';
	else
		o.style.display = 'table-row';
}

function doSubmit(docForm,docURL) {
	var submitstr = formData2QueryString(document.getElementById(docForm));
	xmlhttpPost(docURL, submitstr, 'displayResult');
}

function formData2QueryString(docForm) {

  var submitContent = '';
  var formElem;
  var lastElemName = '';
  
  for (i = 0; i < docForm.elements.length; i++) {
    
    formElem = docForm.elements[i];
    switch (formElem.type) {
      // Text fields, hidden form elements
      case 'text':
      case 'hidden':
      case 'password':
      case 'textarea':
      case 'select-one':
        submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        break;
        
      // Radio buttons
      case 'radio':
        if (formElem.checked) {
          submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        }
        break;
        
      // Checkboxes
      case 'checkbox':
        if (formElem.checked) {
          // Continuing multiple, same-name checkboxes
          if (formElem.name == lastElemName) {
            // Strip of end ampersand if there is one
            if (submitContent.lastIndexOf('&') == submitContent.length-1) {
              submitContent = submitContent.substr(0, submitContent.length - 1);
            }
            // Append value as comma-delimited string
            submitContent += ',' + escape(formElem.value);
          }
          else {
            submitContent += formElem.name + '=' + escape(formElem.value);
          }
          submitContent += '&';
          lastElemName = formElem.name;
        }
        break;
        
    }
  }
  // Remove trailing separator
  submitContent = submitContent.substr(0, submitContent.length - 1);
  return submitContent;
}

function xmlhttpPost(strURL, strSubmit, strResultFunc) {
        var xmlHttpReq = false;
	// Mozilla/Safari
        if (window.XMLHttpRequest) {
                xmlHttpReq = new XMLHttpRequest();
                xmlHttpReq.overrideMimeType('text/xml');
        }
        // IE
        else if (window.ActiveXObject) {
                xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlHttpReq.open('POST', strURL, true);
        xmlHttpReq.setRequestHeader('Content-Type', 
		     'application/x-www-form-urlencoded');
        xmlHttpReq.onreadystatechange = function() {
                if (xmlHttpReq.readyState == 4) {
                        eval(strResultFunc + '(xmlHttpReq.responseText);');
                }
        }
        xmlHttpReq.send(strSubmit);
}

function displayResult(strIn) {
        var strContent = '<table>';
        var strPrompt = '';
        var nRowCount = 0;
        var strResponseArray;
        var strContentArray;
        var objTrack;
        var newstr;
	var ajaxctable = document.getElementById('ajaxctable');        
	
        // Split row count / main results
        strResponseArray = strIn.split('\n\n');
        // Get row count, set prompt text
        nRowCount = strResponseArray[0];
        strPrompt = nRowCount + ' row(s) returned.';
        // Actual records are in second array item --
        // Split them into the array of DB rows
        strContentArray = strResponseArray[0].split('<br>');
        
	newstr = ajaxctable.innerHTML.substr(0,ajaxctable.innerHTML.length-16);
	newstr=newstr+'<tr><td width="90%" bgcolor="#336699">';		
	newstr=newstr+'<div align="left"><font color="#FFFFFF" size="-2"><b>';
	newstr=newstr+strContentArray[0]+'</b> said:</font></div></td>';
	newstr=newstr+'<td bgcolor="#336699"><div align="right"><font color="#FFFFFF" size="-2"><b>';
	newstr=newstr+strContentArray[1]+'</span></b></font></div></td></tr>';
	newstr=newstr+'<tr><td width="100%" bgcolor="#f1f1f1" colspan="2">';
	newstr=newstr+strContentArray[2]+'</td></tr><tr><td height="10" width="100%" colspan="2">';
	newstr=newstr+'</td></tr></table>';
	ajaxctable.innerHTML=newstr;
}
