/**************************************************************
   AUTHOR:  Pat Heard (fullahead.org)
   DATE:    Created 2007.07.31
   PURPOSE: Functions required by contact page
 **************************************************************/

/*
 * Makes the email address unreadable by spiders
 */
function writeAddy() {
  document.write('<a href="mai');
  document.write('lto');
  document.write(':&#115;&#117;&#115;&#97;&#110;&#100;&#111;&#100;&#115;&#46;&#99;&#111;&#109;');
  document.write('@');
  document.write('&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">');
  document.write('&#115;&#117;&#115;&#97;&#110;&#100;&#111;&#100;&#115;&#46;&#99;&#111;&#109;');
  document.write('@');
  document.write('&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;<\/a>');
}



/*
 * Resets the contact form
 */
function resetForm(){
  document.getElementById('success').style.display = "none";
  document.getElementById('error').style.display = "none";
  document.getElementById('lblName').className = "";
  document.getElementById('lblSubject').className = "";
  document.getElementById('lblEmail').className = "";
  document.getElementById('lblMessage').className = "";
}

/*
 * Checks if a string is empty
 */
function isEmpty(str){
  return (str == null) || (trim(str).length == 0);
}

/*
 * Trims whitespace from beginning and end of a string
 */
function trim(str) { 
  return str.replace(/^\s+|\s+$/, ''); 
};

/*
 * Checks if a string is a valid email address
 */
function isEmail(str){
  var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
  return re.test(str);
}


/*
 * Validates the contact form input
 */
function validateContactForm(form){

  var realName = form.realname.value;
  var subject = form.subject.value;
  var email = form.email.value;
  var message = form.message.value;

  document.getElementById('lblName').className = "";
  document.getElementById('lblSubject').className = "";
  document.getElementById('lblEmail').className = "";
  document.getElementById('lblMessage').className = "";

  var errorElem = document.getElementById('error');
  var successElem = document.getElementById('success');

  errorElem.style.display = "none";
  successElem.style.display = "none";

  var errors = "";

  if(realName == "") {
    document.getElementById('lblName').className = "error";
    errors += "<li>Missing name</li>";
  }

  if(subject == ""){
    document.getElementById('lblSubject').className = "error";
    errors += "<li>Missing subject</li>";
  }

  if(email == "") {
    document.getElementById('lblEmail').className = "error";
    errors += "<li>Missing e-mail</li>";
  } else if(!isEmail(email)) {
    document.getElementById('lblEmail').className = "error";
    errors += "<li>Invalid e-mail</li>";
  }

  if(message == "") {
    document.getElementById('lblMessage').className = "error";
    errors += "<li>Missing message</li>";
  }


  if(errors != ""){
    errorElem.style.display = "block";
    errorElem.innerHTML = "Please correct the following and try again:<ul>" + errors + "</ul>";
    return false;
  }

  return true;
}


/*
 * Checks if the page is loading after a successful form submission
 */
function checkIfSuccess(){
  if(getURLParam("success") == 1)
    document.getElementById('success').style.display = "block";
}

/*
 * Gets params from the url
 */
function getURLParam(strParamName){
  var strReturn = null;
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return strReturn;
}
