function $rv(elementName)
{
  var element = document.getElementsByName(elementName);
  var bt_count = element.length; // can't use element.length in the loop, as it would decrement
  for (var i = 0; i <bt_count; i++)
      if (element[i].checked === true)
          return element[i].value;
}


function hide(id) {
    $(id).style.display = 'none';
}

function show(id) {
    $(id).style.display = '';
}

var regexes = {
    "email": /^[a-z0-9][^\(\)\<\>\@\,\;\:\\\"\[\]]*\@[a-z0-9][a-z0-9\-\.]*\.[a-z]{2,4}$/i,
    "digit": /^[0-9]$/,
    "number": /^[0-9]+$/,
    "integer": /^[0-9]+$/,
    "float": /^[0-9.]+$/,
    "alpha": /^[a-zA-Z]+$/,
    "alpha_space": /^[a-zA-Z ]+$/,
    "alphanumeric": /^[a-zA-Z0-9]+$/,
    "alphanumeric_space": /^[a-zA-Z0-9 ]+$/,
    "string": "",
    "strongpass": "", // !!!JDH!!! still to do!
    "date": /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/          
}

// "

function is_valid(field_type, field_data) {
    if (field_type == 'date') {
        if (regexes[field_type].test(field_data)) {
            var parts = field_data.split("-");
            var m = parseInt(parts[1], 10);
            var d = parseInt(parts[2], 10);
            if (m<1 || m>12) return false;
            if (d>month_lengths[m-1] || d<1) return false;
            return true;
        }
        return false;
    }
    else if (field_type == 'phone') {
        var nums = field_data.replace(/\D/g, '');
        return nums.length >= 10;
    }
    else if (regexes[field_type] == "") {
        return true;
    } else {
        return regexes[field_type].test(field_data);
    }
    return false;
}

var prices=[];
prices['Economy']="$5499";
prices['City']="$5999";
prices['Standard']="$6499";
prices['Deluxe']="$7499";

function startOrder() {
    hide('choices');
    show('reservation');
    
    $('chosen').innerHTML = "You chose a " + $rv('color') + " bike with the " + $rv('pack') + " battery pack for " + prices[$rv('pack')];
    
    
}

function resetOrder() {
    show('choices');
    hide('reservation');
}

function checkFields() {
    var msg = '';
    if ($('fname').value.length < 1) msg += 'Please enter your first name\n';
    if ($('lname').value.length < 1) msg += 'Please enter your last name\n';
    if ($('street1').value.length < 1) msg += 'Please enter your street address\n';
    if ($('city').value.length < 1) msg += 'Please enter a city\n';
//    if ($('state').value.length < 1) msg += 'Please enter the state\n';
    if ($('zip').value.length < 1) msg += 'Please enter your zip code\n';
    else if (!is_valid("number", $('zip').value)) msg += 'Please correct your zip code\n';
    if ($('email').value.length < 1) msg += 'Please enter your email address\n';
    else if (!is_valid("email", $('email').value)) msg += 'Please correct your email\n';
    if ($('phone').value.length < 1) msg += 'Please enter your phone number\n';
    else if (!is_valid("phone", $('phone').value)) msg += 'Please correct your phone number (10 digit phone numbers only)\n';
    return msg;
}

function placeOrder() {
    var s = checkFields();
    
    if (s.length > 0) {
        alert(s);
        return;
    }
    
    $('chosen_color').value = $rv('color');
    $('chosen_pack').value = $rv('pack');
    $('customer_info').submit();    
}
