﻿var isNetscape = false;
var isIE = false;
var isWhoKnows = false;

//This determines which browser the user is using
if (parseInt(navigator.appVersion) >= 4) {
  if (navigator.appName == "Netscape") {
    isNetscape = true;
  }
  else if (navigator.appName == "Microsoft Internet Explorer") {
    isIE = true;
  }
  else {
    isWhoKnows = true;
  }
}

function OnEnterPostcode(form) {
  if (form.postcode.value == 'Enter Postcode')
    form.postcode.value = '';
}



var OnSearchDonate_pointer = OnSearchDonate

function OnSearchDonate(form) 
{
  if (document.search_yider.yider.value.length == 0) 
  {
    alert('You must enter a term to search for!');
    form.yider.focus();
    return false; 
  }
}


function EPathTransfusion(form)
{
  form.action = "https://e-pathsecure.net/au/2195/2195.php";
  form.submit();
}


function OnEnterHit(form, event, function_to_call) {
  if (isIE)
    OnEnterHitIE(form, event, function_to_call);
  else if (isNetscape)
    OnEnterHitNetscape(form, event, function_to_call);
}


function OnEnterHitIE(form, event, function_to_call) {
  var keycode;

  if (window.event) {
    keycode = window.event.keyCode;
  }
  else
    return true;

  if (keycode == 13) {
    function_to_call(form);
    return false;
  }
  else
    return true;
}


function OnEnterHitNetscape(form, event, function_to_call) {
  if (event.which == 13) {
    function_to_call(form);
    return false;
  }
  else
    return true;
}


function RemoveMobileFields()
{
  document.getElementById('mobile_centre_selector').style.display='none';
}

function FDC_Change(input, field_name)
{
  var select;
  
  select = input.form.contact;
  
  if(input.value.length == 0)
    RemoveOption(select, field_name);
  else
    AddOption(select, field_name);
}


function OnARCBSRegister(form)
{
  var ok;
  
  ok = true;
  
  ok = OnRedCrossEmail(ok, form.email, "username");
  ok = OnPassword(ok, form.password, "password", 50, false);
  
  if(ok)
    form.submit();
}

function OnChange(form)
{
  var ok;
  
  ok = true;
  
  ok = OnRedCrossEmail(ok, form.username, "username");
  ok = OnPassword(ok, form.oldpassword, "oldpassword", 50, false);
  ok = OnPassword(ok, form.newpassword, "newpassword", 50, false);
  ok = OnPassword(ok, form.confirmpassword, "confirmpassword", 50, false);

  if (form.newpassword.value != form.confirmpassword.value)
  {
    ok = false;
    alert('Confirm password must be same as the new password!');
  }
  
  if(ok)
    form.submit();  
}

function OnChangeAddress(form)
{
  var ok;
  
  ok = true;
  ok = OnTextBox(ok, form.donorID, "Donor ID", 50, false);
  ok = OnSelect(ok, form.title, "Title");
  ok = OnTextBox(ok, form.first, "First name", 50, false);
  ok = OnTextBox(ok, form.surname, "Family Name", 50, false);
  ok = OnDigit(ok, form.day, "day");
  ok = OnDigit(ok, form.mon, "month");
  ok = OnDigit(ok, form.year, "year");
  ok = OnTextBox(ok, form.address, "Old Address", 50, false);
  ok = OnTextBox(ok, form.suburb, "Old Suburb", 50, false);
  ok = OnSelect(ok, form.state, "Old State");
  ok = OnDigit(ok, form.postcode, "Old Postcode");
  ok = OnTextBox(ok, form.address1, "New Address", 50, false);
  ok = OnTextBox(ok, form.suburb1, "New Suburb", 50, false);
  ok = OnSelect(ok, form.state1, "New State");
  ok = OnDigit(ok, form.postcode1, "New Postcode");
  ok = OnDigit(ok, form.phone_home, "Home Phone");
  ok = OnEmail(ok, form.email);

  ok = OnCheckbox(ok, form.agree, "You must agree to be contacted by the Australian Red Cross Blood Service");
  
  if(ok)
    form.submit();
}


function OnChangeMobileOrder(form, select, postcode)
{
  form.action = "donor-search-results.aspx?IDDataTreeMenu=46&postcode=" + postcode + '&sort=' + select.options[select.selectedIndex].text;
  form.submit();
}


function OnChangeMobileOrder1(form, region, select)
{
  form.action = "donor-search-results.aspx?IDDataTreeMenu=46&region=" + region + '&sort=' + select.options[select.selectedIndex].text;
  form.submit();
}


function OnChangeWinterCampaign(form)
{
  var location;
  
  if(form.state.selectedIndex == 0)
  {
    alert('You must select a state!');
  }
  else
  {
    location = form.action;
    location = AddNameValueToQueryString('state', form.state.options[form.state.selectedIndex].text, location);
    location = AddNameValueToQueryString('sort', form.winter_sort.options[form.winter_sort.selectedIndex].value, location);
    
    window.location = location;
  }
}


function OnDonorAppointment(form)
{
  var ok;
  
  ok = true;
  
  ok = OnSelect(ok, form.title, "Title");
  ok = OnTextBox(ok, form.first, "First name", 50, false);
  ok = OnTextBox(ok, form.surname, "Surname", 50, false);
  ok = OnTextBox(ok, form.address1, "Address 1", 50, false);
  ok = OnTextBox(ok, form.address2, "Address 2", 50, true);
  ok = OnTextBox(ok, form.suburb, "Suburb", 50, false);
  ok = OnSelect(ok, form.state, "State");
  ok = OnDigit(ok, form.postcode, "Postcode");
  ok = OnDigit(ok, form.phone_home, "Home Phone");
  ok = OnEmail(ok, form.email, "Email");
  ok = OnTextBox(ok, form.country, "Country");
  ok = OnSelect(ok, form.dob_year, "Date of Birth");
  ok = OnSelect(ok, form.dob_month, "Date of Birth");
  ok = OnSelect(ok, form.dob_day, "Date of Birth");
  ok = OnSelect(ok, form.country, "Country of Birth");
  
 
 /* if (form.dob_year.selectedIndex > 63) {
    alert("You must select a date of birth that is older than 16");
    form.dob_year.focus();
    ok = false;  

  }*/
  
  //ok = OnEmail(ok, form.email);

  //ok = OnSelect(ok, form.region_id, "Region");
  
  /*if(ok && form.centre_id.selectedIndex == 0 && form.mobile_centre.selectedIndex == 0)
  {
    form.centre_id.focus();
    alert("You must select either a permanent mobile centre or a mobile donor centre!");
    ok = false;
  }*/
  
  //ok = OnSelect(ok, form.centre_id, "Centre");
  //ok = OnSelect(ok, form.referral, "Where did you hear about us");
  ok = OnCheckbox(ok, form.agree, "You must agree to be contacted by the Australian Red Cross Blood Service");
  
  /*if(ok && (form.sms_mobile.checked==true && form.phone_mobile.value.length == 0))
  {
    alert("Please enter a mobile phone number if you would like to receive an SMS.");
    form.phone_mobile.focus();
    ok = false;
  }*/
  
  /*if(ok && (form.captchaInput.value.length == 0))
  {
    alert("Please type in the characters you see on the image.");
    form.captchaInput.focus();
    ok = false;
  }*/

  if(ok)
  {
    //form.action += '&mobileSlctedIdx=' + form.mobile_centre.selectedIndex.toString();
    form.submit();
  }

}


function OnFeedback(form)
{
  var ok;
  
  ok = true;
  
  ok = OnTextBox(ok, form.c100_c1, "First name", 50, false);
  ok = OnTextBox(ok, form.c100_c2, "Family name", 50, false);
  ok = OnSelect(ok, form.c100_c3, "State");
  ok = OnEmail(ok, form.c100_c4);
  ok = OnTextBox(ok, form.c100_c5, "Response", 2000, false);

  if(ok)
    form.submit();
}


function OnForgotten(form)
{
  var ok;
  
  ok = true;
  
  ok = OnRedCrossEmail(ok, form.username, "username");
  
  if(ok)
    form.submit();
}

var OnLogin_pointer = OnLogin


function OnHonourBoard(form)
{
  var ok;
  ok = true;
  
  if(form.state.selectedIndex == 0)
  {
    alert('You must select a state!');
    form.state.focus();
    ok = false;
  }
  
  if(ok && form.blood_type.selectedIndex == 0)
  {
    alert('You must select a blood type!');
    form.blood_type.focus();
    ok = false;
  }
  
  return ok;
}

function OnLogin(form)
{
  form.submit();
}


function OnMobileCentreSelect(form)
{
  var left, top1, height, width;
  
  width = screen.width*0.85;
  height = screen.height*0.85;
  
  left = (screen.width - width)/2;
  top1 = (screen.height - height)/4 - 20;
  
  //alert(form.region_id.options[form.region_id.selectedIndex].text);
  form.mobile_centre_id.value = "0";

  window.open('donor-search-results.aspx?IDDataTreeMenu=46&region=' + escape(form.region_id.options[form.region_id.selectedIndex].text) + '&mobile_centre_select=1', 'mb', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnPhotoDetail(IDDataImageGallery, IDDataContent_7)
{
  var left, top1, height, width;
  
  width = 700;
  height = 750;
  
  left = (screen.width - width)/2;
  top1 = (screen.height - height)/4 - 20;
  
  window.open('gallery-picture.aspx?IDDataImageGallery=' + IDDataImageGallery + '&IDDataContent_7=' + IDDataContent_7, 'gallery_picture', 'width=' + width + ',height=' + height + ',alwaysLowered=1,alwaysRaised=0,channelmode=0,dependent=0,directories=0,fullscreen=0,hotkeys=1,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0,left=' + left + ',top=' + top1 + ',z-lock=0');
}


function OnPostCodeSearch(form)
{
  form.action = 'donor-search-results.aspx?IDDataTreeMenu=46&parent=31&postcode=' + form.postcode.value;
  form.submit();
}


var OnPostCodeSearchMaster_pointer = OnPostCodeSearchMaster

function OnPostCodeSearchMaster(form) {


  var ret;
  var re5digit = /^\d{4}$/ //regular expression defining a 5 digit number

  if (form.postcode.value.search(re5digit) == -1) {
    alert('You must enter a 4 digit number!');
    ret = false;
  }
  else {
    form.action = 'donor-search-results.aspx?IDDataTreeMenu=46&postcode=' + form.postcode.value;
    form.method = 'post';
    form.submit();
    ret = false;
  }

  return ret;
}


function OnRegister(form)
{
  var ok;
  
  ok = true;
  
  ok = OnTextBox(ok, form.first, "First name", 50, false);
  ok = OnTextBox(ok, form.last, "Last name", 50, false);
  ok = OnSelect(ok, form.state, "State");
  ok = OnDigit(ok, form.postcode, "Postcode");
  ok = OnEmail(ok, form.email);
  ok = OnSelect(ok, form.age_range, "Age Range");
  
  if(ok)
    form.submit();
}


function OnSelectItem(form)
{
  var price;
  price = 0;
  
  if(form.days[0].checked && form.days[1].checked && form.days[2].checked)
    price = 590;
  else
  {
    if(form.days[0].checked)
      price += 195;
    
    if(form.days[1].checked)
      price += 195;

    if(form.days[2].checked)
      price += 195;
  
    if(form.options[1].checked)
        price += 50;

    if(form.options[2].checked)
        price += 120;
  }

  document.getElementById('total_cost').innerHTML = 'Total cost: $' + parseInt(price) +' + GST';
  
  form.amount_paid.value = parseInt(price);
}


function OnSubmit(form)
{
  var ok;
  ok = true;
  //ok = OnTextBox(ok, form.donor, "Donor ID", 30, false);

  if (form.donor.value.length > 8)
  {
    ok = false;
    alert("Donor ID must be no longer than 8 digits.");
  }

  if (ok && form.donor.value.length > 0) 
  {
    //if (isNaN(parseInt(form.donor.value))) 
    if(form.donor.value.search(/[^\d]/) != -1) // if contains non-digit character
    {
      ok = false;
      alert("Donor ID can only contain numbers.");
    }
  }
  
  ok = OnSelect(ok, form.title_, "Title");
  ok = OnTextBox(ok, form.first, "First name", 50, false);
  ok = OnTextBox(ok, form.last, "Family Name", 50, false);
  
  //ok = OnTextBox(ok, form.address, "Address", 100, true);
  //ok = OnTextBox(ok, form.suburb, "Suburb", 50, true);

  if (ok && form.day.selectedIndex == 0) {
     ok = false;
     alert("Please select a day");
     form.day.focus();
  }
  
  if (ok && form.month.selectedIndex == 0) {
     ok = false;
     alert("Please select a month");
     form.month.focus();
  }

  if (ok && form.year.selectedIndex == 0) {
     ok = false;
     alert("Please select a year");
     form.year.focus();
  }

  if (ok) {
     year = form.year[form.year.selectedIndex].text;
     month = form.month[form.month.selectedIndex].value - 1 ;
     day = form.day[form.day.selectedIndex].text;


     dayobj = new Date(year, month, day)

     if ((dayobj.getMonth() != month) || (dayobj.getDate() != day) || (dayobj.getFullYear() != year)) {
        alert(day+"/"+((month*1)+1)+"/"+year+" is not a valid date. Please enter a valid date");
        form.day.focus();
        ok = false;
     }
     
    
  }

  if (ok && form.email.value.length > 0) {
     ok = OnEmail(ok, form.email);
    if(ok && form.email.value != form.email_again.value)
    {
      ok = false;
      alert('The email addresses do not match!');
      form.email_again.value = '';
      form.email.focus();
    }
  }
  
  if (ok == true && !form.whole.checked && !form.Bronze.checked && !form.Silver.checked && !form.Gold.checked)
  {
    ok = false
    alert("You must select at least one club in step 2");
 }

 if (ok && form.contact.selectedIndex == 1 && form.email.value.length == 0) {
    ok = false;
    alert("Please enter your e-mail address");
    form.email.focus();
 }

 ok = OnSelect(ok, form.contact, "Preferred contact method");

  ok = OnSelect(ok, form.referral, "Where did you hear about FDC");
  ok = OnRadio(ok, form.fdc_club, "Frequent Donor Club");

  ok = OnCheckbox(ok, form.agree, "You must agree to be contacted by the Australian Red Cross Blood Service");
  
  if(ok)
    form.submit();
}


function OnRedClubSubmit(form)
{
  var ok;
  ok = true;
  ok = OnSelect(ok, form.title, "Title");
  ok = OnTextBox(ok, form.first, "First name", 50, false);
  ok = OnTextBox(ok, form.last, "Family Name", 50, false);
  ok = OnTextBox(ok, form.organisation, "Organisation", 50, false);
  ok = OnTextBox(ok, form.position, "Position", 50, false);
  ok = OnSelect(ok, form.state, "State");
  ok = OnDigit(ok, form.phone, "Phone");
  ok = OnEmail(ok, form.email);
  ok = OnCheckbox(ok, form.agree, "You must agree to be contacted by the Australian Red Cross Blood Service");
  
  if(ok)
    form.submit();
}


function OnTransfusionConference(form)
{
  var ok = true;
  
  ok = OnRadio(ok, form.title, "Title");
  ok = OnTextBox(ok, form.first, "First", 50, false);
  ok = OnTextBox(ok, form.last, "Last", 50, false);
  ok = OnTextBox(ok, form.preferred, "Prefferd Name", 100, false);
  ok = OnTextBox(ok, form.position, "Position Held", 100, false);
  ok = OnTextBox(ok, form.employer, "Employer Name", 100, false);
  
  ok = OnEmail(ok, form.email);
  ok = OnDigit(ok, form.phone, "Phone");
  //ok = OnDigit(ok, form.mobile, "Mobile");
  
  //ok = OnTextBox(ok, form.pname, "Personal Assistant/Executive Assistant", 100, false);
  //ok = OnDigit(ok, form.pphone, "Phone");
  //ok = OnDigit(ok, form.pfax, "Fax");
  
  ok = OnTextBox(ok, form.street, "Street", 100, false);
  ok = OnTextBox(ok, form.suburb, "Town/Suburb", 100, false);
  //ok = OnSelect(ok, form.state, "State");
  ok = OnDigit(ok, form.postcode, "Postcode");
  ok = OnTextBox(ok, form.country, "Country", 100, false);

  ok = OnCheckbox(ok, form.days, "Please indicate the day(s) you will be attending");

  ok = OnTextBox(ok, form.day1, "Delegate name", 100, false);
  //ok = OnCheckbox(ok, form.events, "Events you wish to attend");

  ok = OnCheckbox(ok, form.toc, "Terms and Conditions listed above");

  if(ok)
    form.submit();

}


function OnWinterForm(form)
{
  var ok = true;

  ok = OnSelect(ok, form.c81_c2, "Title");
  ok = OnTextBox(ok, form.c81_c3, "First Name", 100, false);
  ok = OnTextBox(ok, form.c81_c4, "Family Name", 100, false);
  //ok = OnTextBox(ok, form.c81_c5, "Address", 100, false);
  //ok = OnTextBox(ok, form.c81_c6, "Suburb", 100, false);
  //ok = OnSelect(ok, form.c81_c7, "State");
  //ok = OnDigit(ok, form.c81_c8, "Postcode");
  //ok = OnDigit(ok, form.c81_c9, "Phone (home)");
  //ok = OnEmail(ok, form.c81_c12);
  
  ok = OnSelect(ok, form.c81_c14_day, "Date of Birth Day");
  ok = OnSelect(ok, form.c81_c14_month, "Date of Birth Month");
  ok = OnSelect(ok, form.c81_c14_year, "Date of Birth Year");

  ok = OnSelect(ok, form.region_id, "Region");
  
  if(ok && form.centre_id.selectedIndex == 0)
  {
    ok = false;
    alert('You must select either a donor centre!');
    form.centre_id.focus();
  }
  
  ok = OnSelect(ok, form.c81_c21, "State you work in");
  ok = OnSelect(ok, form.c81_c22, "Organisation name");
  
  if(form.c81_c22.options[form.c81_c22.selectedIndex].value == '-1')
  {
    ok = OnTextBox(ok, form.c81_c23, "Other", 100, false);
  }
    
  ok = OnSelect(ok, form.c81_c25, "Where did you hear about this campaign");
  ok = OnCheckbox(ok, form.agree, "You must agree to be contacted by the Australian Red Cross Blood Service");
  
  if(ok)
  {
    form.c81_c17.value = form.region_id.options[form.region_id.selectedIndex].text;
    form.c81_c18.value = form.centre_id.options[form.centre_id.selectedIndex].text;
    //form.c81_c19.value = form.mobile_centre.options[form.mobile_centre.selectedIndex].text;
    
    form.submit();
  }
}


function PopulateAppointmentForm(centre_name, times, IDDataContent_41)
{
  window.opener.document.donate.mobile_centre_name.value = centre_name;
  window.opener.document.donate.mobile_centre_time.value = times;
  window.opener.document.donate.mobile_centre_id.value = IDDataContent_41;
  
  //window.opener.document.getElementById('centre_times').style.display = 'none';

  window.opener.document.donate.centre_id.selectedIndex = 0;

  self.close();
}

// Select an item from a dropdown (by its value)
function SetSelectValue(select, value)
{
  for(i = 0; i < select.options.length; i++)
  {
    if(select.options[i].value == value)
    {
      select.selectedIndex = i;
      break;
    }
  }
}
