
	function validateAddress(specialOffersForm)
	{
		if(tradeLogin)
			return true;
		return ( 
			 trim(specialOffersForm.house.value) != "" 
		     && trim(specialOffersForm.street.value) != ""
		   	 && (trim(specialOffersForm.addressLine2.value) != "" || trim(specialOffersForm.addressLine3.value) != "")
		   	 && trim(specialOffersForm.postcode.value) != "");
	}

	function validateSpecialOffers()
	{		
		var specialOffersForm = document.specialOffersForm;
	
		var message = "";
		var atPattern = /@/;

		//validate names
		if(trim(specialOffersForm.firstName.value) == "")
			message += "\n Please enter a valid first name";
		if(trim(specialOffersForm.lastName.value) == "")
			message += "\n Please enter a valid last name";
		
		var restOfFormIncorrect = "";
		if(tradeLogin)
			restOfFormIncorrect = "\n Please enter a valid email address, mobile number or an abta number"
		else
			restOfFormIncorrect = "\n Please enter a valid email address, mobile number or an \n address(a postcode, house, street and at least a town or city)";
	
		var messagePostcodePresentButNoAddress = "You have entered your postcode, but not your address (please click the find address link)";
		
		var postcode = trim(specialOffersForm.postcode.value) != '';
		
		if (trim(specialOffersForm.email.value) != ""
		 	&& atPattern.test(specialOffersForm.email.value))
		{				
			if((postcode || addressFound) && !tradeLogin && !validateAddress(specialOffersForm) )
				message += messagePostcodePresentButNoAddress;
		}
		else
		{			
			var GoodChars = "0123456789()-+";
			var mobile = specialOffersForm.mobile.value;
			var mobileOK = false;
			if(trim(mobile) != "") 
			{
				mobileOK = true;		
				for(i=0; i<mobile.length; i++) 
				{
					if (GoodChars.indexOf(mobile.charAt(i)) == -1) 
					{
						mobileOK = false;
						break;
					}
				}
			}
			if(mobileOK)
			{						
				if((postcode || addressFound) && !tradeLogin && !validateAddress(specialOffersForm))
					message += messagePostcodePresentButNoAddress;								
			}
			else
				if(!tradeLogin)
				{				
					if(!validateAddress(specialOffersForm))			
						message += restOfFormIncorrect;
				}
				else
				{			
					var abtaNumber = trim(specialOffersForm.abtaNumber.value);
					if(abtaNumber=="")
						message += restOfFormIncorrect;
				}
		}			
								
		if(message != "")
		{		
			alert(message);	
			
			return false;
		}				
		return true;
	}

	function submitForm(method)
	{			
		document.specialOffersForm.method.value = method;	
		document.specialOffersForm.submit();
	}
