function replacePound(entry) {
   out = "#";
   add = "%23";

   temp = "" + entry;

   while (temp.indexOf(out)>-1) {
      pos = temp.indexOf(out);
      temp = "" + (temp.substring(0, pos) + add + temp.substring((pos + out.length), temp.length));
   }

   entry = temp;
   
   out = "&";
   add = "%amp;";

   temp = "" + entry;

   while (temp.indexOf(out)>-1) {
      pos = temp.indexOf(out);
      temp = "" + (temp.substring(0, pos) + add + temp.substring((pos + out.length), temp.length));
   }

   return temp;
}   

function notEmpty(elem, helperMsg) {
	if(elem.value.length === 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

function responseAHAH(pageElement) {
   var output = '';
   if(req.readyState === 4) {
      if(req.status === 200) {
         output = req.responseText;
         document.getElementById(pageElement).innerHTML = output;
      }
   }
}

function callAHAH(url, pageElement, callMessage) {
     document.getElementById(pageElement).innerHTML = callMessage;
     try {
     req = new XMLHttpRequest(); /* e.g. Firefox */
     } catch(e) {
       try {
       req = new ActiveXObject("Msxml2.XMLHTTP");
  /* some versions IE */
       } catch (e) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP");
  /* some versions IE */
         } catch (E) {
          req = false;
         }
       }
     }
     req.onreadystatechange = function() {responseAHAH(pageElement);};
     req.open("GET",url,true);
     req.send(null);
}

function postAHAH(url, pageElement, callMessage, parameters) {
     document.getElementById(pageElement).innerHTML = callMessage;
     try {
     req = new XMLHttpRequest(); /* e.g. Firefox */
     } catch(e) {
       try {
       req = new ActiveXObject("Msxml2.XMLHTTP");
  /* some versions IE */
       } catch (e) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP");
  /* some versions IE */
         } catch (E) {
          req = false;
         }
       }
     }
     req.onreadystatechange = function() {responseAHAH(pageElement);};
     req.open("POST",url,true);
     req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     req.setRequestHeader("Content-length", parameters.length);
     req.setRequestHeader("Connection", "close");
     req.send(parameters);
}

function finish() {
   var schoolnumber = document.getElementById('AssignedSchool').value;
   var position = document.getElementById('position').value;
   var training = document.getElementById('TrainingDate').value;
   var drivers = document.getElementById('DriversLicense').checked;
   var insurance = document.getElementById('DriversInsurance').checked;
   var ID = document.getElementById('ID').value;
   var NewID = document.getElementById('NewID').value;
   var PIEID = document.getElementById('PIEID').value;

   if (schoolnumber === 'None') {
        alert ('You must pick a school!');
   } else {
        var urlvars = 'school=' + schoolnumber + '&position=' + position + '&training=' + training + '&drivers=' + drivers + '&insurance=' + insurance + '&ID=' + ID + '&NewID=' + NewID + '&PIEID=' + PIEID; 
        callAHAH('appfinish.php?' + urlvars, 'content', '<center><img src=images/anim.gif></center>');
   }
}

function get(obj) {
   var poststr = encodeURI( document.getElementById(obj).value );
   return poststr;
} 

function check_All(frm, field, chAll)
{
    comfList = document.forms[frm].elements['ids[]'];

    checkAll = chAll; // what to do? Check all or uncheck all.

    // Is it an array
    if (comfList.length) {
        if (checkAll) {
            for (i = 0; i < comfList.length; i++) {
                comfList[i].checked = true;
            }
        }
        else {
            for (i = 0; i < comfList.length; i++) {
                comfList[i].checked = false;
            }
        }
    }
    else {
        /* This will take care of the situation when your 
	   checkbox/dropdown list (checkList[] element here) is dependent on
           a condition and only a single check box came in a list.
        */
        if (checkAll) {
            comfList.checked = true;
        }
        else {
            comfList.checked = false;
        }
    }
    return;
}

function uncheck_All(field)
{
   for (i = 0; i < field.length; i++) {
	field[i].checked = false ;
   }
}

function collectForm(formname, url, pageElement){
   var theForm = document.getElementById(formname);

   var urlVars = "?form=1";
   for(i=0; i<theForm.elements.length; i++){

      if(theForm.elements[i].id === "notempty") {
	var valid = notEmpty(theForm.elements[i], theForm.elements[i].name + " must not be blank");
        if (valid === false) {
           return false;
        }
      }

      urlVars += "&" + theForm.elements[i].name + "=";

      if(theForm.elements[i].type === "text" || theForm.elements[i].type === "textarea" || theForm.elements[i].type === "button" || theForm.elements[i].type === "hidden"){
         urlVars += replacePound(theForm.elements[i].value);

      } else if(theForm.elements[i].type === "checkbox") {
         urlVars += replacePound(theForm.elements[i].checked + ":" + theForm.elements[i].value);

      } else if(theForm.elements[i].type === "select-one") {
         urlVars += replacePound(theForm.elements[i].options[theForm.elements[i].selectedIndex].value);

      }
   }

   callAHAH(url + urlVars, pageElement, '<center><img src=images/anim.gif></center>');

} 


function numbersonly(myfield, e, dec)
{
   var key;
   var keychar;

   if (window.event)
      key = window.event.keyCode;
   else if (e)
      key = e.which;
   else
      return true;
   keychar = String.fromCharCode(key);

   // control keys
   if ((key===null) || (key===0) || (key===8) || (key===9) || (key===13) || (key===27) )
      return true;

   // numbers
   else if ((("0123456789").indexOf(keychar) > -1))
      return true;

   else
      return false;
}

