/* AlaskaPik Order Form calculation and validation... last update 4/26/09 */

var neededFields = new makeAnArray('firstName' ,'lastName', 'address', 'city', 'zip','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_items.value ;
	if ((qty == '') ||
			(qty == ' ')) {
		errMsg = errMsg + 'You didn\'t select any guitar picks' + '\n\n';
			}

// check for required fields 
	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';
			}
	}

	if ((obj.elements['stateAbbr'].value == '') ||
			(obj.elements['stateAbbr'].value == 'Select')) {
		errMsg = errMsg + 'You didn\'t select a state (U.S.), a province (Canada) or foreign country' + '\n';
			}
	
	var country = obj.elements['country'].value	;
	var destination = obj.elements['destination'].value	;
		// errMsg = errMsg + "country: " + country + '\n' + "destination: " + destination + '\n' ;
	if (( destination == '') || ( destination == ' ')) {
	if ( country == "foreign" ){
			errMsg = errMsg + 'You didn\'t enter a destination province/country\n';
			}
	}
	
	var phone = obj.phone.value ;
	if (( phone == '') ||
			( phone == ' ')) {
			errMsg = errMsg + 'You didn\'t enter a phone number\n';
			}
	else {	if (!(isPhoneNumber(phone))) {
		errMsg = errMsg + 'You entered an invalid phone number\n';
	}}	
	
	var eMail = obj.eMail.value ;
	if (( eMail == '') ||
			( eMail == ' ')) {
			errMsg = errMsg + 'You didn\'t enter an e-mail address\n';
			}
		else {
	if (!(isMailAddress(eMail))) {
		errMsg = errMsg + 'You entered an invalid e-mail address\n';
	}}	
	
	/*
	var checkEnter = obj.checkEnter.value ;
		if ((checkEnter == '') || (checkEnter == ' ')) {
			errMsg = errMsg + 'You didn\'t enter the form validation number' + '\n';
			}
		else if (checkEnter != checkNum) {
			errMsg = errMsg + 'You didn\'t enter the correct form validation number' + '\n';
			}
	*/
	// errMsg = errMsg + "stop";
			
	if (errMsg != '') {
		errMsg = '[ Order Form Validation ]\nUnable to process the Order 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;
    }
}
