// ************************************* //
//                  Login                //
// ************************************* //

function MyAccount(frm) {
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Password,true,"text","Please enter your password.")) return false;
	return true;
}

// ************************************* //
//            Forgotten Password         //
// ************************************* //

function ForgotPassword(frm) {
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	return true;
}

// ************************************* //
//                Subscribe              //
// ************************************* //

function Subscribe(frm){
	if(!ValidateField(frm.FirstName,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.LastName,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter email address.")) return false;
	return true;
}

// ************************************* //
//                User Form              //
// ************************************* //

function UserForm(frm) {
	if(!ValidateField(frm.TitleId,true,"select","Please select your title.")) return false;
	if(!ValidateField(frm.Firstname,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.Surname,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Phone,true,"text","Please enter your phone number.")) return false;
	if(!ValidateField(frm.Password,true,"text","Please enter your password.")) return false;
	if(frm.PasswordConfirm.value != frm.Password.value){ 
		alert("Your Password does not match the Confirm Password."); 
		return false; 
	}
	if(!ValidateField(frm.BillingCountryId,true,"select","Please select your billing country.")) return false;
	if(frm.BillingStateId.options.length > 0){
		if(!ValidateField(frm.BillingStateId,true,"select","Please select your billing state.")) return false;	
	}
	else{
		if(!ValidateField(frm.BillingState,true,"text","Please enter your billing state.")) return false;	
	}
	if(!ValidateField(frm.BillingPostcode,true,"text","Please enter your billing address postcode.")) return false;
	if(!ValidateField(frm.BillingSuburb,true,"text","Please enter your billing suburb.")) return false;
	if(!ValidateField(frm.BillingAddress1,true,"text","Please enter your billing address.")) return false;
	return true;
}


// ************************************* //
//                Checkout               //
// ************************************* //

function CheckoutRetailer(frm) {
	if(frm.RetailerId.value.replace(/[0-9]+/,'') != ""){
		alert('Please enter a valid retailer id');
		return false;
	}
}


function CheckoutStep1(frm) {
	if(frm.IsGuestShopper.value == 1){
		if(!ValidateField(frm.TitleId,true,"select","Please select your title.")) return false;
		if(!ValidateField(frm.Firstname,true,"text","Please enter your first name.")) return false;
		if(!ValidateField(frm.Surname,true,"text","Please enter your surname.")) return false;
		if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
		if(!ValidateField(frm.Phone,true,"text","Please enter your phone number.")) return false;
		if(!ValidateField(frm.BillingCountryId,true,"select","Please select your billing country.")) return false;
		if(frm.BillingStateId.options.length > 0){
			if(!ValidateField(frm.BillingStateId,true,"select","Please select your billing state.")) return false;	
		}
		else{
			if(!ValidateField(frm.BillingState,true,"text","Please enter your billing state.")) return false;	
		}
		if(!ValidateField(frm.BillingPostcode,true,"text","Please enter your billing address postcode.")) return false;
		if(!ValidateField(frm.BillingSuburb,true,"text","Please enter your billing suburb.")) return false;
		if(!ValidateField(frm.BillingAddress1,true,"text","Please enter your billing address.")) return false;
	}
	
	if(!ValidateField(frm.DeliveryCountryId,true,"select","Please select your delivery country.")) return false;
	if(frm.DeliveryStateId.options.length > 0){
		if(!ValidateField(frm.DeliveryStateId,true,"select","Please select your delivery state.")) return false;	
	}
	else{
		if(!ValidateField(frm.DeliveryState,true,"text","Please enter your delivery state.")) return false;	
	}
	if(!ValidateField(frm.DeliveryPostcode,true,"text","Please enter your delivery address postcode.")) return false;
	if(!ValidateField(frm.DeliverySuburb,true,"text","Please enter your delivery suburb.")) return false;
	if(!ValidateField(frm.DeliveryAddress1,true,"text","Please enter your delivery address.")) return false;
}

function CheckoutStep2Retailer(frm){
	if(frm.PaymentOption[0].checked == true)
		return CheckoutStep2(frm);
}

function CheckoutStep2(frm) {
	if(!ValidateField(frm.CardName,true,"text","Please credit card holders name.")) return false;
	if(!ValidateField(frm.CardNumber,true,"creditcard","Please enter a valid credit card number.")) return false;
	return true;
}

// ************************************* //
//               Semi Custom             //
// ************************************* //
function SemiCustom(frm) {
	if(!ValidateField(frm.TitleId,true,"select","Please select your title.")) return false;
	if(!ValidateField(frm.FirstName,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.LastName,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Phone,true,"text","Please enter your phone number.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Address1,true,"text","Please enter your address name.")) return false;
	if(!ValidateField(frm.Suburb,true,"text","Please enter your suburb.")) return false;
	if(!ValidateField(frm.State,true,"text","Please enter your state.")) return false;	
	if(!ValidateField(frm.Postcode,true,"text","Please enter your postcode.")) return false;
	if(!ValidateField(frm.CountryId,true,"select","Please enter your country.")) return false;

	// must have 10 or more for quantity
	var totalQty = Number(document.getElementById('sQty').value) + 
		Number(document.getElementById('mQty').value) + 
		Number(document.getElementById('lQty').value) + 
		Number(document.getElementById('xlQty').value);
						
	if (totalQty < 10) {
		alert("You must select a total quantity great than or equal to 10.");
		return false;
	}

	return true;
}

// ************************************* //
//          Custom Wear Enquiry          //
// ************************************* //

function CustomWearEnquiry(frm) {
	if(!ValidateField(frm.Title,true,"select","Please select your title.")) return false;
	if(!ValidateField(frm.FirstName,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.SurName,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Phone,true,"text","Please enter your phone number.")) return false;
	if(!ValidateField(frm.Address1,true,"text","Please enter your address name.")) return false;
	if(!ValidateField(frm.Suburb,true,"text","Please enter your suburb.")) return false;
	if(!ValidateField(frm.State,true,"text","Please enter your state.")) return false;	
	if(!ValidateField(frm.Postcode,true,"text","Please enter your address postcode.")) return false;
	if(!ValidateField(frm.Country,true,"select","Please enter your country.")) return false;
	if(!ValidateField(frm.Comments,true,"text","Please enter your Comments.")) return false;
	return true;
}

// ************************************* //
//               Contact Us              //
// ************************************* //

function ContactUs(frm) {
	if(!ValidateField(frm.Title,true,"select","Please select your title.")) return false;
	if(!ValidateField(frm.FirstName,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.LastName,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Phone,true,"text","Please enter your phone number.")) return false;	
	if(!ValidateField(frm.Subject,true,"text","Please enter a Subject.")) return false;
	if(!ValidateField(frm.Message,true,"text","Please enter your Message.")) return false;
	return true;
}

// ************************************* //
//               Competition             //
// ************************************* //

function CompetitionSignup(frm) {
	if(!ValidateField(frm.Title,true,"select","Please select your title.")) return false;
	if(!ValidateField(frm.FirstName,true,"text","Please enter your first name.")) return false;
	if(!ValidateField(frm.Surname,true,"text","Please enter your surname.")) return false;
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Phone,true,"text","Please enter your phone number.")) return false;
	if(!ValidateField(frm.Password,true,"text","Please enter your password.")) return false;
	if(!ValidateField(frm.agree,true,"checks","Please agree to the terms and conditions.")) return false;
	return true;
}

function CompetitionLogin(frm) {
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	if(!ValidateField(frm.Password,true,"text","Please enter your password.")) return false;
	return true;
}

function CompetitionForgot(frm) {
	if(!ValidateField(frm.Email,true,"email","Please enter your email address.")) return false;
	return true;
}

function CompetitionSubmit(frm) {
	if(!ValidateField(frm.EntryName,true,"text","Please enter a name for your entry.")) return false;
	if(!ValidateField(frm.FileContents,true,"image","Please choose a file to upload.")) return false;
	if(!ValidateField(frm.agree,true,"checks","Please agree to the terms and conditions.")) return false;
	return true;
}

// ************************************* //
//          Validation Functions         //
// ************************************* //

function validateMessage(fld, name, msg) {
	if (!msg) msg = 'enter a';
	alert('Please ' + msg + ' value for the ' + name + ' field.');
	fld.focus();
}

function ValidateField(fld, required, type, message) {
	if (type != "date" && type != "datetime" && type != "time" && type != "lookup" && type != "checks")
		var fieldvalue = fld.value.replace(/ $/);
	switch(type) {
		case "text": case "varchar": case "memo": case "halign": case "color": case "html":
			if (fieldvalue == "") {	
				alert(message);
				fld.focus();
				return false;
			}
			break;
		case "image" :
			var ret = true;
			if (fieldvalue.length < 5)
				ret = false;
			fieldvalue = fieldvalue.toLowerCase();
			if (fieldvalue.substr(fieldvalue.length-4, 4) != ".gif" && fieldvalue.substr(fieldvalue.length-4, 4) != ".jpg" && fieldvalue.substr(fieldvalue.length-5, 5) != ".jpeg")
				ret = false;
				
			if (fieldvalue.indexOf(":") != -1 && fieldvalue.indexOf("?") != -1 && fieldvalue.indexOf("&") != -1 && fieldvalue.indexOf("+") != -1)
				ret = false;
			
			if (!ret) {
				fld.value = "";
				alert(message + "\n- valid image file types are: (gif,jpg,jpeg)\n- file names can NOT contain an of the following characters: (?,&,+,:)");
				fld.focus();
			}
			return ret;
			break;
		case "email" :
			if (fieldvalue == "" || fieldvalue.length < 6 || fieldvalue.indexOf("@") < 1 || fieldvalue.indexOf("@") > (fieldvalue.length - 5) || fieldvalue.indexOf("@") != fieldvalue.lastIndexOf("@") || fieldvalue.lastIndexOf(".") > (fieldvalue.length - 3)) {
				alert(message + "\n- valid email addresses are formatted (eg): yourname@domain.com");
				fld.focus();
				return false;
			}
			break;
		case "currency" :
			if (fld.value == "" || fld.value.replace(/[0-9]*[.]?[0-9]?[0-9]?/, "") != "") {
				alert(message + "\n- must be a valid currency entry (no $ sign, max 2 decimal places).");
				fld.focus();
				return false;
			}
			break;
		case "int" :
			if (fld.value == "" || fld.value.replace(/[0-9]+/, "") != "") {
				alert(message + "\n- must be a valid integer (non-decimal number).");
				fld.focus();
				return false;
			}
			break;
		case "creditcard" :
			ccnumber = fld.value.replace(/[^0-9]+/g, "");
			if(ccnumber < 16) {
				alert(message);
				fld.focus();
				return false;
			}
			break;
		case "dec" :
			if (fld.value == "" || fld.value.replace(/[0-9]*[.]?[0-9]*/, "") != "") {
				alert(message + "\n- must be a valid decimal number.");
				fld.focus();
				return false;
			}
			break;
		case "lookup": case "select":
			if (fld.options[fld.selectedIndex].value == "" || fld.options[fld.selectedIndex].value == "0") {
				alert(message);
				fld.focus();
				return false;
			}
			break;
		case "checks":
			checkcheck = false;
			if (fld.length == undefined) {
				if (fld.checked)
					checkcheck = true;
			}				
			else {
				for (var i=0; i < fld.length; i++) {
					if (fld[i].checked) {
						checkcheck = true;
						break;
					}
				}
			}
			if (!checkcheck) {
				alert(message + "\n- select at least one item from the list by clicking the box so that a check appears in it.");
				return false;
			}
			break;
	}	
	return true;
}