var mousedown = false;
var invalid = false;

function GetServerAddress() {
    return window.location.protocol + "//" + window.location.host + "/" + "Ajax/FormHandler.ashx"
}

// Validate Name
function nameCheck() {

    $("span.error-0").remove();
    $("#name").removeClass("form-error");
    if ($("#name").val() == "") {
        invalid = true;
        $("#name").addClass('form-error');
    }
    else {
        $("span.error-0").remove();
        $("#name.form-error").removeClass("form-error");
    }
}

// Validate Address
function addressCheck() {

    $("span.error-1").remove();
    $("#address").removeClass("form-error");
    if ($("#address").val() == "") {
        invalid = true;
        $("#address").addClass('form-error');
    }
    else {
        $("span.error-1").remove();
        $("#address.form-error").removeClass("form-error");
    }
}


// Validate Town
function townCheck() {

    $("span.error-2").remove();
    $("#town").removeClass("form-error");
    if ($("#town").val() == "") {
        invalid = true;
        $("#town").addClass('form-error');
    }
    else {
        $("span.error-2").remove();
        $("#town.form-error").removeClass("form-error");
    }
}


// Validate County
function countyCheck() {

    $("span.error-3").remove();
    $("#county").removeClass("form-error");
    if ($("#county").val() == "") {
        invalid = true;
        $("#county").addClass('form-error');
    }
    else {
        $("span.error-3").remove();
        $("#county.form-error").removeClass("form-error");
    }
}

// Validate Postcode
function postcodeCheck() {

    $("span.error-4").remove();
    $("#postcode").removeClass("form-error");
    if ($("#postcode").val() == "") {
        invalid = true;
        $("#postcode").addClass('form-error');
    }
    else {
        $("span.error-4").remove();
        $("#postcode.form-error").removeClass("form-error");
    }
}

// Validate Country
function countryCheck() {

    $("span.error-5").remove();
    $("#country").removeClass("form-error");
    if ($("#country").val() == "") {
        invalid = true;
        $("#country").addClass('form-error');
    }
    else {
        $("span.error-5").remove();
        $("#country.form-error").removeClass("form-error");
    }
}

// Validate Email
function emailCheck() {
    $("span.error-6").remove();
    $("#email").removeClass("form-error");
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    if (!emailReg.test($("#email").val()) || $("#email").val() == "") {
        invalid = true;
        $("#email").addClass('form-error');
    }
    else {
        $("span.error-6").remove();
        $("#email.form-error").removeClass("form-error");
    }
}


$(document).ready(function() {


    $(".reg-form-uk").click(function() {
        $('#country').val('United Kingdom');
        $('#country').attr('disabled', 'disabled');
        $('#amount').html('&pound;20');
        $('#uk-button').show();
    });

    $(".reg-form-global").click(function() {
        $('#country').removeAttr('disabled');
        $('#country').val('');
        $('#amount').html('&pound;25');
        $('#overseas-button').show();
    });


    //$(".reg-form-uk").colorbox({ inline: true, href: "#reg-form" });
    //$(".reg-form-global").colorbox({ inline: true, href: "#reg-form" });

    $("#name").blur(function() {
        if (!mousedown) {
            nameCheck();
        }
    });

    $("#address").blur(function() {
        if (!mousedown) {
            addressCheck();
        }
    });

    $("#town").blur(function() {
        if (!mousedown) {
            townCheck();
        }
    });

    $("#county").blur(function() {
        if (!mousedown) {
            countyCheck();
        }
    });

    $("#postcode").blur(function() {
        if (!mousedown) {
            postcodeCheck();
        }
    });

    $("#country").blur(function() {
        if (!mousedown) {
            countryCheck();
        }
    });    

    $("#email").blur(function() {
    if (!mousedown) {
            emailCheck();
        }
    });    

    $("#btnsubmit").mousedown(function() { mousedown = true }).click(function() {
        invalid = false;
        nameCheck();
        addressCheck();
        townCheck();
        countyCheck();
        postcodeCheck();
        countryCheck();
        emailCheck();
        if (invalid) {
            mousedown = false;
            return false;
        }
        else {
            SendMail();

        }
    });

});

function SendMail() {

    var params = "{ Rank: '" + $('#rank').val() + "'"
        + ", Name: '" + $('#name').val() + "'"
        + ", Address: '" + $('#address').val() + "'"
        + ", Town: '" + $('#town').val() + "'"
        + ", County: '" + $('#county').val() + "'"
        + ", Postcode: '" + $('#postcode').val() + "'"
        + ", Country: '" + $('#country').val() + "'"
        + ", Email: '" + $('#email').val() + "'"
        + ", Payment: '" + $('input:radio[name=payment]:checked').val() + "'"        
        + ", Telephone: '" + $('#telephone').val() + "' }";
    $.ajax({
        type: "POST",
        url: GetServerAddress() + "?method=RegForm",
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            if (msg == "0") {
                $("#stylized").hide();
                $("#thank-you").show();
                if ($('input:radio[name=payment]:checked').val() == "Paypal") {
                    $("#paypal-payment").show();
                }
                else {
                    $("#cheque-payment").show();
                }
            }
            else {
                alert(msg);
            }
        }
    });
    return false;
};
