/**
 * JavaScripts for torvundinspections.com 
 * Sorted by where the script is first seen
 */

/* ---------------------- ---------------------- ---------------------- @/
                                 index.php
/@ ---------------------- ---------------------- ---------------------- */
function faq()
{
  // open faq

window.open("/FAQ.pdf","_blank");

  return false;
}

function checklist()
{
  // open checklist
window.open("http://www.electricity.state.mn.us/Ele_insp/Insp_bul/H_owner/rei_inspection_checklist.pdf","_blank");

  return false;
}

function request()
{
  // show form
  document.getElementById("edit").style.display = "none";
  document.getElementById("login").style.display = "none";
  document.getElementById("new").style.display = "inline";

  // enable submit
  document.getElementById("editSubmit").disabled = true;
  document.getElementById("loginSubmit").disabled = true;
  document.getElementById("newSubmit").disabled = false;
}

function editOrCancel()
{
  // show form
  document.getElementById("new").style.display = "none";
  document.getElementById("login").style.display = "none";
  document.getElementById("edit").style.display = "inline";

  // enable submit
  document.getElementById("newSubmit").disabled = true;
  document.getElementById("loginSubmit").disabled = true;
  document.getElementById("editSubmit").disabled = false;
}

function login()
{
  // show form
  document.getElementById("new").style.display = "none";
  document.getElementById("edit").style.display = "none";
  document.getElementById("login").style.display = "inline";

  // enable submit
  document.getElementById("newSubmit").disabled = true;
  document.getElementById("editSubmit").disabled = true;
  document.getElementById("loginSubmit").disabled = false;
}

function reiCheck(field)
{
  // remove every character that is not a number
  var reiValue = "";
  var arr = field.value.split("");
  var i = 0;
  while(i < arr.length) {
    if((isNaN(arr[i]) == false) && (arr[i] != " ")) {
      reiValue += arr[i].toString();
    }
    i++;
  }
  return true;
/*
  // only accept if the length is between 6 and 7 inclusive
  if(reiValue.length < 6 || reiValue.length > 7) {
    alert("Your REI should contain 6 or 7 digits.");
    field.focus();
    return false;
  }
  else {
    if(reiValue.length == 6) {
      reiValue = "0" + reiValue;
    }
    field.value = reiValue;
    return true;
  }
  */
}

function reiCheck2(field)
{
  // remove every character that is not a number
  var reiValue = "";
  var arr = field.value.split("");
  var i = 0;
  while(i < arr.length) {
    if((isNaN(arr[i]) == false) && (arr[i] != " ")) {
      reiValue += arr[i].toString();
    }
    i++;
  }
  return true;
/*
  // only accept if the length is between 6 and 7 inclusive
  if(reiValue.length != 6 && reiValue.length != 7 && reiValue.length != 0) {
    alert("Your REI should contain 6 or 7 digits.");
    field.focus();
    return false;
  }
  else {
    if(reiValue.length == 6) {
      reiValue = "0" + reiValue;
    }
    field.value = reiValue;
    return true;
  }
  */
}


function reiCheck3(form)
{
  // remove every character that is not a number
  var reiValue = "";
  var arr = form.rei.value.split("");
  var i = 0;
  while(i < arr.length) {
    if((isNaN(arr[i]) == false) && (arr[i] != " ")) {
      reiValue += arr[i].toString();
    }
    i++;
  }
  return true;
/*
  // only accept if the length is between 6 and 7 inclusive
  if(reiValue.length != 6 && reiValue.length != 7 && reiValue.length != 0) {
    alert("If you choose to enter a REI number, it must be 6 or 7 digits.");
    form.rei.focus();
    return false;
  }
  else {
    if(reiValue.length == 6) {
      reiValue = "0" + reiValue;
      form.rei.value = reiValue;
      return true;
    }
    else if(reiValue.length == 7) {
      return true;
    }
    else {
      if(form.rei2.value != "") {
        return true;
      }
      else {
        if(form.email.value == "" || form.addr.value == "") {
          alert("You have not provided enough information to continue.");
          return false;
         }
         else {
           return true;
         }
      }
    }
  }
  */
}


function verifyEmail()
{
  var test1 = document.getElementById("email").value;
  var test2 = document.getElementById("email2").value;
  if(test1.toLowerCase() == test2.toLowerCase()) {
    // show form
    document.getElementById("found").style.display = "none";
    document.getElementById("verified").style.display = "inline";

    // enable submit
    document.getElementById("emailSubmit").disabled = true;
    var x = document.getElementById("newAppt");
    if(x) {
      x.disabled = false;
    }
    else {
      document.getElementById("editAppt").disabled = false;
      document.getElementById("cancelAppt").disabled = false;
    }
  }
  else {
    var result = confirm("I could not confirm your identity!\n" +
                         "To send an email to the correct address, click OK");
    if(result == true) {
      // forward to a page that sends email to $_POST["email"]
      var x = document.getElementById("form1");
      x.action = "sendmail.php";
      x.method = "post";
      x.submit();
    }
  }
}

/* ---------------------- ---------------------- ---------------------- @/
                                request.php
/@ ---------------------- ---------------------- ---------------------- */
function newAppt()
{
  document.getElementById("past").style.display = "inline";
  document.getElementById("info").style.display = "inline";
  document.getElementById("newAppt").disabled = true;
  document.getElementById("formSubmit").disabled = false;
}

function editAppt()
{
  document.getElementById("current").style.display = "inline";
  document.getElementById("info").style.display = "inline";
  document.getElementById("editAppt").disabled = true;
  document.getElementById("formSubmit").disabled = false;
}

function cancelAppt()
{
  var result = confirm("Click OK to cancel your appointment.");
  if(result == true) {
    var x = "cancel.php?rei=" + document.getElementById("rei").value;
    window.location = x;
  }
}

var toBeHidden = "all";
function blinds(toShow)
{
  switch(toBeHidden) {

    case "lockbox":
      document.getElementById("code").style.display = "none";
      document.getElementById("location").style.display = "none";
      document.getElementById("door").style.display = "none";
      break;

    case "garage":
      document.getElementById("code").style.display = "none";
      break;

    case "hiddenkey":
      document.getElementById("location").style.display = "none";
      document.getElementById("door").style.display = "none";
      break;

    case "opendoor":
      document.getElementById("door").style.display = "none";
      break;

    case "home":
      document.getElementById("home").style.display = "none";
      break;

    case "call":
      document.getElementById("call").style.display = "none";
      break;

    default:
      document.getElementById("code").style.display = "none";
      document.getElementById("location").style.display = "none";
      document.getElementById("door").style.display = "none";
      document.getElementById("call").style.display = "none";
      document.getElementById("home").style.display = "none";
  }

  switch(toShow) {

    case "lockbox":
      document.getElementById("code").style.display = "inline";
      document.getElementById("location").style.display = "inline";
      document.getElementById("door").style.display = "inline";
      break;

    case "garage":
      document.getElementById("code").style.display = "inline";
      break;

    case "hiddenkey":
      document.getElementById("location").style.display = "inline";
      document.getElementById("door").style.display = "inline";
      break;

    case "opendoor":
      document.getElementById("door").style.display = "inline";
      break;

    case "home":
      document.getElementById("home").style.display = "inline";
      break;

    case "call":
      document.getElementById("call").style.display = "inline";
      break;

    default:
  }

  toBeHidden = toShow;
}

function formCheck(form)
{
  /* these are the required fields:
        (date, type, description, name, email, address, city)
        (homeNum || officeNum || cellNum)
        (code, location, door, call, home) */

  for(var l = 0; l < form.length; l++) {
    if(form.elements[l].type != "submit" && form.elements[l].type != "button") {
      form.elements[l].style.background = "white";
    }
  }

  var j = 0;
  var missing = new Array();

  var x = 0;
  var reqd = new Array("date", "description", "name", "email", "address");

  for(var i = 0; i < form.length; i++) {
    if(form.elements[i].name == reqd[x]) {
      if(exists(form.elements[i]) == false) {
        missing[j++] = form.elements[i];
      }
      x++;
      if(x == reqd.length) {
        break;
      }
    }
  }

  x = 0;
  while(form.elements[x].name != "type") {
    x++;
  }
  while(form.elements[x].name == "type") {
    if(form.elements[x].checked) {
      break;
    }
    else {
      x++;
    }
  }
  if(form.elements[x].name != "type") {
    missing[j++] = form.elements[x - 3];
    missing[j++] = form.elements[x - 2];
    missing[j++] = form.elements[x - 1];
  }

  var phone = new Array("homeNum", "officeNum", "cellNum");
  while(form.elements[x].name != phone[0]) {
    x++;
  }
  if(exists(form.elements[x + 0]) ||
     exists(form.elements[x + 1]) ||
     exists(form.elements[x + 2])) {
    if(exists(form.elements[x])) {
      if(numCheck(form.elements[x]) == false) {
        alert("Your phone number should have 10 digits.");
        form.elements[x].select();
        return false;
      }
    }
    if(exists(form.elements[x + 1])) {
      if(numCheck(form.elements[x + 1]) == false) {
        alert("Your phone number should have 10 digits.");
        form.elements[x + 1].select();
        return false;
      }
    }
    if(exists(form.elements[x + 2])) {
      if(numCheck(form.elements[x + 2]) == false) {
        alert("Your phone number should have 10 digits.");
        form.elements[x + 2].select();
        return false;
      }
    }
  }
  else {
    missing[j++] = form.elements[x];
    missing[j++] = form.elements[x + 1];
    missing[j++] = form.elements[x + 2];
  }

  while(form.elements[x].name != "email") {
    x++;
  }
  if(exists(form.elements[x]) == true) {
    if(emailCheck(form.elements[x]) == false) {
      alert("The email address you entered is invalid.");
      form.elements[x].select();
      return false;
    }
  }

  while(form.elements[x].name != "city") {
    x++;
  }
  while(form.elements[x].name == "city") {
    if(form.elements[x].checked) {
      break;
    }
    else {
      x++;
    }
  }
  if(form.elements[x].name != "city") {
    missing[j++] = form.elements[x - 3];
    missing[j++] = form.elements[x - 2];
    missing[j++] = form.elements[x - 1];
  }

  var access = new Array("lockbox", "garage", "hiddenkey", "opendoor", "home",
                         "call");
  while(form.elements[x].name != "access") {
    x++;
  }
  while(form.elements[x].name == "access") {
    if(form.elements[x].checked) {
      break;
    }
    else {
      x++;
    }
  }
  if(form.elements[x].name != "access") {
    missing[j++] = form.elements[x - 6];
    missing[j++] = form.elements[x - 5];
    missing[j++] = form.elements[x - 4];
    missing[j++] = form.elements[x - 3];
    missing[j++] = form.elements[x - 2];
    missing[j++] = form.elements[x - 1];
  }
  else {
    switch(form.elements[x].value) {

      case access[0]:
        var y = 0;
        var need = new Array("code", "location", "door");
        for(var k = x; k < form.length; k++) {
          if(form.elements[k].name == need[y]) {
            if(exists(form.elements[k]) == false) {
              missing[j++] = form.elements[k];
            }
            y++;
            if(y == need.length) {
              break;
            }
          }
        }
        break;

      case access[1]:
        var y = 0;
        var need = new Array("code");
        for(var k = x; k < form.length; k++) {
          if(form.elements[k].name == need[y]) {
            if(exists(form.elements[k]) == false) {
              missing[j++] = form.elements[k];
            }
            y++;
            if(y == need.length) {
              break;
            }
          }
        }
        break;

      case access[2]:
        var y = 0;
        var need = new Array("location", "door");
        for(var k = x; k < form.length; k++) {
          if(form.elements[k].name == need[y]) {
            if(exists(form.elements[k]) == false) {
              missing[j++] = form.elements[k];
            }
            y++;
            if(y == need.length) {
              break;
            }
          }
        }
        break;

      case access[3]:
        var y = 0;
        var need = new Array("door");
        for(var k = x; k < form.length; k++) {
          if(form.elements[k].name == need[y]) {
            if(exists(form.elements[k]) == false) {
              missing[j++] = form.elements[k];
            }
            y++;
            if(y == need.length) {
              break;
            }
          }
        }
        break;

      case access[4]:
        break;

      case access[5]:
        var y = 0;
        var need = new Array("call");
        for(var k = x; k < form.length; k++) {
          if(form.elements[k].name == need[y]) {
            if(exists(form.elements[k]) == false) {
              missing[j++] = form.elements[k];
            }
            y++;
            if(y == need.length) {
              break;
            }
          }
        }
        break;
    }
  }

  if(j != 0) {
    var errorString = "You are missing the following information:";
    var last = "";
    for(var z = 0; z < j; z++) {
      if(missing[z].name != last) {
        errorString += "\n  " + missing[z].name.toUpperCase();
      }
      last = missing[z].name;
      missing[z].style.background = "#ffcdcd";
    }
    alert(errorString);
    return false;
  }
}

function exists(field)
{
  if((field.value != null) && (field.value != "")) {
    return true;
  }
  else {
    return false;
  }
}

function numCheck(field)
{
  // remove every character that is not a number
  var numValue = "";
  var arr = field.value.split("");
  var i = 0;
  while(i < arr.length) {
    if((isNaN(arr[i]) == false) && (arr[i] != " ")) {
      numValue += arr[i].toString();
    }
    i++;
  }

  // only accept if the length is 10
  if(numValue.length != 10) {
    return false;
  }
  else {
    numValue = numValue.split("");
    field.value = "(" + numValue[0].toString() +
                        numValue[1].toString() +
                        numValue[2].toString() + ")" +
                        numValue[3].toString() +
                        numValue[4].toString() +
                        numValue[5].toString() + "-" +
                        numValue[6].toString() +
                        numValue[7].toString() +
                        numValue[8].toString() +
                        numValue[9].toString();
    return true;
  }
}

function emailCheck(field)
{
  var atPosition = field.value.indexOf("@");
  var dotPosition = field.value.lastIndexOf(".");
  if(atPosition < 1 || dotPosition - atPosition < 2) {
    return false;
  }
  else {
    return true;
  }
}

/* ---------------------- ---------------------- ---------------------- @/
                                confirm.php
/@ ---------------------- ---------------------- ---------------------- */
function edit()
{
  var x = document.getElementById("form");
  x.action = "request.php?edit=3";
  x.submit();
}

/* ---------------------- ---------------------- ---------------------- @/
                                profile.php
/@ ---------------------- ---------------------- ---------------------- */
function profileCheck(form)
{
  if(exists(form.email)) {
    if(emailCheck(form.email) == false) {
      alert("The email address you entered is invalid.");
      form.email.select();
      return false;
    }
  }
  else {
    alert("You must provide an e-mail address.");
    form.email.focus();
    return false;
  }

  if(exists(form.officeNum)) {
    if(numCheck(form.officeNum) == false) {
      alert("Your phone number should have 10 digits.");
      form.officeNum.select();
      return false;
    }
  }

  if(exists(form.faxNum)) {
    if(numCheck(form.faxNum) == false) {
      alert("Your fax number should have 10 digits.");
      form.faxNum.select();
      return false
    }
  }

  if(exists(form.address)) {
    if(exists(form.city) ==  false) {
      alert("You must provide a city.");
      form.city.select();
      return false
    }
    if(exists(form.state) ==  false) {
      alert("You must provide a state.");
      form.state.select();
      return false
    }
    if(exists(form.zip) ==  false) {
      alert("You must provide a ZIP.");
      form.zip.select();
      return false
    }
  }

  form.email.value = form.email.value.toLowerCase();
  form.email.style.background = "#ffcdcd";
  return true;
}

/* ---------------------- ---------------------- ---------------------- @/
                             profilecommit.php
/@ ---------------------- ---------------------- ---------------------- */
function goBack()
{
  window.history.back();
}

