﻿addLoadListener(init);
addLoadListener(focusOnFirst);
addLoadListener(setScriptIndicator);


function focusOnFirst() {

	document.LCLOG.LCPolNo.focus();
}

function setScriptIndicator()
{
  var setJSIndicator;
  if (setJSIndicator = document.getElementById("ScriptActive")) {
    setJSIndicator.value = "yes";
  }
}

function init()
{
  if (document.forms.length > 0 ) {
    for (var i = 0;i < document.forms.length; i++) {
      document.forms[i].onsubmit = onSubmitFunctions;
    }
  }
}

function onSubmitFunctions() {
  var testvar1;
  var testvar2 = "true";
  var testvar3 = "true";
  var testvar4 = "true";
  var testvar5 = "true";
  testvar1 = validateFields(this);
  if (/(^| )progDefinedCalls1( |$)/.test(this.className))
  {
    try {
      testvar2 = progDefinedCalls1();
    }
    catch(error) {;}
  }
  if (/(^| )progDefinedCalls2( |$)/.test(this.className))
  {
    try {
      testvar3 = progDefinedCalls2();
    }
    catch(error) {;}
  }
  if (/(^| )progDefinedCalls3( |$)/.test(this.className))
  {
    try {
      testvar4 = progDefinedCalls3();
    }
    catch(error) {;}
  }
  if (/(^| )progDefinedCalls4( |$)/.test(this.className))
  {
    try {
      testvar5 = progDefinedCalls5();
    }
    catch(error) {;}
  }
  if ((testvar1) && (testvar2) && (testvar3) && (testvar4) && (testvar5))
  {
    var elements = this.elements;
    for (var i = 0; i < elements.length; i++) { // disable all buttons if all edits passed
      if (/(^| )Submit( |$)/.test(elements[i].className)){
           elements[i].disabled = true;
      }
    }
    return true;
  }
  else {
    return false;
  }
}

function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
     window.onload = fn;
    }
    else
    {
     window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}

function isFieldBlank(textField) {
  if (textField.value == "" || /^\s+$/.test(textField.value))
    { return true; }
  return false;
}
function isIntegerField(textField) {
  var textPattern = /^[0-9]+$/;
  if (isFieldBlank(textField) || textPattern.test(textField.value)) // if its blank don't edit
  {  return true; }
  return false;
}
function isAlphaField(textField) {
  var textPattern = /^[a-zA-Z]+$/;
  if (isFieldBlank(textField) || textPattern.test(textField.value)) // if its blank don't edit
  {  return true; }
  return false;
}
function isAlphaFieldB(textField) {
  var textPattern = /^[a-zA-Z\s]+$/;
  if (isFieldBlank(textField) || textPattern.test(textField.value)) // if its blank don't edit
  {  return true; }
  return false;
}
function isAlphaNumericField(textField) {
  var textPattern = /^[a-zA-Z0-9]+$/;
  if (isFieldBlank(textField) || textPattern.test(textField.value)) // if its blank don't edit
  {  return true; }
  return false;
}
function isAlphaNumericFieldB(textField) {
  var textPattern = /^[a-zA-Z0-9\s]+$/;
  if (isFieldBlank(textField) || textPattern.test(textField.value)) // if its blank don't edit
  {  return true; }
  return false;
}
function isANPlusField(textField) {
  var textPattern = /^[a-zA-Z0-9/#\,\.\-\s]+$/;
  if (isFieldBlank(textField) || textPattern.test(textField.value)) // if its blank don't edit
  {  return true; }
  return false;
}
function isFloatPointField(textField) {
  if (isFieldBlank(textField) || textField.value == parseFloat(textField.value,10)) // if field is blank its okay
    { return true; }
  return false;
}
function isMoneyFormat (textField) {
  var testPattern = /^\d+\.\d{2}$/;
  if (isFieldBlank(textField) || testPattern.test(textField.value)) { // if field is blank its okay
        return true;
   }
  return false;
}
function isValidDate18(dateField)
{
  if (isFieldBlank(dateField)) // if its blank its okay
  {
    return true;
  }
  var datePattern = /^\d{8}$/;
  if (!datePattern.test(dateField.value) )
  {
     return false;
  }
    var DateText = dateField.value;
    var Month = parseInt(DateText.substring(0,2),10);
    var Day = parseInt(DateText.substring(2,4),10);
    var Year = parseInt(DateText.substring(4,8),10);
    if (isNaN(Month) || isNaN(Day) || isNaN(Year)) {
       return false;
    }
    if (Month < 1 || Month > 12 || Day < 1 || Day > 31 ||
        Year < 1900 || Year > 2100)
    {
      return false;
    }
    if (Month == 2)
    {
       var leapyear = Year % 4 ;
       if (leapyear == 0)
       {
          if (Day > 29)
          {
             return false;
          }
       }
       else if (Day > 28)
            {
               return false;
            }
    }
    if (Month == 4 || Month == 6 || Month == 9 || Month == 11)
    {
       if (Day > 30)
       {
          return false;
       }
    }
    return true;
}
function isValidDate8(dateField)
{
  if (isFieldBlank(dateField)) // if its blank its okay
  {
    return true;
  }
  var datePattern = /^\d{6}$/;
  if (!datePattern.test(dateField.value) )
  {
     return false;
  }
    var DateText = dateField.value;
    var Month = parseInt(DateText.substring(0,2),10);
    var Day = parseInt(DateText.substring(2,4),10);
    var Year = parseInt(DateText.substring(4,6),10);
    if (Year > 50 ) {     // this will have to be changed in the future.
       var temp = "19" + DateText.substring(4,6);
    } else {
       var temp = "20" + DateText.substring(4,6);
    }
    Year = parseInt(temp);
    if (isNaN(Month) || isNaN(Day) || isNaN(Year)) {
       return false;
    }
    if (Month < 1 || Month > 12 || Day < 1 || Day > 31 ||
        Year < 1900 || Year > 2100)
    {
       return false;
    }
    if (Month == 2)
    {
       var leapyear = Year % 4 ;
       if (leapyear == 0)
       {
          if (Day > 29)
          {
              return false;
          }
       }
       else if (Day > 28)
            {
                return false;
            }
    }
    if (Month == 4 || Month == 6 || Month == 9 || Month == 11)
    {
       if (Day > 30)
       {
           return false;
       }
    }
    return true;
}
function isValidDate16(dateField)
{
  if (isFieldBlank(dateField)) // if its blank its okay
  {
    return true;
  }
  var datePattern = /^\d{2}\/\d{2}\/\d{4}$/;
  if (!datePattern.test(dateField.value) )
  {
     return false;
  }
    var DateText = dateField.value;
    var Month = parseInt(DateText.substring(0,2),10);
    var Day = parseInt(DateText.substring(3,5),10);
    var Year = parseInt(DateText.substring(6,10),10);
    if (isNaN(Month) || isNaN(Day) || isNaN(Year)) {
       return false;
    }
    if (Month < 1 || Month > 12 || Day < 1 || Day > 31 ||
        Year < 1900 || Year > 2100)
    {
       return false;
    }
    if (Month == 2)
    {
       var leapyear = Year % 4 ;
       if (leapyear == 0)
       {
          if (Day > 29)
          {
              return false;
          }
       }
       else if (Day > 28)
            {
                return false;
            }
    }
    if (Month == 4 || Month == 6 || Month == 9 || Month == 11)
    {
       if (Day > 30)
       {
           return false;
       }
    }
    return true;
}

function isValidZip5 (zipField) {
  var zipPattern = /^\d{5}$/;
  if (isFieldBlank(zipField) || zipPattern.test(zipField.value) )
  {
     return true;
  }
  return false;
}
function isValidZip9 (zipField) {
  var zipPattern = /^\d{9}$/;
  if (isFieldBlank(zipField) || zipPattern.test(zipField.value) )
  {
     return true;
  }
  return false;
}
function isValidCanadaZip (zipField) {
  var fieldValue = zipField.value;
  zipField.value = fieldValue.toUpperCase();
  var zipPattern = /[ABCEGHJKLMNPRSTVXY]\d[A-Z]\s\d[A-Z]\d/;
  if (isFieldBlank(zipField) || zipPattern.test(zipField.value) )
  {
     return true;
  }
  return false;
}

function validateFields(oForm)
{
//  var elements = document.forms[0].elements;
  var elements = oForm.elements;
  var invalidEdits = "NO";
  var invalidReqFields = "NO";
  var cursorset = "NO";
  var errormarker;

  for (var i = 0; i < elements.length; i++)
  {
   errormarker = false;
    if (/(^| )RequiredField( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (isFieldBlank(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#87CEFA";
        invalidReqFields = "Yes";
        if (cursorset == "NO") {
          elements[i].focus();
          if (!((elements[i].type == "select-one") || (elements[i].type == "select-multiple"))) {
            elements[i].select();
          }
          cursorset = "Yes";
        }
      }
    }
    if (/(^| )Alphabetic( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isAlphaField(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "This is an alphabetic (a-z,A-Z) field only.");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )AlphabeticB( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isAlphaFieldB(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "This is an alphabetic (a-z,A-Z plus blanks) field only.");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )AlphaNumeric( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isAlphaNumericField(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "This is an alphanumeric (a-z,A-Z,0-9) field only.");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )AlphaNumericB( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isAlphaNumericFieldB(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "This is an alphanumeric (a-z,A-Z,0-9 plus blanks) field only.");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )ANPlus( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isANPlusField(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "Only the following characters are allowed: \n a-z, A-Z, 0-9, comma, period, dash, pound, space, and \"/\"");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Integer( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isIntegerField(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "This is a numeric (0-9) field only.");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )FloatingPoint( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isFloatPointField(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "The field requires a floating point number.");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Money( |$)/.test(elements[i].className))
    {
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isMoneyFormat(elements[i])){
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \n" + "The field requires data to be entered as Money without a dollar sign.\n example: 10.27");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Date18( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
     if (!isValidDate18(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is an invalid date format. \n" + "Required format = MMDDYYYY");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Date8( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (!isValidDate8(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is an invalid date format. \n" + "Required format = MMDDYY");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Date16( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (!isValidDate16(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is an invalid date format. \n" + "Required format = MM/DD/YYYY");
        if (cursorset == "NO") {
          elements[i].focus();
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Zip5( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (!isValidZip5(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \nThe ZIP code must be 5 numeric characters.");
        if (cursorset == "NO") {
          elements[i].focus();0
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Zip9( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (!isValidZip9(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \nThe ZIP code must be 9 numeric characters.");
        if (cursorset == "NO") {
          elements[i].focus();0
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )Zip5or9( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (!isValidZip9(elements[i]) && !isValidZip5(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \nThe ZIP code must be 5 or 9 numeric characters.");
        if (cursorset == "NO") {
          elements[i].focus();0
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
    if (/(^| )ZipCanada( |$)/.test(elements[i].className)){
      if (!errormarker) {
        elements[i].style.backgroundColor = "#FFFFFF";
      }
      if (!isValidCanadaZip(elements[i])) {
        errormarker = true;
        elements[i].style.backgroundColor = "#FA8072";
        invalidEdits = "Yes";
        var idName = elements[i].getAttribute("title");
        alert(idName + " is invalid. \nThe ZIP code must be in the format X9X 9X9.");
        if (cursorset == "NO") {
          elements[i].focus();0
          elements[i].select();
          cursorset = "Yes";
        }
      }
      continue;
    }
  }   // end of for loop for the edits
  if (invalidReqFields == "Yes") {
    alert('Any field highlighted in blue is required.\n\n');
    return false;
  }
  if (invalidEdits == "Yes") {
    return false;
  }
  try {
    if (exampledemo == "YES") { // this code for edits examples page
    return false;
    }
  }
  catch(error) {;}
  return true;
}

