window.onload = function() {
  neoFlash.replaceById("programs", {filename:'programs', width:866, height:146});
  var fl = document.getElementById("banner");
  if (fl) neoFlash.replaceById(fl, {filename:'homeBanner', width:887, height:238});
  fl = document.getElementById("pgallery");
  if (fl) neoFlash.replaceById(fl, {filename:'gallery', width:820, height:650});
}

if (window.ActiveXObject) {
  window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
} else if (!navigator.taintEnabled) {
  window.webkit = window[window.xpath ? 'webkit420' : 'webkit419'] = true;
} else if (document.getBoxObjectFor != null) {
  window.gecko = true;
}

var neoFlash = {
  replaceById: function(node, values) {
    if (!this.setFlash(values)) { return false; }
    if (typeof(node) === 'string') { if (!(node = document.getElementById(node))) { return false; } }
    this.flashReplace(node);
    return true;
  },

  replaceByTag: function(tag, values, parent) {
    if (!this.setFlash(values)) { return 0; }
    if (!parent) { parent = document; }
    var nodes = parent.getElementsByTagName(tag);

    for (var i = 0, len = nodes.length; i < len; i++) {
      var node = nodes[i];
      if (node.firstChild.nodeType == 1) { continue; }
      this.flash.flashvars = 'content='+ node.innerHTML;
      this.flashReplace(node);
    }
    return len;
  },

  createParameter: function(parent, name, value) {
    var node = document.createElement('param');
    node.setAttribute('name', name);
    node.setAttribute('value', value);
    parent.appendChild(node);
  },

  flashReplace: function(node) {
    if (window.gecko) {
      var ele = document.createElement('embed');
      ele.setAttribute('src', this.flash.filename);
      ele.setAttribute('quality', this.flash.quality);
      ele.setAttribute('wmode', this.flash.wmode);
      if (this.flash.bgcolor) { ele.setAttribute('bgcolor', this.flash.bgcolor); }
      if (this.flash.flashvars) { ele.setAttribute('flashvars', this.flash.flashvars); }
    } else {
      if (window.ie) {
        ele = document.createElement('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">');
        this.createParameter(ele, 'movie', this.flash.filename);
      } else {
        ele = document.createElement('object');
        ele.setAttribute('data', this.flash.filename);
      }
      this.createParameter(ele, 'quality', this.flash.quality);
      this.createParameter(ele, 'wmode', this.flash.wmode);
      if (this.flash.bgcolor) { this.createParameter(ele, 'bgcolor', this.flash.bgcolor); }
      if (this.flash.flashvars) { this.createParameter(ele, 'flashvars', this.flash.flashvars); }
    }
    if (this.flash.width) { ele.setAttribute('width', this.flash.width); }
    if (this.flash.height) { ele.setAttribute('height', this.flash.height); }
    if (node.firstChild) {
      node.replaceChild(ele, node.firstChild);
    } else {
      node.appendChild(ele);
    }
  },

  setFlash: function(values) {
    if (values === null && this.flash) { return true; }
    if (!values.filename) { return false; }
    this.flash = {
      filename:  values.filename +'.swf',
      quality:   values.quality   || 'best',
      wmode:     values.wmode     || 'transparent',
      bgcolor:   values.bgcolor   || "",
      flashvars: values.flashvars || "",
      width:     values.width     || "",
      height:    values.height    || ""
    };
    return true;
  }
};

function validateLogin(form) {
  setError();

  with (form) {
    if (!validateEmail(username)) return false;
    if (!validateField(password, "your password.")) return false;
    if (!validateField(password, "a password with at least 5 chars.", 5)) return false;
  }

  return true;
}

function validateForgot(form) {
  setError();
  if (!validateEmail(form.forgot)) return false;
  return true;
}

function validateAccount(form) {
  setError();

  with (form) {
    if (!validateEmail(email)) return false;
/*
    if (student.value == "createAccount") {
      if (!validateField(password, "a password.")) return false;
      if (!validateField(password, "a password with at least 5 chars.", 5)) return false;
      if (!validateField(confirmPassword, "the confirmation password.")) return false;

      if (password.value != confirmPassword.value) {
        setError(confirmPassword, "You have entered 2 different passwords.");
        confirmPassword.value = "";
        confirmPassword.focus();
        return false;
      }

    } else {
      if (!validateField(currentPassword, "your current password.")) return false;
      if (!validateField(currentPassword, "a password with at least 5 chars.", 5)) return false;

      if (password.value.trim() != "") {
        if (!validateField(password, "a new password with at least 5 chars.", 5)) return false;
        if (!validateField(confirmPassword, "the confirmation password.")) return false;

        if (password.value != confirmPassword.value) {
          setError(confirmPassword, "You have entered 2 different passwords.");
          confirmPassword.value = "";
          confirmPassword.focus();
          return false;
        }
      }
    }
*/
    if (!validateField(firstname, "your first name.")) return false;
    if (!validateField(lastname, "your last name.")) return false;

    if (!validateField(address, "your mailing address.")) return false;
    if (!validateField(city, "your city.")) return false;
    if (!validateField(zipCode, "your zip code.")) return false;
    if (!validateField(phone1, "your primary phone number.")) return false;

    //if (!validateField(contact, "your emergency contact full name.")) return false;
    //if (!validateField(relation, "your relation with this person.")) return false;
    //if (!validateField(emergencyPhone, "your emergency contact phone number.")) return false;
  }

  return true;
}

function validateField(ele, message, length, parent) {
  if (!ele.onkeyup) ele.onkeyup = hideError;
  ele.value = ele.value.trim();

  if (!length) {
    if (ele.value) return true;
  } else {
    if (ele.value.length >= length) return true;
  }

  ele.select();
  if (parent) ele = parent;
  setError(ele, "Please enter "+ message);
  return false;
}

function validateEmail(ele) {
 if (!validateField(ele, 'your e-mail address.')) return false;

 var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
 if (filter.test(ele.value)) return true;

 ele.select();
 setError(ele, 'This is not a valid e-mail address.');
 return false;
}

function setError(parent, message) {
  var ele = document.getElementById("errorField");
  if (ele) ele.parentNode.removeChild(ele);

  if (parent) {
    ele = document.createElement("div");
    ele.setAttribute("id", "errorField");
    ele.innerHTML = "<span>"+ message +"</span>";
    parent.parentNode.insertBefore(ele, parent.nextSibling);
    parent.scrollIntoView();
  }
}

function hideError() {
  if (this.value.trim().length > 0) setError();
}

function setMask(event, filter) {
 if (filter == null)
  filter = /[.0-9]/;
 else if (filter == '#')
  filter = /[0-9]/;

 var code = (event.charCode) ? event.charCode : event.keyCode;
 if (code < 34 || code > 126) return;

 if (String.fromCharCode(code).search(filter))
  if (event.preventDefault) event.preventDefault();
   else event.keyCode = 0;
}

String.prototype.trim = function() { return this.replace(/^\s+/,"").replace(/\s+$/,"").replace(/  +/g,"") }