// === Validation Functions === //
function jfIsValid( sValue, strValidChars  ) {
	var isValid = new Boolean()
	isValid=true
	var myChar=""
	var myInt=0

	if (sValue!="" && typeof(sValue)=="string") {
		for (i=0;i<sValue.length;i++) {
			myChar=sValue.charAt(i)
			myInt=strValidChars.indexOf(myChar)

			if (myInt == -1) {
				isValid=false
				break;
			}
		}
	}
	else {
		isValid=false
	}

	return isValid
}

function jfIsDate(data,datename)
{

// function created : 31.12.03
// created by 		: Farrakh Aslam
// input paramaters : data     - the formname
//datename - the fieldname specified when calling the vbscript date box function
// description      : Can be used to validate any of the vbscript date box functions
data = "document." + data + "."

var day   = eval( data + datename + "_d.value")
var month = eval( data + datename + "_m.value")
var year  = eval( data + datename + "_y.value")

var calcYear = (year % 4 == 0)
if (!calcYear)
	{
	leapDays = 28
	}
else
	{
	leapDays = 29
	}

if (month == 02)
	{
	if (day > leapDays)
	   {
	   return false;
	   }


	}
else if (month == 04 || month == 06 || month == 09 || month == 11)
	{
	if (day > 30)
	   {
	   return false;
	   }

	}
return true;
}


function jfIsEmail(incoming) {
	var emailstring = incoming;
	var ampIndex = emailstring.indexOf("@");
	var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
		// find a dot in the portion of the string after the ampersand only
	var dotIndex = afterAmp.indexOf(".");
		// determine dot position in entire string (not just after amp portion)
	dotIndex = dotIndex + ampIndex + 1;
		// afterAmp will be portion of string from ampersand to dot
	afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
		// afterDot will be portion of string from dot to end of string
	var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
	var beforeAmp = emailstring.substring(0,(ampIndex));

	var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/
		// index of -1 means "not found"
	if ((emailstring.indexOf("@") != "-1") &&
		(emailstring.length > 5) &&
		(afterAmp.length > 0) &&
		(beforeAmp.length > 1) &&
		(afterDot.length > 1) &&
		(email_regex.test(emailstring)) ) {
		  return true;
	} else {
			return false;
	}
}

function jfIsPhoneNum( sValue ) {
	var isPhoneNum = new Boolean()
	isPhoneNum=true
	var myChar=""
	var myInt=0
	var strValidChars = "0123456789";

	if (sValue!="" && typeof(sValue)=="string") {
		for (i=0;i<sValue.length;i++) {
			myChar=sValue.charAt(i)
			myInt=strValidChars.indexOf(myChar)

			if (myInt == -1) {
				isPhoneNum=false
			}
		}

	} else {
		isPhoneNum=false
	}

	return isPhoneNum
}

function jfIsInt( sValue ) {
	var isInteger = new Boolean()
	isInteger=true
	var myChar=""
	var myInt=0

	if (sValue!="" && typeof(sValue)=="string") {
		for (i=0;i<sValue.length;i++) {
			myChar=sValue.charAt(i)
			myInt=parseInt(myChar)

			if (isNaN(myInt)) {
				isInteger=false
			}
		}

	} else {
		isInteger=false
	}

	return isInteger
}

function jstep1(){
	frm = document.frmBasket
	frm.submit()
}


function jstep2(){
	frm = document.frmBasket

	if (frm.optTitle.value == 0){
		alert("Please enter your Title.")
		frm.optTitle.focus();
		return;
	}
	
	if (frm.txtFirstName.value == ""){
		alert("Please enter your First Name.")
		frm.txtFirstName.focus();
		return;
	}
	
	if (frm.txtLastName.value == ""){
		alert("Please enter your Last Name.")
		frm.txtLastName.focus();
		return;
	}
	
	if (frm.txtEmail1.value == "" ){
		alert("Please enter an Email Address.")
		frm.txtEmail1.focus();
		return;
	}
	else if ( jfIsEmail(frm.txtEmail1.value) == false){
		alert("Please enter a valid Email1 Address.")
		frm.txtEmail1.focus();
		return;
	}	
	
	else if (frm.txtCompany.value == "" ){
		alert("Please enter the Company Name.")
		frm.txtCompany.focus();
		return;
	}
	
	if ( frm.txtAdd1.value == ""){
		alert("Please enter the first line of the Company Address.")
		frm.txtAdd1.focus()
		return;
	}

	if ( frm.txtCity.value == "" ){
		alert("Please enter the Company City.")
		frm.txtCity.focus()
		return;
	}

	if ( frm.txtCounty.value == "" ){
		alert("Please enter the Company County.")
		frm.txtCounty.focus()
		return;
	}

	if ( frm.txtPostcode.value == "" ){		
		alert("Please enter the Company Postcode.")
		frm.txtPostcode.focus()
		return;
	}
	else if ( frm.txtPostcode.value.length < 6 ){
		alert("Please enter a valid Company Postcode.")
		frm.txtPostcode.focus()
		return;
	}
	
	
	else if (frm.txtTel.value == "" ){
		alert("Please enter the Company Telephone Number.")
		frm.txtTel.focus();
		return;
	}
	
	if (frm.txtEmail2.value == "" ){
		alert("Please enter the Company Email Address.")
		frm.txtEmail2.focus();
		return;
	}	
	else if ( jfIsEmail(frm.txtEmail2.value) == false){
		alert("Please enter a valid Email2 Address.")
		frm.txtEmail2.focus();
		return;
	}	
		
	frm.submit()
}
