﻿$.fn.immediateSiblings = function(selector) {
    var siblings = [];
    this.each(function() {
        var children = $(this).parent().children(selector).not(this).get();
        $.merge(siblings, children);
    });
    return this.pushStack($.unique(siblings));
};

function _ExclusiveFields(modifiedFieldId, partnerFieldId)
{
    var modField = document.getElementById(modifiedFieldId);
    var parField = document.getElementById(partnerFieldId);
    
    var modString = jQuery.trim(modField.value);

    if (modString != '') {
        $(parField).attr('disabled', 'disabled');
//        $(parField).css("background", "Gray");

        return true;
    }
    else {
        $(parField).removeAttr('disabled');
//        $(parField).css("background", "White");
        return false;
    }
}

function _DisableImages(disabledFieldImage) {
    $(disabledFieldImage).css("display", "block");
    $(disabledFieldImage).removeAttr('disabled');
    $(disabledFieldImage).attr("src", "../_LAYOUTS/1033/IMAGES/VR/BadAuth.gif");    
    
}
function _EnableLicenseFields(fieldId) {    
    var field = document.getElementById(fieldId);
    $(field).removeAttr('disabled');
    $(field).css("background", "White");    
}

function _jQueryValidation()
{
    if ($('#form').jVal({ style: 'pod', padding: 3, border: 1, wrap: true }))
        alert('success - submit form');
}

function _ShowDesignationRelatedFields(designationId
                                      , licenseboxId
                                      , slnId
                                      , deaId
                                      , prescriberId
                                      , nurseId
                                      , nurseDesignationId
                                      , nurseDropDownId
                                      , pharmacistId
                                      , pharmacistDropDownId
                                      , otherRowId
                                      , otherDropDownId
                                      , otherOtherId
                                      , studentId
                                      , isChanged
                                      , doMdChoice
                                      , doMdRadioId)
{
    var DesignationDropDown = document.getElementById(designationId);
    var index = DesignationDropDown.selectedIndex;

    if (isChanged != false)
    {
        _HideValidatorRow(licenseboxId);
        _HideValidatorRow(slnId);
        _HideValidatorRow(deaId);
        _HideValidatorRow(prescriberId);
        _HideValidatorRow(nurseId);
        _HideValidatorRow(nurseDesignationId);
        _HideValidatorRow(pharmacistId);
        _HideValidatorRow(otherRowId);
        _HideValidatorRow(otherOtherId);
        _HideValidatorRow(studentId);
        _HideValidatorRow(doMdChoice);
        
    }

    switch (DesignationDropDown[index].value)
    {
        case "Nurse":
            _ShowValidatorRow(licenseboxId);
            _ShowValidatorRow(slnId);
            _ShowValidatorRow(nurseId);
            _ShowNurseDesignationRelatedFields(nurseDesignationId, nurseDropDownId, licenseboxId, slnId)
            break;

        case "Podiatrist":
        case "Optometrist":
        case "Dentist":
        case "PhysicianAssistant":
            _ShowValidatorRow(licenseboxId);
            _ShowValidatorRow(slnId);
            break;

        case "NaturopathicDoctor":
        case "Psychologist":
            _ShowValidatorRow(prescriberId);
            break;

        case "DO":
              _ShowValidatorRow(doMdChoice);
              _ShowValidatorRow(doMdRadioId);
              _ShowValidatorRow(licenseboxId);
//            _ShowValidatorRow(slnId);
//            _ShowValidatorRow(deaId);
            break;

        case "MD":
              _ShowValidatorRow(doMdChoice);
              _ShowValidatorRow(doMdRadioId);
              _ShowValidatorRow(licenseboxId);
//            _ShowValidatorRow(slnId);
//            _ShowValidatorRow(deaId);
            break;

        case "Other":
            _ShowValidatorRow(otherRowId);
            _ShowOtherDesignationRelatedFields(otherDropDownId
                                               , otherOtherId
                                               , studentId)
            break;

        case "Pharmacist":
            _ShowValidatorRow(pharmacistId);
            _ShowPharmacistRelatedFields(pharmacistDropDownId
                                         , licenseboxId
                                         , slnId
                                         , studentId)

            break;

        case "NursingHomeSpecialist": break;
        case "AmbulanceServices": break;
        case "Dietitian": break;
        case "invaliddefault": break;
        default:
            alert("Undefined Option of " + DesignationDropDown[index].value + "! I'll pretend this didn't just happen.");
    }
}


function _ShowPersonaFields(designationId
                            , personaId
                            , deaId
                            , npiId
                            , donId
                            , menId
                            , phoneId
                            , addressId
                            , cityId
                            , stateId
                            , zipId
                            , doMdChoice
                            , doMdRadioId)
{
    var DesignationDropDown = document.getElementById(designationId);
    var index = DesignationDropDown.selectedIndex;

    var desi = DesignationDropDown[index].value;
    
    if(desi == "Ambulance"
       || desi == "Diet"
       || desi == "Other"
       || desi == "NHS"
       || desi == "Pharmacist"
       || desi == "invaliddefault")
    {
        
        _HideValidatorRow(personaId);
        _ShowValidatorRow(personaId);
        _HideValidatorRow(menId);
        _HideValidatorRow(donId);
        return;
    }

    _ShowValidatorRow(personaId);
    _ShowValidatorRow(phoneId);
    _ShowValidatorRow(addressId);
    _ShowValidatorRow(cityId);
    _ShowValidatorRow(stateId);
    _ShowValidatorRow(zipId);
    //_ShowValidatorRow(deaId);
    _ShowValidatorRow(npiId);
    _ShowValidatorRow(doMdChoice);
    _ShowValidatorRow(doMdRadioId);
    _HideValidatorRow(deaId);

    if (desi == "DO")
    {
        _ShowValidatorRow(donId);
        _HideValidatorRow(menId);
    }
    else if (desi == "MD")
    {
        _ShowValidatorRow(menId);
        _HideValidatorRow(donId);
    }
    else
    {
        _HideValidatorRow(menId);
        _HideValidatorRow(donId);
    }
}


function _ShowSubscriberPersonaFields(designationId
                            , personaId
                            , deaId
                            , npiId
                            , donId
                            , menId
                            , phoneId
                            , addressId
                            , cityId
                            , stateId
                            , zipId) {
    
    
    var DesignationDropDown = document.getElementById(designationId);
    var index = DesignationDropDown.selectedIndex;

    var desi = DesignationDropDown[index].value;
    
    if(desi == "Ambulance"
       || desi == "Diet"
       || desi == "Other"
       || desi == "NHS"
       || desi == "Pharmacist"
       || desi == "invaliddefault")
    {
        _HideValidatorRow(personaId);
        _ShowValidatorRow(personaId);
        return;
    }

    _ShowValidatorRow(personaId);
    _ShowValidatorRow(phoneId);
    _ShowValidatorRow(addressId);
    _ShowValidatorRow(cityId);
    _ShowValidatorRow(stateId);
    _ShowValidatorRow(zipId);
    //_ShowValidatorRow(deaId);
    _ShowValidatorRow(npiId);


    if (desi == "DO")
    {
        _ShowValidatorRow(donId);
        _HideValidatorRow(menId);
    }
    else if (desi == "MD")
    {
        _ShowValidatorRow(menId);
        _HideValidatorRow(donId);
    }
    else
    {
        _HideValidatorRow(menId);
        _HideValidatorRow(donId);
    }
    
    //_HideValidatorRow(menId);
    //_HideValidatorRow(donId);
}

function _HideSubscriberPersonaFields( designationId
                            , personaId
                            , deaId
                            , npiId
                            , donId
                            , menId
                            , phoneId
                            , addressId
                            , cityId
                            , stateId
                            , zipId) {
    _HideValidatorRow(personaId);
    _HideValidatorRow(phoneId);
    _HideValidatorRow(addressId);
    _HideValidatorRow(cityId);
    _HideValidatorRow(stateId);
    _HideValidatorRow(zipId);
    //_HideValidatorRow(deaId);
    _HideValidatorRow(npiId);
    _HideValidatorRow(menId);
    _HideValidatorRow(donId);
}

function _ShowOtherDesignationRelatedFields(otherDropDownId
                                            , otherOtherId
                                            , studentId)
{
    var OtherDropDown = document.getElementById(otherDropDownId);
    var index = OtherDropDown.selectedIndex;

    if (OtherDropDown[index].value == "Student")
    {
        _HideValidatorRow(otherOtherId);
        _ShowValidatorRow(studentId);
    }
    else if (OtherDropDown[index].value == "Other")
    {
        _ShowValidatorRow(otherOtherId);
        _HideValidatorRow(studentId);
    }
    else
    {
        _HideValidatorRow(otherOtherId);
        _HideValidatorRow(studentId);
    }
}

function _ShowPharmacistRelatedFields(pharmacistDropDownId
                                      , licenseId
                                      , slnId
                                      , studentId)
{
    var PharmacistDropDown = document.getElementById(pharmacistDropDownId);
    var index = PharmacistDropDown.selectedIndex;

    if (PharmacistDropDown[index].value == "Student")
    {
        _HideValidatorRow(slnId);
        _HideValidatorRow(licenseId);
        _ShowValidatorRow(studentId);
    }
    else if (PharmacistDropDown[index].value == "DoctorOfPharmacy"
             || PharmacistDropDown[index].value == "RegisteredPharmacist")
    {
        _ShowValidatorRow(licenseId);
        _ShowValidatorRow(slnId);
        _HideValidatorRow(studentId);
    }
    else
    {
        _HideValidatorRow(slnId);
        _HideValidatorRow(licenseId);
        _HideValidatorRow(studentId);
    }
}

function _ShowNurseDesignationRelatedFields(nurseDesignationId, nurseDropDownId,licenseboxId, slnId)
{
    var NurseDesinationDropDown = document.getElementById(nurseDropDownId);    
    var index = NurseDesinationDropDown.selectedIndex;
    if (NurseDesinationDropDown[index].value != "invaliddefault")
       {
        _ShowValidatorRow(nurseDesignationId);
        _ShowValidatorRow(licenseboxId);
        _ShowValidatorRow(slnId);
        }
    else
        {
        _HideValidatorRow(nurseDesignationId);
        }
        if (NurseDesinationDropDown[index].value == "NursingStudent")
        {
        _HideValidatorRow(licenseboxId);
        _HideValidatorRow(slnId);
        }
        else
        {
        _ShowValidatorRow(licenseboxId);
        _ShowValidatorRow(slnId);
        }
}