
function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function allValidExtChars(ext) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz";
  for (var i=0; i < ext.length; i++) {
    var letter = ext.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

function checkContactForm() {
    // Initialize 'stop' variable
    var stop = 0;
    // Check form entries
    var obtn1a = document.getElementById("name");
    var obtn1b = document.getElementById("name_reminder");
    if (obtn1a.value == "") {
        obtn1b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn1b.style.visibility = "hidden";
    }
    
    var obtn2a = document.getElementById("organisation");
    var obtn2b = document.getElementById("organisation_reminder");
    if (obtn2a.value == "") {
        obtn2b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn2b.style.visibility = "hidden";
    }
    
    var obtn3a = document.getElementById("address");
    var obtn3b = document.getElementById("address_reminder");
    if (obtn3a.value == "") {
        obtn3b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn3b.style.visibility = "hidden";
    }

    var obtn4a = document.getElementById("zipcode");
    var obtn4b = document.getElementById("zipcode_reminder");
    if (obtn4a.value == "") {
        obtn4b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn4b.style.visibility = "hidden";
    }
    
    var obtn5a = document.getElementById("city");
    var obtn5b = document.getElementById("city_reminder");
    if (obtn5a.value == "") {
        obtn5b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn5b.style.visibility = "hidden";
    }

    var obtn6a = document.getElementById("phone");
    var obtn6b = document.getElementById("phone_reminder");
    if (obtn6a.value == "") {
        obtn6b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn6b.style.visibility = "hidden";
    }

    var obtn7a = document.getElementById("email");
    var obtn7b = document.getElementById("email_reminder");
    if (!isValidEmail(obtn7a.value)) {
        obtn7b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn7b.style.visibility = "hidden";
    }
    
    return stop;
}

function checkTellAFriendForm() {
    // Initialize 'stop' variable
    var stop = 0;
    // Check form entries
    var obtn1a = document.getElementById("name");
    var obtn1b = document.getElementById("name_reminder");
    if (obtn1a.value == "") {
        obtn1b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn1b.style.visibility = "hidden";
    }

    var obtn2a = document.getElementById("email");
    var obtn2b = document.getElementById("email_reminder");
    if (!isValidEmail(obtn2a.value)) {
        obtn2b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn2b.style.visibility = "hidden";
    }
    
    var obtn3a = document.getElementById("receivername");
    var obtn3b = document.getElementById("receivername_reminder");
    if (obtn3a.value == "") {
        obtn3b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn3b.style.visibility = "hidden";
    }

    var obtn4a = document.getElementById("receiveremail");
    var obtn4b = document.getElementById("receiveremail_reminder");
    if (!isValidEmail(obtn4a.value)) {
        obtn4b.style.visibility = "visible";
        stop = 1;
    }
    else {
        obtn4b.style.visibility = "hidden";
    }

    return stop;
}

function goToClientUrl (client) {
    // Create new window for Client website
    var attr = "height=" + parseInt(screen.availHeight-110) + ",width=" + parseInt(screen.availWidth-10) + ",top=0,left=0,menubar,toolbar,status,location,resizable,scrollbars"
    var clientWindow = window.open(client,"client",attr)
}

function isValidEmail(email, required) {
    if (required==undefined) {
        // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (!allValidChars(email)) {
        // check to make sure all characters are valid
        return false;
    }
    if (email.indexOf("@") < 1) {
        //  must contain @, and it must not be the first character
        return false;
    } 
    else if (email.lastIndexOf(".") <= email.indexOf("@")) {
        // last dot must be after the @
        return false;
    }
    else if (email.indexOf("@") == email.length) {
        // @ must not be the last character
        return false;
    }
    else if (email.indexOf("..") >= 0) {
        // two periods in a row is not valid
	    return false;
    }
    else if (email.length == email.indexOf(".") + 1) {
        // . must not be the last character
	    return false;
    }
    if (!allValidExtChars(email.substr(email.lastIndexOf(".") + 1))) {
        // check to make sure all extension characters are valid
        return false;
    }
    else if ((email.substr(email.lastIndexOf(".") + 1)).length < 2 || (email.substr(email.lastIndexOf(".") + 1)).length > 4) {
        // extension length must be between 2 and 4 characters
	    return false;
    }
    return true;
}

function menDisplay( btn, display, vis) {
    // Change mousepointer status
    if (display == '') {
        document.body.style.cursor='auto';
    }
    else {
        document.body.style.cursor='pointer';
    }
    // Set button image
    var obtn1 = document.getElementById(btn);
    obtn1.src = "tpl/img/" + btn + display + ".gif";
    // Set pulldown menu visibility
    var obtn2 = document.getElementById("pd" + btn);
    obtn2.style.visibility = vis;
}

function mousepointerDisplay( status) {
    // Change mousepointer status
    document.body.style.cursor = status;
}

function submitForm( frm) {
    // Check form
    if (frm == 'westerveldadvies_contactform') {
        var stop = checkContactForm();
    }
    else if (frm == 'westerveldadvies_tellafriendform') {
        var stop = checkTellAFriendForm();
    }
    else {
        var stop = 0;
    }
    // Submit form
    if (stop == 0) {
        var obtnfrm = document.getElementById(frm);
        obtnfrm.submit();
    }
}

