﻿$(document).ready(function () {
    $.validator.addMethod('memberNumber',
        function (value) {
            if (!value.length) {
                return true;
            }
            var data = {};
            data["memberNumber"] = value;
            var res = GoAjax($("#hRoot").val() + "idr/IdrService.asmx/IsMemberNumberValid", data, false, onMemberNumberOkay);
            return res == true;
        },
        'Member number is invalid or inactive'
    );
    $.validator.addMethod('acnAbn',
        function (value) {
            if (!value.length) {
                return true;
            }
            var data = {};
            data["number"] = value;
            var res = GoAjax($("#hRoot").val() + "idr/IdrService.asmx/IsAcnAbnValid", data, false, onMemberNumberOkay);
            return res == true;
        },
        'ABN/ACN number is invalid'
    );

    EnableButtons();

    $("a[contMemId]").each(function (index) {
        $(this).click(function (ev) {
            MemberContactDetails($(this).attr('contMemId'), this);
            ev.preventDefault();
            return false;
        });
    });
    $("a[memIdAcr]").each(function (index) {
        $(this).click(function (ev) {
            AcrList($(this).attr('memIdAcr'), this);
            ev.preventDefault();
            return false;
        });
    });
    $("a[AcrForMemberId]").each(function (index) {
        $(this).click(function (ev) {
            ViewAcrMember($(this).attr('AcrForMemberId'), $(this).attr('AcrForAcrId'));
            ev.preventDefault();
            return false;
        });
    });

    Hightlight();
});

function GoAjax(url, data, isAsync, onOkay) {
    ajaxResult = null;
    $.ajax({
        cache: false,
        async: isAsync,
        timeout: 20000,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: $.toJSON(data),
        url: url,
        success: onOkay,
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            var x = errorThrown;
            var z = 1 + 2;
        }
    });
    return ajaxResult;
}

var onMemberNumberOkay = function(json) {
    ajaxResult = $.evalJSON(json.d);
}

function AcrList(id, link) {
    if ($('#dAcrOuter-' + id + ':visible').length){
        CollapseDetails(300, 'acrOuter', 'memIdAcr');
        $(link).text('View ACR details');
        return;
    }

    CollapseDetails(0, 'acrOuter', 'memIdAcr');

    $('#dAcrOuter-' + id).show(300);
    $(link).text('Hide ACR details');

    if ($('#tAcr-' + id + '_wrapper').length) {
        return;
    }

    setTimeout('AcrListFinalise("' + id + '");', 200);
}

function AcrListFinalise(id) {
    memIdForAcrTable = id;
    var data = {};
    data["memberNumber"] = $('#tAcr-' + id).attr('memId');
    GoAjax($("#hRoot").val() + "idr/IdrService.asmx/GetAcr", data, true, onAcrListOkay);
}

var onAcrListOkay = function (json) {
    var res = $.evalJSON(json.d);

    $('#tAcr-' + memIdForAcrTable).dataTable({
        "aaData": res,
        "sPaginationType": "full_numbers",
        "bDestroy": true
    });
    if (res.length <= 10) {
        $('#tAcr-' + memIdForAcrTable + '_paginate').hide();
        $('#tAcr-' + memIdForAcrTable + '_length').hide();
    }
    $('div.dataTables_wrapper th a').click(function () {
        return false;
    });
}


function MemberContactDetails(id, link) {
    var outerDiv = $(link).nextAll('.idrContactDetails');
    if ($(outerDiv).filter(':visible').length) {
        CollapseDetails(300, 'idrContactDetails', 'contmemid');
        $(link).text('View contact details');
        return;
    }

    CollapseDetails(0, 'idrContactDetails', 'contmemid');
    outerDiv.show(300);
    $(link).text('Hide contact details');
}

function ViewAcrMember(memId, acrId) {
    if ($('#memForAcr-' + memId + '-' + acrId + ':visible').length) {
        CollapseDetails(300, 'memForAcr', 'AcrForMemberId');
        $('a[AcrForMemberId=' + memId + '][AcrForAcrId=' + acrId + ']').text('View details');
        return;
    }

    CollapseDetails(0, 'memForAcr', 'AcrForMemberId');
    $('#memForAcr-' + memId + '-' + acrId).show(300);
    $('a[AcrForMemberId=' + memId + '][AcrForAcrId=' + acrId + ']').text('Hide details');

}

function CollapseDetails(period, divClass, aAttr) {
    $('.' + divClass).hide(period);
    $('a[' + aAttr + ']').each(function (index) {
        $(this).text($(this).text().toString().replace('Hide', 'View'));
    });
}

function Hightlight() {
    HightlightField('txtName', 'searchName');
    HightlightField('txtMemberNumber', 'searchNum');
    HightlightField('txtABN', 'searchAbn');
}

function HightlightField(id, searchClass) {
    var search = $('input[id*="' + id + '"]').val();
    if (search != null && jQuery.trim(search.toString()) != '') {
        $('.' + searchClass).each(function (index) {
            search = jQuery.trim(search.toString());
            var pos = $(this).text().toString().toLowerCase().indexOf(search.toString().toLowerCase(), 0);
            if (pos != -1) {
                var firstPart = $(this).text().toString().substring(0, pos);
                var secondPart = $(this).text().toString().substring(pos, pos + search.toString().length);
                var thirdPart = $(this).text().toString().substring(pos + search.toString().length);
                var insert = firstPart + '<span class="searchWord">' + secondPart + '</span>' + thirdPart;
                $(this).html(insert);
            }
        });
    }
}

function OnCsvDownload() {
    var pageTracker = _gat._getTracker('UA-4462730-4');
    pageTracker._trackPageview('/idr/acr_list.csv');

    alert('WARNING AND DISCLAIMER\n\n' + $('#csvAlert').html());
}
