// generates index by stripping everything from the id up to the last _
function popupCalendarGenIndex(fieldPrefix, calImage, allEnabled) {
  var index = calImage.id.substring(calImage.id.lastIndexOf('_')+1);
  var fieldId = fieldPrefix + index;
  var calImageId =calImage.id.substring(0, calImage.id.lastIndexOf('_')+1) + index;
  popupCalendarGeneric(fieldId, calImageId, allEnabled);
}

// popup calendar with all dates until today disabled
function popupCalendar(fieldId, calImageId) {
  popupCalendarGeneric(fieldId, calImageId, false);
}

// popup calendar with all dates enabled
function popupCalendarAllEnabled(fieldId, calImageId) {
  popupCalendarGeneric(fieldId, calImageId, true);
}

// popup calendar using a flaoting div tag and navigation dropdowns for months and years enabled
function popupCalendarGeneric(fieldId, calImageId, allEnabled) {
  var calPop = new CalendarPopup('calDiv');
  calPop.showNavigationDropdowns();
  if (!allEnabled) calPop.addDisabledDates(null,formatDate(new Date(),'yyyy-MM-dd'));
  calPop.select(document.getElementById(fieldId),calImageId,'MM/dd/yyyy');
  return false;
}

// hide current step and go to the next step
function goToNextStep (thisStep, nextStep) {
  thisStep = document.getElementById(thisStep);
  nextStep = document.getElementById(nextStep);
  thisStep.style.display = "none";
  nextStep.style.display = "inline";
  window.scrollTo(0, 0);
}

// check for empty or null fields in reqdFields array in myForm
function validate(reqdFields, myForm) {
  var isOk = true;
  for (var i=0; i<reqdFields.length; i++) {
    var elementName = reqdFields[i];
    var element = document.getElementById(elementName);

    if (element.type.indexOf('radio')!=-1) {
      var element0 = element;
      var element1 = document.getElementById(elementName.substring(0, elementName.length-1)+'1');
      elementName = elementName.substring(0, elementName.length-2);

      if (!element0.checked && !element1.checked) {
        highlightEnclosed(elementName, true);
        isOk = false;
      } else {
        highlightEnclosed(elementName, false);
      }
    } else { // non-radios
      if (element.value==null || element.value=="") {
        if (element.type.indexOf('select')!=-1) {
          highlightEnclosed(elementName, true);
        } else {
          highlightSimple(element, true);
        }
        isOk = false;
      } else {
        if (element.type.indexOf('select')!=-1) {
          highlightEnclosed(elementName, false);
        } else {
          highlightSimple(element, false);
        }
      }
    }
  }
  if (!isOk) {
    alert("Please provide the required information");
  } else {
    myForm.submit();
  }
}

// highlight/unhighlight simple form fields
function highlightSimple(element, highlight) {
  if (highlight) {
    element.style.borderColor = 'red';
    element.style.borderWidth = '2';
  } else {
    element.style.borderTopWidth = '2';
    element.style.borderColor = 'silver';
    element.style.borderBottomWidth = '1';
    element.style.borderRightWidth = '1';
  }
}

// highlight/unhighlight complex form fields enclosed in td tags
function highlightEnclosed(enclosedElementName, highlight) {
  var tdElement = document.getElementById(enclosedElementName + '_td');
  if (highlight) {
     tdElement.style.borderColor = 'red';
     tdElement.style.borderWidth = '2';
  } else {
     tdElement.style.borderColor = 'white';
     tdElement.style.borderWidth = '0';
  }
}


function newValidate() {
	var errmsg = "";
	var form = document.lifeform;
	if(form.Name.value =="") {
		errmsg = "Enter your name"+"\n" ;
		form.Name.focus() ;
	}
	if(form.LName.value=="") {
		errmsg += "Enter last name"+"\n" ;
		form.LName.focus() ;
	}
	if(form.Address.value=="") {
		errmsg += "Enter Street Address"+"\n" ;
		form.Address.focus() ;
	}
	if(form.City.value=="") {
		errmsg += "Enter City"+"\n" ;
		form.City.focus() ;
	}
	if(form.State.value=="") {
		errmsg += "Enter State"+"\n" ;
		form.State.focus() ;
	}
	if(form.City0.value=="") {
		errmsg += "Enter Zip Code"+"\n" ;
		form.City0.focus() ;
	}
	if(form.Daytime_Phone.value=="") {
		errmsg += "Enter Daytime Phone"+"\n" ;
		form.Daytime_Phone.focus() ;
	}
	if(form.Evening_Phone.value=="") {
		errmsg += "Enter Evening Phone"+"\n" ;
		form.Evening_Phone.focus() ;
	}
	if(form.Cell_Phone.value=="") {
		errmsg += "Enter Cell Phone"+"\n" ;
		form.Cell_Phone.focus() ;
	}
	
	if(echeck(form.email0.value)) {
	} else {
		errmsg += "Invalid E-mail ID"+"\n" ;
		form.email0.focus() ;
	}
	if(form.ProspctName.value=="") {
		errmsg += "Enter name for the person the quote is based on"+"\n" ;
		form.ProspctName.focus() ;
	}
	if(errmsg=="") {
		return true ;
	} else {
		alert(errmsg) ;
		return false ;
	}
}
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		  // alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   // alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		  //  alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		   // alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		   // alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}