//
// PageFlow Javascript
// Copyright 2001-2004 by Altava Health
//

var scr_width = screen.width;
var scr_height = screen.height;


// BOOKMARK THIS SITE

function BookmarkThisSite()
{
var url="http://www.altavahealth.com";
var title="Altava Health: HairGenesis hair loss treatment products";
if(document.all)

	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4))
	{
	window.external.AddFavorite(url,title);
	}
	else
	{
	var NS_msg = "Add Altava Health: HairGenesis to your list of favorites!";
	if(navigator.appName == "Netscape") NS_msg += "  (CTRL-D)";
	document.write(NS_msg);
	}
}



function TellaFriend()
{
	window_top = 40;
	screenX = window_top;
	window_left = 0;
	screenY = window_left;
	popWindow = window.open("http://www.altavahealth.com/customer/tellafriend.htm","tellfriends","scrollbars=yes,resizable=yes,width=625,height=446,screenX,screenY,top=" + window_top + ",left=" + window_left + " ");
	popWindow.opener = self;
	popWindow.focus();
}


function TrackOrderUSPS()
{
	window_top = (scr_height - 30 - 300)/2
	screenX = window_top
	window_left = (scr_width-484)/2
	screenY = window_left
	trackOrder = window.open("http://www.altavahealth.com/customer/trackUSPS.htm","thisOrder","width=484,height=270,screenX,screenY,top=" + window_top + ",left=" + window_left + " ");
	trackOrder.opener = self;
	trackOrder.focus();
}


function TrackOrderUPS()
{
	window_top = (scr_height - 30 - 300)/2
	screenX = window_top
	window_left = (scr_width-484)/2
	screenY = window_left
	trackOrder = window.open("http://www.altavahealth.com/customer/trackUPS.htm","thisOrder","width=484,height=270,screenX,screenY,top=" + window_top + ",left=" + window_left + " ");
	trackOrder.opener = self;
	trackOrder.focus();
}


function doSurvey()
{
	var showSurvey
	window_top = 0
	screenX = window_top
	window_left = 0
	screenY = window_left
	showSurvey = window.open("http://www.altavahealth.com/customer/survey.htm","thisSurvey","menubar,toolbar,location,scrollbars,resizable,status,width=scr_width,height=scr_height,screenX,screenY,top=" + window_top + ",left=" + window_left + " ");
	showSurvey.opener = self;
	window.focus()	
}


function checkAffilAppl(form)
{

// WEB SITE INFORMATION

	if(form.Web_Site_Name.value == "")
	{	
		alert("Please enter your web site name.");
		form.Web_Site_Name.focus();
		return false;
	}

	if(form.Url.value == "" || form.Url.value == "http://")
	{	
		alert("Please enter your web site URL.");
		form.Url.focus();
		form.Url.select();
		return false;
	}

	if(form.Url.value != form.Confirm_Url.value)
	{
		alert("The URL and Confirm URL fields do not match.");
		form.Url.focus();
		form.Url.select();
		return false;
	}

	if(form.Web_Site_Description.value == "")
	{
		alert("Please enter a description for your web site.");
		form.Web_Site_Description.focus();
		return false;
	}

// CONTACT INFORMATION

	if(form.Contact_Name.value == "")
	{	
		alert("Please enter your Contact Name.");
		form.Contact_Name.focus();
		return false;
	}

	if(form.Contact_Company.value == "")
	{	
		alert("Please enter your Contact Company.");
		form.Contact_Company.focus();
		return false;
	}

	if(form.Contact_Address.value == "")
	{	
		alert("Please enter your Contact Address.");
		form.Contact_Address.focus();
		return false;
	}

	if(form.Contact_City.value == "")
	{	
		alert("Please enter your Contact City.");
		form.Contact_City.focus();
		return false;
	}

	if(form.Contact_State.value == 0)
	{	
		alert("Please select your Contact State or Province.");
		form.Contact_State.focus();
		return false;
	}

	if(form.Contact_Zip.value == "")
	{	
		alert("Please enter your Contact Zip or Postal Code.");
		form.Contact_Zip.focus();
		return false;
	}

	if (form.Contact_Country.value == "USA")
	{
		if (form.Contact_State.value.indexOf("US") == -1)
		{
			alert("The Contact Country field shows 'USA',\nbut you have not selected a U.S. state.");
			form.Contact_State.focus();
			form.Contact_State.select();
			return false;
		}
		else if (!checkUSZipCode(form.Contact_Zip.value, false))
		{
			alert(iUSZipCode);
			form.Contact_Zip.focus();
			form.Contact_Zip.select();
			return false;
		}
		{
			form.Contact_Zip.value = reformatUSZipCode (normalizedZip);
		}
	}

	if (form.Contact_Country.value == "Canada") 
	{
		if (form.Contact_State.value.indexOf("Can") == -1)
		{
			alert("The Contact Country field shows 'Canada',\nbut you have not selected a province of Canada.");
			form.Contact_State.focus();
			form.Contact_State.select();
			return false;
		}
		else if (!checkCanZipCode(form.Contact_Zip.value, false))
		{
			alert(iCanZipCode);
			form.Contact_Zip.focus();
			form.Contact_Zip.select();
			return false;
		}
		{
			form.Contact_Zip.value = reformatCanZipCode (normalizedZip);
		}
	}

	if(form.Contact_Telephone.value == "")
	{	
		alert("Please enter your Contact Telephone.");
		form.Contact_Telephone.focus();
		return false;
	}		

	if (form.Contact_Telephone.value > "")
	{
		if (!checkUSPhone(form.Contact_Telephone.value, false))
		{
			alert(iUSPhone);
			form.Contact_Telephone.focus();
			form.Contact_Telephone.select();
			return false;
		}
		else
		{
			form.Contact_Telephone.value = reformatPhoneNumber (normalizedPhone);
		}
	}

	if(form.Contact_Fax.value == "")
	{	
		alert("Please enter your Contact Fax.");
		form.Contact_Fax.focus();
		return false;
	}

	if (form.Contact_Fax.value > "")
	{
		if (!checkUSPhone(form.Contact_Fax.value, false))
		{
			alert(iUSPhone);
			form.Contact_Fax.focus();
			form.Contact_Fax.select();
			return false;
		}
		else
		{
			form.Contact_Fax.value = reformatPhoneNumber (normalizedPhone);
		}
	}

	if(form.Contact_Email.value == "")
	{	
		alert("Please enter your Contact Email.");
		form.Contact_Email.focus();
		return false;
	}

	if (!checkEmail(form.Contact_Email.value, false))
	{
		alert(iEmail);
		form.Contact_Email.focus();
		form.Contact_Email.select();
		return false;
	}

	if(form.Contact_Email.value != form.Confirm_Email.value)
	{
		alert("The Contact Email and Confirm Email fields do not match.");
		form.Confirm_Email.focus();
		form.Confirm_Email.select();
		return (false);
	}

// PAY TO INFORMATION

	if(form.Pay_To_Name.value == "")
	{	
		alert("Please enter your Pay To Name [ Business or Individual ].");
		form.Pay_To_Name.focus();
		return false;
	}

	if(form.Pay_To_Address.value == "")
	{	
		alert("Please enter your Pay To Address.");
		form.Pay_To_Address.focus();
		return false;
	}

	if(form.Pay_To_City.value == "")
	{	
		alert("Please enter your Pay To City.");
		form.Pay_To_City.focus();
		return false;
	}

	if(form.Pay_To_State.value == 0)
	{	
		alert("Please select your Pay To State or Province.");
		form.Pay_To_State.focus();
		return false;
	}

	if(form.Pay_To_Zip.value == "")
	{	
		alert("Please enter your Pay To Zip or Postal Code.");
		form.Pay_To_Zip.focus();
		return false;
	}

	if (form.Pay_To_Country.value == "USA")
	{
		if (form.Pay_To_State.value.indexOf("US") == -1)
		{
			alert("The Pay TO Country field shows 'USA',\nbut you have not selected a U.S. state.");
			form.Pay_To_State.focus();
			form.Pay_To_State.select();
			return false;
		}
		else if (!checkUSZipCode(form.Pay_To_Zip.value, false))
		{
			alert(iUSZipCode);
			form.Pay_To_Zip.focus();
			form.Pay_To_Zip.select();
			return false;
		}
		{
			form.Pay_To_Zip.value = reformatUSZipCode (normalizedZip);
		}
	}

	if (form.Pay_To_Country.value == "Canada") 
	{
		if (form.Pay_To_State.value.indexOf("Can") == -1)
		{
			alert("The Pay To Country field shows 'Canada',\nbut you have not selected a province of Canada.");
			form.Pay_To_State.focus();
			form.Pay_To_State.select();
			return false;
		}
		else if (!checkCanZipCode(form.Pay_To_Zip.value, false))
		{
			alert(iCanZipCode);
			form.Pay_To_Zip.focus();
			form.Pay_To_Zip.select();
			return false;
		}
		{
			form.Pay_To_Zip.value = reformatCanZipCode (normalizedZip);
		}
	}

	if(form.Pay_To_Telephone.value == "")
	{	
		alert("Please enter your Pay To Telephone.");
		form.Pay_To_Telephone.focus();
		return false;
	}		

	if (form.Pay_To_Telephone.value > "")
	{
		if (!checkUSPhone(form.Pay_To_Telephone.value, false))
		{
			alert(iUSPhone);
			form.Pay_To_Telephone.focus();
			form.Pay_To_Telephone.select();
			return false;
		}
		else
		{
			form.Pay_To_Telephone.value = reformatPhoneNumber (normalizedPhone);
		}
	}

	if(form.Pay_To_Fax.value == "")
	{	
		alert("Please enter your Pay To Fax.");
		form.Pay_To_Fax.focus();
		return false;
	}

	if (form.Pay_To_Fax.value > "")
	{
		if (!checkUSPhone(form.Pay_To_Fax.value, false))
		{
			alert(iUSPhone);
			form.Pay_To_Fax.focus();
			form.Pay_To_Fax.select();
			return false;
		}
		else
		{
			form.Pay_To_Fax.value = reformatPhoneNumber (normalizedPhone);
		}
	}

	if(form.Pay_To_Email.value == "")
	{	
		alert("Please enter your Pay To Email.");
		form.Pay_To_Email.focus();
		return false;
	}

	if (!checkEmail(form.Pay_To_Email.value, false))
	{
		alert(iEmail);
		form.Pay_To_Email.focus();
		form.Pay_To_Email.select();
		return false;
	}

// TAX INFORMATION

	if(form.Tax_Class.value == 0)
	{	
		alert("Please select your Tax Classification.");
		form.Tax_Class.focus();
		return false;
	}

	if(form.Tax_ID_Number.value == "")
	{	
		alert("Please enter your Tax ID Number.");
		form.Tax_ID_Number.focus();
		return false;
	}

	if (form.Tax_ID_Number.value > "")
	{	
		if (!checkTaxID(form.Tax_ID_Number.value, false))
		{
			alert(iTaxID);
			form.Tax_ID_Number.focus();
			form.Tax_ID_Number.select();
			return false;
		}
		else
		{
			if(form.Tax_Class.value == "Individual")
			{
				form.Tax_ID_Number.value = reformatTaxIDSSN (normalizedTaxID);
			}
			else
			{
				form.Tax_ID_Number.value = reformatTaxIDFEIN(normalizedTaxID);	
			}
		}
	}

// USERNAME AND PASSWORD

	if(form.Req_Username.value == "")
	{	
		alert("Please enter your Requested Username.");
		form.Req_Username.focus();
		return false;
	}

	if(form.Req_Username.value.length < 8 || form.Req_Username.value.length > 30)
	{	
		alert("Requested Username must be between 8 and 30 characters long.");
		form.Req_Username.focus();
		form.Req_Username.select();
		return false;
	}

	if (!checkUsername(form.Req_Username.value, false))
	{
		alert(iChar);
		form.Req_Username.focus();
		form.Req_Username.select();
		return false;
	}	



	if(form.Req_Password.value == "")
	{	
		alert("Please enter your Requested Password.");
		form.Req_Password.focus();
		return false;
	}

	if(form.Req_Password.value.length < 8 || form.Req_Password.value.length > 20)
	{	
		alert("Requested Password must be between 8 and 20 characters long.");
		form.Req_Password.focus();
		form.Req_Password.select();
		return false;
	}

	if(form.Req_Username.value == form.Req_Password.value)
	{	
		alert("Your Username and Requested Password cannot be the same.");
		form.Req_Password.focus();
		form.Req_Password.select();
		return false;
	}

	if(form.Req_Password.value != form.Confirm_Password.value)
	{
		alert("Requested Password and Confirm Password fields do not match.");
		form.Confirm_Password.focus();
		form.Confirm_Password.select();
		return (false);
	}

// SITE CATEGORIES

	var checkedCategories = 15
	
	if (!form.Category01.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category02.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category03.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category04.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category05.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category06.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category07.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category08.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category09.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category10.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category11.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category12.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category13.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category14.checked)
	{
		checkedCategories -= 1
	}

	if (!form.Category15.checked)
	{
		checkedCategories -= 1
	}

	if (checkedCategories == 0)
	{
		alert("You must check at least one Web Site Category from above.");
		form.Category01.focus();
		form.Category01.select();
		return false;
	}

// AGREEMENT BOX

	if (!form.AgreeBox.checked)
	{
		alert ("You must check the 'AGREEMENT' box in order for your application to be considered.");
		form.AgreeBox.focus();
		return false;
	}
		
}


// variables for checkUSZipCode
var digits = "0123456789";
var ZipCodeDelimiters = "-";
var validZipCodeChars = digits + ZipCodeDelimiters;
var iUSZipCode = "Zip Code must be a 5 or 9 digits\nlike 10001 or 10001-0001."

function checkUSZipCode (theField)
{
	normalizedZip = stripCharsInBag(theField, ZipCodeDelimiters)
	if (!isZipCode(normalizedZip, false))
		return false;
		else return true;
}


function isZipCode (s)
{
	return (isInteger(s) && ((s.length == 5) || (s.length == 9)))
}


function reformatUSZipCode (ZipString)
{
    if (ZipString.length == 5) return ZipString;
    else
	{
		var i;
		var z = "";

		for (i = 0; i < 5; i++)
		{
			var c = ZipString.charAt(i);
			z += c;
		}
		z += "-"
		for (i = 5; i < 9; i++)
		{
			var c = ZipString.charAt(i);
			z += c;
		}
	return z;
	}
}


// variables for checkCanZipCode
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var digits = "0123456789";
var validCanZipCodeChars = uppercaseLetters + digits
var iCanZipCode = "Canadian Postal Code must be 6 characters\nformatted like L5T2N5."

function checkCanZipCode (theField)
{
	normalizedZip = stripCharsInBag(theField, CanZipCodeDelimiters)

	if (!checkCanZipCharsInBag(normalizedZip, validCanZipCodeChars))
		return false;

	if (normalizedZip.length != 6) return false;

	if (!isCanZipCode(normalizedZip, false))
		return false;
		else return true; 
}


function checkCanZipCharsInBag(s, bag)
{
	var i;
	for (i = 0; i < s.length; i++)
	{
		e = s.charAt(i);
		if (bag.indexOf(e) == -1)
		{
			alert("invalid character ' " + e + " ' in postal code")
			return false;
		}
	}
	return true;
}


function isCanZipCode (s)
{
	var i; 
	for (i = 0; i < s.length; i++)
	{
		c = s.charAt(i);
		if ((i == 0) || (i == 2)  || (i == 4))
		{
			if (uppercaseLetters.indexOf(c) == -1) return false;
		}
		else if ((i == 1) || (i == 3)  || (i == 5))
		{
			if (digits.indexOf(c) == -1) return false;
		} 
	}
	return true;
}


function reformatCanZipCode (ZipString)
{
	var i;
	var z = "";

	for (i = 0; i < 3; i++)
	{
		var c = ZipString.charAt(i);
		z += c;
	}
		z += " "
		for (i = 3; i < 7; i++)
		{
			var c = ZipString.charAt(i);
			z += c;
		}
	return z;
}


// variables for checkUSPhone
var digits = "0123456789";
var phoneNumberDelimiters = "-";
var validUSPhoneChars = digits + phoneNumberDelimiters;
var iUSPhone = "Telephone or Fax must be a 10 digit number\nformatted as 212-555-1212."

function checkUSPhone (theField)
{
	normalizedPhone = stripCharsInBag(theField, phoneNumberDelimiters)
	if (!isUSPhoneNumber(normalizedPhone, false))
		return false;
		else return true;
}


function stripCharsInBag (s, bag)
{   
	var i;
	var returnString = "";

	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}


function isDigit (c)
{
	return ((c >= "0") && (c <= "9"))
}


function isInteger (s)
{
	var i;
	for (i = 0; i < s.length; i++)
	{   
		var c = s.charAt(i);
		if (!isDigit(c)) return false;
	}
	return true;
}


function isUSPhoneNumber (s)
{
	return (isInteger(s) && s.length == 10)
}


function reformatPhoneNumber (TelNo)
{
	var t = "";
	t = TelNo.charAt(0)+TelNo.charAt(1)+TelNo.charAt(2) + "-"	
	t = t + TelNo.charAt(3)+TelNo.charAt(4)+TelNo.charAt(5) + "-"
	t = t + TelNo.charAt(6)+TelNo.charAt(7)+TelNo.charAt(8)+TelNo.charAt(9)
	return t
}


// variables for checkEmail
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz";
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var digits = "0123456789";
var emailDelimiters = "_-@.";
var validEmailChars = lowercaseLetters + uppercaseLetters + digits + emailDelimiters

var iEmail = "";
var iEmail1 = "Please enter your email address.";
var iEmail2 = "Missing email account name or '@' in email address.\n(emailaccount@domainname.ext).";
var iEmail3 = "Missing [ domain name ] or '.' in email address.";
var iEmail4 = "Missing [ domain-ext ] (ie: com, org, net, edu, gov, biz, info)\nin email address.";

function checkEmail (theField)
{
	emailValue = theField;
	emailLength = theField.length;
	if (!checkCharsInBag(emailValue, validEmailChars)) return false;

	var i = 1;
	while ((i < emailLength) && (theField.charAt(i) != "@"))
	{
		i++
	}
	if ((i >= emailLength) || (theField.charAt(i) != "@"))
	{
		iEmail = iEmail2;
		return false;
	}
	else i += 2;
	
	while ((i < emailLength) && (theField.charAt(i) != "."))
	{
		i++
	}
	if ((i >= emailLength) || (theField.charAt(i) != "."))
	{
		iEmail = iEmail3;
		return false;
	}
	
	if ((emailLength - 1 - i) < 2)
	{
		iEmail = iEmail4;
		return false;
	}
	else return true;
}


function checkCharsInBag(s, bag)
{
	var i;
	for (i = 0; i < s.length; i++)
	{
		e = s.charAt(i);
		if (bag.indexOf(e) == -1)
		{
			iChar = "invalid character(s) or space in this field: " + e + "\nYou may only use:\nlower case letters\nUPPERCASE letters,\ndigits 0-9\n_-.@\nbut no spaces.";
			return false;
		}
	}
	return true;
}


// variables for checkTaxID
var digits = "0123456789";
var taxIDDelimiter = "-";
var validTaxIDChars = digits + taxIDDelimiter;
var iTaxID = "Tax ID Number must be a 9 digit number\nformatted as FEIN: nn-nnnnnnn or Soc Sec Num: nnn-nn-nnnn."

function checkTaxID (theField)
{
	normalizedTaxID = stripCharsInBag(theField, taxIDDelimiter)
	if (!isTaxID (normalizedTaxID, false))
		return false;
		else return true;
}


function isTaxID (s)
{
	return (isInteger(s) && (s.length == 9))
}


function reformatTaxIDSSN (TaxIDSSN)
{
	var t = "";
	t = TaxIDSSN.charAt(0)+TaxIDSSN.charAt(1)+TaxIDSSN.charAt(2) + "-"	
	t = t + TaxIDSSN.charAt(3)+TaxIDSSN.charAt(4)+ "-"
	t = t + TaxIDSSN.charAt(5)+TaxIDSSN.charAt(6)+TaxIDSSN.charAt(7)+TaxIDSSN.charAt(8)
	return t
}


function reformatTaxIDFEIN (TaxIDFEIN)
{
	var t = "";
	t = TaxIDFEIN.charAt(0)+TaxIDFEIN.charAt(1)+ "-"
	t = t + TaxIDFEIN.charAt(2)+TaxIDFEIN.charAt(3)+TaxIDFEIN.charAt(4)+TaxIDFEIN.charAt(5)+TaxIDFEIN.charAt(6)+TaxIDFEIN.charAt(7)+TaxIDFEIN.charAt(8)
	return t
}



// variables for checkUsername
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz";
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var digits = "0123456789";
var charDelimiters = "_-@.";
var validUsernameChars = lowercaseLetters + uppercaseLetters + digits + charDelimiters


function checkUsername (theField)
{
	usernameValue = theField;
	usernameLength = theField.length;
	if (!checkCharsInBag(usernameValue, validUsernameChars)) return false;
		else return true;
}


function checkCategories (checkedCategory)
{
	var checkedBoxes = 15
	
	if (!form.Category01.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category02.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category03.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category04.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category05.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category06.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category07.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category08.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category09.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category10.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category11.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category12.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category13.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category14.checked)
	{
		checkedBoxes -= 1
	}

	if (!form.Category15.checked)
	{
		checkedBoxes -= 1
	}

	if (checkedBoxes == 0)
	{
		alert("categories 0");
		return false;
	}

}



// Other Scripts

function anyNotice()
{
	specialWindow = window.open("http://www.altavahealth.com/file.htm","thisNotice","width=446,height=365,top=20,left=0,menubar=no,toolbars=no,location=no,scrollbars=no,status=no,resizable=no");
}