var index;
function adjustCityStateZipCountry(){
	if (document.all.addresstype.length) {
		for (var ii=0; ii<document.all.addresstype.length; ii++) {
			index = ii;
			if (document.all.addresstype[ii].value != 'S') {
				// sponsor don't have address information
				zipOrPost(document.all.addresstype[ii].value);
				fillState(document.all.addresstype[ii].value);
			}
		}
	}
	else {
		index = 0;
		zipOrPost(document.all.addresstype.value);
		fillState(document.all.addresstype.value);
	}
	if (document.all.errormessage.value != '') {
		//alert(document.all.errormessage.value);
		document.all.errmessage.innerHTML = document.all.errmessage.innerHTML + '<b class=alert>' + document.all.errormessage.value + '</b>'
		document.all.errmessage.style.display = '';
	}
}
function verifyCountry(stype){
	var primaryCountry;
	var otherCountry;
	var index;
	var errMsg;
	index = 0;
	errMsg = '';
	var addresstype = 'R';
	if (eval('document.all.'+addresstype+'country[0][0]')) {
		// Recipient - primary and seasonal 
		if (eval('document.all.'+addresstype+'country['+index+'].length')) {
			// select list
			primaryCountry = eval('document.all.'+addresstype+'country['+index+'][document.all.'+addresstype+'country['+index+'].selectedIndex].value');
		}
		else {
			primaryCountry = eval('document.all.'+addresstype+'country['+index+'].value');
		}
		for (var ii=1; ii<=3; ii++) {
			otherCountry = eval('document.all.'+addresstype+'country['+ii+'][document.all.'+addresstype+'country['+ii+'].selectedIndex].value');
			if ((primaryCountry == 'US') && (otherCountry != 'US')) {
				//  since the cost of the US subscription is less than an international
				//  subscription, we only let them have 'US' seasonal addresses
				if (stype == 'N') {
					errMsg = 'The seasonal addresses must be US only.\n\nIf a seasonal international address is desired, the \ninternational address must be the primary address and \nthe seasonal addresses must be the US addresses.';
				}
				else {
					errMsg = 'The seasonal addresses must be US only.\n\nIf a seasonal international address is desired, the \nsubscription must be canceled and a new subscription \nentered with the international address as the primary \naddress and the US addresses as the seasonal addresses.';
				}
				break;
			}
		}
		if (errMsg != '') {
			alert(errMsg);
			return false;
		}
	}
	return true;
}
function zipOrPost(addresstype){
	if (eval('document.all.'+addresstype+'country[0][0]')) {
		// Recipient - primary and seasonal 
		if (eval('document.all.'+addresstype+'country['+index+'].length')) {
			// select list
			countrycode = eval('document.all.'+addresstype+'country['+index+'][document.all.'+addresstype+'country['+index+'].selectedIndex].value');
		}
		else {
			countrycode = eval('document.all.'+addresstype+'country['+index+'].value');
		}
	}
	else {
		if (eval('document.all.'+addresstype+'country.length')) {
			// select list
			countrycode = eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value');
		}
		else {
			countrycode = eval('document.all.'+addresstype+'country.value');
		}
	}
	if (countrycode == 'US' || countrycode == 'United States'){
		countrycode = 'US';
	}
	else if(countrycode == 'CAN' || countrycode == 'Canada'){
		countrycode = 'CAN';
	}
	else{
		countrycode = 'INT';
	}
	zipDisplay(addresstype,countrycode);
}
function zipDisplay(addresstype,country){	
	// zipDisplay controls the display of the zipcode or postal code title, 
	// the text fields and field attributes.
	// The function also truncates a string that is too long, ie, if a postal code
	// of 10 characters was entered, say for Guam, if the user then chooses Canada 
	// (maxlength = 7), the postal code value will be truncated to 7 characters. 

	if(country == 'US' || country == 'United States'){
		country = 'US';
	}
	if(country == 'CAN' || country == 'Canada'){
		country = 'CAN';
	}
	if(country == 'INT' || country == 'International'){
		country = 'INT';
	}
	if (country != 'US'){
		if (eval('document.all.'+addresstype+'zipText[0]')) {
			// Recipient - primary and seasonal 
			eval('document.all.'+addresstype+'zipText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'zipForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'zip['+index+'].value=""');
			eval('document.all.'+addresstype+'zip4['+index+'].value=""');
			eval('document.all.'+addresstype+'postalText['+index+'].style.display=""');
			eval('document.all.'+addresstype+'postalForm['+index+'].style.display=""');
			eval('document.all.'+addresstype+'stateText['+index+'].innerHTML = "Provinces"');
		}
		else {
			eval('document.all.'+addresstype+'zipText.style.display="none"');
			eval('document.all.'+addresstype+'zipForm.style.display="none"');
			eval('document.all.'+addresstype+'zip.value=""');
			eval('document.all.'+addresstype+'zip4.value=""');
			eval('document.all.'+addresstype+'postalText.style.display=""');
			eval('document.all.'+addresstype+'postalForm.style.display=""');
			eval('document.all.'+addresstype+'stateText.innerHTML = "Provinces"');
		}
	}
	else {
		if (eval('document.all.'+addresstype+'zipText[0]')) {
			// Recipient - primary and seasonal 
			eval('document.all.'+addresstype+'zipText['+index+'].style.display=""');
			eval('document.all.'+addresstype+'zipForm['+index+'].style.display=""');
			eval('document.all.'+addresstype+'postalText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'postalForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'postal['+index+'].value=""');
			eval('document.all.'+addresstype+'stateText['+index+'].innerHTML = "States"');
		}
		else {
			eval('document.all.'+addresstype+'zipText.style.display=""');
			eval('document.all.'+addresstype+'zipForm.style.display=""');
			eval('document.all.'+addresstype+'postalText.style.display="none"');
			eval('document.all.'+addresstype+'postalForm.style.display="none"');
			eval('document.all.'+addresstype+'stateText.innerHTML = "States"');		
		}
	}	
}
function fillState(addresstype) {
	var change;
	change = false;
	var countryCode;
	var stateCode;
	if (eval('document.all.'+addresstype+'country[0][0]')) {
		// Recipient - primary and seasonal 
		if (eval('document.all.'+addresstype+'country['+index+'].length')) {
			// select list
			countryCode = eval('document.all.'+addresstype+'country['+index+'][document.all.'+addresstype+'country['+index+'].selectedIndex].value');
			change = true;
		}
		else {
			countryCode = eval('document.all.'+addresstype+'country.value');
		}
		stateCode = eval('document.all.'+addresstype+'state['+index+'][document.all.'+addresstype+'state['+index+'].selectedIndex].value');
	}
	else {
		if (eval('document.all.'+addresstype+'country.length')) {
			countryCode = eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value');
			change = true;
		}
		else {
			countryCode = eval('document.all.'+addresstype+'country.value');
		}
		stateCode = eval('document.all.'+addresstype+'state[document.all.'+addresstype+'state.selectedIndex].value');
	}

	var newStates;
	if (eval('document.all.'+addresstype+'country[0][0]')) {
		if (countryCode == 'INT') { 
			eval('document.all.'+addresstype+'address1['+index+'].maxlength="100"');
			eval('document.all.'+addresstype+'address1['+index+'].size="50"');
			eval('document.all.'+addresstype+'address2['+index+'].maxlength="100"');
			eval('document.all.'+addresstype+'address2['+index+'].size="50"');
			eval('document.all.'+addresstype+'address3['+index+'].maxlength="100"');
			eval('document.all.'+addresstype+'address3['+index+'].size="50"');
			eval('document.all.'+addresstype+'intlText['+index+'].style.display=""');
			eval('document.all.'+addresstype+'intlForm['+index+'].style.display=""');
			eval('document.all.'+addresstype+'cityText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'cityForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'stateText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'stateForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'zipText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'zipForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'zip['+index+'].value=""');
			eval('document.all.'+addresstype+'zip4['+index+'].value=""');
			eval('document.all.'+addresstype+'postalText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'postalForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'postal['+index+'].value=""');
		}
		else {
			newStates = eval('document.all.'+countryCode+'States.value');
			eval('document.all.'+addresstype+'address1['+index+'].maxlength="35"');
			eval('document.all.'+addresstype+'address1['+index+'].size="35"');	
			eval('document.all.'+addresstype+'address2['+index+'].maxlength="35"');
			eval('document.all.'+addresstype+'address2['+index+'].size="35"');	
			eval('document.all.'+addresstype+'address3['+index+'].maxlength="35"');
			eval('document.all.'+addresstype+'address3['+index+'].size="35"');	
			eval('document.all.'+addresstype+'intlText['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'intlForm['+index+'].style.display="none"');
			eval('document.all.'+addresstype+'cityText['+index+'].style.display=""');
			eval('document.all.'+addresstype+'cityForm['+index+'].style.display=""');
			eval('document.all.'+addresstype+'stateText['+index+'].style.display=""');
			eval('document.all.'+addresstype+'stateForm['+index+'].style.display=""');
			eval('document.all.'+addresstype+'intlCountry['+index+'].value=""');			
			if (countryCode == 'CAN') {
				eval('document.all.'+addresstype+'zipText['+index+'].style.display="none"');
				eval('document.all.'+addresstype+'zipForm['+index+'].style.display="none"');
				eval('document.all.'+addresstype+'zip['+index+'].value=""');
				eval('document.all.'+addresstype+'zip4['+index+'].value=""');
				eval('document.all.'+addresstype+'postalText['+index+'].style.display=""');
				eval('document.all.'+addresstype+'postalForm['+index+'].style.display=""');
			}
			else {
				eval('document.all.'+addresstype+'zipText['+index+'].style.display=""');
				eval('document.all.'+addresstype+'zipForm['+index+'].style.display=""');
				eval('document.all.'+addresstype+'postalText['+index+'].style.display="none"');
				eval('document.all.'+addresstype+'postalForm['+index+'].style.display="none"');
				eval('document.all.'+addresstype+'postal['+index+'].value=""');
			}

			if (change) {
				var sform = eval('document.all.'+addresstype+'state['+index+']');
				sform.options.length = 0;

				var stateArray = newStates.split('|');
				for(var i=0;i<stateArray.length; i+=2){
					sform.options[i/2] = new Option (stateArray[i+1],stateArray[i],false,false);
				}
				for (var j=0;j<sform.options.length; j++) {
					if (sform.options[j].value == stateCode) {
						sform.options[j].selected = true;
					}
				}	
			}
		}
	}
	else {
		if (countryCode == 'INT') { 
			eval('document.all.'+addresstype+'address1.maxlength="100"');
			eval('document.all.'+addresstype+'address1.size="50"');
			eval('document.all.'+addresstype+'address2.maxlength="100"');
			eval('document.all.'+addresstype+'address2.size="50"');
			eval('document.all.'+addresstype+'address3.maxlength="100"');
			eval('document.all.'+addresstype+'address3.size="50"');
			eval('document.all.'+addresstype+'intlText.style.display=""');
			eval('document.all.'+addresstype+'intlForm.style.display=""');
			eval('document.all.'+addresstype+'cityText.style.display="none"');
			eval('document.all.'+addresstype+'cityForm.style.display="none"');
			eval('document.all.'+addresstype+'city.value=""');
			eval('document.all.'+addresstype+'stateText.style.display="none"');
			eval('document.all.'+addresstype+'stateForm.style.display="none"');
			eval('document.all.'+addresstype+'zipText.style.display="none"');
			eval('document.all.'+addresstype+'zipForm.style.display="none"');
			eval('document.all.'+addresstype+'zip.value=""');
			eval('document.all.'+addresstype+'zip4.value=""');
			eval('document.all.'+addresstype+'postalText.style.display="none"');
			eval('document.all.'+addresstype+'postalForm.style.display="none"');
			eval('document.all.'+addresstype+'postal.value=""');
		}
		else {
			newStates = eval('document.all.'+countryCode+'States.value');
			eval('document.all.'+addresstype+'address1.maxlength="35"');
			eval('document.all.'+addresstype+'address1.size="35"');	
			eval('document.all.'+addresstype+'address2.maxlength="35"');
			eval('document.all.'+addresstype+'address2.size="35"');	
			eval('document.all.'+addresstype+'address3.maxlength="35"');
			eval('document.all.'+addresstype+'address3.size="35"');	
			eval('document.all.'+addresstype+'intlText.style.display="none"');
			eval('document.all.'+addresstype+'intlForm.style.display="none"');
			eval('document.all.'+addresstype+'cityText.style.display=""');
			eval('document.all.'+addresstype+'cityForm.style.display=""');
			eval('document.all.'+addresstype+'stateText.style.display=""');
			eval('document.all.'+addresstype+'stateForm.style.display=""');
			eval('document.all.'+addresstype+'intlCountry.value=""');			
			if (countryCode == 'CAN') {
				eval('document.all.'+addresstype+'zipText.style.display="none"');
				eval('document.all.'+addresstype+'zipForm.style.display="none"');
				eval('document.all.'+addresstype+'zip.value=""');
				eval('document.all.'+addresstype+'zip4.value=""');
				eval('document.all.'+addresstype+'postalText.style.display=""');
				eval('document.all.'+addresstype+'postalForm.style.display=""');			
			}
			else {
				eval('document.all.'+addresstype+'zipText.style.display=""');
				eval('document.all.'+addresstype+'zipForm.style.display=""');
				eval('document.all.'+addresstype+'postalText.style.display="none"');
				eval('document.all.'+addresstype+'postalForm.style.display="none"');						
				eval('document.all.'+addresstype+'postal.value=""');

			}
			if (change) {
				var sform = eval('document.all.'+addresstype+'state');
				sform.options.length = 0;

				var stateArray = newStates.split('|');
				for(var i=0;i<stateArray.length; i+=2){
					sform.options[i/2] = new Option (stateArray[i+1],stateArray[i],false,false);
				}
				for (var j=0;j<sform.options.length; j++) {
					if (sform.options[j].value == stateCode) {
						sform.options[j].selected = true;
					}
				}
			}
		}
	}
}

function verifyAddress(){
	// Validates the following:
	// if city is filled in, country must also be filled in.
	// if country is filled in, city must also be filled in.
	// if country is filled in (and country is NOT INT), state must also be filled in.
	var atype = document.all.addresstype;
	var addresstype;
	var eMessage;
	var sVal;
	var bDot;
	var bAt;
	var bSpace;
	var length;
	
	if (atype.length) {
		length = atype.length;
	}
	else {
		length = 1;
	}
	for(var i=0;i <= length-1; i += 1){
		if (atype.length) {
			addresstype = document.all.addresstype[i].value;
		}
		else {
			addresstype = document.all.addresstype.value;
		}
		eMessage = '';
		switch(addresstype) {
			case 'D':	// Donor
				eMessage = 'for the Donor Information.'
				break;
			case 'S':	// Sponsor
				eMessage = 'for the Sponsor Information.'
				break;
			case 'G':	// Gift Recipient
				eMessage = 'for the Gift Recipient Information.'
    				break;
			case 'R':	// Recipient
				eMessage = 'for the Subscriber Information.'
				break;
		}
		ePrimary = 'for the Primary Address.'
		eSeasonal = 'for the Seasonal Address - '+i+'.'
		
		// name and company name
		if (eval('document.all.'+addresstype+'name')){
			// name exists 
			if (eval('document.all.'+addresstype+'name[0]')) {
				// Recipient - primary and seasonal - Rname array
				if(eval('document.all.'+addresstype+'name['+i+'].value') == ''){
					if (eval('document.all.'+addresstype+'company')) {
						// name exists and company exists ..
						if (eval('document.all.'+addresstype+'company['+i+'].value') == '') {
							if (i==0) {
								alert('Please enter either a name or a company name ' + ePrimary);
							}
							else {
								alert('Please enter either a name or a company name ' + eSeasonal);
							}
							eval('document.all.'+addresstype+'name['+i+'].focus()');
							return false;
						}
					}
					else {
						// only a name exists ... error
						if (i==0) {
							alert('Please enter a name ' + ePrimary);
						}
						else {
							alert('Please enter a name ' + eSeasonal);
						}
						eval('document.all.'+addresstype+'name['+i+'].focus()');
						return false;
					}
				}
			}
			else {
				if(eval('document.all.'+addresstype+'name.value') == ''){
					if (eval('document.all.'+addresstype+'company')) {
						// name exists and company exists ..
						if (eval('document.all.'+addresstype+'company.value') == '') {
							alert('Please enter either a name or a company name ' + eMessage);
							eval('document.all.'+addresstype+'name.focus()');
							return false;
						}
					}
					else {
						// only a name exists ... error
						alert('Please enter a name ' + eMessage);
						eval('document.all.'+addresstype+'name.focus()');
						return false;
					}
				}		
			}
		}
		else {
			// does company exist?
			if (eval('document.all.'+addresstype+'company')) {
				// company exists ... must have entered a value since name doesn't exist
				if (eval('document.all.'+addresstype+'company[0]')) {
					// Recipient - primary and seasonal - Rcompany Array
					if (eval('document.all.'+addresstype+'company['+i+'].value') == '') {
						if (i == 0) {
							alert('Please enter a company name ' + ePrimary);
						}
						else {
							alert('Please enter a company name ' +  eSeasonal);
						}
						eval('document.all.'+addresstype+'company['+i+'].focus()');
						return false;
					}
				}
				else {
					if (eval('document.all.'+addresstype+'company.value') == '') {
						alert('Please enter a company name ' + eMessage);
						eval('document.all.'+addresstype+'company.focus()');
						return false;
					}
				}
			}
		}
		// address
		// At least the first address line must be entered
		if (eval('document.all.'+addresstype+'address1')) {
			//  address1 exists
			if (eval('document.all.'+addresstype+'address1[0]')) {
				// Recipient - primary and seasonal - Raddress1 Array
				if (eval('document.all.'+addresstype+'address1['+i+'].value') == '') {
					if (i==0) {
						alert('Please enter an address ' + ePrimary);
					}
					else {
						alert('Please enter an address ' + eSeasonal);
					}
					eval('document.all.'+addresstype+'address1['+i+'].focus()');
					return false;
				}
			}
			else {			
				if (eval('document.all.'+addresstype+'address1.value') == '') {
					alert('Please enter an address ' + eMessage);
					eval('document.all.'+addresstype+'address1.focus()');
					return false;
				}
			}
		}			
		// country
		if (eval('document.all.'+addresstype+'country')) {
			if (eval('document.all.'+addresstype+'country[0][0]')) {
				// Recipient - primary and seasonal - Rcountry Array
				if(eval('document.all.'+addresstype+'country['+i+'][document.all.'+addresstype+'country['+i+'].selectedIndex].value') == ''){
					if (i == 0) {
						alert('Please select a country ' + ePrimary);
					}
					else {
						alert('Please select a country ' + eSeasonal);
					}
					eval('document.all.'+addresstype+'country['+i+'].focus()');
					return false;	
				}
			}
			else {
				if (eval('document.all.'+addresstype+'country.length')) {
					if(eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value') == ''){
						alert('Please select a country ' + eMessage);
						eval('document.all.'+addresstype+'country.focus()');
						return false;	
					}
				}
			}
		}			
		// city and country if state exists
		if(eval('document.all.'+addresstype+'state')){
			if (eval('document.all.'+addresstype+'state[0][0]')) {
				// Recipient - primary and seasonal - Rstate Array
				if(eval('document.all.'+addresstype+'country['+i+'][document.all.'+addresstype+'country['+i+'].selectedIndex].value') != 'INT') {
					if(eval('document.all.'+addresstype+'state['+i+'].value') != ''){
						if(eval('document.all.'+addresstype+'country['+i+'][document.all.'+addresstype+'country['+i+'].selectedIndex].value') == ''){
							if (i==0) {
								alert('Please select a country ' + ePrimary);
							}
							else {
								alert('Please select a country ' + eSeasonal);
							}
							eval('document.all.'+addresstype+'country['+i+'].focus()');
							return false;
						}			
						
						if(eval('document.all.'+addresstype+'city['+i+'].value') == ''){
							if (i == 0) {
								alert('Please enter a city ' + ePrimary);
							}
							else {
								alert('Please enter a city ' + eSeasonal);
							}
							eval('document.all.'+addresstype+'city['+i+'].focus()');
							return false;
						}
					}		
				
					else {
						if(eval('document.all.'+addresstype+'country['+i+'][document.all.'+addresstype+'country['+i+'].selectedIndex].value') != 'INT') {
							if (i == 0) {
								alert('Please select a state ' + ePrimary);
							}
							else {
								alert('Please select a state ' + eSeasonal);
							}
							eval('document.all.'+addresstype+'state['+i+'].focus()');
							return false
						}
					}
				}
			}
			else {					
				if(eval('document.all.'+addresstype+'state.value') != ''){
					//  Uncomment the following if states are allowed without countries.
							
					if(eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value') == ''){
						alert('Please select a country ' + eMessage);
						eval('document.all.'+addresstype+'country.focus()');
						return false;
					}			

					if(eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value') != 'INT') {
						if(eval('document.all.'+addresstype+'city.value') == ''){
							alert('Please enter a city ' + eMessage);
							eval('document.all.'+addresstype+'city.focus()');
							return false;
						}			
					}
				}
				else {
					if(eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value') != 'INT') {
						alert('Please select a state ' + eMessage);
						eval('document.all.'+addresstype+'state.focus()');
						return false
					}
				}
			}			
		}
		// international country
		if(eval('document.all.'+addresstype+'country')){
			if (eval('document.all.'+addresstype+'country[0][0]')) {
				// Recipient - primary and seasonal - Rcountry Array
				if(eval('document.all.'+addresstype+'country['+i+'][document.all.'+addresstype+'country['+i+'].selectedIndex].value') == 'INT'){
					if(eval('document.all.'+addresstype+'intlCountry['+i+'][document.all.'+addresstype+'intlCountry['+i+'].selectedIndex].value') == ''){
						if (i == 0) {
							alert('Please select a International Country ' + ePrimary);
						}
						else {
							alert('Please select a International Country ' + eSeasonal);
						}
						return false;
					}
					if(eval('document.all.'+addresstype+'address2['+i+'].value') == ''){
						if (i == 0) {
							alert('Please enter the international address in the address fields ' + ePrimary);
						}
						else {
							alert('Please enter the international address in the address fields ' + eSeasonal);
						}
						eval('document.all.'+addresstype+'address2['+i+'].focus()');
						return false;
					}
				}
			}
			else {
				if(eval('document.all.'+addresstype+'country.value') == 'INT'){
					if(eval('document.all.'+addresstype+'intlCountry[document.all.'+addresstype+'intlCountry.selectedIndex].value') == ''){
						alert('Please select a International Country ' + eMessage);
						return false;
					}
					if(eval('document.all.'+addresstype+'address2.value') == ''){
						alert('Please enter the international address in the address fields ' + eMessage);
						eval('document.all.'+addresstype+'address2.focus()');
						return false;
					}
				}
			}
		}
		// zipcode - postal code
		if(eval('document.all.'+addresstype+'country')){
			if (eval('document.all.'+addresstype+'country[0][0]')) {
				if(eval('document.all.'+addresstype+'country['+i+'].value') != 'INT'){
					if(eval('document.all.'+addresstype+'country['+i+'].value') == 'US'){
						if (eval('document.all.'+addresstype+'zip[0]')) {
							// Recipient - primary or seasonal 
							if(eval('document.all.'+addresstype+'zip['+i+'].value') == '') {
								if (i == 0) {
									alert('Please enter a Zip Code ' + ePrimary);
								}
								else {
									alert('Please enter a Zip Code ' + eSeasonal);
								}
								eval('document.all.'+addresstype+'zip['+i+'].focus()');
								return false;
							}
						}
						else {
							if(eval('document.all.'+addresstype+'zip.value') == '') {
								alert('Please enter a Zip Code ' + eMessage);
								eval('document.all.'+addresstype+'zip.focus()');
								return false;
							}
						}
					}
					else {
						if (eval('document.all.'+addresstype+'postal[0]')) {
							// Recipient - primary or seasonal 
							if(eval('document.all.'+addresstype+'postal['+i+'].value') == '') {
								if (i == 0) {
									alert('Please enter a Postal Code ' + ePrimary);
								}
								else {
									alert('Please enter a Postal Code ' + eSeasonal);
								}
								eval('document.all.'+addresstype+'postal['+i+'].focus()');
								return false;
							}
						}
						else {
							if(eval('document.all.'+addresstype+'postal.value') == '') {
								alert('Please enter a Postal Code ' + eMessage);
								eval('document.all.'+addresstype+'postal.focus()');
								return false;
							}
						}
					}
				}			
			}
			else {
				if(eval('document.all.'+addresstype+'country.value') != 'INT'){
					if(eval('document.all.'+addresstype+'country.value') == 'US'){
						if (eval('document.all.'+addresstype+'zip[0]')) {
							// Recipient - primary or seasonal 
							if(eval('document.all.'+addresstype+'zip['+i+'].value') == '') {
								if (i == 0) {
									alert('Please enter a Zip Code ' + ePrimary);
								}
								else {
									alert('Please enter a Zip Code ' + eSeasonal);
								}
								eval('document.all.'+addresstype+'zip['+i+'].focus()');
								return false;
							}
						}
						else {
							if(eval('document.all.'+addresstype+'zip.value') == '') {
								alert('Please enter a Zip Code ' + eMessage);
								eval('document.all.'+addresstype+'zip.focus()');
								return false;
							}
						}
					}
					else {
						if (eval('document.all.'+addresstype+'postal[0]')) {
							// Recipient - primary or seasonal 
							if(eval('document.all.'+addresstype+'postal['+i+'].value') == '') {
								if (i == 0) {
									alert('Please enter a Postal Code ' + ePrimary);
								}
								else {
									alert('Please enter a Postal Code ' + eSeasonal);
								}
								eval('document.all.'+addresstype+'postal['+i+'].focus()');
								return false;
							}
						}
						else {
							if(eval('document.all.'+addresstype+'postal.value') == '') {
								alert('Please enter a Postal Code ' + eMessage);
								eval('document.all.'+addresstype+'postal.focus()');
								return false;
							}
						}
					}
				}					
			}
		}
		bDot=false;
		bAt=false;
		bSpace=false;
		// email
		if(eval('document.all.'+addresstype+'email')){
			if (eval('document.all.'+addresstype+'email[0]')) {
				// Recipient - primary or seasonal 

				sVal = eval('document.all.'+addresstype+'email['+i+'].value');
				bDot=false;
				bSpace=false;
				bAt=false;
				if(sVal.length>0){
					for(var j=0; j<sVal.length; j++){
						if(sVal.charAt(j)=='.')
							bDot=true;
						if(sVal.charAt(j)=='@')
							bAt=true;
						if(sVal.charAt(j)==' ')
							bSpace=true;
					}				
				}
				else {
					bDot=true;
					bAt=true;
				}
				if((bDot==false)||(bAt==false)) {
					if (i == 1) {
						var rtn = confirm('\nYour email address ' + ePrimary + ' \ndoes not conform to internet standards. \nDo you still wish to proceed?\n');
						if (rtn == false){
							return false;
						}
					}
					else {
						var rtn = confirm('\nYour email address ' + eSeasonal + ' \ndoes not conform to internet standards. \nDo you still wish to proceed?\n');
						if (rtn == false){
							return false;
						}
					}
				}
			}
			else {
				sVal = eval('document.all.'+addresstype+'email.value');
				bDot=false;
				bSpace=false;
				bAt=false;
				if(sVal.length>0){
					for(var j=0; j<sVal.length; j++){
						if(sVal.charAt(j)=='.')
							bDot=true;
						if(sVal.charAt(j)=='@')
							bAt=true;
						if(sVal.charAt(j)==' ')
							bSpace=true;
					}				
				}
				else {
					bDot=true;
					bAt=true;
				}
				if((bDot==false)||(bAt==false)) {
					var rtn = confirm('\nYour email address ' + eMessage + ' \ndoes not conform to internet standards. \nDo you still wish to proceed?\n');
					if (rtn == false){
						return false;
					}
				}
			}
		}
		// phone
		if(eval('document.all.'+addresstype+'phone')) {
			var country;
			
			if (eval('document.all.'+addresstype+'phone[0]')) {
				// Recipient - primary or seasonal 

				if (eval('document.all.'+addresstype+'country')) {
					country = eval('document.all.'+addresstype+'country['+i+'][document.all.'+addresstype+'country['+i+'].selectedIndex].value');
				}
				else {
					country = 'US';
				}
				if(country == 'US'){
					var a;
					var sPhone;
					var sOPhone = '';
			
					sVal = eval('document.all.'+addresstype+'phone['+i+'].value');
					if (sVal == '') {
						if (i == 0) {
							alert('Please enter a valid phone number ' + ePrimary);
							return false;
						} else {
							sVal = eval('document.all.'+addresstype+'extension['+i+'].value');
							sVal = sVal.replace(/ /g,'');
							if (sVal != '') {
								// an extension was given without the phone number
								alert('Please enter a phone number ' + eSeasonal);

								return false;
							}
						}	
					}
					else {
			
						// if the first character is number 1, strip it. 
						// No valid phone # begins with 1. 
						// if user entered 1-800-etc, this will return false. 1 shouldn't be allowed. 
						if (sVal.substr(0,1) == '1') {
							var sPhone = sVal.substr(2,sVal.length);
						}
						else {
							var sPhone = sVal;
						}
						for (var ij=0; ij <sVal.length; ij++) {
							a = sPhone.substr(ij,1);
							if (!(isNaN(a))) {
								sOPhone += a;
							}
						}
						if(sOPhone.length != 10){
							if (i == 1) {
								alert('Please enter a valid phone number ' + ePrimary);
							}
							else {
								alert('Please enter a valid phone number ' + eSeasonal);
							}
							return false;
						}
						sVal = eval('document.all.'+addresstype+'extension['+i+'].value');
						if (isNaN(sVal)) {
							if (i == 1) {
								alert('Please enter a numeric phone extension ' + ePrimary);
							}
							else {
								alert('Please enter a numeric phone extension ' + eSeasonal);
							}
							return false;
						}
					}
				} else {
					sVal = eval('document.all.'+addresstype+'phone['+i+'].value');
					if (sVal == '') {
						if (i == 1) {
							alert('Please enter a valid phone number ' + ePrimary);
							return false;
						}
					}
				}
			}
			else {
				if (eval('document.all.'+addresstype+'country')) {
					country = eval('document.all.'+addresstype+'country[document.all.'+addresstype+'country.selectedIndex].value');
				}
				else {
					country = 'US';
				}
				if(country == 'US'){
					var a;
					var sPhone;
					var sOPhone = '';
			
					sVal = eval('document.all.'+addresstype+'phone.value');
					if (sVal == '') {
						if (i <= 1) {
							alert('Please enter a valid phone number ' + ePrimary);
							return false;
						} else {
							sVal = eval('document.all.'+addresstype+'extension.value');
							sVal = sVal.replace(/ /g,'');
							if (sVal != '') {
								// an extension was given without the phone number
								alert('Please enter a phone number ' + eMessage);
								return false;
							}
						}
					}
					else {
			
						// if the first character is number 1, strip it. 
						// No valid phone # begins with 1. 
						// if user entered 1-800-etc, this will return false. 1 shouldn't be allowed. 
						if (sVal.substr(0,1) == '1') {
							var sPhone = sVal.substr(2,sVal.length);
						}
						else {
							var sPhone = sVal;
						}
						for (var i=0; i <sVal.length; i++) {
							a = sPhone.substr(i,1);
							if (!(isNaN(a))) {
								sOPhone += a;
							}
						}
						if(sOPhone.length != 10){
							alert('Please enter a valid phone number ' + eMessage);
							return false;
						}
						sVal = eval('document.all.'+addresstype+'extension.value');
						if (isNaN(sVal)) {
							alert('Please enter a numeric phone extension ' + eMessage);
							return false;
						}
					}
				} else {
					sVal = eval('document.all.'+addresstype+'phone.value');
					if (sVal == '') {
						if (i <= 1) {
							alert('Please enter a valid phone number ' + ePrimary);
							return false;
						}
					}
				}
			}
		}
	}
	return true;
}
function toggleAddress(type){
	var num;
	num = type.charAt(1);
	if (type.charAt(0) == 'D') {
		eval('document.all.display'+num+'.style.display="none"');
		eval('document.all.close'+num+'.style.display=""');
		eval('document.all.details'+num+'.style.display=""');
	}
	else if (type.charAt(0) == 'C') {
		eval('document.all.display'+num+'.style.display=""');
		eval('document.all.close'+num+'.style.display="none"');
		eval('document.all.details'+num+'.style.display="none"');
	}
}
function verifyMonths(){
	var start;
	var end;
	var sstart;
	var vstart;
	var send;
	var vend
	var month;
	var addresstype;
	for (var ii=1; ii<document.all.addresstype.length; ii++) {
		addresstype = document.all.addresstype[ii].value;
		if (addresstype != '') {
			start = eval('document.all.'+ addresstype + 'Start['+ (ii-1) +'][document.all.'+ addresstype + 'Start['+(ii-1)+'].selectedIndex].value');
			end = eval('document.all.'+ addresstype + 'End['+(ii-1)+'][document.all.'+ addresstype + 'End['+(ii-1)+'].selectedIndex].value');
			if (start != '') {
				if (end == '') { 
					alert('Please select an end month for Seasonal Address - ' + (ii) + '.');
					return false;
				}
				if (parseInt(start) > parseInt(end)) {
					alert('Please select an end month that is after the selected start month for Seasonal Address - ' + (ii) + '.');
					return false;
				}
			}
			else {
				if (end != '') {
					alert('Please select a start month for Seasonal Address - ' + (ii) + '.');
					return false;
				}
				else {
					alert('Please select a start and end month for Seasonal Address - ' + (ii) + '.');
					return false; 
				}
			}
		
			if (ii > 1) {
				sstart = eval('document.all.'+ addresstype + 'Start['+(ii-1)+'][document.all.'+ addresstype + 'Start['+(ii-1)+'].selectedIndex].value');
				send = eval('document.all.'+ addresstype + 'End['+(ii-1)+'][document.all.'+ addresstype + 'End['+(ii-1)+'].selectedIndex].value');
				for (var jj = (ii-1); jj >= 1; jj--) {
					vstart = eval('document.all.'+ addresstype + 'Start['+(jj-1)+'][document.all.'+ addresstype + 'Start['+(jj-1)+'].selectedIndex].value');
					vend = eval('document.all.'+ addresstype + 'End['+(jj-1)+'][document.all.'+ addresstype + 'End['+(jj-1)+'].selectedIndex].value');
					if (sstart != '') {
						if ((parseInt(sstart) >= parseInt(vstart)) && (parseInt(sstart) <= parseInt(vend))) {
							alert('The start month for Seasonal Address - ' + ii + ' overlaps the Seasonal Address - ' + jj + ' months.');
							return false;
						}
						if ((parseInt(send) >= parseInt(vstart)) &&	(parseInt(send) <= parseInt(vend))) {
							alert('The end month for Seasonal Address - ' + ii + ' overlaps the Seasonal Address - ' + jj + ' months.');
							return false;
						}
					}
				}
			}
		}
	}

	return true;
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}

function validateForm() {
	
	//debugger;
	var teststring = '';
	var sfieldname = '';
	
	for(i = 0; i < document.forms[0].elements.length-1; i++){
		eval('x = document.forms[0].elements[' + i + '];')				
		if(x.type.indexOf('text')>=0 && x.name.toLowerCase().indexOf('date')<0 && x.name.toLowerCase().indexOf('cardexpiration')<0) {
			if(x.name.toLowerCase().indexOf('email')>=0){
				teststring = '@_.-\'';
			} else if(x.name.toLowerCase().indexOf('phone')>=0){
				teststring = '-() .';
			} else {
				teststring = '#,.-% ' + String.fromCharCode(39); //MUST INCLUDE APOSTRPPHE char(39) HERE!
			}
			for(n = 0; n < x.value.length; n++){
				if(x.name.toLowerCase().indexOf('phone')>=0){
					if((isDigit(x.value.charAt(n))||teststring.indexOf(x.value.charAt(n))>=0)!=true) {  
						alert ('An invalid character has been found in a phone field! Valid characters are ' + teststring + '0123456789.');
						x.focus();
						return false;
					}
				} else {
					if((isLetterOrDigit(x.value.charAt(n))||teststring.indexOf(x.value.charAt(n))>=0)!=true) {  
						if(x.name.toLowerCase().indexOf('company')>=0){
							sfieldname = 'company';
						} else if(x.name.toLowerCase().indexOf('name')>=0){
							sfieldname = 'name';
						} else if(x.name.toLowerCase().indexOf('address')>=0){
							sfieldname = 'address';
						} else if(x.name.toLowerCase().indexOf('email')>=0){
							sfieldname = 'email';
						} else if(x.name.toLowerCase().indexOf('city')>=0){
							sfieldname = 'address';
						} else if(x.name.toLowerCase().indexOf('state')>=0){
							sfieldname = 'address';
						} else if(x.name.toLowerCase().indexOf('zip')>=0){
							sfieldname = 'address';
						} else {
							sfieldname = 'input';
						}
						alert ('An invalid character has been found in a ' + sfieldname + ' field! Valid characters are ' + teststring + '0123456789, and (a thru z) or (A thru Z).');
						x.focus();
						return false;
					}
				}		
			}
		}	
	}
	return true;
}