function validateForm(form)
{	
	with(form)
	{
		if(!validatePhoneNumber(buyer_phone_number, "Please fill in your phone number.", "Please enter a valid phone number"))
		{
			buyer_phone_number.focus();
			return false;
		}
		if(!validatePhoneNumber(recipicent_phone_number, "Please fill in the recipient's phone number.", "Please enter a valid recipient phone number"))
		{
			recipicent_phone_number.focus();
			return false;
		}
		if(!validateRequired(recipicent_address, "Please fill in the recipient's address"))
		{
			recipicent_address.focus();
			return false;
		}
		if(!validateRequired(recpicent_city, "Please fill in the recipient's city"))
		{
			recpicent_city.focus();
			return false;
		}
		if(!validateRequired(price, "Please fill in a price"))/*price.value == "" || price.value == null)*/
		{
			price.focus();
			return false;
		}
		if(occasion.value == "Select Occasion" || occasion.value == "" || occasion.value == null)
		{
			alert("Please select an occasion");
			occasion.focus();
			return false;
		}
	}	
}

function validateRequired(field, alertText)
{
	with(field)
	{
		if(value == null || value == "")
		{
			alert(alertText);
			return false;
		}
		else
		{
			return true;
		}
	}
}

function validateEmail(field, alertText)
{
	with (field)
	{
		apos = value.indexOf("@");
		dotpos = value.lastIndexOf(".");
		if( apos < 1 || dotpos - apos < 2)
		{
			alert(alertText);
			return false;
		}
		else 
		{
			return true;
		}
	}
}

/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}

function stripCharsInBag(s, bag)
{   
	var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++)
	{   
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function checkInternationalPhone(strPhone)
{
	var bracket=3
	strPhone=trim(strPhone)
	if(strPhone.indexOf("+")>1) return false
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
	var brchr=strPhone.indexOf("(")
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function validatePhoneNumber(field, alertTextNone, alertTextInvalid)
{
	with(field)
	{
		if ((value == null) || (value == ""))
		{
			alert(alertTextNone)
			return false
		}
		if (checkInternationalPhone(value) == false)
		{
			alert(alertTextInvalid)
			return false
		}
	}
	return true
}
