/*determine which div to show in the vg.php form based on the value of the object parameter passed*/
/*
// ***************************************************
// This code is copyright ©  2006-2007 CGI Group, Inc. All rights Reserved
// http://www.cgi-group.com
// This software is licensed for use only on http://www.smokeymountains.net
// The code cannot be altered, deleted, or copied in any fashion.  Changes are not acceptable. 
// Any unauthorised copying, altering, or recreating will constitute an infringement of copyright.
// This is not open-source and is not in the public domain.  
// ***************************************************
*/
function confContactMethod(obj){
	var sVal = obj[obj.selectedIndex].value;
	
	document.getElementById("dvReaderService").style.display = "none";
	document.getElementById("dvBulkGateway").style.display = "none";
	document.getElementById("dvDefault").style.display = "none";
	initValidateVG();
	
	if(sVal == "Reader Service"){
		document.getElementById("dvReaderService").style.display = "";
		document.getElementById("txtBulkGateway").value = "";
		document.getElementById("txtNumBulkGateway").value = "";
		clearVGDefaultFields();
	}
	else if(sVal == "Bulk Gateway"){
		document.getElementById("dvBulkGateway").style.display = "";
		document.getElementById("ddlReaderServiceReferral").selectedIndex = 0;
		document.getElementById("txtNumReaderService").value = "";
		clearVGDefaultFields();
	}
	else{
		document.getElementById("dvDefault").style.display = "";
		document.getElementById("ddlReaderServiceReferral").selectedIndex = 0;
		document.getElementById("txtNumReaderService").value = "";
		document.getElementById("txtBulkGateway").value = "";
		document.getElementById("txtNumBulkGateway").value = "";
	}

}
/*clear all the fields in the default div in vg.php*/
function clearVGDefaultFields(){
	var f = document.forms[0];
	document.getElementById("txtFirstName").value = "";
	document.getElementById("txtLastName").value = "";
	document.getElementById("txtEmailAddress").value = "";
	document.getElementById("txtAddress1").value = "";
	document.getElementById("txtAddress2").value = "";
	document.getElementById("txtCity").value = "";
	document.getElementById("ddlState").selectedIndex = 0;
	document.getElementById("txtZip").value = "";
	document.getElementById("txtCountry").value = "";
	document.getElementById("ddlVisitMonth").selectedIndex = 0;
	document.getElementById("ddlVisitYear").selectedIndex = 0;
	document.getElementById("ddlPartyType").selectedIndex = 0;
	document.getElementById("txtPartySize").value = "";
	document.getElementById("ddlWebsiteReferral").selectedIndex = 0;
	document.getElementById("txtReferralOther").value = "";
	document.getElementById("ccComments").value = "";
	f.mail_visitors_guide[1].checked = true;
	f.mail_visitors_guide[0].checked = false;
	f.online_visitors_guide[1].checked = true;
	f.online_visitors_guide[0].checked = false;
	
	for(var i=0;i<f.elements.length;i++){
	    if(f.elements[i].type == "checkbox"){
		    var s = f.elements[i].name;
		    f.elements[i].checked = false;
		    if(s.indexOf('[') > 0){
		       var chkNameParts = s.split('[');
		       var part1 = chkNameParts[0];
		       var part2 = chkNameParts[1];
		       part1 = part1.substr(2,part1.length);
		       part2 = part2.replace('\]','');
		       if(document.getElementById('txtSO_'+part1+part2)){
			       document.getElementById('txtSO_'+part1+part2).value = "";
		       }
		        if(document.getElementById('dvSO_'+part1+part2)){
			       document.getElementById('dvSO_'+part1+part2).style.display = "none";
		       }
		    }
		    if(f.elements['parent_' + s]){
		       var childvals = new String;
		       childvals = f.elements['parent_' + s].value;
		       var children = new Array;
		       children = childvals.split(",");
		       var oneChecked = false;
		       for(var x=0;x<children.length;x++){
			       var chkNameParts = s.split('[');
			       var part1 = chkNameParts[0];
			       var part2 = chkNameParts[1];
			       part1 = part1.substr(2,part1.length);
			       part2 = part2.replace('\]','');
			       if(document.getElementById('txtSO_'+part1+part2)){
				     document.getElementById('txtSO_'+part1+part2).value = "";
			       }
			       if(document.getElementById('dvSO_'+part1+part2)){
				     document.getElementById('dvSO_'+part1+part2).style.display = "none";
			       }
		       }
		    }
	    }
       }
}
function validateAIForm(){
	document.getElementById("lblAIName").style.color = "#000066";
	document.getElementById("lblAIParent").style.color = "#000066";
	document.getElementById("lblAISpecific").style.color = "#000066";
	document.getElementById("lblIndex").style.color = "#000066";
	document.getElementById("lblInactive").style.color = "#000066";
	
	var error = false;
	
	if(document.getElementById('txtAIName').value == ""){
		document.getElementById("lblAIName").style.color = "red";
		error=true;
	}
	if(document.getElementById('txtIndex').value <= 0){
		document.getElementById("lblIndex").style.color = "red";
		error=true;
	}
	if(error == true){
		if(error==true)
			document.getElementById("requiredmsg").style.display = '';
		else
			document.getElementById("requiredmsg").style.display = 'none';
		window.scroll(0,0);
		return false;
	}
	
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}
}
function validateReferralForm(){
	document.getElementById("lblCode").style.color = "#000066";
	document.getElementById("lblName").style.color = "#000066";
	document.getElementById("lblIndex").style.color = "#000066";
	document.getElementById("lblActive").style.color = "#000066";
		
	var errormsg = '';
	var error = false;
	
	if(document.getElementById('wr_code').value == ""){
		document.getElementById("lblCode").style.color = "red";
		error=true;
	}
	if(document.getElementById('wr_name').value == ""){
		document.getElementById("lblName").style.color = "red";
		error=true;
	}
	if(document.getElementById('wr_list_index').value <= 0){
		document.getElementById("lblIndex").style.color = "red";
		error=true;
	}
	var wr_code = document.getElementById('wr_code').value;
	var db_wr_code = document.getElementById('db_wr_code').value;
	if(wr_code != db_wr_code){
		for(var x=0;x<db_codes.length;x++){
			if(wr_code == db_codes[x]){
				errormsg+='The code you entered is already in use. Please enter another code';			        	
			}
		}
	}
	if(error == true || errormsg != ""){
		if(error==true)
			document.getElementById("requiredmsg").style.display = '';
		else
			document.getElementById("requiredmsg").style.display = 'none';
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		window.scroll(0,0);
		return false;
	}
	
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}
}
function confAIAdd(){
	document.getElementById('ai').style.display='';
	document.getElementById('btn_add').style.display='';
	document.getElementById('btn_update').style.display='none';
	document.getElementById('add_ai').style.display = '';
	document.getElementById('edit_ai').style.display = 'none';
	document.getElementById('txtAIName').value = "";
	document.getElementById('ddlAIParent').selectedIndex = "0";
	document.getElementById('chkAISpecific').checked = false;
	document.getElementById('txtIndex').value = "";
	document.getElementById('chkInactive').checked = false;
	document.getElementById("lblAIName").style.color = "#000066";
	document.getElementById("lblAIParent").style.color = "#000066";
	document.getElementById("lblAISpecific").style.color = "#000066";
	document.getElementById("lblIndex").style.color = "#000066";
	document.getElementById("lblInactive").style.color = "#000066";
}
function confReferralAdd(){
	document.getElementById('referral').style.display='';
	document.getElementById('btn_add').style.display='';
	document.getElementById('btn_update').style.display='none';
	document.getElementById('add_referral').style.display = '';
	document.getElementById('edit_referral').style.display = 'none';
	document.getElementById('db_wr_code').value = "";
	document.getElementById('wr_code').value = "";
	document.getElementById('wr_name').value = "";
	document.getElementById('wr_list_index').value = "50";
	document.getElementById('wr_inactive').checked = false;
	document.getElementById("lblCode").style.color = "#000066";
	document.getElementById("lblName").style.color = "#000066";
	document.getElementById("lblIndex").style.color = "#000066";
	document.getElementById("lblActive").style.color = "#000066";
}
function validateTdaUser(){
	if(document.getElementById('login_username').value == '' || document.getElementById('login_password').value == ''){
		document.getElementById('formerror').style.display= '';
		return false;
	}else{
		return true;
	}
}
/*this function checks the length of the value in the input field and determines if its max length has
been reached. If so, the focus goes to the next field. Field (object), maxlength (int), and focusField (object)
are paremeters to this function.*/
function checkNumberLen(field,maxLength,focusField){
   if(field.value.length==maxLength)
      focusField.focus();

}
/*This function accepts a field (string) as a parameter and checks to be sure that every character entered
in the input field is numeric*/
function checkNumericy(field) {
   if(field.value=="." && field.value.length==1)
      field.value="0"+field.value;
   else
   {
      while (isNaN(field.value))
         field.value = field.value.substr(0, field.value.length - 1);
   }
}
/*this function accepts a ddl element and determines if a group size needs to be captured.
  if so, the td is dispalyed for the group size. If not, the td is hidden and the group
  size value cleared*/
function confPartySize(obj){
	if(obj[obj.selectedIndex].value == "group"){
		document.getElementById("dvGroupSize").style.display = '';
	}
	else{
		document.getElementById("dvGroupSize").style.display = 'none';
		document.getElementById("txtPartySize").value = "";
	}
}
/*this function accepts a ddl element and determines if the referral selected was other.  If so, display the text
element for the user to enter the 'Other' referral.  If not, clear and hide the text element*/
function confReferral(obj){
	if(obj[obj.selectedIndex].text == "Other"){
		document.getElementById("trReferral").style.display = '';
	}
	else{
		document.getElementById("trReferral").style.display = 'none';
		document.getElementById("txtReferralOther").value = "";
	}
}
/*this function accepts the form object, a checkbox object, and a checkbox type name string.  Any checkbox
elements in the page that contains the checkbox type name will be set to the checkbox object's checked
property that was passed in*/
function confChkAll(f,obj,chkTypeName){
	var s = new String;
	for(var i=0;i<f.elements.length;i++){
		if(f.elements[i].type == "checkbox"){
			s = f.elements[i].name;
			if(s.indexOf(chkTypeName) >= 0){
				f.elements[i].checked = obj.checked;
			}
		}

	}
}
function confAccomCheckboxes(f,obj){
	var chkTypeName = "soac[";
	for(var i=0;i<document.forms[0].elements.length;i++){
		s = document.forms[0].elements[i].name;
		if(document.forms[0].elements[i].type == "checkbox" && s.indexOf(chkTypeName) >= 0){
			if(obj.checked == true){
				document.forms[0].elements[i].checked = false;
				document.forms[0].elements[i].disabled = "disabled";
			}
			else{ 
				document.forms[0].elements[i].disabled = "";
			}	

		}
	}	
}
/*this function clears all the elements in the referral source form*/
function clearAIForm(f){
	document.getElementById('ai').style.display = 'none';
        document.getElementById("requiredmsg").style.display = 'none';
	document.getElementById("errormsg").style.display = 'none';


}
/*this function clears all the elements in the referral source form*/
function clearReferralForm(f){
	document.getElementById('referral').style.display = 'none';
        document.getElementById("requiredmsg").style.display = 'none';
	document.getElementById("errormsg").style.display = 'none';


}
/*this function clears all the elements in the visitor's guide mail filter*/
function clearVGMailForm(){
	document.getElementById("contact_start_month").selectedIndex = 0;
	document.getElementById("contact_start_day").selectedIndex = 0;
	document.getElementById("contact_start_year").selectedIndex = 0;
	document.getElementById("contact_end_month").selectedIndex = 0;
	document.getElementById("contact_end_day").selectedIndex = 0;
	document.getElementById("contact_end_year").selectedIndex = 0;
}
function clearNewsletterManForm(){
	document.getElementById("contact_start_month").selectedIndex = 0;
	document.getElementById("contact_start_day").selectedIndex = 0;
	document.getElementById("contact_start_year").selectedIndex = 0;
	document.getElementById("contact_end_month").selectedIndex = 0;
	document.getElementById("contact_end_day").selectedIndex = 0;
	document.getElementById("contact_end_year").selectedIndex = 0;
}

/*this function accepts the form object as a parameter and clears the elements in the management list filter*/
function clearListForm(f){
	document.getElementById("contact_start_month").selectedIndex = 0;
	document.getElementById("contact_start_day").selectedIndex = 0;
	document.getElementById("contact_start_year").selectedIndex = 0;
	document.getElementById("contact_end_month").selectedIndex = 0;
	document.getElementById("contact_end_day").selectedIndex = 0;
	document.getElementById("contact_end_year").selectedIndex = 0;
	document.getElementById("ddlPartyType").selectedIndex = 0;
	document.getElementById("ddlVisitMonth").selectedIndex = 0;
	document.getElementById("ddlVisitYear").selectedIndex = 0;
	for(var i=0;i<f.elements.length;i++){
		if(f.elements[i].type == "checkbox"){
			f.elements[i].checked = false;
		}
	}
}
function clearLoginForm(f){
	document.getElementById("login_start_month").selectedIndex = 0;
	document.getElementById("login_start_day").selectedIndex = 0;
	document.getElementById("login_start_year").selectedIndex = 0;
	document.getElementById("login_end_month").selectedIndex = 0;
	document.getElementById("login_end_day").selectedIndex = 0;
	document.getElementById("login_end_year").selectedIndex = 0;
}
/*this function validates that all the information required has been filled in before filtering
   on the newsletter management form*/
function validateNewsletterManForm(){
	var errormsg = "";
	var contactStartMonth = "00";
	var contactStartDay = "00";
	var contactStartYear = "0000";
	var contactEndMonth = "00";
	var contactEndDay = "00";
	var contactEndYear = "0000";
	var contactStartDate = "";
	var contactEndDate = "";

	document.getElementById("lblFromContactDate").style.color = "#000066";
	document.getElementById("lblToContactDate").style.color = "#000066";
	
	
	if(document.getElementById("contact_start_year").value != "")
		contactStartYear = document.getElementById("contact_start_year").value;
	if(document.getElementById("contact_start_month").value != "")
		contactStartMonth = document.getElementById("contact_start_month").value;
	if(document.getElementById("contact_start_day").value != "")
		contactStartDay = document.getElementById("contact_start_day").value;
	if(document.getElementById("contact_end_year").value != "")
		contactEndYear = document.getElementById("contact_end_year").value;
	if(document.getElementById("contact_end_month").value != "")
		contactEndMonth = document.getElementById("contact_end_month").value;
	if(document.getElementById("contact_end_day").value != "")
		contactEndDay = document.getElementById("contact_end_day").value;

		
	contactStartDate = contactStartYear + contactStartMonth + contactStartDay;
	contactEndDate = contactEndYear + contactEndMonth + contactEndDay;
	
	if(contactStartMonth <= 0 || contactStartDay <=0 || contactStartYear <= 0 ){
		document.getElementById("lblFromContactDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the Requests 'from' date.<br>";
	
	}
	if(contactEndMonth <= 0 || contactEndDay <=0 || contactEndYear <= 0 ){
		document.getElementById("lblToContactDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the Requests 'through' date.<br>";
	}
	if((contactStartMonth > 0 && contactStartDay > 0 && contactStartYear > 0 && contactEndMonth > 0 && 
		contactEndDay > 0 && contactEndYear > 0) && contactStartDate > contactEndDate){
		document.getElementById("lblToContactDate").style.color = "red";
		errormsg+= "The 'through' date must be after the 'from' date.<br>";
	}
	if(errormsg != ""){
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		window.scroll(0,0);
		return false;
	}
	
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}
}

/*this function validates that all the information required has been filled in before filtering
   on the visitor's guide mail form*/
function validateVGMailForm(){
	var errormsg = "";
	var contactStartMonth = "00";
	var contactStartDay = "00";
	var contactStartYear = "0000";
	var contactEndMonth = "00";
	var contactEndDay = "00";
	var contactEndYear = "0000";
	var contactStartDate = "";
	var contactEndDate = "";

	document.getElementById("lblFromContactDate").style.color = "#000066";
	document.getElementById("lblToContactDate").style.color = "#000066";
	
	
	if(document.getElementById("contact_start_year").value != "")
		contactStartYear = document.getElementById("contact_start_year").value;
	if(document.getElementById("contact_start_month").value != "")
		contactStartMonth = document.getElementById("contact_start_month").value;
	if(document.getElementById("contact_start_day").value != "")
		contactStartDay = document.getElementById("contact_start_day").value;
	if(document.getElementById("contact_end_year").value != "")
		contactEndYear = document.getElementById("contact_end_year").value;
	if(document.getElementById("contact_end_month").value != "")
		contactEndMonth = document.getElementById("contact_end_month").value;
	if(document.getElementById("contact_end_day").value != "")
		contactEndDay = document.getElementById("contact_end_day").value;

		
	contactStartDate = contactStartYear + contactStartMonth + contactStartDay;
	contactEndDate = contactEndYear + contactEndMonth + contactEndDay;
	
	if(contactStartMonth <= 0 || contactStartDay <=0 || contactStartYear <= 0 ){
		document.getElementById("lblFromContactDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the Requests 'from' date.<br>";
	
	}
	if(contactEndMonth <= 0 || contactEndDay <=0 || contactEndYear <= 0 ){
		document.getElementById("lblToContactDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the Requests 'through' date.<br>";
	}
	if((contactStartMonth > 0 && contactStartDay > 0 && contactStartYear > 0 && contactEndMonth > 0 && 
		contactEndDay > 0 && contactEndYear > 0) && contactStartDate > contactEndDate){
		document.getElementById("lblToContactDate").style.color = "red";
		errormsg+= "The 'through' date must be after the 'from' date.<br>";
	}
	if(errormsg != ""){
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		window.scroll(0,0);
		return false;
	}
	
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}



}
function validateLoginForm(f){

	var errormsg = "";
	var loginStartMonth = "00";
	var loginStartDay = "00";
	var loginStartYear = "0000";
	var loginEndMonth = "00";
	var loginEndDay = "00";
	var loginEndYear = "0000";
	var loginStartDate = "";
	var loginEndDate = "";
	

	document.getElementById("lblFromLoginDate").style.color = "#000066";
	document.getElementById("lblToLoginDate").style.color = "#000066";
	
	
	if(document.getElementById("login_start_year").value != "")
		loginStartYear = document.getElementById("login_start_year").value;
	if(document.getElementById("login_start_month").value != "")
		loginStartMonth = document.getElementById("login_start_month").value;
	if(document.getElementById("login_start_day").value != "")
		loginStartDay = document.getElementById("login_start_day").value;
	if(document.getElementById("login_end_year").value != "")
		loginEndYear = document.getElementById("login_end_year").value;
	if(document.getElementById("login_end_month").value != "")
		loginEndMonth = document.getElementById("login_end_month").value;
	if(document.getElementById("login_end_day").value != "")
		loginEndDay = document.getElementById("login_end_day").value;

		
	loginStartDate = loginStartYear + loginStartMonth + loginStartDay;
	loginEndDate = loginEndYear + loginEndMonth + loginEndDay;
	
	if(loginStartMonth <= 0 || loginStartDay <=0 || loginStartYear <= 0 ){
		document.getElementById("lblFromLoginDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the logins 'from' date.<br>";
	
	}
	if(loginEndMonth <= 0 || loginEndDay <=0 || loginEndYear <= 0 ){
		document.getElementById("lblToLoginDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the logins 'through' date.<br>";
	}
	if((loginStartMonth > 0 && loginStartDay > 0 && loginStartYear > 0 && loginEndMonth > 0 && 
		loginEndDay > 0 && loginEndYear > 0) && loginStartDate > loginEndDate){
		document.getElementById("lblToLoginDate").style.color = "red";
		errormsg+= "The 'through' date must be after the 'from' date.<br>";
	}
	if(errormsg != ""){
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		window.scroll(0,0);
		return false;
	}
	
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}


}
/*this function validates the form data for the management list form*/
function validateListForm(f,leadtype){
	var errormsg = "";
	var contactStartMonth = "00";
	var contactStartDay = "00";
	var contactStartYear = "0000";
	var contactEndMonth = "00";
	var contactEndDay = "00";
	var contactEndYear = "0000";
	var contactStartDate = "";
	var contactEndDate = "";
	

	document.getElementById("lblFromContactDate").style.color = "#000066";
	document.getElementById("lblToContactDate").style.color = "#000066";
	
	
	if(document.getElementById("contact_start_year").value != "")
		contactStartYear = document.getElementById("contact_start_year").value;
	if(document.getElementById("contact_start_month").value != "")
		contactStartMonth = document.getElementById("contact_start_month").value;
	if(document.getElementById("contact_start_day").value != "")
		contactStartDay = document.getElementById("contact_start_day").value;
	if(document.getElementById("contact_end_year").value != "")
		contactEndYear = document.getElementById("contact_end_year").value;
	if(document.getElementById("contact_end_month").value != "")
		contactEndMonth = document.getElementById("contact_end_month").value;
	if(document.getElementById("contact_end_day").value != "")
		contactEndDay = document.getElementById("contact_end_day").value;

		
	contactStartDate = contactStartYear + contactStartMonth + contactStartDay;
	contactEndDate = contactEndYear + contactEndMonth + contactEndDay;
	
	if(contactStartMonth <= 0 || contactStartDay <=0 || contactStartYear <= 0 ){
		document.getElementById("lblFromContactDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the leads 'from' date.<br>";
	
	}
	if(contactEndMonth <= 0 || contactEndDay <=0 || contactEndYear <= 0 ){
		document.getElementById("lblToContactDate").style.color = "red";
		errormsg+="You must enter the month, date and year for the leads 'through' date.<br>";
	}
	if((contactStartMonth > 0 && contactStartDay > 0 && contactStartYear > 0 && contactEndMonth > 0 && 
		contactEndDay > 0 && contactEndYear > 0) && contactStartDate > contactEndDate){
		document.getElementById("lblToContactDate").style.color = "red";
		errormsg+= "The 'through' date must be after the 'from' date.<br>";
	}
	oneChecked = false;
	for(var i=0;i<f.elements.length;i++){
	     if(f.elements[i].type == "checkbox"){
		     if(f.elements[i].checked == true)
		     	oneChecked = true;
	     }
	}
	if(oneChecked == false){
		if(leadtype == 'ac')
			lead_cat = "accommodation";
		else if(leadtype == 'ai')
			lead_cat = "activity/interest";
		errormsg+= "You must select an " + lead_cat + ".<br>";
	
	}
	if(errormsg != ""){
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		window.scroll(0,0);
		return false;
	}
	
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}
}
function initValidateVG(){
	document.getElementById("lblAddress").style.color = "#000066";
	document.getElementById("lblStreet").style.color = "#000066";
	document.getElementById("lblCity").style.color = "#000066";
	document.getElementById("lblState").style.color = "#000066";
	document.getElementById("lblZip").style.color = "#000066";
	document.getElementById("lblVisitMonth").style.color = "#000066";
	document.getElementById("lblVisitYear").style.color = "#000066";
	document.getElementById("dvGroupSize").style.color = "#000066";
	document.getElementById("lblReferralOther").style.color = "#000066";
	document.getElementById("lblFirstName").style.color = "#000066";
	document.getElementById("lblLastName").style.color = "#000066";
	document.getElementById("lblEmailAddress").style.color = "#000066";
	document.getElementById("lblContactMethod").style.color = "#000066";
	document.getElementById("lblReaderService").style.color = "#000066";
	document.getElementById("lblNumReaderService").style.color = "#000066";
	document.getElementById("lblBulkGateway").style.color = "#000066";
	document.getElementById("lblNumBulkGateway").style.color = "#000066";
	document.getElementById("requiredmsg").style.display = 'none';
	document.getElementById("errormsg").style.display = 'none';
	document.getElementById("sperrormsg").innerHTML ="";
}

var isCancel = false;

function validateNewsletterForm(f){
	var error = false;
	var errormsg = "";
	var specifyError = '';
	
	document.getElementById("lblFirstName").style.color = "#000066";
	document.getElementById("lblLastName").style.color = "#000066";
	document.getElementById("lblEmailAddress").style.color = "#000066";
	document.getElementById("lblCity").style.color = "#000066";
	document.getElementById("lblState").style.color = "#000066";
	document.getElementById("lblGender").style.color = "#000066";
	document.getElementById("lblResearchWebsite").style.color = "#000066";
	document.getElementById("lblResearchPublication").style.color = "#000066";
	document.getElementById("lblResearchOther").style.color = "#000066";
	document.getElementById("requiredmsg").style.display = 'none';
	document.getElementById("errormsg").style.display = 'none';
	document.getElementById("sperrormsg").innerHTML ="";
	
	if(document.getElementById('txtFirstName').value == ""){
		 document.getElementById("lblFirstName").style.color = "red";
		 error=true;
	 }
	 if(document.getElementById('txtLastName').value  == ""){
		 document.getElementById("lblLastName").style.color = "red";
		 error=true;
	 }
	 if(document.getElementById('txtCity').value == ""){
		 document.getElementById("lblCity").style.color = "red";
		 error=true;
	 }
	 if(document.getElementById('ddlState').selectedIndex == 0){
		 document.getElementById("lblState").style.color = "red";
		 error=true;
	 }
	 if(document.getElementById('txtEmailAddress').value == ''){
		 document.getElementById("lblEmailAddress").style.color = "red";
		 error=true;
	 }
	 if(document.getElementById('ddlGender').selectedIndex == 0){
		 document.getElementById("lblGender").style.color = "red";
		 error=true;
	 }
	 var activityChecked = false;
	 var researchMethodChecked = false;
	 for(var i=0;i<f.elements.length;i++){
	     if(f.elements[i].type == "checkbox"){
		     var s = f.elements[i].name;
		     if(s.indexOf('nl[') > 0){
			     if(f.elements[i].checked == true){
				activityChecked = true;
				var chkNameParts = s.split('[');
				var part1 = chkNameParts[0];
				var part2 = chkNameParts[1];
				part1 = part1.substr(2,part1.length);
				part2 = part2.replace('\]','');
				if(document.getElementById('txtSO_'+part1+part2) && document.getElementById('txtSO_'+part1+part2).value == ""){
					if(specifyError == "")
						specifyError+="You have selected one or more activities that require you to specify the type before continuing.<br>"
				}
			     }
			     if(f.elements['parent_' + s] && f.elements[i].checked == true){
		     		var childvals = new String;
				childvals = f.elements['parent_' + s].value;
		     		var children = new Array;
				children = childvals.split(",");
				var oneChecked = false;
				for(var x=0;x<children.length;x++){
			        	//document.getElementById will not work with children[x] as the name.  f.elements() does work
					if(f.elements(children[x]).checked == f.elements[i].checked){
						oneChecked = true;
						var chkNameParts = s.split('[');
						var part1 = chkNameParts[0];
						var part2 = chkNameParts[1];
						part1 = part1.substr(2,part1.length);
						part2 = part2.replace('\]','');
						if(document.getElementById('txtSO_'+part1+part2) && document.getElementById('txtSO_'+part1+part2).value == ""){
							if(specifyError == "")
								specifyError+="You have selected one or more activities that require you to specify the type before continuing.<br>"
			     			}
					}

				}
				if(oneChecked == false){
					var parentname = document.getElementById(s+'_name').value;
					errormsg += "If you are going to select " + parentname + ", please indicate which of the related items you are interested in.<br>"; 
				}
			     }
		    }
		    else if(s.indexOf('ResearchMethod[') > 0){
		    	if(f.elements[i].checked == true){
				researchMethodChecked = true;
				if(f.elements[i].value == "Internet" && document.getElementById("txtResearchWebsite").value == ""){
					document.getElementById("lblResearchWebsite").style.color = "red";
		 			error=true;
				}
				if(f.elements[i].value == "Print Ad" && document.getElementById("txtResearchPublication").value == ""){
					document.getElementById("lblResearchPublication").style.color = "red";
		 			error=true;
				}
				if(f.elements[i].value == "Other" && document.getElementById("txtResearchOther").value == ""){
					document.getElementById("lblResearchOther").style.color = "red";
		 			error=true;
				}
			}
		    
		    }
	     }
	}
	if(activityChecked == false){
	     errormsg += "You must select at least one leisure activity.<br>"; 
	}
	if(researchMethodChecked == false){
	     errormsg+= "You must select at least one research method.<br>";
	}
	errormsg+=specifyError;
	if(error == true || errormsg != ""){
		if(error==true)
			document.getElementById("requiredmsg").style.display = '';
		else
			document.getElementById("requiredmsg").style.display = 'none';
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		window.scroll(0,0);
		return false;
	}
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}
}
/*this function accepts a checkbox (object) and determines if it has been checked.  If so, if it is a research method that requires
   specific information, the td holding the textbox for additional information is displayed.  If the checkbox is not checked, the
   specific information text box is cleared and the td hidden.*/
function confResearchMethod(obj){
 	if(obj.value == "Internet"){
		if(obj.checked == true){
			document.getElementById("tdResearchWebsite").style.display = "";
		}
		else{
			document.getElementById("tdResearchWebsite").style.display = "none";
			document.getElementById("txtResearchWebsite").value = "";
		}
	}
	if(obj.value == "Print Ad"){
		if(obj.checked == true){
			document.getElementById("tdResearchPublication").style.display = "";	
		}
		else{
			document.getElementById("tdResearchPublication").style.display = "none";
			document.getElementById("txtResearchPublication").value = "";
		}
	}
	if(obj.value == "Other"){
		if(obj.checked == true){
			document.getElementById("tdResearchOther").style.display = "";	
		}
		else{
			document.getElementById("tdResearchOther").style.display = "none";
			document.getElementById("txtResearchOther").value = "";
		}
	}	
}
function validateForm(f){
	var error = false;
	var errormsg = "";
	var onlineVisitorsGuideOnly = true;
	var specifyError = '';
	
	initValidateVG();
	
	if(document.getElementById("trRequestMethod").style.display != "none" && (document.getElementById('ddlContactMethod')[document.getElementById('ddlContactMethod').selectedIndex].text ==
		'Reader Service' || document.getElementById('ddlContactMethod')[document.getElementById('ddlContactMethod').selectedIndex].text ==
		'Bulk Gateway')){
			if(document.getElementById('ddlContactMethod')[document.getElementById('ddlContactMethod').selectedIndex].text =='Reader Service'){
				if(document.getElementById('txtNumReaderService').value == ""){
					document.getElementById("lblNumReaderService").style.color = "red";
					error=true;
				}
				if(document.getElementById('ddlReaderServiceReferral').selectedIndex == 0){
					document.getElementById("lblReaderService").style.color = "red";
					error=true;
				}
			}
			else if(document.getElementById('ddlContactMethod')[document.getElementById('ddlContactMethod').selectedIndex].text =='Bulk Gateway'){
				if(document.getElementById('txtBulkGateway').value == ""){
					document.getElementById("lblBulkGateway").style.color = "red";
					error=true;
				}
				if(document.getElementById('txtNumBulkGateway').value == ""){
					document.getElementById("lblNumBulkGateway").style.color = "red";
					error=true;
				}
			}
	}
	else{	
		//check first and see if anything other than just the online visitors guide was
		//requested by the user.  If so, nothing needs to be validated.  
		var obj = f.elements["mail_visitors_guide"];
		var mailGuide = 0;
   		for(i=0;i<obj.length;i++)
		{
			if(obj[i].checked == true){
				mailGuide= obj[i].value;
			}
		}
		var obj = f.elements["online_visitors_guide"];
		var onlineGuide = 0;
   		for(i=0;i<obj.length;i++)
		{
			if(obj[i].checked == true){
				onlineGuide= obj[i].value;
			}
		}

		var oneCheckboxChecked = false;
		for(var i=0;i<f.elements.length;i++){
			if(f.elements[i].type == "checkbox"){
				if(f.elements[i].checked == true){
					oneCheckboxChecked = true;
					break;
				}
			}
		}
		if(document.getElementById('ddlVisitMonth').selectedIndex > 0 || document.getElementById('ddlVisitYear').selectedIndex > 0
			|| document.getElementById('ddlPartyType').selectedIndex > 0 || document.getElementById('ddlWebsiteReferral').selectedIndex > 0
			|| document.getElementById('ccComments').value != "" || oneCheckboxChecked == true || mailGuide > 0 ||
			(document.getElementById("trRequestMethod").style.display != "none" && document.getElementById("ddlContactMethod").selectedIndex > 0)){
	     		onlineVisitorsGuideOnly = false;

		}
		if(onlineVisitorsGuideOnly == true && onlineGuide <= 0)
			errormsg+="You must enter information on this form to continue.";

		if(onlineVisitorsGuideOnly == false){
			if(document.getElementById('txtFirstName').value == ""){
				document.getElementById("lblFirstName").style.color = "red";
				error=true;
			}
			if(document.getElementById('txtLastName').value  == ""){
				document.getElementById("lblLastName").style.color = "red";
				error=true;
			}
			if(document.getElementById('ccComments').value != "" && document.getElementById('txtEmailAddress').value == ''){
				document.getElementById("lblEmailAddress").style.color = "red";
				error=true;
			}
			if(document.getElementById('txtAddress1').value == ""){
				document.getElementById("lblStreet").style.color = "red";
				error=true;
			}
			if(document.getElementById('txtCity').value == ""){
				document.getElementById("lblCity").style.color = "red";
				error=true;
			}
			if(document.getElementById('ddlState').selectedIndex == 0){
				document.getElementById("lblState").style.color = "red";
				error=true;
			}
			if(document.getElementById('txtZip').value == ""){
				document.getElementById("lblZip").style.color = "red";
				error=true;
			}
			if(document.getElementById('ddlVisitMonth').selectedIndex > 0 && document.getElementById('ddlVisitYear').selectedIndex == 0 ){
				document.getElementById("lblVisitYear").style.color = "red";
				error=true;
			}
			if(document.getElementById('ddlVisitYear').selectedIndex > 0 && document.getElementById('ddlVisitMonth').selectedIndex == 0 ){
				document.getElementById("lblVisitMonth").style.color = "red";
				error=true;
			}
			if(document.getElementById('ddlPartyType')[document.getElementById('ddlPartyType').selectedIndex].text == 'Group' && document.getElementById('txtPartySize').value == ''){
				document.getElementById("dvGroupSize").style.color = "red";
				error  = true;
			}
			if(document.getElementById("trRequestMethod").style.display != "none"){
				if(document.getElementById("ddlContactMethod").selectedIndex == 0){
					document.getElementById("lblContactMethod").style.color = "red";
					error=true;
				}

			}
			if(document.getElementById('ddlWebsiteReferral')[document.getElementById('ddlWebsiteReferral').selectedIndex].text == 'Other' && document.getElementById('txtReferralOther').value == ''){
				document.getElementById("lblReferralOther").style.color = "red";
				error  = true;
			}
			for(var i=0;i<f.elements.length;i++){
			     if(f.elements[i].type == "checkbox"){
				     var s = f.elements[i].name;
				     if(f.elements[i].checked == true && s.indexOf('[') > 0){
			     		var chkNameParts = s.split('[');
					var part1 = chkNameParts[0];
					var part2 = chkNameParts[1];
					part1 = part1.substr(2,part1.length);
					part2 = part2.replace('\]','');
					if(document.getElementById('txtSO_'+part1+part2) && document.getElementById('txtSO_'+part1+part2).value == ""){
						if(specifyError == "")
							specifyError+="You have selected one or more activities/interests that require you to specify the type before continuing.\n"
			     		}
				     }
				     if(f.elements['parent_' + s] && f.elements[i].checked == true){
		     			var childvals = new String;
					childvals = f.elements['parent_' + s].value;
		     			var children = new Array;
					children = childvals.split(",");
					var oneChecked = false;
					for(var x=0;x<children.length;x++){
			        		//document.getElementById will not work with children[x] as the name.  f.elements() does work
						if(f.elements(children[x]).checked == f.elements[i].checked){
							oneChecked = true;
							var chkNameParts = s.split('[');
							var part1 = chkNameParts[0];
							var part2 = chkNameParts[1];
							part1 = part1.substr(2,part1.length);
							part2 = part2.replace('\]','');
							if(document.getElementById('txtSO_'+part1+part2) && document.getElementById('txtSO_'+part1+part2).value == ""){
								if(specifyError == "")
									specifyError+="You have selected one or more activities/interests that require you to specify the type before continuing.\n"
			     				}
						}

					}
					if(oneChecked == false){
						var parentname = document.getElementById(s+'_name').value;
						errormsg += "If you are going to select " + parentname + ", please indicate which of the related items you are interested in.\n"; 
					}
				     }
			     }
			}
		}
	}
	errormsg+=specifyError;
	if(error == true || errormsg != ""){
               if(error==true)
			document.getElementById("requiredmsg").style.display = '';
		else
			document.getElementById("requiredmsg").style.display = 'none';
		if(errormsg != ""){
			document.getElementById("errormsg").style.display = '';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		}
		else{
			document.getElementById("errormsg").style.display = 'none';
			document.getElementById("sperrormsg").innerHTML =errormsg;
		
		}
		
               if(parent.document.getElementById('blockrandom')){
                       parent.iframe.scrollTo(0,top);
                }
                return false;
	}
	else{
		//this needs to return true when the php page it posts to is complete
		return true;
	}
}

/*
 * This algorithm was obtained from: http://www.mitre.org/research/y2k/docs/PROB.html#Leap
 * 
 * It follows the following logic:
 * 
 * 1. Years divisible by four are leap years, unless...
 *
 * 2. Years also divisible by 100 are not leap years, except...
 *
 * 3. Years divisible by 400 are leap years.
 */
function isLeapYear(year) {
   if ((year % 400) == 0) {
      return true;
   } else if ((year % 4) == 0 && (year % 100) != 0) {
      return true;
   }
   return false;
}

/*
 * This function populates the daySelect object based on the month and
 * year objects. The month will be a select object also, but the year
 * may be a select or a text box.
 */
function populateSelect(monthSelect, daySelect, yearObject) {
   // 31 day months: January, March, May, July, August, October, December
   // 30 day months: April, June, September, November
   // [29|28] day month: February
   var months31 = new RegExp("01|03|05|07|08|10|12");
   var months30 = new RegExp("04|06|09|11");
   
   // i always set one more options than the number of days 
   // to account for the empty option
   if (months31.test(monthSelect.value)) {  
      if (daySelect.length != 32) {
         write2DigitNumToSelect(daySelect, 32);  
      }
     
   } else if (months30.test(monthSelect.value)) {
      if (daySelect.length != 31)
         write2DigitNumToSelect(daySelect, 31);  
     
   } else {
      if (yearObject.value != "" && isLeapYear(parseInt(yearObject.value))) {
         if (daySelect.length != 30)
            write2DigitNumToSelect(daySelect, 30);  
      } else if (daySelect.length != 29)
         write2DigitNumToSelect(daySelect, 29);
   }
}

/*
 * This is a helper function to the populateSelect that clears options 
 * out of the select object passed in and writes numOptionsSet two digit 
 * numbers back into it. This function ensures an empty string is 
 * written to the first position.
 */
function write2DigitNumToSelect(selectObj, numOptionsToSet) {
   // clear old values
   var numOptions = selectObj.length;
   for (var i = 0; i < numOptions; i++) {
      selectObj.options[0] = null; 
   }
   // set new ones
   for (var i = 0; i < numOptionsToSet; i++) {
      var element = document.createElement("OPTION");
      element.text = element.value = (i < 10) ? '0' + i : i;
      selectObj.options[i]=element;
   }
   selectObj.options[0].text = "";   
}