var SubmitFlag;

function DigitalformCheck(mode, description)
{
	if(document.forms[0].FNAME.value == "")
	{
		alert("Please specify your First name.");
       		document.forms[0].FNAME.focus();
		return false;
	}
	if(document.forms[0].LNAME.value == "")
	{
		alert("Please specify your Last name.");
       		document.forms[0].LNAME.focus();
		return false;
	}
	if(document.forms[0].ADDRESS2.value == "")
	{
		alert("Please specify your Street Address.");
        	document.forms[0].ADDRESS2.focus();
		return false;
	}
	if(document.forms[0].CITY.value == "")
	{
		alert("Please specify your City.");
        	document.forms[0].CITY.focus();
		return false;
	}
	if (document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value == "")
	{
		alert("Please specify your Province or select 'I am not in Canada'.");
			document.forms[0].STATE.focus();
		return false;
	}
	// validate Canadian state/postal code combination
	if (!ValidCanPostal(document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value,document.forms[0].ZIPCODE.value))
	{
		alert ("Invalid Canadian province/postal code combination.");
        	document.forms[0].STATE.focus();
		return false;
	}

	if (document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value == "53")
	{
		if(document.forms[0].COUNTRY[document.forms[0].COUNTRY.selectedIndex].value == "")
		{
			alert("Please specify your Country.");
	        	document.forms[0].COUNTRY.focus();
			return false;
		}

		if(document.forms[0].COUNTRY[document.forms[0].COUNTRY.selectedIndex].value == "CANADA")
		{
			alert("Invalid Country.");
	        	document.forms[0].COUNTRY.focus();
			return false;
		}
	}
	else
	{
		if (document.forms[0].ZIPCODE.value.length < 5)
		{
			alert("Please specify your Postal Code.");
	        	document.forms[0].ZIPCODE.focus();
			return false;
		}
	}
		
	if(document.forms[0].EMAIL_ADDRESS.value == "")
	{
		alert("Please specify your E-mail Address.");
       		document.forms[0].EMAIL_ADDRESS.focus();
		return false;
     }
	 if  (!validEmail(document.forms[0].EMAIL_ADDRESS.value))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].EMAIL_ADDRESS.focus();
		return false;
	}	
	
	return true;
	
 }  


function formCheck(mode, description)
{
	//if(document.forms[0].RECEIVE_YES_NO[0].checked == false && document.forms[0].RECEIVE_YES_NO[1].checked == false)
	//{
	//alert("Please specify whether you wish to receive " + description +"?");
    //   document.forms[0].RECEIVE_YES_NO[0].focus();
	//	return false;
	//}

	//if(document.forms[0].RECEIVE_YES_NO[1].checked == true)
	// stop validation when "not to receive" response
	//{
	//	return true;
	//}

	if (!checkUnselects(document.forms[0].REQUESTED_VERSION))
	{
		alert ("Please specify what format would you like to receive " + description +"?");
		document.forms[0].REQUESTED_VERSION[0].focus();
		return false;
	}
	
	if ((mode == "SHORT") || (mode == "ABBR") || (mode == "FAXEF"))
	{
		if(document.forms[0].EMAIL_ADDRESS.value == "")
		{
			alert("Please specify your E-mail Address.");
       			document.forms[0].EMAIL_ADDRESS.focus();
			return false;
   		}
		if  (!validEmail(document.forms[0].EMAIL_ADDRESS.value))
		{
			alert("You have entered an invalid email address. Please re-enter it.");
			document.forms[0].EMAIL_ADDRESS.focus();
			return false;
		}	
		
        if(document.forms[0].PERSONAL_ID.value == "")
		{
			alert('Please specify your personal identifier (first letter).');
			document.forms[0].PERSONAL_ID.focus();
			return false;
		}

		return true;
	}

	
	if (mode == "ADD")
	{
		if(document.forms[0].FNAME.value == "")
		{
			alert("Please specify your First name.");
        		document.forms[0].FNAME.focus();
			return false;
		}
		if(document.forms[0].LNAME.value == "")
		{
			alert("Please specify your Last name.");
        		document.forms[0].LNAME.focus();
			return false;
		}
	}
	if (mode != "RENEW")
	{
                if(document.forms[0].TITLE.value == "")
		{
			alert("Please specify your Title.");
	        	document.forms[0].TITLE.focus();
			return false;
		}
		if(document.forms[0].COMPANY.value == "")
		{
			alert("Please specify your Company name.");
        		document.forms[0].COMPANY.focus();
			return false;
		}
	
		if(document.forms[0].ADDRESS2.value == "")
		{
			alert("Please specify your Street Address.");
	        	document.forms[0].ADDRESS2.focus();
			return false;
		}
		if(document.forms[0].CITY.value == "")
		{
			alert("Please specify your City.");
	        	document.forms[0].CITY.focus();
			return false;
		}
		if (document.forms[0].STATE.selectedIndex == 0)
		{
			alert("Please specify your State");
		        document.forms[0].STATE.focus();
			return false;
		}

		// validate Canadian state/postal code combination
		if (!ValidCanPostal(document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value,document.forms[0].ZIPCODE.value))
		{
			alert ("Invalid Canadian province/postal code combination.");
        		document.forms[0].STATE.focus();
			return false;
		}

		if (document.forms[0].ZIPCODE.value.length < 5)
			{
				alert("Please specify your Zip Code.");
	        		document.forms[0].ZIPCODE.focus();
				return false;
			}
		}
	
	if(document.forms[0].EMAIL_ADDRESS.value == "")
	{
		alert("Please specify your E-mail Address.");
       		document.forms[0].EMAIL_ADDRESS.focus();
		return false;
     }
	 if  (!validEmail(document.forms[0].EMAIL_ADDRESS.value))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].EMAIL_ADDRESS.focus();
		return false;
	}	
	
	if((document.forms[0].PhoneArea.value == "")&&(document.forms[0].PhoneExch.value == "")&&(document.forms[0].Phone.value == ""))
		{
			alert("Please specify your Business Phone.");
       			document.forms[0].PhoneArea.focus();
			return false;
    	}
		else
		{
			if(document.forms[0].PhoneArea.value == "")
			{
				alert("Please specify the area code for your Business Phone.");
	       			document.forms[0].PhoneArea.focus();
				return false;
	    	}
			if(document.forms[0].PhoneExch.value == "")
			{
				alert("Incomplete Business Phone.");
	       			document.forms[0].PhoneExch.focus();
				return false;
	    	}
			if(document.forms[0].Phone.value == "")
			{
				alert("Incomplete Business Phone.");
	       			document.forms[0].Phone.focus();
				return false;
	    	}
		}
       
	if (!DemoBlock(mode))
	{
		return false;
	}
 }  


function formCheckAlt(mode, description)
{ 
	//if(document.forms[0].RECEIVE_YES_NO[0].checked == false && document.forms[0].RECEIVE_YES_NO[1].checked == false)
	//{
	//alert("Please specify whether you wish to receive " + description +"?");
    //   document.forms[0].RECEIVE_YES_NO[0].focus();
	//	return false;
	//}

	//if(document.forms[0].RECEIVE_YES_NO[1].checked == true)
	// stop validation when "not to receive" response
	//{
	//	return true;
	//}
	
	if (!checkUnselects(document.forms[0].REQUESTED_VERSION))
	{
		alert ("Please specify what format would you like to receive " + description +"?");
		document.forms[0].REQUESTED_VERSION[0].focus();
		return false;
	}
	
	if (mode == "ADD")
	{
		if(document.forms[0].FNAME.value == "")
		{
			alert("Please specify your First name.");
        		document.forms[0].FNAME.focus();
			return false;
		}
		if(document.forms[0].LNAME.value == "")
		{
			alert("Please specify your Last name.");
        		document.forms[0].LNAME.focus();
			return false;
		}
	}
	if (mode != "RENEW")
	{
                if(document.forms[0].TITLE.value == "")
		{
			alert("Please specify your Title.");
	        	document.forms[0].TITLE.focus();
			return false;
		}
		if(document.forms[0].COMPANY.value == "")
		{
			alert("Please specify your Company name.");
        		document.forms[0].COMPANY.focus();
			return false;
		}
	
		if(document.forms[0].ADDRESS2.value == "")
		{
			alert("Please specify your Street Address.");
	        	document.forms[0].ADDRESS2.focus();
			return false;
		}
		if(document.forms[0].CITY.value == "")
		{
			alert("Please specify your City.");
	        	document.forms[0].CITY.focus();
			return false;
		}
		if (document.forms[0].STATE.selectedIndex == 0)
		{
			alert("Please specify your State");
		        document.forms[0].STATE.focus();
			return false;
		}

		// validate Canadian state/postal code combination
		if (!ValidCanPostal(document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value,document.forms[0].ZIPCODE.value))
		{
			alert ("Invalid Canadian province/postal code combination.");
        		document.forms[0].STATE.focus();
			return false;
		}

		if (document.forms[0].ZIPCODE.value.length < 5)
		{
				alert("Please specify your Zip Code.");
	        		document.forms[0].ZIPCODE.focus();
				return false;
		}
		if(document.forms[0].EMAIL_ADDRESS.value == "")
		{
			alert("Please specify your E-mail Address.");
       			document.forms[0].EMAIL_ADDRESS.focus();
			return false;
    	}
		if  (!validEmail(document.forms[0].EMAIL_ADDRESS.value))
		{
			alert("You have entered an invalid email address. Please re-enter it.");
			document.forms[0].EMAIL_ADDRESS.focus();
			return false;
		}	
		
		if((document.forms[0].PhoneArea.value == "")&&(document.forms[0].PhoneExch.value == "")&&(document.forms[0].Phone.value == ""))
		{
			alert("Please specify your Business Phone.");
       			document.forms[0].PhoneArea.focus();
			return false;
    	}
		else
		{
			if(document.forms[0].PhoneArea.value == "")
			{
				alert("Please specify the area code for your Business Phone.");
	       			document.forms[0].PhoneArea.focus();
				return false;
	    	}
			if(document.forms[0].PhoneExch.value == "")
			{
				alert("Incomplete Business Phone.");
	       			document.forms[0].PhoneExch.focus();
				return false;
	    	}
			if(document.forms[0].Phone.value == "")
			{
				alert("Incomplete Business Phone.");
	       			document.forms[0].Phone.focus();
				return false;
	    	}
		}
		
		if ((document.forms[0].HOME_ADDRESS1.value != "")
			|| (document.forms[0].HOME_ADDRESS2.value != "")
			|| (document.forms[0].HOME_CITY.value != "")
			|| (document.forms[0].HOME_ZIPCODE.value != "")
			|| (document.forms[0].HOME_STATE.selectedIndex > 0))
		{
			if(document.forms[0].HOME_ADDRESS2.value == "")
			{
				alert("Please specify your optional delivery Street Address.");
	        		document.forms[0].HOME_ADDRESS2.focus();
				return false;
			}
			if(document.forms[0].HOME_CITY.value == "")
			{
				alert("Please specify your optional delivery City.");
	        		document.forms[0].HOME_CITY.focus();
				return false;
			}
			if (document.forms[0].HOME_STATE.selectedIndex == 0)
			{
				alert("Please specify your optional delivery State");
		        	document.forms[0].HOME_STATE.focus();
				return false;
			}

			// validate Canadian state/postal code combination
			if (!ValidCanPostal(document.forms[0].HOME_STATE[document.forms[0].HOME_STATE.selectedIndex].value,document.forms[0].HOME_ZIPCODE.value))
			{
				alert ("Invalid optional delivery Canadian province/postal code combination.");
        			document.forms[0].HOME_STATE.focus();
				return false;
			}

			
				if (document.forms[0].HOME_ZIPCODE.value.length < 5)
				{
					alert("Please specify your optional delivery Zip Code.");
	        			document.forms[0].HOME_ZIPCODE.focus();
					return false;
				}
			
		}
	
      		if (!DemoBlock(mode))
		{
			return false;
		}
	}

 }  
function PaidformCheck()
{ 
	if(document.forms[0].FNAME.value == "")
	{
		alert("Please specify your First name.");
        	document.forms[0].FNAME.focus();
		return false;
	}
	if(document.forms[0].LNAME.value == "")
	{
		alert("Please specify your Last name.");
        	document.forms[0].LNAME.focus();
		return false;
	}
	if(document.forms[0].ADDRESS2.value == "")
	{
		alert("Please specify your Street Address.");
	        document.forms[0].ADDRESS2.focus();
		return false;
	}
	if(document.forms[0].CITY.value == "")
	{
		alert("Please specify your City.");
	        document.forms[0].CITY.focus();
		return false;
	}
	if (document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value == "")
	{
		alert("Please specify your Province or select 'I am not in Canada'.");
		document.forms[0].STATE.focus();
		return false;
	}

	// validate Canadian state/postal code combination
	if (!ValidCanPostal(document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value,document.forms[0].ZIPCODE.value))
	{
		alert ("Invalid Canadian province/postal code combination.");
        	document.forms[0].STATE.focus();
		return false;
	}

	if (document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value == "53")
	{
		if(document.forms[0].COUNTRY[document.forms[0].COUNTRY.selectedIndex].value == "")
		{
			alert("Please specify your Country.");
	        	document.forms[0].COUNTRY.focus();
			return false;
		}

		if(document.forms[0].COUNTRY[document.forms[0].COUNTRY.selectedIndex].value == "CANADA")
		{
			alert("Invalid Country.");
	        	document.forms[0].COUNTRY.focus();
			return false;
		}
	}
	else
	{
		if (document.forms[0].ZIPCODE.value.length < 5)
		{
			alert("Please specify your Postal Code.");
	        	document.forms[0].ZIPCODE.focus();
			return false;
		}
	}
 
	if(document.forms[0].EMAIL_ADDRESS.value == "")
	{
		alert("Please specify your E-mail Address.");
        	document.forms[0].EMAIL_ADDRESS.focus();
		return false;
	}
	if  (!validEmail(document.forms[0].EMAIL_ADDRESS.value))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].EMAIL_ADDRESS.focus();
		return false;
	}	
	
	// validate payment info
	if(!checkUnselects(document.forms[0].CARD_TYPE))
	{
		alert("Please specify credit card.");
        	document.forms[0].CARD_TYPE[0].focus();
		return false;
	}

	if(document.forms[0].CARD_NUMBER.value == "")
	{
		alert("Please specify credit card number.");
        	document.forms[0].CARD_NUMBER.focus();
		return false;
	}

	if(checkUnselects(document.forms[0].CARD_TYPE))
	{
		// Visa
		if(document.forms[0].CARD_TYPE[0].checked)
		{
			if (!isVisa(stripWhitespace(document.forms[0].CARD_NUMBER.value)))
			{
				alert("Invalid credid card number. Please re-enter.")
        			document.forms[0].CARD_NUMBER.focus();
				return false;
			}
		}

		// MasterCard
		if(document.forms[0].CARD_TYPE[1].checked)
		{
			if (!isMasterCard(stripWhitespace(document.forms[0].CARD_NUMBER.value)))
			{
				alert("Invalid credid card number. Please re-enter.")
        			document.forms[0].CARD_NUMBER.focus();
				return false;
			}
		}

		// AmEx
		if(document.forms[0].CARD_TYPE[2].checked)
		{
			if (!isAmericanExpress(stripWhitespace(document.forms[0].CARD_NUMBER.value)))
			{
				alert("Invalid credid card number. Please re-enter.")
        			document.forms[0].CARD_NUMBER.focus();
				return false;
			}
		}
	
		if(document.forms[0].ExpMon[document.forms[0].ExpMon.selectedIndex].value == "")
		{
 			alert('Please specify credit card expiration month.');
			document.forms[0].ExpMon.focus();
 			return false;
		}
		if(document.forms[0].ExpYear[document.forms[0].ExpYear.selectedIndex].value == "")
		{
 			alert('Please specify credit card expiration year.');
			document.forms[0].ExpYear.focus();
 			return false;
		}
	}
}  

function checkUnselects(radioItem)
{
	for(i=0;i<radioItem.length;i++)
	{
		if(radioItem[i].checked)
		{
			return true;
		}//end if
	}//end for
	return false;
}

function SelectCanada()
{
	if (IsCanadian(document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value))
	{
		document.forms[0].COUNTRY.value = "CANADA";
	}
	
	if (document.forms[0].STATE.selectedIndex < 3)
	{
		document.forms[0].COUNTRY.selectedIndex = 0;
	}
}

// declare global variables
var i;

// two arrays for Canadian province/postal code validation
var CanCodes=new Array("54","55","56","57","58","59","60","66","61","62","63","64","65");
var CanLetters=new Array("T","UV","R","E","A","B","X","X","KLMNP","C","GHJ","S","Y");


// check if first letter of postal code matches selected Canadian province
// StateCD is 2-digit code that Omeda uses to identify Canadian provinces (value of STATE field)
// PostCD is entered postal code (value of ZIPCODE field)
function ValidCanPostal(StateCD, PostCD)
{
	var fletter=PostCD.substring(0,1);
	fletter = fletter.toUpperCase();

	for(i=0;i<13;i++)
	{
		if (StateCD==CanCodes[i])
		{
			if (CanLetters[i].indexOf(fletter,0) == -1)
			{
				return false;
			}
			else
			{
				return true;
			}
		}
	}
	return true;
}

function IsCanadian(StateCD)
{
	for(i=0;i<13;i++)
	{
		if (StateCD==CanCodes[i])
		{
			return true;
		}
	}
	return false;
}

function checkEmailValue(emailValue)
{     //runs the validate script and returns error box or nonerror

	if (emailValue == "")
	{
		alert("You have not entered email address. Please re-enter it.");
		return false;
	}

	startPos = 0;

	commaPos = emailValue.indexOf(",",startPos+1);	//position of semicolomn
	while (commaPos != -1)
	{
		endPos = commaPos;
		emailElement = emailValue.substring(startPos,endPos);
		if(!validEmail(emailElement))
		{
			alert("You have entered an invalid email address. Please re-enter it.");
			return false;
		}
		startPos = endPos + 1;		
		commaPos = emailValue.indexOf(",",startPos);	//position of semicolomn
	}
	endPos = emailValue.length;
	emailElement = emailValue.substring(startPos,endPos);

	if(!validEmail(emailElement))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		return false;
	}
	return true;		
}				

function validEmail(email)
{
	invalidchars = " /:;";

	if(email == "")
	{			//checks to see if blank field
		return false;
	}
			
	for(i=0;i<invalidchars.length;i++){ //checks for invalid chars
			
	badchars = invalidchars.charAt(i);
			
	if(email.indexOf(badchars,0)!= -1)
	{
		return false;
	}	
													}
	
	atPos = email.indexOf("@",1)  //holds position of "@"
			
	if(atPos == -1) 
	{	//checks to see if "@" present
		return false;
	}
							
	if(email.indexOf("@",atPos+1) != -1) 
	{ //checks for second "@"
		return false;
	}
							
	periodPos = email.indexOf(".",atPos) //holds position of "."
			
	if(periodPos == -1)
	{ //checks for presence of "."
		return false
	}
	if(periodPos+3 > email.length)
	{//makes sure at least two chars after the period
		return false;
	}
	return true; 
}

function ConfirmQuit(book)
{
	if (SubmitFlag == true)
	{
		return;
	}
	
return "The form should take under 2 minutes to complete.\nThat's just 2 minutes for a free 1-year subscription to " + book + ".\nThanks for your continued support!"; 
}

function ConfirmQuitDcnv(book)
{
	if (SubmitFlag == true)
	{
		return;
	}
	
return "The form should take less than 10 seconds to complete.\nThat's just 10 seconds for a free 1-year subscription to " + book + ".\nThanks for your continued support!"; 
}


function SetSubmitFlag()
{
	SubmitFlag = true;
	return;
}

function ClearSubmitFlag()
{
	SubmitFlag = false;
}
function DemoBlock(mode)
{
	// question 3
	     if (!checkUnselects(document.forms[0].PRIM_PRODUCT))
		{
			alert ("Please check the primary end product (question 3).");
			document.forms[0].PRIM_PRODUCT[0].focus();
			return false;
		}
             if (CheckedRadioValue(document.forms[0].PRIM_PRODUCT)=="99")
		{
			if(document.forms[0].PRIM_PRODUCT_DESC.value == "")
			{
				alert("Please specify Other primary end product (question 3-99).");
        			document.forms[0].PRIM_PRODUCT_DESC.focus();
				return false;
			}
		}
	
	// question 4
	if (!checkUnselects(document.forms[0].JOB_FUNCTION))
		{
			alert ("Please check your principal job function. (question 4)");
			document.forms[0].JOB_FUNCTION[0].focus();
			return false;
		}
	if (CheckedRadioValue(document.forms[0].JOB_FUNCTION)=="99")
		{
			if(document.forms[0].JOB_FUNCTION_DESC.value == "")
			{
				alert("Please specify Other Staff. (question 4-99)");
        			document.forms[0].JOB_FUNCTION_DESC.focus();
				return false;
			}
		}
	
	
	// question 5
	if (!checkUnselects(document.forms[0].NUM_OF_EMPLOYEES))
	{
		alert ("Please choose number of employees at this address. (question 5)");
		document.forms[0].NUM_OF_EMPLOYEES[0].focus();
		return false;
	}
	
	
	// question 6
	if (!CheckboxChecked('PROD_SPECIFIED'))
	{
		alert ("Please check the product you recommend. (question 6)");
		return false;
	}

	// question 7
	if (!CheckboxChecked('OTHER_PUBS'))
	{
		alert ("Please check the publications that you received by mail. (question 7)");
		return false;
	}
	
	
	// Personal ID
	 if(document.forms[0].PERSONAL_ID.value == "")
	{
		alert('Please specify your personal identifier (first letter).');
		document.forms[0].PERSONAL_ID.focus();
		return false;
	}

	return true;
}
function CheckedRadioValue(radioItem)
{
	for(i=0;i<radioItem.length;i++)
	{
		if(radioItem[i].checked)
		{
			return radioItem[i].value;
		}//end if
	}//end for
	return false;
}
function checkDropdown(selectBox)
{

	if(selectBox.selectedIndex == "0")
	{
		return false;
	}
	else
	{
		return true;
	}
}
function CheckboxChecked(CheckBoxName)
{
var ChLength = CheckBoxName.length + 1;
var vName = CheckBoxName + "-";

var CBindex = 0;
	for ( i=0; i < document.qualform.elements.length; i++)
	{
		if (document.qualform.elements[i].type == "checkbox")
		{
			if (document.qualform.elements[i].name.substring(0,ChLength)==vName)
			{
				if (CBindex==0) {CBindex = i;}
				if (document.qualform.elements[i].checked)
				{
					return true;
					break;
				}
			}
		}

	}
	document.qualform.elements[CBindex].focus();
	return false;
}

