	function navigate(page)	{
		window.location = page;
	}

	function changeColour(product, page, act)	{
		var f = document.filter;
		tcolour = f.tcolour.value;
		window.location = page+"?product="+product+"&tcolour="+tcolour+"&act="+act;
	}
	
	function openDetailsWindow(topic)	{
		if (typeof(details) != "undefined") details.close();
	  details = window.open("features_detail.php#"+topic, "Detais","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width=350,height=250")
	}
	
	function checkYourDetailsForm()	{
		var f = document.of;
	
		email = f.email_address.value;
		email_conf = f.confirm_email_address.value;
		pass = f.password.value;
		pass_conf = f.password.value;
		site_name = f.company_or_site_name.value;
		contact_name = f.contact_name.value;
		address_1 = f.address_1.value;
		address_2 = f.address_2.value;
		pcode = f.postcode.value;
		tel = f.telephone.value;
		tandc = f.tandc.checked;
		
		
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
		
		if (!(filter.test(email))) { 
       alert("Please enter a valid email address!");
		} else {
			if (email != email_conf)	{
				alert("Please ensure that email addresses match!");
			} else {
				if (pass.length < 5 || pass != pass_conf)	{
					alert("Please ensure password is at least five characters long and passwords match!");
				} else {
					if (!site_name)	{
						alert("Please enter either a company or site name!");
					} else {
						if (!contact_name)	{
							alert("Please enter a contact name!");
						} else {
							if (!address_1)	{
								alert("Please enter an address!");
							} else {
								if (!address_2)	{
									alert("Please enter town / city!");
								} else {
									if (pcode.length < 6)	{
										alert("Please enter your postcode!");
									} else {
										if (tel.length < 5)	{
											alert("Please enter your telephone number!");
										} else {
											if (!tandc)	{
												alert("Please check that you have agreed to freestart.com terms and conditions!");
											} else {
												document.getElementById("of").submit();		
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	function checkPaymentDetailsForm()	{
		var f = document.of;
		
		//Date variables
		var oDate = new Date();
		var sMonth = oDate.getMonth() + 1;
		var sYear = oDate.getFullYear(); 
		
		cardholder = f.CardHolder.value;
		cardnumber = f.CardNumber.value;
		cardstartmonth = f.CardStartMonth.value;
		cardstartyear = f.CardStartYear.value;
		expirymonth = f.ExpiryDateMonth.value;
		expiryyear = f.ExpiryDateYear.value;
		cv2 = f.CV2.value;
		billing1 = f.BillingAddress1.value;
		billing2 = f.BillingAddress2.value;		
		billing_postcode = f.BillingPostCode.value;
		
		if (expirymonth && (expirymonth < sMonth))	{
			if (expiryyear <= sYear)	{
				valid = 0;
			} else {
				valid = 1;
			}
		} else {
			if (expiryyear >= sYear)	{
				valid = 1;
			}	else {
				valid = 0;
			}
		} 
		
		if (!cardholder)	{
			alert("Please enter cardholder name!");
		} else {
			if (cardnumber.length < 12)	{
				alert("Please enter card number!");
			} else {
				if (!valid)	{
					alert("Card expiry date invalid!");
				} else {
					if (cv2.length < 2)	{
						alert("Please enter card security number!\nThis is usually the last three digits on the signature strip on back of the card.");
					} else {
						if (!billing1 && !billing2)	{
							alert("Please enter billing address!");
						} else {
							if (billing_postcode.length < 5)	{
								alert("Please enter a billing postcode!");
							} else {
								document.getElementById("processing").style.display = "inline";
								document.of.submit();
							}
						}
					}
				}
			}
		}
	}
	
	
	
	function toggleAddress() { 
		//e.style.visibility = show ? 'visible' : 'hidden' 
		var f = document.of;
		if (f.use_prev_address.checked)	{
			f.BillingAddress1.value = f.address_1.value;
			f.BillingAddress2.value = f.address_2.value;
			f.BillingPostCode.value = f.postcode.value;						
			f.BillingCountry.value = f.country.value;				
		} else {
			f.BillingAddress1.value = "";
			f.BillingAddress2.value = "";
			f.BillingPostCode.value = "";
			f.BillingCountry.value = "United Kingdom";		
		}
	}
	
	function openInvoicePrint(post)	{
		alert(post[0]);
	}
	
	function checkResellerForm()	{
		var f = document.reseller_form;
		if (!f.contact_name.value)	{
			alert("Please enter contact name!");
		} else {
			if (f.telephone.value.length < 7 && (!checkemail(f.email.value)))	{
				alert("Please enter either a valid telephone number or valid email address!");
			} else {
				if (f.enquiry.value.length < 8)	{
					alert("Please enter details of enquiry!");
				} else {
					f.submit();
				}
			}
		}
	}
	
	function sendCallbackRequest()	{
		var f = document.callback_form;
		if (!f.callback_name.value || !f.callback_number.value || !f.callback_message.value)	{
			alert("Please enter name, phone number and message!");
		} else {
			f.submit();
		}	
	}
	
	function checkAffiliateForm()	{
		var f = document.affiliate_form;
		if (!f.contact_name.value)	{
			alert("Please enter contact name!");
		} else {
			if (f.telephone.value.length < 7 && (!checkemail(f.email.value)))	{
				alert("Please enter either a valid telephone number or valid email address!");
			} else {
				if (f.enquiry.value.length < 8)	{
					alert("Please enter details of enquiry!");
				} else {
					document.getElementById("affiliate_form").submit();
				}
			}
		}
	}	
	
	function checkDomainVal(dn)	{
		var filter  = /(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (filter.test(dn)) {
			return 1;
		} else {
			return 0;
		}
	}
	
	function checkFeaturedSiteForm()	{
		var f = document.featured_site_form;
		if (!f.site_name.value)	{
			alert("Please enter site name!");
		} else {
			if (!checkDomainVal(f.url.value))	{
				alert("Please enter a valid domain name!");
			} else {
				if (!checkemail(f.email.value))	{
					alert("Please enter a valid email address!");
				} else {
					if (f.about_site.value.length < 8)	{
						alert("Please enter some information about your site!");
					} else {
						document.getElementById("featured_site_form").submit();
					}
				}
			}
		}	
	}
	
function checkemail(str){
  var filter=/^.+@.+\..{2,3}$/
  return (filter.test(str))
}	

function checkBespokeEnquiryForm(step)	{
	var f = document.bespoke_enquiry_form;
	switch(step)	{
		case 2:
		case "2":
			if (!checkDomainVal(f.proposed_domain_name.value))	{
				alert("Please enter a valid domain name!");
			} else {
				if (f.proposed_website_details.value.length < 10)	{
					alert("Please enter details about proposed website!");
				} else {
					f.submit();
				}
			}
		break;
		case 3:
		case "3":
			if (f.contact_name.value.length < 2)	{
				alert("Please enter a contact name!");
			} else {
				if (!checkemail(f.email.value) && f.telephone.value.length < 7 && f.mobile.value.length < 7)	{
					alert("Please enter either telephone, mobile or email address!");
				} else {
					f.submit();
				}
			}
		break;
	}
}

function checkContact()	{
	nature_of_enquiry = document.getElementById("nature_of_enquiry").value;
	if (nature_of_enquiry == "support_enquiry")	{
		document.getElementById("rest_of_form").style.display = "none";
		document.getElementById("support_redirect").style.display = "block";
	} else {
		document.getElementById("support_redirect").style.display = "none";
		document.getElementById("rest_of_form").style.display = "block";
	}
}

function setCookie(currency) {
    // set cookies

    var exp = new Date();

    exp.setDate(exp.getDate() + 2);

    var cookie =
        "currency=" +
            escape(currency)     + "; " + // data
        "expires=" + exp.toGMTString() + "; " + // expires
        "path=/cookies";                        // path

    document.cookie = cookie;
}