
var neededFields = new makeAnArray('firstName' ,'lastName', 'address', 'city', 'postal','country');
var neededDesc = new makeAnArray('your first name', 'your last name', 'your address', 'your city', 'a postal or zip code','a country');

function makeAnArray() {
        this.length = makeAnArray.arguments.length;
        for (var i = 0; this.length > i; i++) {
          	this[i+1] = makeAnArray.arguments[i]
          	}	
	}

function validInfo(obj) {
	var errMsg = '';
	
	// Check if any items were selected
	var qty = obj.qty.value ;
	if (qty == 0) {
		errMsg = errMsg + 'You didn\'t select number of games' + '\n\n';
			}

	if ((obj.elements['phone'].value == '') ||
			(obj.elements['phone'].value == ' ')) {
		errMsg = errMsg + 'You didn\'t enter a phone number' + '\n';
			}
	else {	if (!(isPhoneNumber(obj.elements['phone'].value))) {
		errMsg = errMsg + 'You entered an invalid phone number\n'
	}}
	if ((obj.elements['email'].value == '') ||
			(obj.elements['email'].value == ' ')) {
		errMsg = errMsg + 'You didn\'t enter an E-mail address' + '\n';
			}
	else {
	if (!(isMailAddress(obj.elements['email'].value))) {
		errMsg = errMsg + 'You entered an invalid E-mail address\n'
	}}

	for (var l = 1; neededFields.length > l; l ++) {
		if ((obj.elements[neededFields[l]].value == '') ||
			(obj.elements[neededFields[l]].value == ' ')) {
			errMsg = errMsg + 'You didn\'t enter ' + neededDesc[l] + '\n';
			}
	}
	
	var state = obj.elements['state'].value;
	var cntry = obj.elements['country'].selectedIndex ;
	if ((state == '') ||
			(state == 'none')) {
		errMsg = errMsg + 'You didn\'t select a state or province' + '\n';
			}
			
	if (state == "xx" && cntry < 3 ) { // need to select country outside of US or Canada
	errMsg = errMsg + 'You didn\'t select country destination (outside of US or Canada)' + '\n';
	//  debug issue: errMsg = errMsg + 'cntry: ' + cntry + '\n';
	}	
	
	var shipMethod = obj.elements['shipType'].selectedIndex ;
	var shipping = obj.elements['shipping'].value ;
	
		if ((shipMethod == '0')) {
		errMsg = errMsg + 'You didn\'t select a shipping method (surface or air)' + '\n';
			}
	
	if (errMsg != '') {
		errMsg = '[ Order Validation ]\nUnable to process the form because:\n\n' + errMsg;
		alert(errMsg);
		return false;
	} else {
		return true;
	}
}

function isPhoneNumber(n) {
   var nl = n.length;
   var goodNum = true;
   if (7 > nl) { goodNum = false; }
   for (c = 0; n.length > c; c++) {
      t = n.charAt(c);
      if (((t >= '0') && ('9' >= t) || (t == '.') || (t == ' ') || (t == '+') || (t == '-')|| (t == ')')|| (t == '(')) != true) {
	goodNum = false;
      }
   }
   if ((n == '') || (n == ' ')) { goodNum = false; }
	
   return goodNum;
}

function isMailAddress(m) {
   if ((m == '') || (m == ' ')) { return false; }
   
    var a = 1;
    var ml = m.length;

    while ((a < ml) && (m.charAt(a) != "@")) { a++ }
    if ((a >= ml) || (m.charAt(a) != "@")) {
	return false;
    } else {
	a = a + 2;
    }
    while ((ml > a) && (m.charAt(a) != ".")) { a++ }
    if ((a >= ml - 1) || (m.charAt(a) != ".")) {
	return false;
    } else {
    return true;
    }
}