function formCheck(mode, description)
{ 
	if (!CheckUnselects(document.forms[0].RECEIVE_YES_NO))	
	{
		alert("Please indicate if you wish receive/continue to receive Desktop Engineering.");
       		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 select your desired magazine format.");
       		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/Province or select 'I am not in the U.S. or 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.value == "")
			{
				alert("Please specify your Country.");
	        		document.forms[0].COUNTRY.focus();
				return false;
			}
		}
		else
		{
			if (document.forms[0].ZIPCODE.value.length < 5)
			{
				alert("Please specify your Zip/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;
	}
	
	if (document.forms[0].EMAIL_ADDRESS2.value == "") 
	{
		alert("Please confirm your email address.");
		document.forms[0].EMAIL_ADDRESS2.focus();
		return false;
	}   
	if(document.forms[0].EMAIL_ADDRESS.value.toUpperCase() != document.forms[0].EMAIL_ADDRESS2.value.toUpperCase())
	{
		alert("Confirmation email address does not match email address.");
	       	document.forms[0].EMAIL_ADDRESS.focus();
		return false;
	}	
	
	if (!CheckDemos(document.forms[0]))
	{
		return false;
	}
	return true;
}  

function PaidformCheck(mode)
{ 
	if (!CheckUnselects(document.paidform.SUBSCRIPTION))	
	{
		alert("Please select your subscription.");
        	document.paidform.SUBSCRIPTION[0].focus();
		return false;
	}
	if (!CheckPaymentInfo())
	{
		return false;
	}
	

	if (mode == "ADD")
  	{
                
		if (document.paidform.FNAME.value == "")
		{
			alert("Please specify your First name.");
	       		document.paidform.FNAME.focus();
			return false;
		}
		if (document.paidform.LNAME.value == "")
		{
			alert("Please specify your Last name.");
       			document.paidform.LNAME.focus();
			return false;
		}
	}

	if (mode != "RENEW")

  	{
		if (!CheckBusAddress())
		{
			return false;
		}
	} 
	if (document.paidform.EMAIL_ADDRESS.value == "")
	{
		alert("Please specify your E-mail Address.");
       		document.paidform.EMAIL_ADDRESS.focus();
		return false;
    	}
  	if (!validEmail(document.paidform.EMAIL_ADDRESS.value))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.paidform.EMAIL_ADDRESS.focus();
		return false;
	}
	
	if (document.paidform.EMAIL_ADDRESS2.value == "") 
	{
		alert("Please confirm your email address.");
		document.paidform.EMAIL_ADDRESS2.focus();
		return false;
	}   
	if(document.paidform.EMAIL_ADDRESS.value.toUpperCase() != document.paidform.EMAIL_ADDRESS2.value.toUpperCase())
	{
		alert("Confirmation email address does not match email address.");
	       	document.paidform.EMAIL_ADDRESS.focus();
		return false;
	}	

	
	
	
	return true;

}
function CheckBusAddress()
{
	if (document.paidform.ADDRESS2.value == "")
	{
		alert("Please specify your Street Address.");
	        document.paidform.ADDRESS2.focus();
		return false;
	}
	if (document.paidform.CITY.value == "")
	{
		alert("Please specify your City.");
	        document.paidform.CITY.focus();
		return false;
	}
	if (document.paidform.STATE.selectedIndex == 0)
		{
			alert("Please specify your State/Province or select 'I am not in the U.S. or Canada'.");
		        document.paidform.STATE.focus();
			return false;
		}

	// validate Canadian state/postal code combination
		if (!ValidCanPostal(document.paidform.STATE[document.paidform.STATE.selectedIndex].value,document.paidform.ZIPCODE.value))
		{
			alert ("Invalid Canadian province/postal code combination.");
        		document.paidform.STATE.focus();
			return false;
		}
	if (document.paidform.STATE[document.paidform.STATE.selectedIndex].value == "53")
	{
		if (document.paidform.COUNTRY.value == "")
		{
			alert("Please specify your Country.");
	        	document.paidform.COUNTRY.focus();
			return false;
		}
	}
	else
	{
		if (document.paidform.ZIPCODE.value.length < 5)
		{
			alert("Please specify your Zip/Postal Code.");
	        	document.paidform.ZIPCODE.focus();
			return false;
		}
	}
	
	return true;
}

function CheckPaymentInfo()
{
	if (!CheckDropdown(document.paidform.CARD_TYPE))
	{
		alert("Please specify credit card.");
        	document.paidform.CARD_TYPE.focus();
		return false;
	}

	if (document.paidform.CARD_NUMBER.value == "")
	{
		alert("Please specify credit card number.");
        	document.paidform.CARD_NUMBER.focus();
		return false;
	}

	// Visa
	if (document.paidform.CARD_TYPE.selectedIndex == 1)
	{
		if (!isVisa(stripWhitespace(document.paidform.CARD_NUMBER.value)))
		{
			alert("Invalid credid card number. Please re-enter.")
        		document.paidform.CARD_NUMBER.focus();
			return false;
		}
	}

	// MasterCard
	if (document.paidform.CARD_TYPE.selectedIndex == 2)
	{
		if (!isMasterCard(stripWhitespace(document.paidform.CARD_NUMBER.value)))
		{
			alert("Invalid credid card number. Please re-enter.")
        		document.paidform.CARD_NUMBER.focus();
			return false;
		}
	}
	
	// AmEx
	if (document.paidform.CARD_TYPE.selectedIndex == 3)
	{
		if (!isAmericanExpress(stripWhitespace(document.paidform.CARD_NUMBER.value)))
		{
			alert("Invalid credid card number. Please re-enter.")
        		document.paidform.CARD_NUMBER.focus();
			return false;
		}
	}
	
	

	if (!CheckDropdown(document.paidform.ExpMon))
	{
 		alert('Please select the expiration month.');
		document.paidform.ExpMon.focus();
 		return false;
	}

	if (!CheckDropdown(document.paidform.ExpYear))
	{
 		alert('Please select the expiration year.');
		document.paidform.ExpYear.focus();
 		return false;
	}
	return true;
	
}
function CheckboxChecked(thisform,CheckBoxName)
{
var ChLength = CheckBoxName.length + 1;
var vName = CheckBoxName + "-";

var CBindex = 0;

	for ( i=0; i < thisform.elements.length; i++)
	{
		if (thisform.elements[i].type == "checkbox")
		{
			if (thisform.elements[i].name.substring(0,ChLength)==vName)
			{
				if (CBindex==0) {CBindex = i;}
				if (thisform.elements[i].checked)
				{
					return true;
					break;
				}
			}
		}

	}

	//thisform.elements[CBindex].focus();
	return false;
}		

function CheckDropdown(selectBox)
{
	if (selectBox.selectedIndex == "0")
	{
		return false;
	}
	else
	{
		return true;
	}
}

function CheckUnselects(radioItem)
{
	for(i=0;i<radioItem.length;i++)
	{
		if (radioItem[i].checked)
		{
			return true;
		}//end if
	}//end for
	return false;
}
 
//
//
// 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 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 CheckedRadioValue(radioItem)
{
	for(i=0;i<radioItem.length;i++)
	{
		if (radioItem[i].checked)
		{
			return radioItem[i].value;
		}//end if
	}//end for
	return false;
}

function qualifiedPrint(mode)
{
	var state;
	if (CheckedRadioValue(document.forms[0].REQUESTED_VERSION) == "P")
	{
		if ((mode=="ADD") || (mode=="COA"))
			{state = document.forms[0].STATE[document.forms[0].STATE.selectedIndex].value;}
		else
			{state = document.forms[0].STATE.value;}

		if ("53,54,55,56,57,58,59,60,61,62,63,64,65,66".indexOf(state,0) == -1)
			{return true;}
		else
		{
			alert ("Free print subscription is only available for US addresses. Please return to Question 1b and select 'Digital Version'.");
			return false;
		}
	}
	return true;
}
function checkEmailValuePA()
{   //runs the validate script and returns error box or nonerror
	
	if ((document.forms[0].email1.value != "") && (!validEmail(document.forms[0].email1.value)))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].email1.focus();
		return false;
	}
	if ((document.forms[0].email2.value != "") && (!validEmail(document.forms[0].email2.value)))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].email2.focus();		
		return false;
	}
	if ((document.forms[0].email3.value != "") && (!validEmail(document.forms[0].email3.value)))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].email3.focus();		
		return false;
	}
	if ((document.forms[0].email4.value != "") && (!validEmail(document.forms[0].email4.value)))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].email4.focus();		
		return false;
	}
	if ((document.forms[0].email5.value != "") && (!validEmail(document.forms[0].email5.value)))
	{
		alert("You have entered an invalid email address. Please re-enter it.");
		document.forms[0].email5.focus();		
		return false;
	}
	
	
	
	return true;		
}
function AnswerCheck(form)
{ 
 // at least one newsletter should be checked
	if ((form.NEWSLINK_NEWSLETTER.checked==false) && (form.EPOW_NEWSLETTER.checked==false) && (form.EOA_NEWSLETTER.checked==false)&&(form.VIRTUAL_NEWSLETTER.checked==false)&&(form.RPM_NEWSLETTER.checked==false)&&(form.ENGRGIT_NEWSLETTER.checked==false))
	{
 		alert ("Please indicate which newsletter/s you would like to receive.");
		form.NEWSLINK_NEWSLETTER.focus();
		return false;
	}
               
	if (form.EMAIL_ADDRESS.value == "")
	{
		alert ("Please specify your E-mail Address.");
        	form.EMAIL_ADDRESS.focus();
		return false;
    }
	if (!validEmail(form.EMAIL_ADDRESS.value))
	{
		alert ("You have entered an invalid email address. Please re-enter it.");
		form.EMAIL_ADDRESS.focus();
		return false;
	}
		  
    if (form.EMAIL_ADDRESS2.value == "") 
	{
		alert("Please confirm your email address.");
		form.EMAIL_ADDRESS2.focus();
		return false;
	}   
	if(form.EMAIL_ADDRESS.value.toUpperCase() != form.EMAIL_ADDRESS2.value.toUpperCase())
	{
		alert("Confirmation email address does not match email address.");
	       	form.EMAIL_ADDRESS.focus();
		return false;
	}
	return true;
}
		
//Sample issues for newsletters		

function PopupNewsLink()
{
	window.open("http://www.deskeng.com/newsletters/Newslink_10-22-07.html","","height=400, 		width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	

function PopupEditPick()
{
window.open("http://www.deskeng.com/newsletters/EPOW_10-24-07.htm","","height=400, width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	

function PopupAnalysis()
{
window.open("http://www.deskeng.com/newsletters/DE_Analysis_10-16-07.htm","","height=400, width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	

function PopupMCAD()
{
window.open("http://www.deskeng.com/newsletters/DE_MCAD_10-18.htm","","height=400, width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	

function PopupRP()
{
window.open("http://www.deskeng.com/newsletters/RP_10-11-07.html","","height=400, width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	

function PopupIT()
{
window.open("http://www.deskeng.com/newsletters/DE_IT_10-23-07.htm","","height=400, width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	
function PopupVirtual()
{
window.open("http://www.deskeng.com/newsletters/DE_Virtual_05-21.html","","height=400, width=750,toolbar=no,scrollbars=yes,resizable=yes");
}	
function PopupPrivacy()
{
window.open("http://www.deskeng.com/articles/aaaaec.htm ","","height=700, width=800,toolbar=no,scrollbars=yes,resizable=yes");
}	


