            (function($) {
                var cache = [];
                // Arguments are image paths relative to the current page.
                $.preLoadImages = function() {
                    var args_len = arguments.length;
                    for (var i = args_len; i--;) {
                        var cacheImage = document.createElement('img');
                        cacheImage.src = arguments[i];
                        cache.push(cacheImage);
                    }
                }
            })(jQuery)

            jQuery.preLoadImages("image1.gif", "images/slides/maximum_achievement.gif");
            jQuery.preLoadImages("image1.gif", "images/slides/ppr_fast-track.gif");
            jQuery.preLoadImages("image1.gif", "images/slides/superior_sales.gif");
            jQuery.preLoadImages("image1.gif", "images/slides/psychology_selling.gif");
            jQuery.preLoadImages("image1.gif", "images/slides/advanced_psychology.gif");
            jQuery.preLoadImages("image1.gif", "images/slides/high_performance.gif");
            jQuery.preLoadImages("image1.gif", "images/slides/client_retainer.gif");

            $(document).ready(function() {
                $(document).ready(function(){
                    $('#noscriptslideshow').hide();
                    $('#slideshow').show();
                    $('#controls').show();
                });

                $('#slideshow').cycle({
                    fx: 'scrollHorz',
                    timeout: 4000,
                    next:   '#farrow',
                    prev:   '#rarrow',
                    pause:   1,
                    pager:  '#nav'
                });
            });

$(function() {
    // global variables
    var firstname = $('#firstname');
    var firstname_error = $('#firstname_error');
    var surname = $('#surname');
    var surname_error = $('#surname_error');
    var telephone = $('#telephone');
    var telephone_error = $('#telephone_error');
    var ref = $('#ref');
    var errorList = 0;

    //On blur
    firstname.blur(validate_firstname);
    surname.blur(validate_surname);
    telephone.blur(validate_telephone);
    //On key press
    firstname.keyup(validate_firstname);
    surname.keyup(validate_surname);
    telephone.keyup(validate_telephone);

    // validation functions
    function validate_firstname() {
        if (firstname.val() == "") {
            firstname.addClass("ajax_error");
            firstname_error.text("Required");
            if (errorList == 0) {
                firstname.focus();
                errorList++;
            }
            return false;
        } else {
            firstname.removeClass("ajax_error");
            firstname_error.text("");
            firstname_error.removeClass("formerror");
            return true;
        }
    }

    function validate_surname() {
        if (surname.val() == "") {
            surname.addClass("ajax_error");
            surname_error.text("Required");
            if (errorList == 0) {
                surname.focus();
                errorList++;
            }
            return false;
        } else {
            surname.removeClass("ajax_error");
            surname_error.text("");
            surname_error.removeClass("formerror");
            return true;
        }
    }

    function verifyPhoneNumber(phone) {
        var rx1 = /^0\d{4}\s?\d{6}$/
        var rx2 = /^0\d{2}\s?\d{4}\s?\d{4}$/
        var rx3 = /^0\d{3}\s?\d{3}\s?\d{4}$/
        var rx4 = /^0\d{10,15}$/

        var p=new Array(phone);
        for (i=0; i<p.length; i++){
            var tested=rx1.test(p[i])
            if(!tested) tested=rx2.test(p[i])
            if(!tested) tested=rx3.test(p[i])
            if(!tested) {
                return true;
            } else {
                return false;
            }
        }

        for (i=0; i<p.length; i++){
            var newp=p[i].replace(/\s*/g,"");
            var tested=rx4.test(newp)
            if(!tested) {
                return true;
            } else {
                return false;
            }
        }
    }

    function validate_telephone() {
        if ( verifyPhoneNumber( telephone.val() )) {
            telephone.addClass("ajax_error");
            telephone_error.text("Required");
            if (errorList == 0) {
                telephone.focus();
                errorList++;
            }
            return false;
        } else {
            telephone.removeClass("ajax_error");
            telephone_error.text("");
            telephone_error.removeClass("formerror");
            return true;
        }
    }

    $("#submitBtn").click(function() {

        errorList = 0;

        if( validate_firstname() & validate_surname() & validate_telephone() ) {
            var dataString = 'firstname=' + firstname.val() + '&surname=' + surname.val() + '&telephone=' + telephone.val()  + '&ref=' + ref.val();
        } else {
            return false;
        }

        $.ajax({
            type: "POST",
            url: "/callback.php",
            data: dataString,
            success: function() {
                $('#callbackForm').fadeOut('slow', function() {
                    $('#callbackForm').html("<h1>Thank You</h1><p>Your Request for a Callback has been submitted. We will be in contact with you shortly!</p><div style=\"text-align:right\"><a href = \"javascript:void(0)\" onclick=\"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\">Close Window</a></div>");
                    $('#callbackForm').fadeIn('slow');
                // Animation complete.
                });
            },
            error: function() {
                $('#callbackForm').fadeOut('slow', function() {
                    $('#callbackForm').html("<h1>Error</h1><p>Whoops! Sorry we're having a problem with our Callback system. Our technical support have been notified, and we will get this resolved as quickly as possible.</p><div style=\"text-align:right\"><a href = \"javascript:void(0)\" onclick=\"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\">Close Window</a></div>");
                    $('#callbackForm').fadeIn('slow');
                // Animation complete.
                });
            }
        });
        //$("#fLoader").empty();
        return false;
    });
})
