// main javascript form validation
function checkForm()
{
	var radioArray // LOCAL
	frm=document.forms["order_form"]; // GLOBAL
	error_msg="There are fields which need correction before sending";
	
	if(frm) {
		radioArray=frm.elements["Home-Tyme_Driver"];
		// check whether a driver has been selected
		if (radioArray) {
			
			var btn=valButton(radioArray);
			if (btn==null) {		
				alert (error_msg);
				return false;
			}
			else {
				var product=valProducts();
				// check whether at least one product has been selected
				if (product==null)
				{
					alert (error_msg);
					return false;
				}
				else
				{
					// check that the sender has entered valid info
					if (!valInputFields())
					{
						alert (error_msg);
						return false;
					}
					// the form is good
					return true;
				}
			}
		}
	}
}

// Radio Button Validation
// copyright Stephen Chapman, 15th Nov 2004,14th Sep 2005
// you may copy this function but please keep the copyright notice with it
function valButton(btn) {
    var cnt = -1;
	 for (var i=btn.length-1; i > -1; i--) {
	 	if (btn[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1){
	 	 return btn[cnt].value;
		}
	 else return null;
}

// Product selection validation
// Adapted from Radio Button Validation
// copyright Stephen Chapman, 15th Nov 2004,14th Sep 2005
// you may copy this function but please keep the copyright notice with it
function valProducts()
{
	
	var products=frm.elements["Product"];
	var orderedproducts = "";
		
	for (var i=0; i < products.length; ++i)
	{
		if(products[i].checked)
		{
			orderedproduct += products[i].value + "\n";
		}
	}
	
	if (orderededproducts != "") return orderedproducts;
	else return null;
}

/**
 * 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 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){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function valPhone(){
	var Phone=frm.senders_phone
	
	if ((Phone.value==null)||(Phone.value=="")){
		Phone.focus()
		return false
	}
	if (checkInternationalPhone(Phone.value)==false){
		Phone.value=""
		Phone.focus()
		return false
	}
	return true
 }

// Validate senders information
function valInputFields()
{
	if(frm.senders_name.value!="" && valPhone())
	{
		return true;
	}
	return false;
}
	
	
function selectElement(txt)
{
	var theElement=document.getElementById(txt);
	if (theElement.checked) {
		theElement.checked=false;
	}
	else {
		theElement.checked=true;
	}
}

