function buttHoverOn(obj) {
  obj.style.borderColor="#f90";
  obj.style.color="#f90";
  }

function buttHoverOff(obj) {
  obj.style.borderColor="#009";
  obj.style.color="#009";
  }

var browserOK = ((navigator.userAgent.indexOf("Firefox")!=-1)
                || (navigator.userAgent.indexOf("Opera/8") != -1) || (navigator.userAgent.indexOf("Opera/9") != -1)
                || (navigator.appVersion.indexOf("MSIE 6") != -1) || (navigator.appVersion.indexOf("MSIE 7") != -1));
var msie = navigator.appName=="Microsoft Internet Explorer";

function createRequestObject() {
  var ro;
  if (msie) {ro = new ActiveXObject("Microsoft.XMLHTTP");}
  else {ro = new XMLHttpRequest();}
  return ro;
  }

if (browserOK){ // start set up if AJAX/DOM supported
  var http = createRequestObject();
  var action;
  var errorTextSwap;
  var errorFlag=false;
  }

function sndReq(val) {
  if (browserOK){
    action=val;
    http.open('get', '/ajax/' + action + '.php');
    http.onreadystatechange = handleResponse;
    http.send(null);
    }
  else {
    eRequest('inside','lnxw','com'); // code if DOM not supported 
    }
  }

function handleResponse() {
  if (http.readyState == 4){
    var response = http.responseText;
    if (action=="cform"){
      var f = document.createElement("form");
      document.body.appendChild(f);
      f.innerHTML = response;
      f.setAttribute ("id","cform");
      f.setAttribute ("name","cform");
      f.setAttribute ("method","post");
      f.setAttribute ("target","iform");
      f.setAttribute ("action","/ajax/process-contact.php");
      document.getElementById("fname").focus();
      }
    else if ((action=="us") || (action=="ca")){
      el=document.getElementById("statelabel");
      if (el) {el.innerHTML = response;}
      else { // create "statelabel" if it doesn't already exist
        var newEl = document.createElement("label");
        newEl.setAttribute ("id","statelabel");
        document.getElementById("info").appendChild(newEl);
        newEl.innerHTML = response;
        }
      }
    else if (action=="thanks"){
// comment out this line for some debugging
      document.getElementById("cform").innerHTML = response;
      }
    else {
      el=document.getElementById("statelabel");
      if (el) {document.getElementById("info").removeChild(el); }
      }
    }
  }

function closeForm(){
  ff = document.getElementById("cform");
  document.getElementById("cform").style.display="none";
  document.body.removeChild(ff);
  }

function jvalidate(){
  if (errorFlag==true) {alert ("The error needs to be fixed before your message can be sent."); return false}
  else {
    if (document.getElementById("country").options[document.getElementById("country").options.selectedIndex].value == "") {setErrorDisplay("country","Please specify your region!"); return false};
    if ((document.getElementById("country").options[document.getElementById("country").options.selectedIndex].value == "US") && (document.getElementById("state").options.selectedIndex == 0)) {setErrorDisplay("state","Please specify your state!"); return false};
    if ((document.getElementById("country").options[document.getElementById("country").options.selectedIndex].value == "CA") && (document.getElementById("state").options.selectedIndex == 0)) {setErrorDisplay("state","Please specify your province!"); return false}
    if (document.getElementById("fname").value=="") {setErrorDisplay("fname","No first name was supplied!"); return false}
    if (document.getElementById("lname").value=="") {setErrorDisplay("lname","No last name was supplied!"); return false}
    if (document.getElementById("compname").value=="") {setErrorDisplay("compname","No company name was supplied!"); return false}
    if (document.getElementById("email").value=="") {setErrorDisplay("email","No e-mail address was supplied!"); return false}
    if (document.getElementById("phone").value=="") {setErrorDisplay("phone","No phone number was supplied!"); return false}
    if ((document.getElementById("msgtxt").value=="")||(document.getElementById("msgtxt").value=="Enter your text here")) {setErrorDisplay("msgtxt","You did not supply a message or a question!"); return false}
    }
// uncomment next line to make debug box visible
//  document.getElementById("iform").style.visibility="visible";
  document.getElementById("cform").submit();
  }

function setErrorDisplay(){
  obj = eval("document.getElementById(\"" + arguments[0] + "\")");
  if (msie){
    errorTextSwap = obj.parentNode.childNodes[0].nodeValue;
    obj.parentNode.childNodes[0].nodeValue = arguments[1];
    }
  else {
    errorTextSwap = obj.parentNode.childNodes[0].textContent;
    obj.parentNode.childNodes[0].textContent = arguments[1];
    }
  obj.parentNode.style.background="#eee";
  obj.parentNode.style.border="3px double #f3c700";
  obj.parentNode.style.padding="5px";
  obj.parentNode.style.marginRight="5px";
  obj.style.border="3px dashed #f90";
  obj.parentNode.style.fontWeight="bold";

  obj.parentNode.onclick=undoErrorDisplay;
  errorFlag=true;
  }

function undoErrorDisplay(){
  obj.parentNode.style.background="";
  obj.parentNode.style.border="";
  obj.parentNode.style.padding="";
  obj.parentNode.style.marginRight="";
  obj.style.border="1px solid #ccc";
  obj.parentNode.style.fontWeight="";
  if (msie){
    obj.parentNode.childNodes[0].nodeValue = errorTextSwap;
    }
  else {
    obj.parentNode.childNodes[0].textContent = errorTextSwap;
    }
  errorFlag=false;
  }

function processError(errorcode){
  if (errorcode==2) {setErrorDisplay("fname","We could not process your first name.");}
  else if (errorcode==3) {setErrorDisplay("lname","We could not process your last name.");}
  else if (errorcode==4) {setErrorDisplay("compname","We could not process your company name.");}
  else if (errorcode==10) {setErrorDisplay("phone","We could not process your phone number.");}
  else if (errorcode==11) {setErrorDisplay("email","We could not process your e-mail address.");}
  else if (errorcode==14) {alert ("We're sorry, but problems with your information have prevented it from being submitted.");}
  }

function processSuccess(){
  sndReq("thanks");
  }