﻿var BackgroundColour = "#EE2E24";
var ErrorMessages = {
    Phone: 'Please enter only numbers',
    Mobile: 'Please enter only numbers',
    Email: 'Please check your email address is correct'
};

function ShowPopup(paramElement) {
    var msg;
    var PopupStatus = false;
    var controlID = paramElement.id;
    var control = $('#' + controlID);
    var offset = control.position();
    var controlLeft = offset.left;
    var controlTop = offset.top;
    var divID = "div" + controlID;
    var divControl = $('#' + divID);
    var divWidth = divControl.width();
    var controlWidth = control.width();
    if (controlID == "typeBPhone") {
        if (document.getElementById(controlID).value != "") {
            msg = ErrorMessages['Phone'];
            PopupStatus = true;
        }
    }
    else if (controlID == "typeBMobile") {
        if (document.getElementById(controlID).value != "") {
           msg = ErrorMessages['Mobile'];
            PopupStatus = true;
        }
    }
    else if (controlID == "typeBEmail") {
        msg = ErrorMessages['Email'];
        PopupStatus = true;
    }

    if (PopupStatus) {        
        if (parseInt(controlLeft) > (parseInt(divWidth) + 30)) {
            divControl.css("left", parseInt(controlLeft) - (parseInt(divWidth) + 30));            
            if (controlID == "typeBPhone") {
                divControl.css("top", parseInt(controlTop) - 25);
            }
            else if (controlID == "typeBMobile") {
                divControl.css("top", parseInt(controlTop) - 20);
            }
            else if (controlID == "typeBEmail") {
                divControl.css("top", parseInt(controlTop) - 15);
            }
            if ((controlID == "typeBPhone") || (controlID == "typeBMobile")) {
                divControl.removeClass('popup-left-single');
                divControl.addClass('popup-right-single');
            }
            else if (controlID == "typeBEmail") {
                divControl.removeClass('popup-left-double');
                divControl.addClass('popup-right-double');
            }
        }
        else {
            divControl.css('left', parseInt(controlLeft) + parseInt(controlWidth));
            if (controlID == "typeBPhone") {
                divControl.css("top", parseInt(controlTop) - 30);
            }
            else if (controlID == "typeBMobile") {
                divControl.css("top", parseInt(controlTop) - 21);
            }
            else if (controlID == "typeBEmail") {
                divControl.css("top", parseInt(controlTop) - 17);
            }
            if ((controlID == "typeBPhone") || (controlID == "typeBMobile")) {
                divControl.removeClass('popup-left-single');
                divControl.addClass('popup-left-single');
            }
            else if (controlID == "typeBEmail") {
                divControl.removeClass('popup-left-double');
                divControl.addClass('popup-left-double');
            }
        }
        divControl.html(msg);
        divControl.show();
    }
}


function HidePopup(paramElement) {
    var controlID = "div" + paramElement.id;
    $('#' + controlID).hide();
}

function CheckForValidPhone(TelephoneNumber) {
    var PhoneStatus;
    var index = 0;
    var PhoneLength = 0;

    if (TelephoneNumber.length > 0) {
        for (index = 0; index < TelephoneNumber.length; index++) {
            if (TelephoneNumber.charAt(index) != " ") {
                PhoneLength++;
            }
        }
        if ((PhoneLength < 9) || (PhoneLength > 12)) {
            return false;
        }
        else {
            for (index = 0; index < TelephoneNumber.length; index++) {
                PhoneStatus = true;
                var ArrayIndex = 0;

                if ((TelephoneNumber.charAt(index) == "1") || (TelephoneNumber.charAt(index) == "2") || (TelephoneNumber.charAt(index) == "3") || (TelephoneNumber.charAt(index) == "4")
            || (TelephoneNumber.charAt(index) == "5") || (TelephoneNumber.charAt(index) == "6") || (TelephoneNumber.charAt(index) == "7") || (TelephoneNumber.charAt(index) == "8")
            || (TelephoneNumber.charAt(index) == "9") || (TelephoneNumber.charAt(index) == "0") || (TelephoneNumber.charAt(index) == " ")) {
                    PhoneStatus = true;

                }
                else {
                    PhoneStatus = false;
                    break;
                }

            }
            if (PhoneStatus == false) {
                return false;
            }
            else {
                return true;
            }
        }
    }
    else {
        return true;
    }
}

$(document).ready(function () {

    $.validator.addMethod("ValidPhone", function (value, element) {
        return CheckForValidPhone(value);
    }, 'Please select a valid phone.');
    
    $("#frmInternetHeaven").validate({
        submitHandler: function (form) {
            SendFormTypeB();
        },

        highlight: function (element, errorClass) {
            $(element).css({ "background-color": BackgroundColour });
            HidePopup(element);
            ShowPopup(element);            
        },

        unhighlight: function (element, errorClass) {
            $(element).css({ "background-color": "#FFFFFF" });
            HidePopup(element);
        },

        errorElement: "span",

        errorPlacement: function (error, element) {
            error.appendTo(element.prev("label"));
        },

        rules: {
            typeBTitle: "required",
            typeBName: "required",
            typeBSurname: "required",
            typeBEmail: { required: false, email: true },

            typeBPhone: {
                required: function (element) {

                    if (document.getElementById("typeBMobile").value == "" && document.getElementById("typeBPhone").value == "") {
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                ValidPhone: true
            },
            typeBMobile: {
                required: function (element) {

                    if (document.getElementById("typeBMobile").value == "" && document.getElementById("typeBPhone").value == "") {
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                ValidPhone: true
            }
        },

        messages: {
            typeBTitle: "",
            typeBName: "",
            typeBSurname: "",
            typeBEmail: "",
            typeBPhone: "",
            typeBMobile: ""

        }
    });
});

function SendFormTypeB() {

    document.getElementById('btnTypeBBtnSubmit').disabled = true;
    document.getElementById('imgTypeBAjax').style.display = '';

    $.ajax({
        type: 'POST',
        url: "/base/ihrest/InsertFormTypeBData.aspx",
        data: {
            typeBTitle: document.getElementById('typeBTitle').value,
            typeBName: document.getElementById('typeBName').value,
            typeBSurname: document.getElementById('typeBSurname').value,
            typeBPhone: document.getElementById('typeBPhone').value,
            typeBMobile: document.getElementById('typeBMobile').value,
            typeBEmail: document.getElementById('typeBEmail').value,
            typeBCurrentNodeID: document.getElementById('typeBCurrentNodeID').value,
            typeBAjaxReq: "Yes"
        },
        success:
                    function (data) {
                        document.getElementById('btnTypeBBtnSubmit').disabled = false;
                        document.getElementById('imgTypeBAjax').style.display = 'none';
                        var ReturnData = data.split("---");

                        if (ReturnData[0] != "1") {
                            alert("Unexpected error occured. Please try again after some time");
                        }
                        else {

                            trackSubmission(ReturnData[1], ReturnData[2]);
                            document.getElementById('dvTypeBPlaceholder').innerHTML = ReturnData[3];
                        }
                    }

    });
    return false;
}
