//var u_flds=new Array('first_name','last_name','address1','address2','city','postcode','phone_number','email_address','mobile','memb_num','junior','dob','cfirst_name','clast_name');
var m_flds=new Array('first_name','last_name','bhdtanum1','dob1','address1','address2','city','postcode','phone_number','email_address','mobile','memb_num','cfirst_name','clast_name','mnew','useemail','first_name2','last_name2','bhdtanum2','dob2','first_name3','last_name3','bhdtanum3','dob3','first_name4','last_name4','bhdtanum4','dob4');

//var e_flds=new Array('class','groomname','h_vehicle','h1_name','h1_breed','h1_age','h1_sex','h1_height','h2_name','h2_breed','h2_age','h2_sex','h2_height','h3_name','h3_breed','h3_age','h3_sex','h3_height','h4_name','h4_breed','h4_age','h4_sex','h4_height');

//fields are posted to server by name but read by Mozilla by id. Mozilla can get some element types by name but not all...

//-----------------------------------------------------------------------------------------------
function m_clear()
{
saveCookie('mdetails',"");          //clear user/customer details
//saveCookie('edetails',"");          //clear event/horse details
}
//-----------------------------------------------------------------------------------------------
function m_save()
{
 m_save_ex(m_flds,'mdetails');          //save member/user details
// m_save_ex(e_flds,'edetails');          //save event/horse details
}
//-----------------------------------------------------------------------------------------------
function m_init()
{
m_init_base();
m_init_join();
}
//-----------------------------------------------------------------------------------------------
function m_init_base()
{
m_calculateprice();
}
//-----------------------------------------------------------------------------------------------
function m_init_join()
{
m_read_ex(m_flds,'mdetails');        //just load fields from saved cookies
//m_read_ex(e_flds,'edetails');        //just load fields from saved cookies


var all = document.getElementsByTagName('input');
var imax = all.length;
 for (var i = 0;i<imax;i++) {
  o = all[i];
  o.onfocus= function () {
    m_sethelp(this.name);
    }

  o.onmouseover=m_mousehelp;
  o.onmouseout=m_mouseout;
  }
m_calculateprice();

m_sethelp(m_mode);
}
//-----------------------------------------------------------------------------------------------
function m_newclick()
//called when new member changes - hide/show new member details
{
  o = igetElement('inewdetails');

  if (igetElement('mnew').checked) {           //if member is new
    o.style.display='inline';
    }
  else {
    o.style.display='none';
    }

  m_calculateprice();
}
//-----------------------------------------------------------------------------------------------
function m_typechange()
//called when membership type changes - hide show more members
{
var i,n;

var o = igetElement('mtype');               //get class selector as it changes number  etc

if (!o) return;                             //oops can't find it
switch (o.value) {
case "0":
case "1":
  n=1;
  break;
case "2":
  n=2;
  break;
case "3":
  n=3;
  break;
default:
  n=4;
  }
for (i=2;i<=4;i++) { //for all the possible name entry rows
  m_setvisibility('m' + i + 'row', (i <= n));
  }

  m_calculateprice();
}
//----------------------------------------------------------------
function m_cardisdriver()     //fill in cardname from drivername
{
igetElement('cfirst_name').value = igetElement('first_name').value;
igetElement('clast_name').value = igetElement('last_name').value;
}
//-----------------------------------------------------------------------------------------------
function m_calculateprice()
{
var i,n,s;
var cost;

switch (igetElement('mtype').value) {
case "0":                           //supporter
  n=0;                              //num driving members
  cost = 10;
  break;
case "1":
  n=1;
  cost = 30
  break;
case "2":
  n=2;
  cost = 50
  break;
case "3":
  n=3;
  cost = 70
  break;
default:
  n=4;
  cost = 90
  }

 for (i=1;i<=n;i++) { //for all the possible bhdta numbers
   s = igetElement('bhdtanum' + i).value;
   if (s) {
     if (s.length > 0) {
       cost -= 7.5;    //less 7.50 for each bhdta driving member
       }
     }
  }

if (igetElement('mnew').checked && n > 0) {
  cost += 5;                       //extra five pounds for new members except supporter category
  }

  igetElement('cost').innerHTML = 'Total cost: £' + FormatMyNumber(cost,2);

  igetElement('amount').value = FormatMyNumber(cost,2);

  return cost;
}
//-----------------------------------------------------------------------------------------------
function m_validate()
{
var msg='';
var n;
var o;
var i;
var s;

if ((igetElement('first_name').value.length < 1) || (igetElement('last_name').value.length < 3)) {
  msg += 'We need a valid name, please\n';
  }

if  (igetElement('address1').value.length + igetElement('address2').value.length < 8) {
  msg += 'We need a valid address, please\n';
  }

if  (igetElement('city').value.length < 3) {
  msg += 'We need a valid town, please\n';
  }

if  (igetElement('postcode').value.length < 6) {
  msg += 'We need a valid postcode, please\n';
  }

if (!mcheckphone(igetElement('phone_number').value)) {
  msg += 'We need a valid phone number in case we need to contact you about your entry or payment\n';
  }

if (!checkemail(igetElement('email_address').value)){
  msg += 'We need a valid email address to acknowledge your entry and payment.  We look after it and won\'t send spam!\n';
  }

if (!igetElement('iagree').checked) {
  msg += 'We can only accept your entry if you agree to abide by the rules - please check the box\n';
  }


switch (igetElement('mtype').value) {
case "0":
case "1":
  n=1;
  break;
case "2":
  n=2;
  break;
case "3":
  n=3;
  break;
default:
  n=4;
  }

for (i=n+1;i<=4;i++) { //for all the possible name entry rows after valid entries, clear
  igetElement('first_name' + i).value = '';
  igetElement('last_name' + i).value = '';
  igetElement('bhdtanum' + i).value = '';
  igetElement('dob' + i).value = '';
  }

for (i=2;i<=n;i++) { //check all required names are filled in
  if (igetElement('first_name' + i).value.length + igetElement('last_name' + i).value.length < 3) {      //if not enough letters in this name
    msg += 'Please fill in name ' + i + '\n';
    }
  }

//now enforce the capitalisation we think correct

CapitaliseNameField('first_name');
CapitaliseNameField('last_name');
CapitaliseNameField('address1');
CapitaliseNameField('address2');
CapitaliseNameField('city');
igetElement('postcode').value = Trim(igetElement('postcode').value).toUpperCase();

CapitaliseNameField('cfirst_name');
CapitaliseNameField('clast_name');


if (igetElement('mnew').checked) {    //for new members
s = "I have been driving ";

if (igetElement('nyears').value) {
  s += igetElement('nyears').value + ' years';
  if (igetElement('nmonths').value) s += ' ' + igetElement('nmonths').value + ' months';
  }
else s += igetElement('nmonths').value + ' months';

s +=". I drive "

if (igetElement('npony').checked) s +=' pony';
if (igetElement('nhorse').checked) s +=" horse";

if (igetElement('nsingle').checked) s +=" single";
if (igetElement('npair').checked) s +=" pair";
if (igetElement('ntandem').checked) s +=" tandem";
if (igetElement('nteam').checked) s +=" team";

s +=".";

  if (igetElement('nindoor').checked && igetElement('noutdoor').checked) s += " I have driven in indoor and outdoor driving trials.";
  else if (igetElement('nindoor').checked) {
     s += " I have driven in indoor driving trials.";
     }
  else if (igetElement('noutdoor').checked) {
     s += " I have driven in outdoor driving trials.";
     }
  else s += " I have not driven in driving trials.";
  }
else s = "";

igetElement('newnotes').value = s;

if (msg.length>1) {
  alert(msg);
  return false;
  }

return true;
}
//-----------------------------------------------------------------------------------------------
function m_makeage_sel(mynam,newnam,addblank)
{
var o = igetElement(mynam);              //find element to be filled

if (!o) return;                                  //none found

var ahtml =  new Array();

ahtml[ahtml.length] = '<select id="' + newnam + '" name="' + newnam + '">';
if (addblank)  ahtml[ahtml.length] = '<option> </option>';
for (var i=4;i<=30;i++) {       //generate possible horse ages
  ahtml[ahtml.length] = '<option value="' + i + '">' + i + '</option>';
  }
ahtml[ahtml.length] = '</select>';

o.innerHTML =ahtml.join('');
}
//-----------------------------------------------------------------------------------------------
function m_makesex_sel(mynam,newnam,addblank)
{
var o = igetElement(mynam);              //find element to be filled

if (!o) return;                                  //none found

var ahtml =  new Array();

ahtml[ahtml.length] = '<select id="' + newnam + '" name="' + newnam + '">';
if (addblank)  ahtml[ahtml.length] = '<option> </option>';
ahtml[ahtml.length] = '<option value="G">Gelding</option>';
ahtml[ahtml.length] = '<option value="M">Mare</option>';
ahtml[ahtml.length] = '<option value="S">Stallion</option>';
ahtml[ahtml.length] = '</select>';

o.innerHTML =ahtml.join('');
}
//------------------------------------------------------------------------------------------------------------------


