function validateForm(form){
	var message = "";
	var obj;
	var isRequired = new Array(
					"name","address1", "city", "state", "zip", "country","email", "email2", "creditCardType",
					"creditCardNumber", "creditCardHolderName","creditCardExpiryMonth", "creditCardExpiryYear");
	var isPhone = new Array("phone", "fax");
	var isEmail = new Array("email", "email2");
	var isNumber = new Array("creditCardExpiryMonth", "creditCardExpiryYear", "qty_4600_1AT", "qty_4600_2AT", "qty_4600_6AT", "qty_4600_7AT");
	var isCreditCard = new Array("creditCardNumber");
	
	//check required =============================================
	for(i=0; i<isRequired.length; i++){
		formObj = eval("form."+isRequired[i]);
		if(validateIsEmpty(formObj)){
			error = true;
			message = "This field is required";
			obj = formObj;
			break;
		}
	}
	
	//check phone =============================================
	if(message == ""){
		for(i=0; i<isPhone.length; i++){
			formObj = eval("form."+isPhone[i]);
			if(!validateIsPhone(formObj)){
				message = "Please enter a valid phone number";
				obj = formObj;
				break;
			}
		}
	}
	
	//check email =============================================
	if(message == ""){
		for(i=0; i<isEmail.length; i++){
			formObj = eval("form."+isEmail[i]);
			if(!validateIsEmail(formObj)){
				message = "Please enter a valid e-mail";
				obj = formObj;
				break;
			}
		}
	}
	
	//check number =============================================
	if(message == ""){
		for(i=0; i<isNumber.length; i++){
			formObj = eval("form."+isNumber[i]);
			if(!validateIsNumber(formObj)){
				message = "Please enter a number";
				obj = formObj;
				break;
			}
		}
	}
	
	//credit card number =============================================
	if(message == ""){
		for(i=0; i<isCreditCard.length; i++){
			formObj = eval("form."+isCreditCard[i]);
			if(!validateIsCreditCard(formObj)){
				message = "Please enter valid credit card number";
				obj = formObj;
				break;
			}
		}
	}
	
	if(message == ""){
		//special cases =============================================
		if(trim(form.email.value) != trim(form.email2.value)){
			message = "The e-mails do not match";
			obj = form.email2;
			validateHighlight(form.email);
			validateHighlight(form.email2);
		}
		else{
			validateUnHighlight(form.email);
			validateUnHighlight(form.email2);
		}
		
		if(
			validateIsEmpty(form.qty_4600_1AT) && 
			validateIsEmpty(form.qty_4600_2AT) && 
			validateIsEmpty(form.qty_4600_6AT) && 
			validateIsEmpty(form.qty_4600_7AT)
		  ){
			message = "Please order at least one item";
			obj = form.qty_4600_1AT;
			validateHighlight(form.qty_4600_1AT);
			validateHighlight(form.qty_4600_2AT);
			validateHighlight(form.qty_4600_6AT);
			validateHighlight(form.qty_4600_7AT);
		}
		else{
			validateUnHighlight(form.qty_4600_1AT);
			validateUnHighlight(form.qty_4600_2AT);
			validateUnHighlight(form.qty_4600_6AT);
			validateUnHighlight(form.qty_4600_7AT);
		}
	}
	
	if(message!=""){
		if(obj.length == null)
			obj.focus();
		else
			obj[0].focus();
			
		alert(message);
		return false;	
	}
	
	return true;
}
