﻿

function SendEmailRequest() {

    var registrationDetails = {};

    registrationDetails.name = $("[id$='_txtName']").val();
    registrationDetails.gdcNo = $("[id$='_txtGDCNo']").val();

    registrationDetails.membershipNo = $("[id$='_txtMembershipNo']").val();
    registrationDetails.telephoneNo = $("[id$='_txtTelephone']").val();
    registrationDetails.emailAddress = $("[id$='_txtEmail']").val();
    registrationDetails.onlineAccount = $("[id$='_lstOnlineAccount']").val();
    registrationDetails.essentialsDirect = $("[id$='_lstEssentialsDirect']").val();
    registrationDetails.regFac = $("[id$='_txtRegFacility']").val();
    registrationDetails.feeCode = $("[id$='_txtFeeCode']").val();
    registrationDetails.feeAmount = $("[id$='_txtMonthlyFee']").val();
    registrationDetails.examsNo = $("[id$='_txtNoExaminations']").val();
    registrationDetails.hygieneNo = $("[id$='_txtNoHygeine']").val();
    registrationDetails.xraysNo = $("[id$='_txtNoXrays']").val();
    registrationDetails.treatingDentist = $("[id$='_txtTreatingDentist']").val();
    registrationDetails.PDE = $("[id$='_lstPDE']").val();
    registrationDetails.broadband = $("[id$='_lstBroadband']").val();
    registrationDetails.R4 = $("[id$='_lstKodakR4']").val();
    registrationDetails.noSites = $("[id$='_lstNoSites']").val();
    registrationDetails.PDEContact = $("[id$='_txtPracticeContact']").val();
    registrationDetails.dateOfBirth = $("[id$='_txtDOB']").val();
    registrationDetails.applicationDate = $("[id$='_txtApplicationDate']").val();
    registrationDetails.dpa = $("[id$='_chkDPA']").attr('checked');
    
    // Create a data transfer object (DTO) with the proper structure.
    var DTO = { 'registrationDetails': registrationDetails };

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/services/DentistsOnlineServicesRegistration.asmx/Register",
        data: JSON.stringify(DTO),
        dataType: "json",
        success: EmailRequestSucceeded,
        error: AjaxSendError
    });
}

// Successful AJAX response handling
function EmailRequestSucceeded(results) {
    if (results.d != 'true' && results.d != true) {
        AjaxSendError();
        return;
    }
    swapDialogClass('stateSuccess');
    $('form').clearForm();
    $('.dialog').dialog('open');
}

// Generic AJAX Error Handler
function AjaxSendError() {
    swapDialogClass('stateFailure');
    $('.dialog').dialog('open');
}

// Reset CSS classes to initial state
function resetDialogClass() {
    $('.ui-dialog').removeClass('stateSuccess');
    $('.ui-dialog').removeClass('stateFailure');
    $('.ui-dialog').removeClass('stateQuoteFailure');
}

// Set CSS classes to a new state
function swapDialogClass(newClass) {
    resetDialogClass();
    $('.ui-dialog').addClass(newClass);

}

// Implements the jQuery UI dialog control
function emailOverlays() {
    //	Set dialog options and behaviour
    var dialogOptions = {
        'autoOpen': false,
        'draggable': false,
        'modal': true,
        'resizable': false,
        'width': 640
    };

    //	Setup form as dialog in overlay
    $('.dialog').dialog(dialogOptions);
    $('#summaryDialog').removeClass('hide');

}

function hideFallbackControls() {
    $('.noscript').hide();
    $('#buttonSubmit').removeClass('scriptonly');
    $('#buttonSubmit').attr('style', '"display: block !important"');
    if ($("[id$='_lstEssentialsDirect']").val() != "Yes") {
        $('#essentialsFields').hide();
    }
    if ($("[id$='_lstPDE']").val() != "Yes") {
        $('#pdeFields').hide();
    }    
}

$(document).ready(function() {

    hideFallbackControls();
    emailOverlays();

    $("[id$='_lstEssentialsDirect']").change(function() {
        if ($(this).val() == "Yes") {
            $('#essentialsFields').show();
        } else {
            $('#essentialsFields').hide();
        }
    });
    $("[id$='_lstPDE']").change(function() {
        if ($(this).val() == "Yes") {
            $('#pdeFields').show();
        } else {
            $('#pdeFields').hide();
        }
    });    
    

    $("#btnSubmit").click(function() {
        $("form").submit();
    });
    $("form").validate({
        errorPlacement: function(error, element) {
            element.after(error);
        },
        errorClass: "enquiryError",
        showErrors: function(errorMap, errorList) {
            $("#messageBox").html("Your form contains "
                                       + this.numberOfInvalids()
                                       + " error(s), see details below.");
            this.defaultShowErrors();
        },
        messages: {
            txtEmail: {
                required: "Email address",
                email: "Your email address must be in the format of name@domain.com"
            }
        },
        submitHandler: function(form) {
            //form.submit();
            $("[id$='_btnFallbackSubmit']").click();
        }
    });
});


