$(document).ready(function() {
  updateCountryDropdowns();
  bindReferrerEvents();
  initialiseDatepicker();
  
  if (window.registration_success_tracker) {
    pageTracker._trackPageview('/registrations/' + window.registration_success_tracker + '.html');
  }
});

function initialiseDatepicker()
{
  var $dateFields = $('input[name^=contact_date_of_birth]');
  
  $dateFields.each(function() {
    $(this).data('default_value', $(this).val());
  }).focus(function() {
    if ($(this).val() == $(this).data('default_value'))
    {
      $(this).val('');
    }
  }).blur(function() {
    if ($(this).val() == '')
    {
      $(this).val($(this).data('default_value'));
    }
  });
}

function bindReferrerEvents() {
	$('input[id^=referrer]').click(
		function () {
			onReferrerSelect(this);
		}
	);
}

function toggleDefaultText(obj) {
	var $obj = $(obj);
	
	$obj.val('');
}

function onReferrerSelect(obj) {
	var $obj = $(obj);
	
	switch ($obj.val()) {
		case 'Promotional Emailer':
		case 'Magazine':
		case 'Newspaper':
		case 'Website':
		case 'Radio':
		case 'Other':
			var index = $obj.val().replace(' ', '').toLowerCase();
			
			if ($obj.attr('checked')) {
				var $text = $('input#referrer_more-'+ index);
				$text.removeAttr('disabled');
				
				$text.focus(
					function () {
						toggleDefaultText(this);
					}
				);
			} else {
				$('input#referrer_more-'+ index).attr('disabled', 'disabled');
			}
			break;
	}
}

function selectPaymentMethod() {
  var $paymentMethod = $('table#paymentOptionsTable').find('select#payment_method');
  
  $('table#paymentOptionsTable').find('tr#paymentMethodCCPL').addClass('hide');
  $('table#paymentOptionsTable').find('tr#paymentMethodCCPN').addClass('hide');
  $('table#paymentOptionsTable').find('tr#paymentMethodEFT').addClass('hide');
    
  switch ($paymentMethod.val()) {
    case 'Credit card (Mastercard or VISA) - Pay Later':
      $('table#paymentOptionsTable').find('tr#paymentMethodCCPL').removeClass('hide');
    break;
    
    case 'Credit card (Mastercard or VISA) - Pay Now':
      $('table#paymentOptionsTable').find('tr#paymentMethodCCPN').removeClass('hide');
    break;
    
    case 'Electronic funds transfer or direct deposit':
      $('table#paymentOptionsTable').find('tr#paymentMethodEFT').removeClass('hide');
    break;
  }
}

function selectPaymentScheme() {
  var $paymentScheme = $('table#paymentOptionsTable').find('select#payment_scheme');
  
  $('table#paymentOptionsTable').find('tr#paymentSchemeC').addClass('hide');
  $('table#paymentOptionsTable').find('tr#paymentSchemeD').addClass('hide');
  
  $('select#payment_method', 'table#paymentOptionsTable').val('');
  selectPaymentMethod();
  $('select#payment_method', 'table#paymentOptionsTable').parent().parent().parent().addClass('required');
  $('select#payment_method', 'table#paymentOptionsTable').parent().parent().removeClass('hide');
  
  switch ($paymentScheme.val().substr(0,8)) {
    /*
case 'Lifelong':
      $('table#paymentOptionsTable').find('tr#paymentSchemeC').removeClass('hide');
    break;
*/
    
    case 'June Pro':
      $('table#paymentOptionsTable').find('tr#paymentSchemeC').removeClass('hide');
    break;
    
    case 'Eduloan ':
      $('tr#paymentSchemeD', 'table#paymentOptionsTable').removeClass('hide');
      $('select#payment_method', 'table#paymentOptionsTable').parent().parent().addClass('hide');
      $('select#payment_method', 'table#paymentOptionsTable').val('');
      selectPaymentMethod();
      $('select#payment_method', 'table#paymentOptionsTable').parent().parent().parent().removeClass('required');
    break;

   }
}

function checkVatInvoice() {
  var $checkboxVatInvoice = $('table#paymentOptionsTable').find('input#vat');
  
  if ($checkboxVatInvoice.is(':checked')) {
    // Show info
    $('table#paymentOptionsTable').find('tr[id^=vatInvoiceDetails]').each(function() {$(this).removeClass('hide');});
  } else {
    // Hide info
    $('table#paymentOptionsTable').find('tr[id^=vatInvoiceDetails]').each(function() {$(this).addClass('hide');});
  }
}

function viewTaC() {
  $('table#submitTable').find('tr#TaC').removeClass('hide');
}


function checkPastStudent() {
	var $check_student = $('input#rdoPastStudent-yes');
	var $div = $('div#studentDate');
	  
  if ($check_student.is(':checked')) {
    // Enable submit
    $div.removeAttr('style');
  } else {
    // Disable submit
    $div.attr('style','display:none;');
    }
}


function checkTaC() {
  var $table  = $('table#submitTable');
  var $tac    = $table.find('input#tac');
  var $button = $table.find('input#btnSubmit');
  
  if ($tac.is(':checked')) {
    // Enable submit
    $button.removeClass('disabled');
    $button.removeAttr('disabled');
  } else {
    // Disable submit
    $button.addClass('disabled');
    $button.attr('disabled', 'disabled');
  }
}

function fillVatOrganisationAddressFromPostal() {
  var $vatSameAsPostalCheckbox = $('table#paymentOptionsTable').find('input#vat_organisation_address_same_as_postal');
  
  // Postal elements
  var $postalStreet1  = $('input#postal_street_1');
  var $postalStreet2  = $('input#postal_street_2');
  var $postalCity     = $('input#postal_city');
  var $postalState    = $('input#postal_state');
  var $postalCode     = $('input#postal_code');
  var $postalCountry  = $('input#postal_country');
  
  // VAT elements
  var $vatStreet1 = $('table#paymentOptionsTable tr#vatInvoiceDetails-companyAddress').find('input#vat_organisation_address_street_1');
  var $vatStreet2 = $('table#paymentOptionsTable tr#vatInvoiceDetails-companyAddress').find('input#vat_organisation_address_street_2');
  var $vatCity    = $('table#paymentOptionsTable tr#vatInvoiceDetails-companyAddress').find('input#vat_organisation_address_city');
  var $vatState   = $('table#paymentOptionsTable tr#vatInvoiceDetails-companyAddress').find('input#vat_organisation_address_state');
  var $vatPostal  = $('table#paymentOptionsTable tr#vatInvoiceDetails-companyAddress').find('input#vat_organisation_address_code');
  var $vatCountry = $('table#paymentOptionsTable tr#vatInvoiceDetails-companyAddress').find('select#vat_organisation_address_country');
  
  if ($vatSameAsPostalCheckbox.is(':checked')) {
    $vatStreet1.val($postalStreet1.val());
    $vatStreet2.val($postalStreet2.val());
    $vatCity.val($postalCity.val());
    $vatState.val($postalState.val());
    $vatPostal.val($postalCode.val());
    $vatCountry.val($postalCountry.val());
  } else {
    $vatStreet1.val('');
    $vatStreet2.val('');
    $vatCity.val('');
    $vatState.val('');
    $vatPostal.val('');
    $vatCountry.val('');
  }
}

// Update country dropdowns
function updateCountryDropdowns() {
  // Fetch list of countries
  $.get('forms/includes/countries.html', function(html) {
    $('table.form select[rel^="countries"]').each(function() {
      var $dropdown = $(this);
      
      $dropdown.html(html);
    });
  }, 'html');
}

// Track a page view for a successful registration
function trackRegistrationSuccessPageView(tracker) {
	// Track a hit on Google Analytics
	pageTracker._trackPageview('/registrations/' + tracker + '.html');
}
