/* * 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'); } }); } }); });