﻿
var grovel = "Sorry! We could not process your request at this time, please try again" +
                         " If the problem persists please contact CVS Customer Support on: 0161 291 0330"

$(document).ready(function () {

    $("#RS_Header_Form").hide();

    $('#ReductionPostCodeFormSubmit').click(function () {

        // Validate Post Code String
        var postString = $('#pCode').val();
        if (!ValidatePostcode(postString)) {
            //if (postString.length < 5 || postString.length > 8) {
            //alert("Please enter a valid post code.");
            $("#pCode").focus();
            return false;
        }

        $("#listReductionAreaCode").GridUnload();
        $("#areaOut").html(postString);

        jQuery("#listReductionAreaCode").jqGrid({
            url: '/FormInput/ReductionByPostCode?PostCode=' + $('#pCode').val(),
            datatype: 'json',
            mtype: 'POST',
            colNames: ['Property Type', 'Post Code', 'Rateable Value', 'Reduction £', 'Reduction %', 'Savings'],
            colModel: [
                            { name: 'Property_Description', index: 'Property_Description', width: 141, align: 'left' },
                            { name: 'Post_Code', index: 'Post_Code', width: 75, align: 'left' },
                            { name: 'Rateable_Value', index: 'Rateable_Value', width: 86, align: 'left' },
                            { name: 'Reduction', index: 'Reduction', width: 75, align: 'left' },
                            { name: 'Reduction_Percentage', index: 'Reduction', width: 75, align: 'left' },
                            { name: 'Savings', index: 'Savings', width: 75, align: 'left' },
                        ],
            pager: jQuery('#pagerReductionAreaCode'),
            rowNum: 25,
            height: '100%',
            sortname: 'Post_Code',
            sortorder: "desc",
            viewrecords: true,
            caption: 'Reduction List'
        });
        return true;
    });
});


function getTotalSavings() {
    $.ajax({
        type: 'POST',
        datatype: 'json',
        url: '/FormInput/TotalSavingsMade',
        success: function (result) {
            $("#RS_Savings").text(result.savings);
            $("#RS_Savings").formatCurrency();
            var lastUpdated = new Date(parseInt(result.lastUpdated.substr(6)));
            var lastUpdatedString = "as of " + lastUpdated.f("HH:mm") + " on " + lastUpdated.f("EE dd") + " " + lastUpdated.f("MMM, yyyy");
            $("#RS_SavingsLastUpdated").text(lastUpdatedString);

        },
        error: function (req, status, error) {
            //alert("error: " + error + "\r\n" + "Status: " + status + "\r\n" + "Req: " + req);
            alert(grovel);
        }
    });
}

function getReductionsByArea(region) {

    //$("#listReductionAreaCode").GridUnload();
    if (region == "North East")
        $("#areaOut").html("Scotland & North East");
    else
        $("#areaOut").html(region);

    $.ajax({
        type: 'POST',
        url: '/FormInput/ReductionByArea?AreaCode=' + region,
        success: function (result) {
            //document.getElementById("RS_Area").innerHTML = result;
            $("#RS_Area").text(result)
            $("#RS_Area").formatCurrency()
            $("#RS_Header_Form").show();

        },
        error: function (req, status, error) {
            //alert("error: " + error + "\r\n" + "Status: " + status + "\r\n" + "Req: " + req);
            alert(grovel);
        }
    });

    return true;
}

$(document).ready(function () {
    $('#ReferFriendFormSubmit').click(function () {

        var name = $("#RefName").val();
        if (name.length == 0) {
            alert("Please enter a contact name");
            $('#RefName').focus();
            return false;
        }

        var phone = $("#RefPhone").val();
        if (!IsValidTelephone(phone)) {
            $('#RefPhone').focus();
            return false;
        }

        var email = $("#RefEmail").val();
        if (!IsValidEmail(email)) {
            $('#RefEmail').focus();
            return false;
        }


        var name = $("#RefClientName").val();
        if (name.length == 0) {
            alert("Please enter a referral name");
            $('#RefClientName').focus();
            return false;
        }

        var phoneClient = $("#RefClientPhone").val();
        if (!IsValidTelephone(phoneClient)) {
            $('#RefClientPhone').focus();
            return false;
        }

        var emailClient = $("#RefClientEmail").val();
        if (!IsValidEmail(emailClient)) {
            $('#RefClientEmail').focus();
            return false;
        }

        submitForm('FriendForm', 'loader_side');
        var arForm = $("#ReferFriendForm").serializeArray();

        $.ajax({
            type: 'POST',
            url: '/FormInput/ReferFriend',
            data: arForm,
            success: function (result) {

                $(".loader_side").show("slow");

                if (result == "true") {
                    $(".contact_results").show("slow");
                    $(".loader_side").hide("slow");
                    document.getElementById('refer_contact_message').innerHTML = "Thank you for your enquiry. We will be in touch shortly.<br/><br/>";
                    $("#RefName").val("");
                    $("#RefCompany").val("");
                    $("#RefPhone").val("");
                    $("#RefEmail").val("");
                    $("#RefClientName").val("");
                    $("#RefClientPhone").val("");
                    $("#RefClientEmail").val("");
                    $("#RefClientAddress").val("");
                } else {
                    $(".contact_results").show("slow");
                    $(".loader_side").hide("slow");
                    document.getElementById('refer_contact_message').innerHTML = "Oops there's been a problem with our systems, your message has not been sent.</br></br> <img src=\"../../Content/Images/template/button-cancel.gif\" onclick=\"clearContact();\" alt=\"Cancel\" width=\"190\" height=\"17\">";
                }
            },
            error: function (req, status, error) {
                alert(grovel);
            }

        });


    });

})

$(document).ready(function () {
    $('#RatesAppealFormSubmit').click(function () {

        var name = $("#AffName").val();
        if (name.length == 0) {
            alert("Please enter a contact name");
            $('#AffName').focus();
            return false;
        }

        var phone = $("#AffPhone").val();
        if (!IsValidTelephone(phone)) {
            $('#AffPhone').focus();
            return false;
        }

        var email = $("#AffEmail").val();
        if (!IsValidEmail(email)) {
            $('#AffEmail').focus();
            return false;
        }

        submitForm('RatesAppealForm', 'loader_side');
        var arForm = $("#RatesAppealForm").serializeArray();

        $.ajax({
            type: 'POST',
            url: '/FormInput/Affiliates',
            data: arForm,
            success: function (result) {

                //do something with the response

                $(document).ready(function () {
                    $(".loader_side").show("slow");
                });

                if (result == "true") {

                    $(".contact_results").show("slow");
                    $(".loader_side").hide("slow");

                    document.getElementById('appeal_contact_message').innerHTML = "Thank you for your enquiry. We will be in touch shortly.<br/><br/>";
                    $("#Referral").val("");
                    $("#AffRef").val("");
                    $("#AffName").val("");
                    $("#AffCompany").val("");
                    $("#AffPhone").val("");
                    $("#AffEmail").val("");
                    $("#AffAddress").val("");
                } else {
                    $(".contact_results").show("slow");
                    $(".loader_side").hide("slow");
                    document.getElementById('appeal_contact_message').innerHTML = "Oops there's been a problem with our systems, your message has not been sent.</br></br> <img src=\"../../Content/Images/template/button-cancel.gif\" onclick=\"clearContact();\" alt=\"Cancel\" width=\"190\" height=\"17\">";
                }

            },
            error: function (req, status, error) {
                alert(grovel);
            }
        });


    });
})


$(document).ready(function () {
    $('#ClientRegisterSubmit').click(function () {
        var arForm = $("#ClientRegisterForm").serializeArray();
        $.ajax({
            type: 'POST',
            url: '/FormInput/ClientRegister',
            data: arForm,
            success: function (result) {
                togglevis('login_message', 'block', 'visible');
                togglevis(result, 'block', 'visible');
            },
            error: function (req, status, error) {
                alert(grovel);
            }
        });
    });
})


$(document).ready(function () {
    $('#ClientLoginSubmit').click(function () {
        var arForm = $("#ClientLoginForm").serializeArray();
        $.ajax({
            type: 'POST',
            url: '/FormInput/ClientLogin',
            data: arForm,
            success: function (result) {

                togglevis('login_message', 'block', 'visible');
                togglevis(result, 'block', 'visible');

            },
            error: function (req, status, error) {
                alert(grovel);
            }
        });
    });
})


$(document).ready(function () {
    $('#PartnerSubmit').click(function () {
        var arForm = $("#PartnerForm").serializeArray();
        $.ajax({
            type: 'POST',
            url: '/FormInput/PartnersLogin',
            data: arForm,
            success: function (result) {

                $("#Name").val(result);

            },
            error: function (req, status, error) {
                alert(grovel);
            }
        });
    });
})

//called from slide out, calculator.inc
$(document).ready(function () {
    $('#RatesCalculatorSubmit').click(function () {

        var rate2005 = $('#cRateVal2005').val();
        if (rate2005 == "") {
            alert("Rateable value 2005 must be entered");
            $('#cRateVal2005').focus();
            return false;
        }

        var rate2010 = $('#cRateVal2010').val();
        if (rate2010 == "") {
            alert("Rateable value 2010 must be entered");
            $('#cRateVal2010').focus();
            return false;
        }

        var postString = $('#PostCode').val();
        if (!ValidatePostcode(postString)) {
            $("#PostCode").focus();
            return false;
        }

        //$(".business_rates_loader_page").slideToggle("slow");
        //$(".calculator_results_page").slideToggle("slow");
        //$(".business_rates_loader").slideToggle("slow");

        var id = $("#calcformid1").val();

        if (id == 1) {
            $(".business_rates_loader").slideToggle("fast");

        } else {
            $(".business_rates_loader_page").slideToggle("fast");
        }


        var arForm = $("#RatesCalculatorForm").serializeArray();
        $.ajax({
            type: 'POST',
            url: '/BusinessRatesCalculator/Calculate',
            data: arForm,
            success: function (result) {

                //alert("Slide out " + id);

                PopulateCalcRateForm(result, id);
            },
            error: function (req, status, error) {
                alert(grovel);
            }
        });

    });
})

//called from page, calculator_pages.inc
$(document).ready(function () {
    $('#RatesCalculatorFormPageSubmit').click(function () {

        // Main page business rate calulator
        var rate2005 = $('#cpRateVal2005').val();
        if (rate2005 == "") {
            alert("Rateable value 2005 must be entered");
            $("#cpRateVal2005").focus();
            return false;
        }

        var rate2010 = $("#cpRateVal2010").val();
        if (rate2010 == "") {
            alert("Rateable value 2010 must be entered");
            $("#cpRateVal2010").focus();
            return false;
        }

        // Validate Post Code String
        var postString = $('#pCode').val();
        if (!ValidatePostcode(postString)) {
            $("#pCode").focus();
            return false;
        }

        //$(".calculator_menu").slideUp("fast");
        //$(".sign_in").slideUp("fast");

        $(".business_rates_loader").slideUp("fast");
        $(".calculator_results").slideUp("slow");

        // This is now going to use the "Calculator" tab results page
        // So transfer the entered values to the tab page fields
        document.getElementById("cRateVal2005").value = rate2005
        document.getElementById("cRateVal2010").value = rate2010
        document.getElementById("PostCode").value = postString

        $(".calculator_menu").slideDown("slow");
        $(".sign_in").slideUp("fast");

        $("#RatesCalculatorSubmit").click();
        return;

//        $(".business_rates_loader_page").slideToggle("slow");

//        var id = $("#calcformid2").val();
//        var arForm = $("#RatesCalculatorFormPage").serializeArray();
//        $.ajax({
//            type: 'POST',
//            url: '/BusinessRatesCalculator/Calculate',
//            data: arForm,
//            success: function (result) {
//                PopulateCalcRateForm(result, id);
//            },
//            error: function (req, status, error) {
//                alert(grovel);
//            }
//        });

    });
})

function ValidatePostcode(postcode) {
    if (postcode == null || postcode == "") {
        alert("Please enter a post code.");
        return false;
    }

    var re = new RegExp("(GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9][0-9]) [0-9][ABD-HJLNP-UW-Z]{2})");
    var m = re.exec(postcode.toUpperCase());
    if (m == null) {
        alert("Post code is invalid.");
        return false;
    } else {
        return true;
    }

}

function PopulateCalcRateForm(resultIn, id) {

   //close loading panel

    if (resultIn == "calcerror") {

        //alert("ID: "+id);

        //remove loading screen

        if (id == 1) {

            
            $(".business_rates_loader").slideToggle("fast");

        } else {

            $(".business_rates_loader_page").slideToggle("fast");

        }

        alert("There has been an error in the calculations. Please check your information you have entered and try again.");

    }  else {

        var partsArray = resultIn.split('~');

        //format of each array = 2010, 2011, 2012, 2013, 2014
        var originalPaymentArray = partsArray[1].split(",");
        var revisedPaymentArray = partsArray[2].split(",");
        var savingsArray = partsArray[3].split(",");

        var totalSavings = parseInt(savingsArray[0]) + parseInt(savingsArray[1]) + parseInt(savingsArray[2]) + parseInt(savingsArray[3]) + parseInt(savingsArray[4]);

        //alert("ID=" + id);
        var pcode = $("#pCode").val() != "" ? $("#pCode").val() : $("#PostCode").val();
        var rv2005 = $("#cpRateVal2005").val() != "" ? $("#cpRateVal2005").val() : $("#cRateVal2005").val();
        var rv2010 = $("#cpRateVal2010").val() != "" ? $("#cpRateVal2010").val() : $("#cRateVal2010").val();
        if (document.getElementById("cpePostCode") != undefined)
            document.getElementById("cpePostCode").value = pcode;
        else
            document.getElementById("cePostCode").value = pcode;

        if (document.getElementById("cpeRV2005") != undefined)
            document.getElementById("cpeRV2005").value = rv2005;
        else
            document.getElementById("ceRV2005").value = rv2005;

        if (document.getElementById("cpeRV2010") != undefined)
            document.getElementById("cpeRV2010").value = rv2010;
        else
            document.getElementById("ceRV2010").value = rv2010;

        // find form id

        if (id == 1) {

            //populate results

            document.getElementById("2010_original").innerHTML = "&pound; " + originalPaymentArray[0];
            document.getElementById("2010_revised").innerHTML = "&pound; " + revisedPaymentArray[0];
            document.getElementById("2010_savings").innerHTML = "&pound; " + savingsArray[0];

            document.getElementById("2011_original").innerHTML = "&pound; " + originalPaymentArray[1];
            document.getElementById("2011_revised").innerHTML = "&pound; " + revisedPaymentArray[1];
            document.getElementById("2011_savings").innerHTML = "&pound; " + savingsArray[1];

            document.getElementById("2012_original").innerHTML = "&pound; " + originalPaymentArray[2];
            document.getElementById("2012_revised").innerHTML = "&pound; " + revisedPaymentArray[2];
            document.getElementById("2012_savings").innerHTML = "&pound; " + savingsArray[2];

            document.getElementById("2013_original").innerHTML = "&pound; " + originalPaymentArray[3];
            document.getElementById("2013_revised").innerHTML = "&pound; " + revisedPaymentArray[3];
            document.getElementById("2013_savings").innerHTML = "&pound; " + savingsArray[3];

            document.getElementById("2014_original").innerHTML = "&pound; " + originalPaymentArray[4];
            document.getElementById("2014_revised").innerHTML = "&pound; " + revisedPaymentArray[4];
            document.getElementById("2014_savings").innerHTML = "&pound; " + savingsArray[4];

            //alert(savingsArray.length);

            //            for (var i = 0; i < savingsArray.length - 1; i++) {
            //                //alert (savingsArray[i]) ;
            //                totalSavings += parseInt(savingsArray[i]);
            //                //alert(totalSavings);
            //            }

            document.getElementById("saving_totals").innerHTML = "&pound; " + totalSavings;


            $(document).ready(function () {
                $(".business_rates_loader").slideToggle("slow");

            });

            $(document).ready(function () {
                $(".calculator_results").slideToggle("slow");

            });


        } else {

            //populate results

            document.getElementById("2010_original_page").innerHTML = "&pound; " + originalPaymentArray[0];
            document.getElementById("2010_revised_page").innerHTML = "&pound; " + revisedPaymentArray[0];
            document.getElementById("2010_savings_page").innerHTML = "&pound; " + savingsArray[0];

            document.getElementById("2011_original_page").innerHTML = "&pound; " + originalPaymentArray[1];
            document.getElementById("2011_revised_page").innerHTML = "&pound; " + revisedPaymentArray[1];
            document.getElementById("2011_savings_page").innerHTML = "&pound; " + savingsArray[1];

            document.getElementById("2012_original_page").innerHTML = "&pound; " + originalPaymentArray[2];
            document.getElementById("2012_revised_page").innerHTML = "&pound; " + revisedPaymentArray[2];
            document.getElementById("2012_savings_page").innerHTML = "&pound; " + savingsArray[2];

            document.getElementById("2013_original_page").innerHTML = "&pound; " + originalPaymentArray[3];
            document.getElementById("2013_revised_page").innerHTML = "&pound; " + revisedPaymentArray[3];
            document.getElementById("2013_savings_page").innerHTML = "&pound; " + savingsArray[3];

            document.getElementById("2014_original_page").innerHTML = "&pound; " + originalPaymentArray[4];
            document.getElementById("2014_revised_page").innerHTML = "&pound; " + revisedPaymentArray[4];
            document.getElementById("2014_savings_page").innerHTML = "&pound; " + savingsArray[4];

            //alert(savingsArray.length);

            //            for (var i = 0; i < savingsArray.length - 1; i++) {
            //                //alert (savingsArray[i]) ;
            //                totalSavings += parseInt(savingsArray[i]);
            //                //alert(totalSavings);
            //            }

            document.getElementById("saving_totals_page").innerHTML = "&pound; " + totalSavings;

            //showLoaderPage();


            $(".business_rates_loader_page").slideToggle("slow");
            $(".calculator_results_page").slideToggle("slow");

        }



        //open results panels



        //        alert(originalPaymentArray + " ** " + revisedPaymentArray + " ** " + savingsArray);
        //        alert("" + totalSavings);

    }
}

