var noPopup=false;
var exitPopupWindow = '';
var formSubmitted=false;

var ns4;
var dom;
if (navigator.appName=="Netscape") {
    ns4 = parseInt(navigator.appVersion)<5;
}
dom=!ns4;

function AjaxHelper() {}

AjaxHelper.prototype.getReq = function() {
    if (!this.reqObj || this.reqObj === null) {
        this.reqObj = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    return this.reqObj;
};

AjaxHelper.prototype.replaceAllInText = function(strText, strTarget, replacement) {
    var intIndexOfMatch = strText.indexOf(strTarget);
    while (intIndexOfMatch >= 0) {
        strText = strText.replace(strTarget, replacement);
        intIndexOfMatch = strText.indexOf(strTarget);
    }
    return strText;
};

AjaxHelper.prototype.getParams = function(formObj) {
    var s = new Array();

    var formElements = formObj.elements;
    for (var j=0;j<formElements.length;++j) {
        var el = formElements[j];
        // If the value is an array then the key names need to be repeated
        if ( el.constructor == Array ) {
            for (var i=0;i<el.length;++i) {
                if (el.name) {
                    s[s.length] = el[i].name + "=" + encodeURIComponent(el[i].value);
                }
            }
        }
        else if (el.name) {
            s[s.length] = el.name + "=" + encodeURIComponent(el.value);
        }
    }
    // Return the resulting serialization
    return s.join("&").replace(/%20/g, "+");
};

var AjaxObject = new AjaxHelper();


var ValidationTracker = {
  reportedUrl: '/forms/validationtracking',
  
  trackAlert: function(fieldName, reason) {
    var imprP = null;
    var fieldValue = "UNKNOWN";
    try {    
      try {
       fieldValue = window.document.form1[fieldName].value;
      } catch(e) {}
      reason = "field value: " + fieldValue + ", " + reason;
    
      var params = "type=jsAlert&field=" + encodeURIComponent(fieldName) + "&reason=" + encodeURIComponent(reason);;
    
      if (window.document.form1 && window.document.form1.H) {
        var hiddenValue = encodeURIComponent(window.document.form1.H.value);
        imprP = 'H=' + hiddenValue;
        params +='&' + imprP;
      }

      AjaxObject.getReq().open("POST", this.reportedUrl, false); 
      AjaxObject.getReq().setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
      AjaxObject.getReq().setRequestHeader("Cache-Control", "no-cache"); 
    
      AjaxObject.getReq().send(params);
    } catch(e) {
       try {
         var reasonMes = "reason: " + reason + "problem: " + e.name + ": ";
         if (e.stack) {
           //reasonMes += " stack: " + e.stack;
         }
         if (e.message) {
           reasonMes += " message: " + e.message;
         }
         if (e.description) {
           reasonMes += " desc: " + e.description;
         }
         if (e.lineNumber) {
           reasonMes += " line number: " + e.lineNumber;
         }

         reasonMes = "field value: " + fieldValue + ", " + reasonMes;
         
         params = "type=jsProblem&field=" + encodeURIComponent(fieldName) + "&reason=" + encodeURIComponent(reasonMes);
         if (imprP) {
           params +="&" + imprP;
         }
         
         AjaxObject.getReq().open("POST", this.reportedUrl, false); 
         AjaxObject.getReq().setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
         AjaxObject.getReq().setRequestHeader("Cache-Control", "no-cache"); 
    
         AjaxObject.getReq().send(params);
         
       } catch(e) {}
    }
  }
};


function changeSoftenField(fieldName, fieldValue) {
  window.document.form1.SOFTENNAME.value=fieldName;
  window.document.form1.SOFTENVALUE.value=fieldValue;
  submitForm();
}

function submitForm() {
  noPopup=true;
  formSubmitted = true;
  window.document.form1.submit();
}

function exitF() {
  if(noPopup==false && window.document.form1 && window.document.form1.exPop && window.document.form1.exPop.value=='true') {
    if (exitPopupWindow && !exitPopupWindow.closed && exitPopupWindow.location) {
    } else {
        var popHeight = window.screen.availHeight - 100;
        exitPopupWindow=window.open("/forms/goodbye.jsp","popup","menubar=0,resizable=1,scrollbars=1,top=50,left=50,width=850,height=" + popHeight);
        if(exitPopupWindow != null) {
            exitPopupWindow.blur();
        }
        if (self.focus) self.focus();
    }
  }
}
function initF() {
}

function popUp(url,title) {
    dwindow=window.open(url,"window","width=600,height=480,scrollbars=yes,resizable=yes");
    if(dwindow.focus) dwindow.focus();
}


function createOptGroup(label) {
    var optGroup = document.createElement("optgroup")
    optGroup.label = label;
    return optGroup;
}

function createAndAddOptionToOptGroup(optGroup, optionLabel, optionValue) {
    var option = document.createElement("option");
    option.innerHTML = optionLabel;
    option.value = optionValue;
    optGroup.appendChild(option);
}

function addOptionToOptGroup(optGroup, optionValue, optionLabel) {
    var option = document.createElement("option");
    option.innerHTML = optionLabel;
    option.value = optionValue;
    optGroup.appendChild(option);
}

function alertError(field, message) {
  alert(message);
  if (field) {
	if (field.focus) {
      field.focus();
    }
	else if (field.length && field.length >0 && field[0].focus) {
		field[0].focus();
	}
  }
  if (window.formFamily && window.formFamily == "DegreesInfo") {
    var fieldName = "UNKNOWN";
    
    if (field) {
        if (field.length && field.length >0 && field[0].name && field[0].name!=null) {
          fieldName = field[0].name;
        }
        else if (field.name && field.name!=null){
          fieldName = field.name;
        }
    }
    
    ValidationTracker.trackAlert(fieldName, message);
  }
  
  return false;
}
function validate_COUNTRY_01(form) {
    value = getFieldValueTF(form.COUNTRY_01)
    if(!validateIsRequired(value)) {
        return alertError(form.COUNTRY_01, "Please select a country." );
    }
    return true;
}
function validate_FIRSTNAME_01_optional(form, message1, message2) {
    value = getFieldValueTF(form.FIRSTNAME_01)
    if (validateIsRequired(value)) {
      if(!validateMinLength(value,2)) {
        return alertError(form.FIRSTNAME_01, message1);
      } else if(!validateAlphaChar(value)) {
        return alertError(form.FIRSTNAME_01, message2);
      }
    }
    return true;
}

function validate_FIRSTNAME_01_with_messages(form, message1, message2) {
    value = getFieldValueTF(form.FIRSTNAME_01)
    if(!validateIsRequired(value) || !validateMinLength(value,2)) {
        return alertError(form.FIRSTNAME_01, message1);
    } else if(!validateAlphaChar(value)) {
        return alertError(form.FIRSTNAME_01, message2);
    }
    return true;
}
function validate_FIRSTNAME_01(form) {
    return validate_FIRSTNAME_01_with_messages(form, "Please enter your First Name.", "Please enter a valid First Name. Be sure to only use alphabetic characters."); 
}

function validate_LASTNAME_01(form) {
    value = getFieldValueTF(form.LASTNAME_01)
    if(!validateIsRequired(value) || !validateMinLength(value,2)) {
        return alertError(form.LASTNAME_01, "Please enter your Last Name." );
    } else if(!validateAlphaChar(value)) {
        return alertError(form.LASTNAME_01, "Please enter a valid Last Name. Be sure to only use alphabetic characters." );
    }
    return true;
}

function validate_EMAIL_01(form) {
    var returnValue = true;
    if (form.EMAIL_01) {
      email = getFieldValueTF(form.EMAIL_01);
      var validEmail = validateEmailAddress(email);
      if(validEmail == false) {
        return alertError(form.EMAIL_01, "Please enter a valid Email Address." );
      }
      else {
        if (form.EMAIL_CONFIRM_01) {//check if it is in the form
          var email2 = getFieldValueTF(form.EMAIL_CONFIRM_01);
          if (!validateIsRequired(email2)) {
    	    return alertError(form.EMAIL_CONFIRM_01, "Please confirm your email address.");
          }
          else if(email != email2) {
            return alertError(form.EMAIL_CONFIRM_01, "Please check that the email you entered matches the confirmation field.");
          }
        }
      }
    }
    
    return returnValue;
}

function validate_EMAIL_CONFIRM_01() {
    var field = window.document.form1.EMAIL_CONFIRM_01;
    var field2 = window.document.form1.EMAIL_01;
    var value = getFieldValueTF(field);
    if (!validateIsRequired(value)) {
    	return alertError(field, "Please confirm your email address.");
    }
    else if(value != getFieldValueTF(field2)) {
       return alertError(field, "Please check that the email you entered matches the confirmation field.");
    }
    return true;
}


function validateEmailAddress(email) {
    var validEmail = true;

    if(!validateIsRequired(email)) {
        validEmail=false;
    } else if (email == "") {
        validEmail=false;
    } else if(email.indexOf('@') == -1) {
        validEmail=false;
    } else if(email.indexOf('@') != email.lastIndexOf('@')) {
        validEmail=false;
    } else if(email.indexOf('.') == -1) {
        validEmail=false;
    } else if(email.lastIndexOf('.') < email.indexOf('@')+3) {
        validEmail=false;
    } else if(email.indexOf('@') == 0) {
        validEmail=false;
    } else if(email.indexOf('@') == email.length - 1) {
        validEmail=false;
    } else if(email.indexOf('@.') != -1 || email.indexOf('.@') != -1) {
        validEmail=false;
    } else if(email.lastIndexOf('.') == email.length - 1) {
        validEmail=false;
    } else if(email.indexOf('..') != -1) {
        validEmail=false;
    } else if(email.lastIndexOf('.') != email.length - 3 && email.lastIndexOf('.') != email.length - 4 && email.lastIndexOf('.') != email.length - 5) {
        validEmail=false;
    } else {
        var username = email.substring(0, email.indexOf('@'));
        var domain = email.substring(email.indexOf('@') + 1, email.length);

        //check username for bad characters
        for (var i = 0; i < username.length; i++) {
            var current = username.charAt(i);
            var acceptableChars = '!"#$%&\'()*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
            if (acceptableChars.indexOf(current) == -1) {
                validEmail=false;
            }
        }
        if(validEmail != false) {
            //check domain for bad characters
            for (var j = 0; j < domain.length; j++) {
                var current = domain.charAt(j);
                var acceptableChars = '.-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
                if (acceptableChars.indexOf(current) == -1) {
                    validEmail=false;
                }
            }
        }
    }

    if(validEmail == false) {
        return false;
    }
    return true;
}


function validate_ADDRESS1_01(form) {
    value = getFieldValueTF(form.ADDRESS1_01);
    if(!validateIsRequired(value) || !validateMinLength(value,6)) {
        return alertError(form.ADDRESS1_01, "Please enter your Address." );
    }
    return true;
}

function validate_CITY_01(form) {
    value = getFieldValueTF(form.CITY_01)
    if(!validateIsRequired(value)) {
        return alertError(form.CITY_01, "Please enter your City." );
    }
    return true;
}

function validate_BESTTIME_01(form) {
    value = getFieldValueTF(form.BESTTIME_01)
    if(!validateIsRequired(value)) {
        return alertError(form.BESTTIME_01, "Please select the best time to call." );
    }
    return true;
}


function validate_STATE_01(form) {
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA" || countryValue == "CAN") {
       value = getFieldValueTF(form.STATE_01)
       if(!validateIsRequired(value)) {
          return alertError(form.STATE_01, "Please select your State." );
       }
    }
    return true;
}

function isUSZip(value) {
    if(validateMinLength(value,5) && validateMaxLength(value,5) && allDigits(value)) {
        return true;
    } else {
        return false;
    }
}

function isCANZip(value) {
    value=stripAwayHyphAndSpaces(value);
    if(validateMinLength(value,6) && validateMaxLength(value,6)) {
       entry=value.toUpperCase();
       if ('ABCEGHJKLMNPRSTVXY'.indexOf(entry.charAt(0))<0 || '0123456789'.indexOf(entry.charAt(1))<0 || 'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2))<0 || '0123456789'.indexOf(entry.charAt(3))<0 || 'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4))<0 || '0123456789'.indexOf(entry.charAt(5))<0) {
          return false;
       } else {
          return true;
       }
    }
    return false;
}

function validate_fullSSN(form) {
    message =  "Please enter a valid SSN number.";
    ssn1Value = getFieldValueTF(form.SSN1_01);
    ssn2Value = getFieldValueTF(form.SSN2_01);
    ssn3Value = getFieldValueTF(form.SSN3_01);
    if(allCharsTheSame(ssn1Value + ssn2Value + ssn3Value)) {
        alert( message );
        form.SSN1_01.focus();
        return false;
    }
    if(ssn1Value == '123' && ssn2Value == '45' && ssn3Value == '6789') {
        alert( message );
        form.SSN1_01.focus();
        return false;
    }
    if(ssn1Value == '987' && ssn2Value == '65' && ssn3Value == '4321') {
        alert( message );
        form.SSN1_01.focus();
        return false;
    }
    return true;
}

function validate_SSN1(form) {
    message =  "Please enter a valid SSN number.";
    value = getFieldValueTF(form.SSN1_01);
    if(!validateIsRequired(value)) {
        alert( message );
        form.SSN1_01.focus();
        return false;
    } else {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3)) {
            alert( message );
            form.SSN1_01.focus();
            return false;
        }
        if(!validateMaxLength(value,3)) {
            alert( message );
            form.SSN1_01.focus();
            return false;
        }
	if(value == "000") {
            alert( message );
            form.SSN1_01.focus();
            return false;
        }
    }
    return true;
}

function validate_SSN2(form) {
    message =  "Please enter a valid SSN number.";
    value = getFieldValueTF(form.SSN2_01);
    if(!validateIsRequired(value)) {
        alert( message );
        form.SSN2_01.focus();
        return false;
    } else {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,2)) {
            alert( message );
            form.SSN2_01.focus();
            return false;
        }
        if(!validateMaxLength(value,2)) {
            alert( message );
            form.SSN2_01.focus();
            return false;
        }
	if(value == "00") {
            alert( message );
            form.SSN2_01.focus();
            return false;
        }
    }
    return true;
}

function validate_SSN3(form) {
    message =  "Please enter a valid SSN number.";
    value = getFieldValueTF(form.SSN3_01);
    if(!validateIsRequired(value)) {
        alert( message );
        form.SSN3_01.focus();
        return false;
    } else {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,4)) {
            alert( message );
            form.SSN3_01.focus();
            return false;
        }
        if(!validateMaxLength(value,4)) {
            alert( message );
            form.SSN3_01.focus();
            return false;
        }
	if(value == "0000") {
            alert( message );
            form.SSN3_01.focus();
            return false;
        }
    }
    return true;
}



function validate_ZIP_01(form) {
    value = getFieldValueTF(form.ZIP_01);
    if(!validateIsRequired(value)) {
        return alertError(form.ZIP_01,  "Please enter a valid Zip Code." );
    } 
    
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        if(!isUSZip(value)) {
            return alertError(form.ZIP_01,  "Please enter a valid Zip Code." );
        }
    } else if(countryValue == "CAN") {
        if(!isCANZip(value)) {
            return alertError(form.ZIP_01,  "Please enter a valid Zip Code." );
        }
    }
    return true;
}

function validate_PHONE_DAY_AREA_01_with_messages(form, message1, message2) {    
    countryValue = getCountryValue(form.COUNTRY_01);
    return validate_PHONE_GENERIC_AREA_01_with_messages(form.PHONE_DAY_AREA_01, countryValue, message1, message2);
}

function validate_PHONE_DAY_AREA_01(form) {
    return validate_PHONE_DAY_AREA_01_with_messages(form, "Please enter your daytime Area Code.", "Please enter a valid daytime phone number.");
}

function validate_PHONE_DAY_PREFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_DAY_PREFIX_01);
    var focusField = form.PHONE_DAY_PREFIX_01;
    
    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3) || !validateMaxLength(value,3)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
            return alertError(focusField, message );
        }
    }
    return true;
}
function validate_PHONE_DAY_SUFFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_DAY_SUFFIX_01);
    var focusField = form.PHONE_DAY_SUFFIX_01;
    
    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,4) || !validateMaxLength(value,4)) {
            return alertError(focusField, message);
        }
    }
    return true;
}

function validate_PHONE_DAY_01_with_message(form, message) {
    value = getFieldValueTF(form.PHONE_DAY_01);
    
    return validate_PHONE_DAY_01_with_params(form, value, form.PHONE_DAY_01, message);
}

function validate_PHONE_DAY_01_with_params(form, value, focusField, message) {
    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,7) || !validateMaxLength(value,7) || allCharsTheSame(value)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1" || value == "5551212") {
            return alertError(focusField, message );
        }
    }
    return true;
}

function validate_PHONE_DAY_01(form) {
    return validate_PHONE_DAY_01_with_message(form, "Please enter your daytime phone number.");
}
function validate_PHONE_GENERIC_AREA_01_with_messages(field, countryValue, message1, message2) {
    value = getFieldValueTF(field)
    if(!validateIsRequired(value)) {
        return alertError(field, message1 );
    }

    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3) || !validateMaxLength(value,3)) {
            return alertError(field, message2 );
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1" || allCharsTheSame(value)) {
            return alertError(field, message2 );
        } 
    }
    return true;
}

function validate_PHONE_DAY_ALL_optional(form, mesValidArea, mesValidPrefix, mesValidSuffix) {
  var value1 = getFieldValueTF(form.PHONE_DAY_AREA_01);
  var value2 = getFieldValueTF(form.PHONE_DAY_PREFIX_01);
  var value3 = getFieldValueTF(form.PHONE_DAY_SUFFIX_01);
  if (validateIsRequired(value1) || validateIsRequired(value2) || validateIsRequired(value3)) {
     if (!validate_PHONE_DAY_AREA_01_with_messages(form, "Please enter a valid Phone Number.", mesValidArea)) {
       return false;
     } else if (!validate_PHONE_DAY_PREFIX_01_with_message(form, mesValidPrefix)) {
       return false;
     } else if (!validate_PHONE_DAY_SUFFIX_01_with_message(form, mesValidSuffix)) {
       return false;
     }
  }
  return true;
}

function validate_PHONE_EVENING_AREA_01_with_messages(form, message1, message2) {
    countryValue = getCountryValue(form.COUNTRY_01);
    return validate_PHONE_GENERIC_AREA_01_with_messages(form.PHONE_EVENING_AREA_01, countryValue, message1, message2);
}

function validate_PHONE_EVENING_AREA_01(form) {
    return validate_PHONE_EVENING_AREA_01_with_messages(form, "Please enter your Area Code.", "Please enter a valid evening phone number.");
}

function validate_PHONE_EVENING_01_with_message(form, message) {
    value = getFieldValueTF(form.PHONE_EVENING_01);
    
    return validate_PHONE_EVENING_01_with_params(form, value, form.PHONE_EVENING_01, message);
}
function validate_PHONE_EVENING_01_with_params(form, value, focusField, message) {   
    if(!validateIsRequired(value)) {
        return alertError(focusField, message );
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);        
        if(!validateMinLength(value,7) || !validateMaxLength(value,7) || allCharsTheSame(value)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1" || value == "5551212") {
            return alertError(focusField, message );
        }
    }
    return true;
}

function validate_PHONE_EVENING_01(form) {
    return validate_PHONE_EVENING_01_with_message(form, "Please enter your evening phone number.");
}

function validate_PHONE_EVENING_PREFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_EVENING_PREFIX_01);
    var focusField = form.PHONE_EVENING_PREFIX_01;
    
    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3) || !validateMaxLength(value,3)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
            return alertError(focusField, message );
        }
    }
    return true;
}
function validate_PHONE_EVENING_SUFFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_EVENING_SUFFIX_01);
    var focusField = form.PHONE_EVENING_SUFFIX_01;
    
    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,4) || !validateMaxLength(value,4)) {
            return alertError(focusField, message);
        }
    }
    return true;
}

function getCountryValue(field) {
  if (window.formFamily && window.formFamily == "DegreesInfo") {
    if(field.length && field.length > 1){
      return getFieldValueRB(field);
    } else{
      return getFieldValueTF(field);
    }
  } else {
      return getFieldValueLB(field);
  }
}

function validate_GRADYEAR_01(form) {
    var field = form.GRADYEAR_01;
    var value = getFieldValueLB(form.GRADYEAR_01)
    if(!validateIsRequired(value)) {
        return alertError(field, "Please indicate the year you graduated.");
    }
    return true;
}

function validate_SELECT(field, message) {
    var value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        return alertError(field, message);
    }
    return true;
}

function validate_RADIOBOX(field, message) {
    value = getFieldValueRB(field)
    if(!validateIsRequired(value)) {
       return alertError(field, message);
    }
    return true;
}

function validate_TEXTAREA(field, message) {
    if(!validateIsRequired(field.value)) {
        return alertError(field, message);
    }
    return true;
}

function validate_TEXTFIELD(field, message) {
    var value = getFieldValueTF(field);
    if(!validateIsRequired(field.value)) {
        return alertError(field, message);
    }
    return true;
}

function stripAwayNonDigits(checkStr) {
  var checkOK = "0123456789";
  var newstring = "";
  for (var i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (var j = 0;  j < checkOK.length;  j++) {
      if (ch == checkOK.charAt(j)){
        newstring = newstring + ch;
    break;
      }
    }
  }
  return newstring;
}

function stripAwayHyphAndSpaces(checkStr) {
  var newstring = "";
  for (var i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    if (ch != " " && ch != "-"){
        newstring = newstring + ch;
    }
  }
  return newstring;
}

function allCharsTheSame(checkStr) {
  var ch = checkStr.charAt(0);
  for (var i = 0;  i < checkStr.length;  i++)
  {
    if (ch != checkStr.charAt(i)){
        return false;
    }
  }
  return true;
}

function allDigits(checkStr) {
  var checkOK = "0123456789";
  var allValid = true;
  for (var i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (var j = 0;  j < checkOK.length;  j++) {
      if (ch == checkOK.charAt(j)){
        break;
      }
    }
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  return allValid;
}

function validateIsRequired ( value )
{
    if (value.length <= 0) {
        return false;
    }
    return true;
}

function getFieldValueLB ( field ) {
    if (field == undefined || field == null) {
        return null;
    }    
    if(field.value) {
        return field.value;
    }
        if(field.selectedIndex >=0) {
        return field.options[field.selectedIndex].value;
    } else {
        return "";
    }
}
function setFieldValueLB ( field, value ) {
    if(field.value) {
        field.value = value;
    }
    for(var index = 0; index < field.length; index++) {
        if(field.options[index].value == value)
            field.selectedIndex = index;
    }
}

function getFieldTextLB ( field )
{
    if (field == undefined || field == null) {
        return null;
    }    
    if(field.text) {
        return field.text;
    }
    if(field.selectedIndex >=0) {
        return field.options[field.selectedIndex].text;
    } else {
        return "";
    }
}

function setFieldValueTF ( field, value ) {
    field.value = value;
}
function getFieldValueTF ( field ) {
    if (field == undefined || field == null) {
        return null;
    }
    return field.value;
}

function getFieldValueRB ( field )
{
    if (field == undefined || field == null) {
        return null;
    }
    if(field.value) {
        return field.value;
    }
    for (var i = 0; i < field.length; i++)
    {
        if (field[i].checked == true) return field[i].value;
    } 
    return "";
}

function setFieldValueRB ( field, value ) {
    if(field.value) {
      field.value = value;
    }
    else {
        for (var i = 0; i < field.length; i++) {
            if(field[i].value == value)
                field[i].checked = true;
            else
                field[i].checked = false;
        }
    }
}
function setFieldValueCB ( field, value ) {
    if(field.value) {
      field.value = value;
    }
    else {
        for (var i = 0; i < field.length; i++) {
            if(field[i].value == value)
                field[i].checked = true;
        }
    }
}
function initField(field, value) {
    if(field[0].type == 'radio')
        setFieldValueRB(field, value);
    else if(field[0].type == 'text')
        setFieldValueTF(field[0], value);
    else if(field[0].type == 'select-one')
        setFieldValueLB(field[0], value);
    else if(field[0].type == 'checkbox')
        setFieldValueCB(field, value);
    else {
        return;
    }
    
    if(field[0].onclick != undefined && field[0].onclick != null)
        field[0].onclick();
    if(field[0].onchange != undefined && field[0].onchange != null)
        field[0].onchange();
}

function validateMinLength ( value, minSize )
{
        if(!value) {
           return false;
        }
    if (value.length < minSize) {
        return false;
    }
    return true;
}

function validateMaxLength ( value, maxSize )
{
        if(!value) {
            return true;
        }
    if (value.length > maxSize) {
        return false;
    }
    return true;
}

function validateAlphaChar(value)
{
    var acceptableChars = ' ,.-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
        //check username for bad characters
        for (var i = 0; i < value.length; i++) {
                var current = value.charAt(i);
                if (acceptableChars.indexOf(current) == -1) return false;
        }
    return true;
}

function show(id) {
  showElement(id)
}
function showElement(id) {
    els = window.document.all ? window.document.all[id] : dom ? window.document.getElementById(id) : window.document.layers[id];
	if (els) {
      if (ns4){
        els.visibility = "show";
      } else {
        els.style.display = "block";
        //els.style.visibility = "visible";
      }
	}
}

function hide(id) {
  hideElement(id);
}
function hideElement(id) {
    els = window.document.all ? window.document.all[id] : dom ? window.document.getElementById(id) : window.document.layers[id];
	if (els) {
      if (ns4){
        els.visibility = "hide";
      } else {
        els.style.display = "none";
        //els.style.visibility = "hidden";
      }
	}
}

function isHidden(id) {
	var hidden = true;
    els = window.document.all ? window.document.all[id] : dom ? window.document.getElementById(id) : window.document.layers[id];
	if (els) {
      if (ns4){
        hidden = els.visibility == "hide";
      } else {
        hidden = els.style.display == "none";
        //els.style.visibility = "hidden";
      }
	}
	return hidden;
}

function isVisible(id) {
	return !isHidden(id);
}

var calledCapella = false;
var ctcWindow;
function clickToCall() {
  if(calledCapella == false) {
    calledCapella = true;
    clickToCallMessage = window.document.getElementById("ctcErrorMsg");
    if (clickToCallMessage) clickToCallMessage.innerHTML = '';
    if(window.document.form1.numberradio) {
      _phone = getFieldValueRB(window.document.form1.numberradio);
    } else {
      _phone = 'other';
    }
    _ctcPhone = getFieldValueTF(window.document.form1.ctcphone);
    if(_phone == 'other') {
      _phone = getFieldValueTF(window.document.form1.otherphone);
    }
    if(window.document.form1.selectedprogram) {
      _selectedProgram = getFieldValueTF(window.document.form1.selectedprogram);
    } else {
      _selectedProgram = _phone;
    }
    if(validateClickToCall(_phone)) {
        setTimeout("resetClickToCallNoMessage()", 60000);
        ctcWindow=window.open("/forms/ctc.jsp?phone="+_phone+"&selectedProgram="+_selectedProgram,"window","width=600,height=480,scrollbars=yes,resizable=yes");
        if(ctcWindow.focus) ctcWindow.focus();
    } else {
        alert("Please enter a valid phone number, including area code.");
        calledCapella = false;
    }
  } else {
    alert('Your call is already in process.  If you do not receive a call shortly, please call us at '+_ctcPhone);
  }
  return false;
}

function validateClickToCall(value) {
  if(!validateIsRequired(value)) {
    return false;
  }
  value=stripAwayNonDigits(value);
  if(!validateMinLength(value,10)) {
    return false;
  } else if(!validateMaxLength(value,10)) {
    return false;
  } else if(allCharsTheSame(value)) {
    return false;
  } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
    return false;
  }
  return true;
}

function resetClickToCallNoMessage() {
  calledCapella=false;
}

function resetClickToCall(message) {
  calledCapella=false;
  clickToCallMessage = window.document.getElementById("ctcErrorMsg");
  if (clickToCallMessage) clickToCallMessage.innerHTML = message;
}

function selectCTCOther() {
    if (window.document.form1.numberradio[2].checked!=true) {
     window.document.form1.numberradio[2].checked = true;
    }
    return;
}
//for tab pages, require including dojo script and dojo.io library
   function loadContent(area,level,career) {
   		dojo.require("dojo.io.*");
        switchDiv(level);
        updateBreadCrumb(area,level,career);
        updateContentImage(area,level,career);
        var fileURL = "/general/contentsite/" + area + "/";
        if(career!='') {
          fileURL += "careers/" + career;
        } else {
          if(level != 'main' && level != '') {
            fileURL += level + "/";
          }
          fileURL += "index";
        }
        fileURL += ".txt";
        dojo.io.bind({
            url: fileURL,
            load: function(type, data, evt){ displayContentData(data); },
            mimetype: "text/plain",
            transport: "XMLHTTPTransport"
        });
    }
    var lastLevel="main";
    function switchDiv(level) {
      if(level!='') {
        var levelElement = window.document.getElementById(level);
        if(levelElement) {
            window.document.getElementById(lastLevel).className = 'levelOff';
            levelElement.className = 'levelOn';
            lastLevel=level;
        }
      }
    }
    function updateBreadCrumb(area,level,career) {
      var breadcrumb = '<a href="#" onclick="javascript:loadContent(\''+area+'\',\'main\',\'\');return false;">Home</a>';
      if(level == '') {
          level = lastLevel;
      }
      if(level=='main') {
        breadcrumb += ' &gt; '+'<a href="#" onclick="javascript:loadContent(\''+area+'\',\'main\',\'\');return false;">' + getName(area)+ '</a>';
      } else if(level != '') {
        breadcrumb += ' &gt; <a href="#" onclick="javascript:loadContent(\''+area+'\',\''+level+'\',\'\');return false;">'+getName(level)+'</a>';
      }
      if(career !='') {
         breadcrumb += ' &gt; '+getName(career);
      }
      var breadcrumbElement = window.document.getElementById("breadcrumb");
      if(breadcrumbElement) {
        breadcrumbElement.innerHTML = breadcrumb;
      }
    }

    function updateContentImage(area,level,career) {
      var contentImageElement = window.document.getElementById("hqimage");
      if(contentImageElement) {
        var imageURL = '/images/degreesInfo/hq/'+area+"/"+((career!='')?career:level)+'.jpg';
        contentImageElement.src = imageURL;
      }
    }

    function getName(value) {
      var name = '';
      var valueArray = value.split("-");
      for(var i=0;i<valueArray.length;i++) {
        name+=valueArray[i].charAt(0).toUpperCase() +valueArray[i].substr(1) +' ';
      }
      return name;
    }

    function displayContentData(data) {
      if(data == null || data.length == 0) {
        return;
      }
      var contentElement = window.document.getElementById("content");
      if(contentElement) {
        contentElement.innerHTML = data;
      }
    }
