// browser detection
var ns4 = (document.layers) ? true:false // Netscape 4.x
var ie4 = (document.all) ? true:false // IE 4.x
var ie5 = (document.getElementById) ? true:false // Browers that really matter
function checkFirstForm(form){
var incomplete = 0;
	var alertMsg = "The following fields are required:\n";
	
	var ddlWhere= offer.ddlWhere[form.ddlWhere.selectedIndex].value;
	var ddlPrint= offer.ddlPrint[form.ddlPrint.selectedIndex].value;
	var ddlStore= offer.ddlStore[form.ddlStore.selectedIndex].value;
	
	if(ddlWhere==0){
		incomplete++;
		alertMsg = alertMsg +"Where you heard about us\n";
	}
	
	if (incomplete > 0){
		alert(alertMsg);
		return false;
	}
	
	if (ddlWhere==1 && ddlStore== 0 ){
		incomplete++;
		alertMsg = alertMsg +"What store you sampled in\n";
	}
	
	if (ddlWhere==2 && ddlPrint== 0 ){
		incomplete++;
		alertMsg = alertMsg +"What magazine you read\n";
	}
	if (incomplete > 0){
		alert(alertMsg);
		return false;
	}
	 return true;
}

function checkMainForm(form) {
	var incomplete = 0;
	var alertMsg = "The following fields are required:\n";
	
	var email = form.tbxEmail.value;
	var vemail = form.tbxVEmail.value;
	var fname = form.tbxFname.value;
	var lname = form.tbxLname.value;
	var address = form.tbxAddress.value;
	var city = form.tbxCity.value;
	var state = form.ddlState.value;
	var zip = form.tbxZIP.value;
	var phone1 = form.tbxPhone1.value;
	var phone2 = form.tbxPhone2.value;
	var phone3 = form.tbxPhone3.value;
	var dobmo = form.ddlMonth.selectedIndex + 1;
	var dobdy = form.ddlDay[form.ddlDay.selectedIndex].value;
	var dobyr = form.ddlYear[form.ddlYear.selectedIndex].value;
	var gender=form.rblGender;
	var Q1= form.rblQ1;
	var Q2= form.rblQ2;
	var Q3= form.rblQ3;
	var Q4= form.rblQ4;
	
	
  if(allTrim(email) == "") {
		incomplete++;
		alertMsg = alertMsg +"E-mail Address\n";
	}
	
	if(allTrim(vemail) == "") {
		incomplete++;
		alertMsg = alertMsg +"Verify E-mail Address\n";
	}
	
	if(allTrim(fname) == "") {
		incomplete++;
		alertMsg = alertMsg +"First Name\n";
	}
	
	if(allTrim(lname) == "") {
		incomplete++;
		alertMsg = alertMsg +"Last Name\n";
	}

	if(allTrim(address) == "") {
			incomplete++;
			alertMsg = alertMsg +"Address\n";
	}
	if(allTrim(city) == "") {
			incomplete++;
			alertMsg = alertMsg +"City\n";
	}
	if(allTrim(state) == "") {
			incomplete++;
			alertMsg = alertMsg +"State\n";
	}
	if(allTrim(zip) == "") {
			incomplete++;
			alertMsg = alertMsg +"ZIP Code\n";
	}
	
	if(allTrim(phone1) == "" || allTrim(phone2) == "" || allTrim(phone3) == ""){
		incomplete++;
		alertMsg = alertMsg +"Phone\n";
	}
	
	choiceSelected = false;
	//Gender Check
	for(x=0;x<gender.length;x++){
		if(gender[x].checked){
			choiceSelected = true;
		}
	}	
	if(!choiceSelected){
		incomplete++;
		alertMsg = alertMsg +"Gender\n";		
	}
	
	choiceSelected = false;
	//purchased Ensure Check
	for(x=0;x<Q1.length;x++){
		if(Q1[x].checked){
			choiceSelected = true;
		}
	}	
	if(!choiceSelected){
		incomplete++;
		alertMsg = alertMsg +"How often have you purchased Ensure\n";		
	}
	
	choiceSelected = false;
	//Drink Ensure Check
	for(x=0;x<Q2.length;x++){
		if(Q2[x].checked){
			choiceSelected = true;
		}
	}	
	if(!choiceSelected){
		incomplete++;
		alertMsg = alertMsg +"How often you drink Ensure\n";		
	}
	
	choiceSelected = false;
	//Why Ensure Check
	for(x=0;x<Q3.length;x++){
		if(Q3[x].checked){
			choiceSelected = true;
		}
	}	
	if(!choiceSelected){
		incomplete++;
		alertMsg = alertMsg +"Your reason for drinking Ensure\n";		
	}
	
	choiceSelected = false;
	//Condition Check
	for(x=0;x<Q4.length;x++){
		if(Q4[x].checked){
			choiceSelected = true;
		}
	}	
	if(!choiceSelected && Q3[1].checked ){
		incomplete++;
		alertMsg = alertMsg +"Specific medical condition(s) are you interested in receiving more information about\n";		
	}
	
	if (incomplete > 0){
		alert(alertMsg);
		return false;
	}

if (!(validateDate(dobdy, dobmo, dobyr))) {
    alert ("Invalid Date of Birth.");
    form.ddlMonth.focus();
	  return false;
  }
  
  if (!(approveAge(dobmo, dobdy, dobyr))) {
    alert ("Must be at least 18 years of age to participate.");
    form.ddlMonth.focus();
	  return false;
  }
  
	var regexProperEmail = /^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/;
	
	if (!(regexProperEmail.exec(email))) {
		alert ("Please enter a valid E-mail address.");
			form.tbxEmail.focus();
			return false;
	}
	
	if (email != vemail) {
			alert ("The two email addresses must match.");
			form.tbxVEmail.focus();
			return false;
	}
	
	var regexProperZip=/^\d{5}-\d{4}$|^\d{5}$/;
	zip = allTrim(zip);
	
	if (!(regexProperZip.exec(zip))) {
		alert ("Please enter a valid ZIP code.");
		form.tbxZIP.focus();
		return false;
	}

  regexArea = /^\d{3}$/;
  regexExch = /^\d{3}$/;
  regexNumber = /^\d{4}$/;
  	
  if(!(regexArea.exec(phone1))) {
  	alert("Please check your Phone Number.");
  	form.tbxPhone1.focus();
  	return false;
  }
  
  if(!(regexExch.exec(phone2))) {
  	alert("Please check your Phone Number.");
  	form.tbxPhone2.focus();
  	return false;
  }
  
  if(!(regexNumber.exec(phone3))) {
  	alert("Please check your Phone Number.");
  	form.tbxPhone3.focus();
  	return false;
  }
  
  	

  return true;
}

function validateDate(dobdy, dobmo, dobyr){
	var boolLeap;
	
	var month = parseInt(dobmo);
  var day = parseInt(dobdy);
  var year = parseInt(dobyr);
	
	if(((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))){
		boolLeap = true;
	}
  else{
    boolLeap = false;
  }
  
	if(month == 2){
		if(boolLeap){
			if(day <= 29){
				return true;
			}
		  else{
		    return false;
		  }	
		}
	  else{
	    if(day <= 28){
	      return true;
	    }
	    else{
	      return false;
	    }
	  }
	}
	if(month == 4 || month == 6 || month == 9 || month == 11){
		if(day > 30){
			return false;
		}
	  else{
	    return true;
	  }
	}
  
  return true;
}

function approveAge(dobmo,dobdy,dobyr) {
  now = new Date();
  now_year = now.getFullYear();
  now_month = now.getMonth() + 1;
  now_day = now.getDate();
  
  var birthDay = parseInt(dobdy);
  var birthYear = parseInt(dobyr);
  var birthMonth = dobmo;
  
  //check input
  var passAge = 18;
  var passed = false;
  if (birthDay >= 1 && birthDay <= 31 && birthMonth >= 1 && birthMonth <= 12 && birthYear >= 1899 && birthYear <= now.getFullYear()){
    if ((now_year - birthYear) == passAge){
      if (birthMonth < now_month){
        passed = true;
      } else if (birthMonth == now_month && birthDay <= now_day){
        passed = true;
      }
    } else if (now_year - birthYear > passAge){
      passed = true;
    } else {
      passed = false
    }

  } else {
    passed = false;
  }
  return passed;
}

function allTrim(sString) 
{
  sString = sString.replace(/^\s+/g, "");
  sString = sString.replace(/\s+$/g, "");
  sString = sString.replace(/^\s+|\s+$/g, '');
  
  
  
	while (sString.substring(0,1) == ' ')
	{
		sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}



function requireHTTPS() {
 var url = document.location.href;
 var text;
 var text2;
 var text2len = url.length;

 text = url.substring(0,11);
 if (text == 'http://www.' && url.indexOf("dev.") < 0 ){
  text2 = url.substring(text2len-11,text2len);
  url = url.replace('http://www.','http://');
 }

 text = url.substring(0,5);
 if (text == 'http:' && url.indexOf("dev.") < 0){
  text2 = url.substring(text2len-5,text2len);
  url = url.replace('http:','https:');
  document.location = url;
 }
}

function showField()
	{
		var choice = document.offer.ddlWhere.selectedIndex;
		
		if(choice == "2")
		{		
			showElement("divprint");
			hideElement("divstore");
			hideElement("divholder");
		}

		else if(choice == "1")
		{		
			showElement("divstore");
			hideElement("divprint");
			hideElement("divholder");
		}

		else
		{
			hideElement("divstore");
			hideElement("divprint");
			showElement("divholder");
		
		}
	}
	
	function toggleBox(szDivID)
{
	var cbOpt1 = document.getElementById("cbOpt1");
	var ddlState = document.getElementById("ddlState");
	if(cbOpt1.checked && ddlState.value == "CA"){
   // SHOW
   showElement(szDivID);
   }
  else {
  // HIDE
  hideElement(szDivID);
 }
	
}

function checkStep2(form){
	var choiceSelected = false;
	
	for(x=0;x<form.rbl_reason.length;x++){
		if(form.rbl_reason[x].checked){
			choiceSelected = true;
		}
	}
	
	if(!choiceSelected){
		alert("Please indicate your reason for drinking Ensure");
		return false;
	}
}



function evalCondition(form) {
 if ( form.rblQ4[14].checked ) {
  showElement("divother");
 } else {
  form.txt_other.value = "";
  hideElement("divother");
 }
}

function evalReason(form) {
 if ( form.rblQ3[1].checked ) {
  showElement("condition");
 } else {
  clearRadioGroup(form.rblQ4);
  form.txt_other.value = "";
  hideElement("condition");
 }
} 


// displays an element 
function showElement(strName) { 
 if (ie5) {
  document.getElementById(strName).style.visibility = "visible";
  document.getElementById(strName).style.display = "block";
 } else if (ns4) {
  document.layers[strName].visibility = "show"; 
  // for this to work with ns4, you must set your div to absolute positioning
  //else if (ns4) eval('document.'+strName+'.visibility = "show"'); // alternate method 
 } else if (ie4) {
  document.all[strName].style.visibility = "visible"; 
 }
}
// hides an element
function hideElement(strName) {
 if (ie5) {
  if (document.getElementById && document.getElementById(strName) !=  null){
  document.getElementById(strName).style.display = "none";
  document.getElementById(strName).style.visibility = "hidden"; 
  }
 } else if (ns4) {
  document.layers[strName].visibility = "hide"; 
  // for this to work with ns4, you must set your div to absolute positioning
  //else if (ns4) eval('document.'+strName+'.visibility = "hide"'); // alternate method
 } else if (ie4) { 
  eval(strName + '.style.visibility ="hidden"');
 } 
}

// clears a radio button group. deselects all
function clearRadioGroup(objRadio) {
 // accepts a radio button object
 // tested in IE6 and NS7
 // loop through the number of radio elements and deselect all
 for (var intCounter=0; intCounter < objRadio.length; intCounter++) {
  objRadio[intCounter].checked = false;
 }
}