
function  append_text(obj,text)  {
  var  domtext  =  document.createTextNode(text);
  obj.appendChild(domtext);
}


function remove_children()  {

  var arg = remove_children.arguments;

  if  (arg[0])  { var parentid  = arg[0]; }

  var parent  = document.getElementById(parentid);
  var child;

  if  (parent.hasChildNodes())  {

    while  (parent.childNodes.length > 0)  {
      child  =  parent.childNodes[parent.childNodes.length - 1];
      parent.removeChild(child);
    }

  }

  return;

}

function is_empty(testexp) {

  if    (testexp.length == 0) { return true;  }
  else                        { return false; }

}

function is_name(testexp) {
  var re  = /^([A-Za-z-]{2,})\s?([A-Za-z-]*)$/;

  if    (re.test(testexp))  { return true;  }
  else                      { return false; }
}

function is_email(testexp) {

  var re  = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/;

  if    (re.test(testexp))  { return true; }
  else                      { return false;}
}

function http_poststring(formref) {

  var  obj;
  var  poststring  =  "";

  if  (formref)  {
    for  (i=0;i<formref.elements.length;i++)  {
      obj  =  formref.elements[i];
      if    (formref.elements[(i+1)]) {  poststring  +=  obj.name + "=" + obj.value + "&";  }
      else                            {  poststring  +=  obj.name + "=" + obj.value;        }

    }
  }

  return poststring;

}

function ajax_httppost(url,content) {

  var req;

  if  (window.XMLHttpRequest)  {

    req = new XMLHttpRequest();
    req.open("POST",url,false);
    req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    req.send(content);

  }
  else if (window.ActiveXObject)  {

    req = new ActiveXObject("Microsoft.XMLHTTP");

    if  (req)  {

      req.open("POST",url,false);
      req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      req.send(content);

    }

  }

  //alert(req.getAllResponseHeaders());
  //alert(req.responseText);
  //alert(req.statusText);
  //alert(req.responseXML);

  return  req;

}

function  initialize_contact_page() {

  var myemail = "info@raymondchow.ca";

  if  (document.getElementById('myemail'))  {

    var parent  = document.getElementById('myemail');

    var anchor  = document.createElement('a');

    anchor.href = "mailto:" + myemail;

    append_text(anchor,myemail);

    parent.appendChild(anchor);

  }

  return;

}

function  validate_mail_form(formref)  {

  var field   = new Array("who","from","subject","body");

  var proceed = true;

  var wrapper   = document.getElementById('formwrapper');
  var errorbox  = document.getElementById('errorbox');

  remove_children('errorbox');

  var who     = formref.elements[0].value;
  var from    = formref.elements[1].value;
  var subject = formref.elements[2].value;
  var body    = formref.elements[3].value;

  var error_who     = document.createElement("div");
  var error_from    = document.createElement("div");
  var error_subject = document.createElement("div");
  var error_body    = document.createElement("div");

  if  (is_empty(who))  {
    append_text(error_who,'Please enter Name');
    errorbox.appendChild(error_who);
    proceed = false;
  }

  if  (!is_email(from))  {
    append_text(error_from,'Please enter E-Mail Address');
    errorbox.appendChild(error_from);
    proceed = false;
  }

  if  (is_empty(subject))  {
    append_text(error_subject,'Please enter Subject');
    errorbox.appendChild(error_subject);
    proceed = false;
  }

  if  (is_empty(body))  {
    append_text(error_body,'Please enter Message');
    errorbox.appendChild(error_body);
    proceed = false;
  }


  if  (proceed)  {

    var content;

    content +=  "ajax=true";

    for (i=0; i<field.length; i++)  {
      content +=  "&" + field[i] + "=" + formref.elements[i].value;
    }

    var req = ajax_httppost('maildispatcher.php',content);

    var ajaxhtml  = req.responseText;

    wrapper.innerHTML = ajaxhtml;

  }

  return false;
}
