function GET(name) {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if( results == null )
        return "";
    else
        return results[1];
}

function padOut(currentStr, reqLength, paddingChar) {
    //convert to string first
    currentStr += "";
    if (currentStr.length < reqLength) {
        var paddingNeeded = (reqLength - currentStr.length);
        var paddedStr = "";
        for (i=0; i<paddingNeeded; i++) {
            paddedStr += paddingChar;
        }
        return paddedStr + currentStr;
    }
    else {
        return currentStr;
    }
}

function checkEmail(testString) {
    if (/^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/.test(testString)) {
        return true;
    }
    else {
        return false;
    }
}
function checkPostcode(testString) {
    if (/^((([A-PR-UWYZ](\d([A-HJKSTUW]|\d)?|[A-HK-Y]\d([ABEHMNPRVWXY]|\d)?))\s*(\d[ABD-HJLNP-UW-Z]{2})?)|GIR\s*0AA)$/.test(testString)) {
        return true;
    }
    else {
        return false;
    }
}
function checkPhoneNumber(testString) {
    if (/([\(\+])?([0-9]{1,3}([\s])?)?([\+|\(|\-|\)|\s])?([0-9]{2,4})([\-|\)|\.|\s]([\s])?)?([0-9]{2,4})?([\.|\-|\s])?([0-9]{4,8})/.test(testString)) {
        return true;
    }
    else {
        return false;
    }
}

function getDirections() {
    //first set all postcode bits to capitals as the regular expression I found only takes capitals
    var enteredPostcode = $('#postcode', $('form#directions')).val().toUpperCase();
    if (enteredPostcode != "" && checkPostcode(enteredPostcode)) {
        $('form#directions').attr("action", "http://maps.google.co.uk/maps?f=d&hl=en&geocode=&saddr="+enteredPostcode+"&daddr=Royal+Tunbridge+Wells,+Kent+TN2+5SE,+UK&sll=51.136278,0.222473&sspn=0.277467,0.6427&ie=UTF8&z=10");
        return true;
    }
    else {
        //show errors
        $('p', $('form#directions')).removeClass('hidden');
        $('#postcode').addClass("error");
        return false;
    }
}

function submitContactForm() {
    //clear up any existing errors
    $.each($('.required'), function(key, input) {
        $(input).removeClass("error");
        $(input).siblings(".error").addClass("hidden");
    });
    var errors = false;
    $.each($('.required'), function(key, input) {
        if ($(input).val()=="") {
            $(input).addClass("error");
            $(input).siblings(".error").removeClass("hidden");
            errors = true;
        }
        else { //was not empty
            if ($(input).is('.email') && !checkEmail($(input).val())) {
                $(input).addClass("error");
                $(input).siblings(".error").removeClass("hidden");
                errors = true;
            }
            if ($(input).is('.postcode') && !checkPostcode($(input).val())) {
                $(input).addClass("error");
                $(input).siblings(".error").removeClass("hidden");
                errors = true;
            }
            if ($(input).is('.phone') && !checkPhoneNumber($(input).val())) {
                $(input).addClass("error");
                $(input).siblings(".error").removeClass("hidden");
                errors = true;
            }
        }
    });
    if (errors) {
        return false;
    }
    
    var formData = "enquiry="+$('#enquiry').val()+"&name="+$('#name').val()+"&telephone="+$('#telephone').val()+"&email="+$('#email').val()+"&organisation="+$('#organisation').val();
    if ($('#newsletter:checked').length!=0) {
        formData += "&newsletter=true";
    }
    
    $.ajax({
        type: "POST",
        url: "mail.php",
        data: formData,
        success: function(msg){
            $('#contact_form').slideUp();
            $('#thank-you').slideDown();
        }
    });
    
    return false;
}

$(function() {
    
    $('form#directions').bind("submit", function() {
        return getDirections();
    });
    
    $('form#contact_form').bind("submit", function() {
        return submitContactForm();
    });
    
    /*$('#image_holder').css('backgroundImage', 'none');
    $('#image_holder').cycle({ 
        fx: 'fade'
    });*/
});