﻿$(document).ready(function() {
    $("#easydata-welcome-background").show();
    $("#easydata-welcome").show();
    $("#btn-continue").click(function(){
        $("#easydata-welcome").hide();
        $("#easydata-welcome-background").hide();
    });
    
    $('#container').tabs({select:function(event, ui){
        var selectedTabId = $(ui.tab).attr("href");
        $("#currentTabField").val(selectedTabId);
        
        $("body").removeClass("map report myreports help");
        $("body").addClass(selectedTabId.replace("#", ""));
    }});
    
    $('#container-regions,#container-indicators').tabs({select:function(event, ui){
            var selectedTabId = $(ui.tab).attr("href");
            toggleOpenAll(selectedTabId)
    }});
        
    $("#container a[href*='#tab'],#container-regions a[href*='#tab'],#container-indicators a[href*='#tab']").click(function() {
        var frm = $('#aspnetForm')[0];
        var action = frm.action;
        var href = $(this)[0].href;

        if (action.indexOf("#") > 0)
            action = action.substring(0, action.indexOf("#"));

        href = href.substring(href.indexOf("#"));
        frm.action = action + href;
    });
    
    // Setup PDF lnk
    $("a.report-pdf").click(function(){
        var selIndicators = GetSelectedIndicators();
        var selRegions = GetSelectedRegions();
        var selLgas = GetSelectedLgas();
        var selCmprRegions = GetComparedRegions();
        var selCmprLgas = GetComparedLgas();
        
        if(selIndicators.length != 0 
            || selRegions.length != 0 
            || selLgas.length != 0 
            || selCmprRegions.length != 0 
            || selCmprLgas.length != 0)
        {
            var urlString = reportPDFURL;
            urlString += "?indicatorIds="+selIndicators;
            urlString += "&regionIds="+selRegions;
            urlString += "&lgaIds="+selLgas;
            urlString += "&cmpRegionIds="+selCmprRegions;
            urlString += "&cmpLgaIds="+selCmprLgas;
            urlString += "&reportId="+$(".image-menu").linkselect("val");
            urlString += "&includeStateTotal="+($("#includeStateTotal input:checked").length != 0);
         
            window.open(urlString, "reportpdfwin");
        }
        return false;
    });
    
    //$("#container li:has(a.tab-link[href='#report'])").hide();
    $("#container li:has(a.tab-link[href='#report']) span.remove").click(function(){
        $('#container').tabs('select', '#map');
        $(this).parent().hide();
        $("#currentTabField").val("");
    });
    
    // Select tab
    if (CurrentTab.length > 0) {
        $('#container').tabs('select', '#' + CurrentTab);
        if(CurrentTab == "report")
        {
            $("li:has(a.tab-link[href='#report'])").show();
        }
    }
    
    // Toggle instructions panel
    $('.mod-instructions').removeClass('open');
    $('.mod-instructions > h2').click(function() {
        var open = $(this).siblings('div').is(':visible');
        if (open) {
            $(this).parent().removeClass('open');
        }
        else {
            $(this).parent().addClass('open');
        }
    });

    //place class="last" to last li in lga list
    $("ul.optionslist ul > li").each(function(i) {
        if ($(this).next("li").length == 0) {
            $(this).addClass("last");
        }
    });
    
    //place class="checked" to all checked spans
    $("ul.optionslist ul > li span.item-chk:has(input[value='1'])").each(function(i) {
        $(this).addClass("checked");
        checkParent($(this));
    });
    
    //Gen report if the page loads with the report tab in view
    if($("#currentTabField").val() == "#report")
    {
        generateReport();
    }
    
    $("span.item-chk:has(input[value='1'])").each(function(){
        var parentLi = $(this).parents("li:first");
        var thisItem = $(this);
        
        thisItem.addClass("checked");
        if(parentLi.find("ul").Length == 0)
        {
            checkParent(thisItem);
        }
    });
   
    //All item option events
    $(".openAll").click(function(){
        var srcElm = $(this);
        var container = $(this).parents("div:first");
        var selectedTabId = $("ul.anchors li.ui-state-active a.tab-link", container).attr("href");
        
        if(srcElm.text() == "Open")
        {
            $(selectedTabId+" li:has(span.item-toggle)").addClass("open");
            srcElm.text("Close");
        }
        else
        {
            $(selectedTabId+" li:has(span.item-toggle)").removeClass("open");
            srcElm.text("Open");
        }
        
    });
    
    $(".selectAll").click(function(){
        var container = $(this).parents("div:first");
        var selectedTabId = $("ul.anchors li.ui-state-active a.tab-link", container).attr("href");
 
        $(selectedTabId).find("div.region,div.lga").each(function(i){
            var itemDiv = $(this);
            //select
            itemDiv.addClass("selected");
            $("span.item-chk", itemDiv).addClass("checked"); 
            $("span.item-chk input", itemDiv).val("1");
        });
        
        enableReportBtn();
    });
    
    $(".deselectAll").click(function(){
        var container = $(this).parents("div:first");

        container.find("div.region,div.lga,div.category,div.indicator").each(function(i){
            var itemDiv = $(this);
            //select
            itemDiv.removeClass("selected");
            $("span.item-chk", itemDiv).removeClass("checked"); 
            $("span.item-chk", itemDiv).removeClass("semichecked"); 
            $("span.item-chk input", itemDiv).val("0");
        });
        
        enableReportBtn();
    });
    
    /*********************************************************
        Toggle visibility - regions and indicator menus
    *********************************************************/
    $('.mod-regions > h2,.mod-indicators > h2').click(function() {
        var closed = $(this).siblings('div').is(':visible');
        if (closed) {
            $(this).parent().addClass('closed');
        }
        else {
            $(this).parent().removeClass('closed');
        }
    });
    
    /*********************************************************
        Toggle visibility - regions and indicators items
    *********************************************************/
    $("span.item-toggle").click(function() {
        var parentLi = $(this).parents("li:first");
        var parentDiv = $(this).parent();

        if (parentLi.hasClass("open")) {
            parentLi.removeClass("open");
        }
        else {
            parentLi.addClass("open");
        }
        
        var selectedTabId = $("ul.anchors li.ui-state-active a.tab-link", parentLi.parents("div:has(ul.anchors)")).attr("href");
        toggleOpenAll(selectedTabId)
    });
    
    function toggleOpenAll(selectedTabId)
    {
        var openCnt = $(selectedTabId+" ul.optionslist > li.open").length;
        var totalCnt = $(selectedTabId+" ul.optionslist > li").length;
      
        if(openCnt == 0)
        {
            $("span.item-options a.openAll", $(selectedTabId).parents("div:has(div > span.item-options)")).text("Open");
        }
        else if(openCnt == totalCnt)
        {
            $("span.item-options a.openAll", $(selectedTabId).parents("div:has(div > span.item-options)")).text("Close");
        }
    }   
    /*********************************************************
        Selection via Title
    *********************************************************/
    //selected regions
    $("#selected span.item-title").click(function() {
        selectItem($("#selected"), "region", $(this).parent());
        generateReport();
    });
    
    //compared regions
    $("#compared span.item-title").click(function() {
        selectItem($("#compared"), "region", $(this).parent());
        generateReport();
    });
    
    //indicators
    $("#container-indicators span.item-title").click(function() {
        selectItem($("#container-indicators"), "category", $(this).parent());
        clearReportSelection();
        generateReport();
    });
    
    
    /*********************************************************
        Hover: Toggle, Title, Check
    *********************************************************/
    //Hover toggle
    $("span.item-toggle").hover(
        function() {
            var parentDiv = $(this).parent();
            removeOverClasses(parentDiv);
            parentDiv.addClass("rollopen" + (parentDiv.hasClass("selected") ? "selected" : ""));
        },
        function() {
            var parentDiv = $(this).parent();
            $(this).parent().removeClass("rollopen");
            $(this).parent().removeClass("rollopenselected");
        }
    );

    //Hover title
    $("span.item-title").hover(
        function() {
            var parentDiv = $(this).parent();
            removeOverClasses(parentDiv);
            parentDiv.addClass("rollrequest" + (parentDiv.hasClass("selected") ? "selected" : ""));
        },
        function() {
            var parentDiv = $(this).parent();
            removeOverClasses($(this).parent());
            $(this).parent().removeClass("rollrequest");
            $(this).parent().removeClass("rollrequestselected");
        }
    );

    //Hover checked
    $("span.item-chk").hover(
        function() {
            var parentDiv = $(this).parent();
            removeOverClasses(parentDiv);
            parentDiv.addClass("rollcheck" + (parentDiv.hasClass("selected") ? "selected" : ""));
        },
        function() {
            var parentDiv = $(this).parent();
            $(this).parent().removeClass("rollcheck");
            $(this).parent().removeClass("rollcheckselected");
        }
    );

    function removeOverClasses(target) {
        target.removeClass("rollopen rollcheck rollrequest rollopenselected rollcheckselected rollrequestselected");
    }
    
    /*********************************************************
        Toggle Check:
    *********************************************************/
    //Parents
    $("div.region span.item-chk,div.category span.item-chk").click(function() {
        var checkField = $("input", this);
        var newVal = (checkField.val() == "1") ? "0" : "1";
        var parentLi = $(this).parents("li:first");
        var thisItem = $(this);
        
        checkField.val(newVal);
        parentLi.find("ul > li span.item-chk input").val(newVal);
        
        thisItem.removeClass("semichecked");
        thisItem.removeClass("checked");
        parentLi.find("ul > li span.item-chk").removeClass("semichecked");
        parentLi.find("ul > li span.item-chk").removeClass("checked");
        if(newVal == "1")
        {
            thisItem.addClass("checked");
            parentLi.find("ul > li span.item-chk").addClass("checked");
        }
        
        enableReportBtn();
    });

    //Children
    $("div.lga span.item-chk, div.indicator span.item-chk").click(function() {
        var checkField = $("input", this);
        var newVal = (checkField.val() == "1") ? "0" : "1";
        var thisItem = $(this);
        
        checkField.val(newVal);
        
        thisItem.removeClass("checked");
        if(newVal == "1")
        {
            thisItem.addClass("checked");
        }
        
        //toggle parent
        checkParent(thisItem);
        enableReportBtn();
    });
    
    $("div.category span.item-chk,div.indicator span.item-chk").bind("click", function(e){
      clearReportSelection();
    });

    $("#includeStateTotal input").bind("click", function(){
        enableReportBtn();
    });
    
    $("#btn-viewreport").click(function() {
        if($(this).data("isDisabled") != 1)
        {
            generateReport();
        }
    });
    
    $("#btn-addtomyreports").click(
        function() {
            ShowmyReportCreation();
        }
    );
    
});

function mapSelect(selectionData)
{
    var parentDiv = null;
    
    if(selectionData != null)
    {
        $("#compared div.selected").removeClass("selected");
        $("#compared span.item-chk input").val("0");
        $("#compared span.item-chk").removeClass("checked");
        $("#compared span.item-chk").removeClass("semichecked");
        $("#compared li.open").removeClass("open");
        $("#selected li.open").removeClass("open");
    
        if(selectionData.isRegion)
        {
            parentDiv = $("#selected div.region:has(input[value='"+selectionData.itemCode+"'])");
            selectItem($("#selected"), "region", parentDiv);
        }
        else{
            parentDiv = $("#selected div.lga:has(input[value='"+selectionData.itemCode+"'])");
            selectItem($("#selected"), "region", parentDiv);
            parentDiv.parents("ul:first").parent().addClass("open");
        }
        generateReport();
    }
    //alert(selectionData);
}

function selectItem(container, parentClass, itemDiv) {
    //deselect
    $("div.selected", container).removeClass("selected");
    $("span.item-chk input", container).val("0");
    $("span.item-chk", container).removeClass("checked");
    $("span.item-chk", container).removeClass("semichecked");
    
    //select
    itemDiv.addClass("selected");
    $("span.item-chk", itemDiv).addClass("checked");
    $("span.item-chk input", itemDiv).val("1");
    
    //if parent then select children
    if (itemDiv.hasClass(parentClass)) {
        itemDiv.parent().find("ul > li > div").addClass("selected");
        itemDiv.parent().find("ul > li span.item-chk input").val("1");
        itemDiv.parent().find("ul > li span.item-chk").addClass("checked");
        itemDiv.parent().find("ul > li span.item-chk").removeClass("semichecked");
    }
}
    
function checkParent(item)
{
    var parentUL = item.parents("ul:first");
    //toggle parent
    var cntChk = parentUL.find("li span.item-chk input[value='1']").length;
    var cntTotal = parentUL.find("li span.item-chk").length;

    var parentItemSpan = parentUL.parent().find("div:first span.item-chk");
    var parentItemChk = $("input", parentItemSpan);
    
    if (parentItemSpan) {
        //default: unchecked
        parentItemSpan.removeClass("semichecked");
        parentItemSpan.removeClass("checked");
        parentItemChk.val("0");
        
        if (cntChk == cntTotal) {
            //checked
            parentItemChk.val("1");
            parentItemSpan.addClass("checked");
        }
        else if (cntChk > 0) {
            //semichecked
            parentItemChk.val("0");
            parentItemSpan.addClass("semichecked");
        }
    }
}

function setReportTitle(title)
{
    if(title == null || title.length == 0)
    {
        $("h2.report-name").text("Unsaved Report");
    }
    else{
        $("h2.report-name").text(title);
    }
}

function clearReportSelection()
{
    $(".image-menu, .image-menu-left, .image-menu-right").linkselect("val", 0);
}

/*********************************************************
    Generate reports
*********************************************************/
var reportIsLoading = false;
function loadReport(containerSelector, value, text)
{
    if(!reportIsLoading)
    {
        reportSetIsLoading(true, text);
        
        try{
            
            if(value == "0")
            {
                $(containerSelector+ " span.item-chk").each(function(idx){
                    var spanChk = $(this);
                    var inputChk = $("input", spanChk);
                    
                    spanChk.removeClass("checked");
                    spanChk.removeClass("semichecked");
                    inputChk.val("0");
                });
                
                generateReport();
                reportSetIsLoading(false);
            }
            else if(reportRequestURL != null)
            {
                var totalLgaChecked = 0;
                var totalLgas = 0;
                
                $.getJSON(reportRequestURL+"?m=getSavedValues&reportId="+value,
                    function(data){
                       try{
                           if(data != null)
                           {
                                if(data.indCatIds.length != 0 || data.indIds.length != 0)
                                {
                                    $(".image-menu").linkselect("val", value);
                                    $("#container-indicators div.category").each(function(idx){
                                        checkItemGroup($(this), data.indCatIds, "div.indicator", data.indIds);
                                    });
                                    
                                    setReportTitle(text);
                                }
                                
                                if(data.regionIds.length != 0 || data.lgaIds.length != 0)
                                {
                                    $(".image-menu-left").linkselect("val", value);
                                    $("#selected div.region").each(function(idx){
                                        checkItemGroup($(this), data.regionIds, "div.lga", data.lgaIds);
                                    });
                                }
                                
                                if(data.cmpRegionIds.length != 0 || data.cmpLgaIds.length != 0)
                                {
                                    $(".image-menu-right").linkselect("val", value);
                                    $("#compared div.region").each(function(idx){
                                        checkItemGroup($(this), data.cmpRegionIds, "div.lga", data.cmpLgaIds);
                                    });
                                }
                                
                                generateReport();
                            }
                        }catch(exp){}
                        
                        reportSetIsLoading(false);
                    });
            }
        }
        catch(exp)
        {
            reportSetIsLoading(false);
        }
    }
}

function reportSetIsLoading(isLoading)
{
    reportIsLoading = isLoading;
    $(".image-menu,.image-menu-left,.image-menu-right").linkselect("disable", isLoading);
    
    if(isLoading)
    {
        $("#report-loading").show();
        $("#report-body").hide();
        
    }
    else{
    
        $("#report-loading").hide();
        $("#report-body").fadeIn(500);
        
    }
}

function checkItemGroup(itemDiv, idList, childSelector, childIdList)
{
    var totalChildChecked = 0;
    var totalChild = 0;
    
    checkItemIfExists(itemDiv, idList);

    totalLgas = 0;
    totalLgaChecked = 0;
    
    //Loop through child items
    
    $(childSelector, itemDiv.parent()).each(function(idx){
        
        if(checkItemIfExists($(this), childIdList))
        {
            totalChildChecked ++;
        }
        totalChild++;
    });
    
    if(totalChildChecked != 0 && totalChildChecked != totalChild)
    {
        $("span.item-chk", itemDiv).addClass("semichecked");
    }
}

function checkItemIfExists(item, idList)
{
    var matchStr = ","+idList+",";
    var spanChk = $("span.item-chk", item);
    var inputChk = $("input", spanChk);
    var inputVal = $("input:last", item);
    
    if(idList.length != 0 && matchStr.indexOf(","+inputVal.val()+",") != -1)
    {
        spanChk.addClass("checked");
        inputChk.val("1");
    }
    else
    {
        spanChk.removeClass("checked");
        spanChk.removeClass("semichecked");
        inputChk.val("0");
    }
    
    return inputChk.val() == "1";
}
        
function generateReport()
{
    $("#scroller").stop().scrollTo("#easydata-top", 800);
    //#indicator-error
    if($("#container-indicators div.indicator:has(span.item-chk input:[value='1'])").length > 15)
    {
        $("#indicator-error").show();
    }
    else
    {
        $("#indicator-error").hide();
        $("#container").tabs('select', "#report");
        var postData = {
            regionIds: GetSelectedRegions(),
            lgaIds: GetSelectedLgas(),
            cmpRegionIds: GetComparedRegions(),
            cmpLgaIds: GetComparedLgas(),
            includeStateTotal: ($("#includeStateTotal input:checked").length != 0)
        }
        
        if(postData.regionIds.length == 0 && postData.lgaIds.length == 0)
        {
            $("#region-error").show();
            return;
        }
        $("#region-error:not(hidden)").hide();
        
        showRegionInfo(postData.regionIds.replace(/'/g, ""), postData.lgaIds.replace(/'/g, ""));
        $("li:has(a.tab-link[href='#report'])").show();
        
        if($(".image-menu").linkselect("val") == 0)
        {
            setReportTitle("");
        }
    
        var totalIndicators = loadIndicatorGroup("social", postData);
        totalIndicators += loadIndicatorGroup("economic", postData);
        totalIndicators += loadIndicatorGroup("environment", postData);
        
        var firstVisibleGroup = $(".indicator-group:visible");
        if(firstVisibleGroup.length != 0)
        {
            $(firstVisibleGroup.get(0)).addClass("nobreak");
        }
        else
        {
            $("#report-social h2.indicator-group").addClass("nobreak");
        }
            
        //show or hide no records msg
        $("#report-indicators-noresults").hide();
        if (totalIndicators == 0) {
            $("#report-indicators-noresults").show();
            $("#report-indicators-summary").hide();
        }
        else{
            showReportSummary(postData.regionIds, postData.lgaIds, postData.cmpRegionIds, postData.cmpLgaIds);
        }
        
        dissableReportBtn();
    }
}

function enableReportBtn()
{   
    var btn = $("#btn-viewreport");
    var srcArray = btn.attr("src").split('/');
    srcArray[srcArray.length - 1] = "btn-viewreport.png";
    
    var src = srcArray.join('/');
    $("#btn-viewreport").attr("src", src);
    $("#btn-viewreport").data("isDisabled", 0);
}

function dissableReportBtn()
{
    var btn = $("#btn-viewreport");
    var srcArray = btn.attr("src").split('/');
    srcArray[srcArray.length - 1] = "btn-viewreport-disabled.png";
    
    var src = srcArray.join('/');
    $("#btn-viewreport").attr("src", src);
    $("#btn-viewreport").data("isDisabled", 1);
}

function showReportSummary(regions, lgas, cmprRegions, cmprLgas)
{
    var container = $("#report-indicators-summary");
    var regionTitles = "";
    var lgaTitles = "";
    var cmprRegionTitles = "";
    var cmprLgaTitles = "";
   
    if(regions == "all")
    {
        regionTitles = "All regions in South Australia";
        lgaTitles = "";
        
        regions = "";
        lgas = "";
    }
    
    if(cmprRegions == "all")
    {
        cmprRegionTitles = "All regions in South Australia";
        cmprLgaTitles = "";
        
        cmprRegions = "";
        cmprLgas = "";
    }
    
    for(var index=0; index < regInfo.length; index++)
    {
        var reg = regInfo[index];
        if(regions.indexOf("'"+reg.Code+"'") != -1)
        {
            regionTitles += (regionTitles.length==0?"":", ")+reg.Name;
        }
        
        if(cmprRegions.indexOf("'"+reg.Code+"'") != -1)
        {
            cmprRegionTitles += (cmprRegionTitles.length==0?"":", ")+reg.Name;
        }
        
        for(var idx=0; idx < reg.LGAList.length; idx++)
        {
            var lga = reg.LGAList[idx];
            if(lgas.indexOf("'"+lga.Code+"'") != -1)
            {
                lgaTitles += (lgaTitles.length==0?"":", ")+lga.Name;
            }
            
            if(cmprLgas.indexOf("'"+lga.Code+"'") != -1)
            {
                cmprLgaTitles += (cmprLgaTitles.length==0?"":", ")+lga.Name;
            }
        }
    }
    
    if(regionTitles.length != 0 || lgaTitles.length != 0)
    {
        $("table tbody tr:eq(0) td:eq(1)", container).text(regionTitles);
        $("table tbody tr:eq(0) td:eq(2)", container).text(lgaTitles);
        
        if(cmprRegionTitles.length != 0 || cmprLgaTitles.length != 0)
        {
            $("table tbody tr:eq(1) td:eq(1)", container).text(cmprRegionTitles);
            $("table tbody tr:eq(1) td:eq(2)", container).text(cmprLgaTitles);
            $("table tbody tr:eq(1)", container).show();
        }
        else
        {
            $("table tbody tr:eq(1)", container).hide();
        }
        container.show();
    }
    else{
        container.hide();
    }
}

function showRegionInfo(regionId, lgaId)
{
    var container = $(".region-overview");
    var hasContent = false;
    
    container.fadeOut(500, function(){
         if(regInfo != null && regionId.length != 0 && regionId.indexOf(",") == -1)
        {
            for(var index=0; index < regInfo.length; index++)
            {
                if(regInfo[index].Code == regionId)
                {
                    if(lgaId.length == 0 || regInfo[index].LGAList.length == lgaId.split(',').length)
                    {
                        showInfo($(this), regInfo[index]);
                        hasContent = true;
                    }
                    break;
                }
            }
        }
        else if(regInfo != null && lgaId != null && lgaId.length != 0 && lgaId.indexOf(",") == -1)
        {
            var regIds = $("li:has(li."+lgaId+")").attr("class").split(' ');
            var regId = regIds[0];
            
            for(var index=0; index < regInfo.length; index++)
            {
                if(regInfo[index].Code == regId)
                {
                    for(var idx=0; idx < regInfo[index].LGAList.length; idx++)
                    {
                        if(regInfo[index].LGAList[idx].Code == lgaId)
                        {
                            showInfo($(this), regInfo[index].LGAList[idx]);
                            hasContent = true;
                            break;
                        }
                    }
                    
                    if(hasContent)
                    {
                        break;
                    }
                }
            }
        }
   
        if(!hasContent)
        {
            $(".mod-instructions").hide();
            $("body").addClass("multiregion");
        }
        else
        {
            $("body").removeClass("multiregion");
        }
    });
        
}

function showInfo(srcElm, item)
{
    var hasContent = false;
    var logoImg = $("img.lga-logo", srcElm);
    var img = $("img.lga-image", srcElm);
    var img = $("img.lga-image", srcElm);
    var link = $("p.more-link");
   
    srcElm.empty();
    srcElm.append(logoImg);
    logoImg.hide();
    link.hide();
    
    if(item.LogoFilename != null && item.LogoFilename.length != 0)
    {
        logoImg.attr("src", libraryBaseHref+item.LogoFilename);
        logoImg.show();
        hasContent = true;
    }
    
    srcElm.append(img);
    img.hide();

    if(item.ImageFilename != null && item.ImageFilename.length != 0)
    {
        img.attr("src", libraryBaseHref+item.ImageFilename);
        img.show();
        hasContent = true;
    }
  
    if(item.Description != null && item.Description.length != 0)
    {
        srcElm.append(item.Description);
        hasContent = true;
    }
    
    if(item.URL != null && item.URL.length != 0)
    {
        $("a", link).attr("href", item.URL);
        link.show();
        hasContent = true;
    }

    if(hasContent)
    {
        $(".mod-instructions h2.user-instructions").text("About "+item.Name);
        $(".mod-instructions").show();
        $("body").addClass("multiregion");
        srcElm.fadeIn(500);
    }
    else
    {
        $(".mod-instructions h2.user-instructions").text("About ");
        $(".mod-instructions").hide();
        $("body").removeClass("multiregion");
    }
}

function loadIndicatorGroup(groupName, postData)
{
    var selIndicators = $("#container-indicators #"+groupName+" div.indicator:has(span.item-chk input:[value='1'])").find("input:last")
    
    //clear current records
    $("#report-"+groupName+" .report-indicators").empty();
    if(selIndicators.length == 0)
    {
        $("#report-"+groupName).hide();
        $("#report-"+groupName+" h2").addClass("nobreak");
    }
    else{
        $("#report-"+groupName).show();
        $("#report-"+groupName+" h2").removeClass("nobreak");
    }
    
    //Request graph for each indicator
    if (reportRequestURL && reportRequestURL.length != 0) {
        selIndicators.each(function(idx){
            GetIndicatorChart($("#report-"+groupName), $(this), postData);
        });
    }
    
    
    return selIndicators.length;
}

function GetIndicatorChart(container, inputField, postData) {
    var indId = inputField.val();
    
    if (indId.length) {
        var indId = inputField.val();
        postData["indicatorId"] = indId;
        
        //get category
        var catTitle = "";
        var catId = inputField.parents("ul:first").parent().find("div:first input:last").val();
        if($("h3#indcat_"+catId, container).length == 0)
        {
            var firstClass = "";
            if($("h3", container).length == 0)
            {
                firstClass = " first";
            }
            catTitle = "<h3 class='indicator-group-item"+firstClass+"' id='indcat_"+catId+"'>"+inputField.parents("ul:first").parent().find("div:first span.item-title").text()+"</h3>";
        }
        //setup loading img
        if ($("div.report-indicators div#ind_" + indId, container).length == 0) {
            $("div.report-indicators", container).append(catTitle+"<div id='ind_" + indId + "'><span class='loading'></span></div>");
        }
        else {
            $("div.report-indicators div#ind_" + indId, container).html("<span class='loading'></span>");
        }

        //Request chart
        $.post(reportRequestURL,
                postData,
                function(data) { 
                    $("div.report-indicators div#ind_" + indId, container).html(data);
                },
                "html");
    }
}

function GetSelectedIndicators() {
    //Get selected indicator ids
    return GetIds($("#container-indicators div.indicator"));
}

function GetSelectedRegions() {
    return GetCodes($("#selected div.region"), "all");
}

function GetSelectedLgas() {
    return GetCodes($("#selected div.lga"), "");
}

function GetComparedRegions() {
    return GetCodes($("#compared div.region"), "all");
}

function GetComparedLgas() {
    return GetCodes($("#compared div.lga"), "");
}

function GetCodes(collection, defaultVal) {
    var selectedCodes = "";
    var selectedCnt = 0;
    var allCnt = 0;
    collection.each(function(idx){
        if($(this).find("span.item-chk input:[value='1']").length != 0)
        {
            selectedCodes += ",'"+ $("input:last", $(this)).val()+"'";
            selectedCnt++;
        }
        allCnt++;
    });

    if(selectedCodes.length == 0)
    {
        return "";
    }
    else if(selectedCnt == allCnt)
    {
        //if all regions are selected then return nothing (defaults to all selections)
        return defaultVal;
    }
    else
    {
        selectedCodes = selectedCodes.substring(1, selectedCodes.length);
        return selectedCodes;
    }
}

function GetIds(collection) {
    var selectedIds = "";

    collection.each(function(idx){
        if($(this).find("span.item-chk input:[value='1']").length != 0)
        {
            selectedIds += ","+ $("input:last", $(this)).val();
        }
    });
    
    if(selectedIds.length != 0)
    {
        selectedIds = selectedIds.substring(1, selectedIds.length);
    }
    
    return selectedIds;
}