/*
* General site javascript functions
*/
$(document).ready(function(){
//get URL variables
$.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});
//expandable menu functionality
$('.menu_expands a.expandable').click(function() {
if ('.menu_expands a.open')
{$(this).next().toggle();}
else
{$(this).next().slideToggle('slow');}
return false;
}).next().hide();
//when go to an area, want that area's menu open
$('.menu_expands a.open').click();
//expandable area functionality - click to show/hide
$('div.toggle').toggle(
function(){//odd clicks - show
var toggleName = $(this).attr('name');
$('#' + toggleName).slideToggle('slow');
$(this).css('background-image', 'url(img/darrowup.gif)');
},
function(){//even ticks - hide
var toggleName = $(this).attr('name');
$('#' + toggleName).slideToggle('slow');
$(this).css('background-image', 'url(img/darrowdown.gif)');
}
)
//expand correct section from url
$(function() {
var expand = $.getUrlVar('expand');
if (expand) {
$('div[name="'+expand+'"]').trigger('click');
}
});
//show appropriate dates for the selected course
$(function() {
var allOptions = $('#select_date option').clone();
var val = $('#select_course').val();
$('#select_date').html(allOptions.filter('.option-' + val));
if (val == "bm")
{
//for bike maintenance show options as basic and intermediate
$('#course_age').addClass('hide_row');
$('#course_level').removeClass('hide_row');
}
else if (val == "it") {
//for instructor training hide age and level
$('#course_age').addClass('hide_row');
$('#course_level').addClass('hide_row');
}
else
{
//for everything else show options as adult and child
$('#course_age').removeClass('hide_row');
$('#course_level').addClass('hide_row');
}
$('#select_course').change(function() {
var val = $(this).val();
$('#select_date').html(allOptions.filter('.option-' + val));
if (val == "bm")
{
//for bike maintenance show options as basic and intermediate
$('#course_age').addClass('hide_row');
$('#course_level').removeClass('hide_row');
}
else if (val == "it")
{
//for instructor training hide age and level
$('#course_age').addClass('hide_row');
$('#course_level').addClass('hide_row');
}
else
{
//for everything else show options as adult and child
$('#course_age').removeClass('hide_row');
$('#course_level').addClass('hide_row');
}
});
});
//make external links and pdfs open in a new tab/window and add pdf icon
var myUrl = location.protocol + '//' + location.hostname;
$('a[href^=http://]').not('[href^='+myUrl+']').attr('target','_blank');
$('a[href$=.pdf]').attr('target','_blank');
$('a[href$=.pdf] > h2 > div.text').css('width', '90%');
$('a[href$=.pdf] > h2').css('background', 'url(img/pdf.png) no-repeat 96% center');
//make text that does an action show the cursor as a pointer
$('.menu_expands h2, h2.toggle').css('cursor', 'pointer');
//send email functionality for register interest form
//hide any error messages by default
$('tr.messages').addClass('hide_row');
$('#send_interest').click(function(e){
//stop the form from being submitted
e.preventDefault();
var error = false;
var name = $('#name').val();
var email = $('#email').val();
var select_date = $('#select_date').val();
var select_course = $('#select_course').val();
//reset the error messages and then show any that now apply
$('tr.messages').addClass('hide_row');
if(name.length == 0)
{
var error = true;
$('#name_error').removeClass('hide_row');
}
if(email.length == 0 || email.indexOf('@') == '-1'){
var error = true;
$('#email_error').removeClass('hide_row');
}
if (select_course == "bm")
{
if ($("input[@name='course_level']:checked").val() == 'int')
{
var course_age = 'intermediate';
}
else if ($("input[@name='course_level']:checked").val() == 'basic')
{
var course_age = 'basic';
}
else //nothing selected
{
var error = true;
$('#course_level_error').removeClass('hide_row');
}
}
else if (select_course == "it")
{
var course_age = 'instructor';
}
else
{
if ($("input[@name='course_age']:checked").val() == 'adult')
{
var course_age = 'adult';
}
else if ($("input[@name='course_age']:checked").val() == 'child')
{
var course_age = 'child';
}
else //nothing selected
{
var error = true;
$('#course_age_error').removeClass('hide_row');
}
}
if(select_date.length == 0){
var error = true;
$('#select_date_error').removeClass('hide_row');
}
if(select_course.length == 0){
var error = true;
$('#select_course_error').removeClass('hide_row');
}
if(error == false){
//temporarily disable submit button and change button text to Sending...
$('#send_interest').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=interest", $("#interest_form").serialize(),function(result){
if(result == 'sent'){
// remove the submit paragraph and show the mail success div
$('#errorInterest').addClass('hide_row');
$('#successInterest').removeClass('hide_row');
}else{
//show the mail failed div
$('#errorInterest').removeClass('hide_row');
$('#successInterest').addClass('hide_row');
}
//re-enable the submit button
$('#send_interest').removeAttr('disabled').attr('value', 'submit');
});
}
});
//send email functionality for contact us form
//hide any error messages by default
$('tr.messages').addClass('hide_row');
$('#send_contact').click(function(e){
//stop the form from being submitted
e.preventDefault();
var error = false;
var name = $('#name').val();
var email = $('#email').val();
var message = $('#message').val();
//reset the error messages and then show any that now apply
$('tr.messages').addClass('hide_row');
if(name.length == 0)
{
var error = true;
$('#name_error').removeClass('hide_row');
}
if(email.length == 0 || email.indexOf('@') == '-1'){
var error = true;
$('#email_error').removeClass('hide_row');
}
if(message.length == 0){
var error = true;
$('#message_error').removeClass('hide_row');
}
if(error == false){
//disable submit button to avoid spamming and change button text to Sending...
$('#send_contact').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=contact", $("#contact_form").serialize(),function(result){
if(result == 'sent'){
// remove the submit paragraph and show the mail success div with fadeIn
$('#submit_button').remove();
$('#errorContact').hide();
$('#successContact').fadeIn(500);
}else{
//show the mail failed div and reenable the submit button
$('#errorContact').fadeIn(500);
$('#send_contact').removeAttr('disabled').attr('value', 'send enquiry');
}
});
}
});
//send email functionality for ito join form
$('#send_itoJoin').click(function(e) {
//stop the form from being submitted
e.preventDefault();
var error = false;
//check form contents
var firstname = $('#firstname').val();
var lastname = $('#lastname').val();
var address1 = $('#address1').val();
var street = $('#street').val();
var town = $('#town').val();
var county = $('#county').val();
var postcode = $('#county').val();
var email = $('#email1').val();
var tele = $('#tele').val();
var nsinumber = $('#nsinumber').val();
var nsistatus = $('input:radio[name=nsistatus]:checked').val();
//most of these do the same type of check,
//TODO: move logic to function, pass element and error string return error
if(firstname.length == 0) {
error = true;
if( !$('#lblFirstname').hasClass('form_error') ) {
$('#lblFirstname').append(' *Please enter your First name');
}
$('#lblFirstname').addClass('form_error');
} else {
$('#lblFirstname').removeClass('form_error');
$('#lblFirstname span').remove();
}
if(lastname.length == 0) {
error = true;
if( !$('#lblLastname').hasClass('form_error') ) {
$('#lblLastname').append(' *Please enter your Last name');
}
$('#lblLastname').addClass('form_error');
} else {
$('#lblLastname').removeClass('form_error');
$('#lblLastname span').remove();
}
if(address1.length == 0 || street.length == 0 || town.length == 0 || county.length == 0 || postcode == 0) {
error = true;
if( !$('#legAddress').hasClass('form_error') ) {
$('#legAddress').append(' — Please complete your address');
}
$('#legAddress').addClass('form_error');
$('#fsAddress').addClass('form_error');
} else {
$('#legAddress').removeClass('form_error');
$('#fsAddress').removeClass('form_error');
$('#legAddress span').remove();
}
if(email.length == 0 || email.indexOf('@') == '-1'){
var error = true;
if( !$('#lblEmail').hasClass('form_error') ) {
$('#lblEmail').append(' *Please enter your email address');
}
$('#lblEmail').addClass('form_error');
} else {
$('#lblEmail').removeClass('form_error');
$('#lblEmail span').remove();
}
if(tele.length == 0) {
error = true;
if( !$('#lblTelephone').hasClass('form_error') ) {
$('#lblTelephone').append(' *Please enter your telephone number');
}
$('#lblTelephone').addClass('form_error');
} else {
$('#lblTelephone').removeClass('form_error');
$('#lblTelephone span').remove();
}
if(nsinumber.length == 0) {
error = true;
if( !$('#lblNsiNumber').hasClass('form_error') ) {
$('#lblNsiNumber').append(' *Please enter your NSI Number');
}
$('#lblNsiNumber').addClass('form_error');
} else {
$('#lblNsiNumber').removeClass('form_error');
$('#lblNsiNumber span').remove();
}
if(nsistatus === undefined) {
error = true;
if( !$('#legNsiStatus').hasClass('form_error') ) {
$('#legNsiStatus').append(' — Please select your NSI Satus');
}
$('#fsNsiStatus').addClass('form_error');
$('#legNsiStatus').addClass('form_error');
} else {
$('#legNsiStatus').removeClass('form_error');
$('#fsNsiStatus').removeClass('form_error');
$('#legNsiStatus span').remove();
}
if(error == false){
//temporarily disable submit button and change button text to Sending...
$('#send_itoJoin').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=ito", $("#itomembership").serialize(),function(result){
if(result == 'sent'){
// show success p
$('#failure_itoJoin').addClass('hide');
$('#success_itoJoin').removeClass('hide');
$('#send_itoJoin').removeAttr('disabled').attr('value', 'Sent');
}else{
//show the mail failed p
$('#failure_itoJoin').removeClass('hide');
$('#success_itoJoin').addClass('hide');
//re-enable the submit button
$('#send_itoJoin').removeAttr('disabled').attr('value', 'Submit');
}
});
}
});
//not very fancy focus form animation thingy
$('#focusInterest').click(function () {
$('#name').focus();
$('#interest_form').fadeOut('fast');
$('#interest_form').fadeIn('fast');
});
//Book training form stuff
$('#targetdate').datepicker();
$('#booktraining').validate({
submitHandler: function(form) {
//temporarily disable submit button and change button text to Sending...
$('#send_booking').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=booking", $("#booktraining").serialize(),function(result){
if(result == 'sent'){
// show success p
$('#failure_booking').addClass('hide');
$('#success_booking').removeClass('hide');
$('#send_booking').removeAttr('disabled').attr('value', 'Sent');
}else{
//show the mail failed p
$('#failure_booking').removeClass('hide');
$('#success_booking').addClass('hide');
//re-enable the submit button
$('#send_booking').removeAttr('disabled').attr('value', 'Submit');
}
});
}
});
//SJCS Parent Consultation Form (sjcsform.html)
$('#sjcsbooktraining').validate({
submitHandler: function(form) {
//temporarily disable submit button and change button text to Sending...
$('#send_booking').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=sjcsbooking", $("#sjcsbooktraining").serialize(),function(result){
if(result == 'sent'){
// show success p
$('#failure_booking').addClass('hide');
$('#success_booking').removeClass('hide');
$('#send_booking').removeAttr('disabled').attr('value', 'Sent');
}else{
//show the mail failed p
$('#failure_booking').removeClass('hide');
$('#success_booking').addClass('hide');
//re-enable the submit button
$('#send_booking').removeAttr('disabled').attr('value', 'Submit');
}
});
}
});
//SJCS Parent Consultation Form (sjcsform.html)
$('#bikedaybook').validate({
submitHandler: function(form) {
//temporarily disable submit button and change button text to Sending...
$('#send_booking').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=bikedaybook", $("#bikedaybook").serialize(),function(result){
if(result == 'sent'){
// show success p
$('#failure_booking').addClass('hide');
$('#success_booking').removeClass('hide');
$('#send_booking').removeAttr('disabled').attr('value', 'Sent');
}else{
//show the mail failed p
$('#failure_booking').removeClass('hide');
$('#success_booking').addClass('hide');
//re-enable the submit button
$('#send_booking').removeAttr('disabled').attr('value', 'Submit');
}
});
}
});
//Bike Maintenance Course Form Price Display
$('#date_selected').change(function () {
$.post("?cost=1",$('#bookmaintenance').serialize(),function(cost) {
$('#price').text(cost);
$('#courseCost').val(cost);
});
});
//Bike Maintenace Course Form
$('#bookmaintenance').validate({
submitHandler: function(form) {
//temporarily disable submit button and change button text to Sending...
$('#send_booking').attr({'disabled' : 'true', 'value' : 'sending...' });
// send email via ajax call to send_email.php using function serialize() to get all the form data
$.post("send_email.php?type=maintenance", $("#bookmaintenance").serialize(),function(result){
if(result == 'sent'){
// show success p
$('#failure_booking').addClass('hide');
$('#success_booking').removeClass('hide');
$('#send_booking').removeAttr('disabled').attr('value', 'Sent');
}else{
//show the mail failed p
$('#failure_booking').removeClass('hide');
$('#success_booking').addClass('hide');
//re-enable the submit button
$('#send_booking').removeAttr('disabled').attr('value', 'Submit');
}
});
}
});
});