//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('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','imember','bhdtanum1','iotherins','notes');

//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_enter();
}
//-----------------------------------------------------------------------------------------------
function m_init_base()
{
m_makeage_sel('t1_age','h1_age',true);             //fill in horse age selector
m_makeage_sel('t2_age','h2_age',true);
m_makeage_sel('t3_age','h3_age',true);
m_makeage_sel('t4_age','h4_age',true);

m_makesex_sel('t1_sex','h1_sex',true);
m_makesex_sel('t2_sex','h2_sex',true);
m_makesex_sel('t3_sex','h3_sex',true);
m_makesex_sel('t4_sex','h4_sex',true);

var o = igetElement('class');               //get class selector as it changes number of horses etc
if (o) {
  o.onchange=m_classchange;
  m_classchange();
  }

  m_junior();

}
//-----------------------------------------------------------------------------------------------
function m_init_enter()
{
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 o = igetElement('class');               //get class selector
if (o) {
  o.onmouseover=m_mousehelp;
  o.onmouseout=m_mouseout;
  }

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_memchange() //if membership changes - calc price
{
m_calculateprice();
}
//-----------------------------------------------------------------------------------------------
function m_classchange()
//called when class changes - hide show more horses
{
var i,n,s;
var o = igetElement('class');               //get class selector as it changes number of horses etc

if (!o) return;                             //oops can't find it

s = o.value.toLowerCase(o.value);                       //lowercase class name

if (s.indexOf('team') >= 0) {               //see how many horses
  n=4;
  }
else if (s.indexOf('four') >= 0) {
  n=4;
  }
else if (s.indexOf('pair') >= 0) {
  n=2;
  }
else if (s.indexOf('tandem') >= 0) {
  n=2;
  }
else n = 1;

for (i=1;i<=4;i++) { //for all the four possible horse entry areas, show the ones we want hide others   row 1 is always visible
  o = igetElement('h' + i + 'row');
  if (i <= n) {
    o.style.display='inline';
//    o.style.visibility='visible';
    }
  else {
//    o.style.visibility='hidden';
    o.style.display='none';
    }
  }
}
//----------------------------------------------------------------
function m_junior()  //check if junior and show checkbox if required
{
var o = igetElement('pagree1')

if (!o) return;

if (igetElement('dob1').value != '') {
  o.style.display='inline';
  igetElement('pagree').checked  = false;
  }
else {
  o.style.display='none';
  igetElement('pagree').checked = true;  //it will be invisible so check it
  }
}
//----------------------------------------------------------------
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;
var o;

//if (!m_event) return;    //non events - free entry price

if (isChecked('idressagecones')) {  //price calculation for dressage and cones only
  switch (igetRadioValue('imember')) {
  case 'clubmember':
    cost = m_memberdressageconesprice;
    break;
  default:
    cost = m_dressageconesprice;
    break;
    }
  }
else {                      //normal price
  switch (igetRadioValue('imember')) {
  case 'clubmember':
    cost = m_memberprice;
    break;
  default:
    cost = m_price;
    break;
    }
  }

  o = igetElement('extras1');
  if (o) {
    if (o.value>0) {
      cost += o.value*m_extras1;
      }
    }

  for (i=0;i<10;i++) {
    o = igetElement('extras_' + i);
    if (o) {
      if (o.value>0) {
        cost += o.value*m_extras_[i];
        }
      }
    }

  igetElement('cost').innerHTML = 'Total cost: £' + FormatMyNumber(cost,2);

  o = igetElement('amount');
  if (o) {
    o.value = FormatMyNumber(cost,2);
    }

  return cost;
}
//-----------------------------------------------------------------------------------------------
function m_validate()
{
var msg='';
var n;
var o;
var i;
var s;


if (m_event) {
  if  (igetElement('class').value.length < 1) {
    msg += 'Please select the class you\'re entering\n';
    }
  }


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 (m_event) {

  if (!igetElement('iagree').checked) {
    msg += 'We can only accept your entry if you agree to abide by the rules - please check the box\n';
    }

  if (!igetElement('pagree').checked) {
    msg += 'If you\'re under 18 we can only accept your entry if your parent/guardian agrees - please check the box or clear your date of birth\n';
    }

  o = igetElement('icompetence');  //not strictly validation but set value so backend reads easily
  if (o) {
    if (o.checked) {
      o.value = 'Yes';
      }
    else {
      o.value = '';
      }
    }
  }
//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('groomname');
CapitaliseNameField('cfirst_name');
CapitaliseNameField('clast_name');

if (!m_event) {
  if  (igetElement('notes').value.length < 1) {
    msg += 'Please give us a brief description of this payment in the Notes field.\n';
    }

  s = igetElement('amount').value;
  if (s=="" || s=="0.00") {
    msg += 'Please enter the amount.\n';
    }
  }

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('');
}
//------------------------------------------------------------------------------------------------------------------



