<!-- hide from old browsers

var newwindow;
function popwindow(url) {
       newwindow = window.open(url, 'toothiqanim', 'status=0,toolbar=0,menubar=0,resizable=1,scrollbars=1,height=640,width=540');
       if (window.focus) { newwindow.focus() }
}

var newwindowfad;
function popwindowfad(url) {
       newwindowfad = window.open(url, 'toothiqfad', 'status=0,toolbar=0,menubar=0,resizable=1,scrollbars=1,height=640,width=800');
       if (window.focus) { newwindowfad.focus() }
}

var newanimwindow;
function popanimwindow(url) {
       newanimwindow = window.open(url, 'toothiqanimwin', 'status=0,toolbar=0,menubar=0,resizable=1,scrollbars=1,height=670,width=695');
       if (window.focus) { newanimwindow.focus() }
}

var newanimwindow2;
function popanimwindow2(url) {
       newanimwindow2 = window.open(url, 'toothiqanimwin2', 'status=0,toolbar=0,menubar=0,resizable=1,scrollbars=1,height=500,width=500');
       if (window.focus) { newanimwindow2.focus() }
}


function regformvalidate() {

  var valid = true, output = '';
  
  // Get values from form
  var frmOrderNumber = document.getElementById('ordernumber').value;
  var frmFirstName = document.getElementById('firstname').value;
  var frmMiddleName = document.getElementById('middlename').value;
  var frmLastName = document.getElementById('lastname').value;
  //var frmDentalSpecialty = document.getElementById('dental_specialty').selectedIndex;
  var frmListingCity = document.getElementById('listing_city').value;
  //var frmListintState = document.getElementById('listing_state').selectedIndex;
  var frmPhoneNumber = document.getElementById('phonenumber').value;
  var frmEmailAddress = document.getElementById('emailaddress').value;

  if (!order_number(frmOrderNumber)) {
    alert('Error in Order Number. You must enter an Order Number. Only upper case letters, numbers, and hyphen characters can be used.');
    document.regform.ordernumber.focus();
    return false;
  }

  if (!persons_first_name(frmFirstName)) {
    alert('Error in First name. You must enter a first name. Your first name can be up to 20 characters in length. Upper and lower case letters, space, hyphen, period, and single quote characters can be used.');
    document.regform.firstname.focus();
    return false;
  }

  if (!persons_middle_name(frmMiddleName)) {
    alert('Invalid Middle Name entered');
    return false;
  }

  if (!persons_last_name(frmLastName)) {
    alert('Error in Last name. You must enter a last name. Your last name can be up to 25 characters in length. Upper and lower case letters, space, hyphen, period, and single quote characters can be used.');
    document.regform.firstname.focus();
    return false;
  }

  if (document.regform.dental_specialty.selectedIndex == 0) {
    alert('Please select a dental specialty.');
    document.regform.dental_specialty.focus();
    return false;
  }

  if (!listing_city(frmListingCity)) {
    alert('Error in City. You must enter a city. The city name can be up to 50 characters in length. Upper and lower case letters, space, hyphen, period, and single quote characters can be used.');
    document.regform.listing_city.focus();
    return false;
  }

  if (document.regform.listing_state.selectedIndex == 0) {
    alert('Please select a State.');
    document.regform.listing_state.focus();
    return false;
  }

   if(document.regform.phonenumber.value.search(/\d{3}\-\d{3}\-\d{4}/)==-1) {
      alert('Please enter a phone number with the format ###-###-####.');
      document.regform.phonenumber.focus();
      return false;
   }

  if (!checkValidation(document.regform.emailaddress)) {
    //alert('Error in email address format. A valid email address is required.');
    document.regform.emailaddress.focus();
    return false;
  }


  return true;
}



function proformvalidate() {

  var valid = true, output = '';
  
  // Get values from form
  var frmOrderNumber = document.getElementById('ordernumber').value;

  var frmDentalDegree = document.getElementById('dentaldegree').value;
  var frmDentistBio = document.getElementById('dentistbio').value;

  var frmPracticeName = document.getElementById('practicename').value;
  var frmPracticeAddress = document.getElementById('practiceaddress').value;
  var frmPracticeZipCode = document.getElementById('practicezipcode').value;
  var frmPracticePhoneNumber = document.getElementById('practicephonenumber').value;
  var frmPracticeFaxNumber = document.getElementById('practicefaxnumber').value;
  var frmPracticeEmailAddress = document.getElementById('practiceemailaddress').value;
  var frmPracticeURL = document.getElementById('practiceurl').value;
  var frmPracticeInfo = document.getElementById('practiceinfo').value;

  var frmPracticeLatitude = document.getElementById('practicelatitude').value;
  var frmPracticeLongitude = document.getElementById('practicelongitude').value;

  if (!order_number(frmOrderNumber)) {
    alert('Error in Order Number. You must enter an Order Number. Only upper case letters, numbers, and hyphen characters can be used.');
    document.proform.ordernumber.focus();
    return false;
  }

  if (!dental_degree(frmDentalDegree)) {
    alert('Error in Dental Degree. You must enter a Dental Degree. Only upper case letters, period, space, and comma characters can be used.');
    document.proform.dentaldegree.focus();
    return false;
  }




  if (!practice_name(frmPracticeName)) {
    alert('Error in Practice Name. You must enter a Practice Name. Your practice name can be up to 75 characters in length. Upper and lower case letters, space, hyphen, period, and single quote characters can be used.');
    document.proform.practicename.focus();
    return false;
  }


  if (!practice_address(frmPracticeAddress)) {
    alert('Error in Practice Address. You must enter a Practice Address. Your practice address can be up to 75 characters in length. Upper and lower case letters, numbers, space, hyphen, comma, #, period, and single quote characters can be used.');
    document.proform.practicename.focus();
    return false;
  }

  if (!practice_zip_code(frmPracticeZipCode)) {
    alert('Error in Practice Zip Code. You must enter a Zip Code. Format: ##### or #####-####. Numbers and hyphen (if Zip + 4) only.');
    document.proform.practicezipcode.focus();
    return false;
  }

   if(document.proform.practicephonenumber.value.search(/\d{3}\-\d{3}\-\d{4}/)==-1) {
      alert('Please enter a phone number with the format ###-###-####.');
      document.proform.practicephonenumber.focus();
      return false;
   }

  if (!fax_number(frmPracticeFaxNumber)) {
    alert('Please enter a fax number with the format ###-###-####.');
    document.proform.practicefaxnumber.focus();
    return false;
  }

  if (!checkValidation(document.proform.practiceemailaddress)) {
    //alert('Error in email address format. A valid email address is required.');
    document.proform.practiceemailaddress.focus();
    return false;
  }


  if (!lat_or_long(frmPracticeLatitude)) {
    alert('Latitude must consist of only numbers from -90 to 90. For example: 40.018559');
    document.proform.practicelatitude.focus();
    return false;
  }

  if (!lat_or_long(frmPracticeLongitude)) {
    alert('Longitude must consist of only numbers from -180 to 180. For example: -105.262779');
    document.proform.practicelongitude.focus();
    return false;
  }

  return true;
}


// This does not work in IE 6!!!!!
function textCounter(field, counterfield, maxcharacters) {
	if (field.value.length > maxcharacters)
		field.value = field.value.substring(0, maxcharacters);
	else 
		counterfield.value = maxcharacters - field.value.length;
}

function order_number(value) {
  //Allows Upper case letters, numbers, hyphen. Up to 25 characters.
  var re = /^[0-9A-Z'-]{1,25}$/;
  return re.test(value);
}

function persons_first_name(value) {
  //Allows Upper and lower case letters, hyphen, period and single quote. Up to 20 characters.
  var re = /^[a-zA-Z'-.\s]{1,20}$/;
  return re.test(value);
}

function persons_middle_name(value) {
  //Allows Upper and lower case letters, hyphen, period and single quote. Up to 20 characters.
  var re = /^[a-zA-Z'-.\s]{0,20}$/;
  return re.test(value);
}

function persons_last_name(value) {
  //Allows Upper and lower case letters, hyphen, period and single quote. Up to 25 characters.
  var re = /^[a-zA-Z'-.\s]{1,25}$/;
  return re.test(value);
}

function listing_city(value) {
  //Allows Upper and lower case letters, hyphen, period and single quote. Up to 50 characters.
  var re = /^[a-zA-Z'-.\s]{1,50}$/;
  return re.test(value);
}

function dental_degree(value) {
  //Allows Upper case letters, period, spaces and comma. Up to 20 characters.
  var re = /^[A-Z,.\s]{1,20}$/;
  return re.test(value);
}

function practice_name(value) {
  //Allows Upper and lower case letters, hyphen, period and single quote. Up to 75 characters.
  var re = /^[a-zA-Z'-.\s]{1,75}$/;
  return re.test(value);
}


function practice_address(value) {
  //Allows numbers, upper and lower case letters, hyphen, period, comma, #, and single quote. Up to 75 characters.
  var re = /^[0-9a-zA-Z'-,.#\s]{1,75}$/;
  return re.test(value);
}

function practice_zip_code(value) {
  //Allows numbers, hyphen. Up to 10 characters.
  var re = /^[0-9-]{5,10}$/;
  return re.test(value);
}

function fax_number(value) {
  //
  var re = /^[\d{3}\-\d{3}\-\d{4}]{0,12}$/;
  return re.test(value);
}

function lat_or_long(value) {
  //Allows numbers, hyphen. Up to 11 characters.
  var re = /^[0-9-.]{0,11}$/;
  return re.test(value);
}



function set_length(value, min, max) {
  //Test number of characters in value against min and max values.  If no value set for min it defaults 0 if no value for max it defaults to the length of value.
  var vmin=(min == '')?0:min;
  var vmax=(max == '')?value.length:max;
  var re=((trim(value).length < vmin) || (trim(value).length > vmax))?false:true;
  return re;
}

function trim(value) {
  return value.replace(/^\s+|\s+$/g, '');
}

function IsEmpty(aTextField) {
if ((aTextField.value.length==0) ||
(aTextField.value==null)) {
return true;
}
else { return false; }
} 

    //if (document.myForm.myText.value.length == 0) {
    //    valid = false;
    //    output += 'Enter some text in the text area';
    //}


//*************** EMAIL SCRIPTS

function checkValidation(addressField) {
    if (stringEmpty(addressField.value))
        alert ("Please enter your Email address.");
    else if (noAtSign(addressField.value))
        alert ("Your Email address does not contain an '@' character.");
    else if (nothingBeforeAt(addressField.value ))
        alert ("Your Email address must contain at least one character before the '@' character.");
    else if (noLeftBracket(addressField.value ))
        alert ("Your Email address contains a right square bracket ']',\nbut no corresponding left square bracket '['.");
    else if (noRightBracket(addressField.value ))
        alert ("Your Email address contains a left square bracket '[',\nbut no corresponding right square bracket ']'.");
    else if (noValidPeriod(addressField.value ))
        alert ("Your Email address must contain a period ('.') character.");
    else if (noValidSuffix(addressField.value ))
        alert ("Your Email address must contain a two or three character suffix.");
    else
        return (true);
    return ( false );
}

function linkCheckValidation(formField) {
    if (checkValidation(formField) == true) {
        alert ('E-Mail Address Validates OK.');
    }
    return ( false );
}

function stringEmpty(address) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if (address.length < 1) {
        return(true);
    } else {
        return(false);
    }
}

function noAtSign(address) {
    // Check for '@' character
    if (address.indexOf('@', 0) == -1) {
        return (true)
    } else {
        return (false);
    }
}

function nothingBeforeAt ( address ) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( address.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( address.indexOf ( '[', 0 ) == -1 && address.charAt ( address.length - 1 ) == ']' ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if ( address.indexOf ( '[', 0 ) > -1 && address.charAt ( address.length - 1 ) != ']' ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if ( address.indexOf ( '.', 0 ) == -1 )
        return ( true );

    return ( false );
}

function noValidSuffix ( address ) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if ( address.indexOf ( '@', 0 ) > 1 && address.charAt ( address.length - 1 ) == ']' )
        return ( false );

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = address.length;
    var pos = address.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 3 ) {
        return ( true );
    } else {
        return ( false );
    }
}


// end hiding from old browsers -->

