﻿
jQuery(document).ready(function() {

    var loanDetailsDiv = jQuery("#divShowStep1");
    var personalDetailsDiv = jQuery("#divShowStep2");
    var loanAmountTextBox = jQuery("[id$='txtLoanAmount']");
    var loanTermDropDown = jQuery("[id$='ddlLoanTerm']");
    var loanPurposeDropDown = jQuery("[id$='ddlLoanPurpose']");

    var firstNameTextBox = jQuery("[id$='txtFirstName']");
    var lastNameTextBox = jQuery("[id$='txtLastName']");
    var emailAddressTextBox = jQuery("[id$='txtEmailAddress']");
    var telephone1TextBox = jQuery("[id$='txtTelephone1']");
    var telephone2TextBox = jQuery("[id$='txtTelephone2']");
    var postcodeTextBox = jQuery("[id$='txtPostcode']");


    jQuery("#LoanButton").click(function(e) {
        var loanValidationMessage = ValidateLoanFormEntered();
        if (loanValidationMessage == null) {
            loanDetailsDiv.fadeOut(0, function() { });
            personalDetailsDiv.fadeIn(300, function() {
                loanAmountTextBox.removeClass("highlightField");
                loanTermDropDown.removeClass("highlightField");
            });
        } else {
            alert(loanValidationMessage);
        }
        return false;
    });

    jQuery("[id$='iBtnCompare']").click(function(e) {
        var personalValidationMessage = ValidatePersoanlFormEntered();
        if (personalValidationMessage == null) {
            return true;
        } else {
            alert(personalValidationMessage);
        }
        return false;
    });

    function MakeCurrencyString(stringCurrency) {
        stringCurrency = jQuery.trim(stringCurrency + ''); // make sure it's a string
        stringCurrency = stringCurrency.replace(",", "");
        if (stringCurrency[0] == '£') {
            stringCurrency = stringCurrency.substring(1, stringCurrency.length);
        }
        stringCurrency = parseInt(stringCurrency);
        return stringCurrency[0] == '£' ? stringCurrency : '£' + stringCurrency;
    }

    function ValidatePersoanlFormEntered() {
        var nameMessage = null;
        var contactMessage = null;
        var postcodeMessage = null;
        var fullMessage = "";
        var firstNameValue = jQuery.trim(firstNameTextBox.val());
        var lastNameValue = jQuery.trim(lastNameTextBox.val());
        var emailAddressValue = jQuery.trim(emailAddressTextBox.val());
        var telephone1Value = jQuery.trim(telephone1TextBox.val());
        var telephone2Value = jQuery.trim(telephone2TextBox.val());
        var postcodeValue = jQuery.trim(postcodeTextBox.val());

        var stringOnlyPattern = /^(\d+|([a-zA-Z\,\-\!\/\:\;\.\?]|\s)+){1,}$/;
        var emailAddressPattern = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        var postcodePattern = /^([A-PR-UWYZa-pr-uwyz]([0-9]{1,2}|([A-HK-Ya-hk-y][0-9]|[A-HK-Ya-hk-y][0-9]([0-9]|[ABEHMNPRV-Yabehmnprv-y]))|[0-9][A-HJKS-UWa-hjks-uw])\ {0,1}[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}|([Gg][Ii][Rr]\ 0[Aa][Aa])|([Ss][Aa][Nn]\ {0,1}[Tt][Aa]1)|([Bb][Ff][Pp][Oo]\ {0,1}([Cc]\/[Oo]\ )?[0-9]{1,4})|(([Aa][Ss][Cc][Nn]|[Bb][Bb][Nn][Dd]|[BFSbfs][Ii][Qq][Qq]|[Pp][Cc][Rr][Nn]|[Ss][Tt][Hh][Ll]|[Tt][Dd][Cc][Uu]|[Tt][Kk][Cc][Aa])\ {0,1}1[Zz][Zz]))$/;

        if ((firstNameValue == "") || (lastNameValue == "")) {
            nameMessage = " - You must enter your name \n";
        }
        else {
            if (stringOnlyPattern.test(firstNameValue)) { }
            else { nameMessage = " - You must enter a valid name \n"; }
        }

        if (emailAddressValue != "") {
            if (emailAddressPattern.test(emailAddressValue)) { }
            else { contactMessage += " - You must enter a valid email address \n"; }
        }

        if ((telephone1Value == "") && (telephone2Value == "")) {
            contactMessage = " - You must enter at least once contact number \n";
        }

        if (telephone1Value != "") {
            if (isNaN(parseInt(telephone1Value))) {
                contactMessage = " - The contact telephone number supplied must be valid \n";
            }
        }

        if (telephone2Value != "") {
            if (isNaN(parseInt(telephone2Value))) {
                contactMessage = " - The contact telephone number supplied must be valid \n";
            }
        }

        if (postcodeValue == "") {
            postcodeMessage = " - You must enter your postcode \n";
        }
        else {
            if (postcodePattern.test(postcodeValue)) { }
            else { postcodeMessage = " - You must enter a post code \n"; }
        }

        if (nameMessage != null) {
            fullMessage += nameMessage;

            if (firstNameValue == "") {
                firstNameTextBox.addClass("highlightField");
            }

            if (lastNameValue == "") {
                lastNameTextBox.addClass("highlightField");
            }
        }

        if (contactMessage != null) {
            fullMessage += contactMessage;

            if (telephone1Value == "") {
                telephone1TextBox.addClass("highlightField");
            }

            if (telephone2Value == "") {
                telephone2TextBox.addClass("highlightField");
            }
        }

        if (postcodeMessage != null) {
            fullMessage += postcodeMessage;
            postcodeTextBox.addClass("highlightField");
        }

        if (fullMessage == "") {
            return null;
        }
        else {
            return "Please make sure you complete the form:\n\n" + fullMessage;
        }
    }

    function ValidateLoanFormEntered() {
        var loanMessage = null;
        var termMessage = null;
        var purposeMessage = null;
        var fullMessage = "";
        var loanAmountValue = jQuery.trim(loanAmountTextBox.val());
        var loanTermValue = jQuery.trim(loanTermDropDown.val());
        var loanPurposeValue = jQuery.trim(loanPurposeDropDown.val());
        loanAmountValue = loanAmountValue.replace(",", "");

        if (loanAmountValue[0] == '£') loanAmountValue = loanAmountValue.substring(1, loanAmountValue.length);

        if (loanAmountValue == "") {
            loanMessage = " - You must enter the amount you wish to borrow \n";
        }
        else if (isNaN(parseInt(loanAmountValue))) {
            loanMessage = " - The amount you wish to borrow must be a number \n";
        }

        if (loanTermValue == "") {
            termMessage = " - You must select the length of the loan \n";
        }

        if (loanPurposeValue == "") {
            purposeMessage = " - You must select for the purpose for your loan \n";
        }


        if (loanMessage != null) {
            fullMessage += loanMessage;
            loanAmountTextBox.addClass("highlightField");
        }

        if (termMessage != null) {
            fullMessage += termMessage;
            loanTermDropDown.addClass("highlightField");
        }

        if (purposeMessage != null) {
            fullMessage += purposeMessage;
            loanPurposeDropDown.addClass("highlightField");
        }


        if (fullMessage == "") {
            return null;
        }
        else {
            return "Please make sure you complete the form:\n\n" + fullMessage;
        }
    }
});
