﻿/// <reference path="../jquery-1.4.1-vsdoc.js" />
/// <reference path="../GeneralFunctions.js" />
/// <reference path="../jquery.selectboxes.min.js" />
/// <reference path="../jquery.scrollTo-min.js" />

/*********************************************************************Setup********************************************************/
function SetupDefaultSearch() {
    $(document).ready(function() {
        CategoryLoadAllChk('#divCategory', 'chkCategory', 'ShowSearchResultCountDefault();', true, 6, "float:left;", false, true);
        DisplayDefaultSearchValues();
    });
}
//Loads the existing search criterias and show the values
function DisplayDefaultSearchValues() {
    auctionproxy.invoke("LoadDefaultSearchCriterias", {}, function(result) {
        var searchCriterias = result;
        if (searchCriterias != null) {
            //Show Category
            SetSelectedCheckBoxesByValues("chkCategory", result.Categories);
            //Show Region
            if (result.Regions != "") {
                SelectRegion(result.Regions, null);
            }
            //Show kommuner
            if (result.Kommuner != "") {
                AddKommuner(result.Kommuner,false);
            }
            //Show Retskredse
            if (result.Retskredse != "") {
                AddRetskredse(result.Retskredse, false);
            }
            if (result.DisplayType != 0) {
                $("input:radio[value='" + result.DisplayType + "']").attr('checked', true);
            }
        }
        ShowSearchValues();
    });
}

/****************************************************************Update searchcriteria****************************************************************/

///Updates the default searchcriterias
function UpdateDefaultSearchCriterias(performSearch) {
    var kommuner, retskredse;
    auctionproxy.invoke("UpdateDefaultSearchCriterias", { lbNr: 0,
        regions: $('#hfRegion').val(),
        categories: GetSelectedCheckBoxValues("chkCategory"),
        kommuner: $('#hfKommuner').val(),
        retskredse: $('#hfRetskredse').val(),
        sortExpression: "",
        sortDirection: "",
        displayType: $("input:radio[name='rdoSearchType']:checked").val(),
        performSearch: performSearch
    },
      function(result) {
    $("input[id$='_btnDefaultSearch']").val("SØG [" + result + "]");
          if (performSearch) {
              PerformSearch('auction/pages/searchresult.aspx?tab=' + $("input:radio[name='rdoShowType']:checked").val());
          }
      }
      );
}
function ShowSearchResultCountDefault() {
    UpdateDefaultSearchCriterias(false);
}
/*****************************************************************Various functions*****************************************************************/
function PerformDefaultSearch() {
    ShowProgress();
    UpdateDefaultSearchCriterias(true);
}
///shows either the kommune or the retskreds
function ShowSearchValues() {
    var searchType = $("input:radio[name='rdoSearchType']:checked").val();
    if (searchType == 1) {
        $('#divKommune').show();
        $('#divRetskreds').hide();
        $('#lblSelect').text("3. Vælg kommuner:")
    }
    else if (searchType == 2) {
        $('#divKommune').hide();
        $('#divRetskreds').show();
        $('#lblSelect').text("3. Vælg retskredse:")
    }
    else {
        $('#divKommune').hide();
        $('#divRetskreds').hide()
    }
    ShowSearchResultCountDefault();
}
//When a new region has been selected
function SelectRegion(regionId, region) {
    if (regionId != null || region != null) {
        if (region == null || typeof (region) == 'undefined') {
            region = RegionLoadById(regionId);
            //ensure it is shown on map
            $("." + region.MapName).addClass('selected').css('display', 'inline');
        }
        else {
            regionId = region.Id;
        }
        //only enter here if a new region has been selected
        if ($('#hfRegion').val() != regionId.toString()) {
            $('#lblSelectedRegion').text("Valgt region: " + region.Name);
            $('#hfRegion').val(regionId);
            RemoveKommuner("-1", false);
            RemoveRetskredse("-1", false);
            KommuneLoadByRegionAddList("#divShowKommuner", regionId, "#lnkAddKommuner");
            RetskredsLoadByRegionAddList("#divShowRetkredse", regionId, "#lnkAddRetskredse");
            ShowSearchResultCountDefault();
        }
    }
}
//Adds a nerw kommune to the selected
function AddKommuner(kommuner, updateResultCount) {
    var selectedKommuner = $("#hfKommuner").val().split(',');
    $("#hfKommuner").val(selectedKommuner.AddElements(kommuner.split(',')).join(','));
    UpdateSelectedKommuner(updateResultCount);
}
//Removes one or more kommuner to the selected
function RemoveKommuner(kommuner, updateResultCount) {
    if (kommuner == "-1") {
        $("#hfKommuner").val("");
    }
    else {
        var selectedKommuner = $("#hfKommuner").val().split(',');
        $("#hfKommuner").val(selectedKommuner.RemoveElements(kommuner.split(',')).join(','));
    }
        UpdateSelectedKommuner(updateResultCount);
}
//Shows the selected kommuner
function UpdateSelectedKommuner(updateResultCount) {
    kommuneproxySync.invoke("LoadInfo", { kommuner: $("#hfKommuner").val() },
      function(result) {
          AddItemsToList("#divSelectedKommuner", result, 3, "#lnkRemoveKommuner");

          if (updateResultCount) { ShowSearchResultCountDefault(); }
      }
      );
  }
//Adds one or more retskreds as selected
  function AddRetskredse(retskredse, updateResultCount) {
    var selectedRetskredse = $("#hfRetskredse").val().split(',');
    $("#hfRetskredse").val(selectedRetskredse.AddElements(retskredse.split(',')).join(','));
    UpdateSelectedRetskredse(updateResultCount);
}
//Removes one or more retskredse from selected
function RemoveRetskredse(retskredse, updateResultCount) {
    if (retskredse == "-1") {
        $("#hfRetskredse").val("");
    }
    else {
        var selectedRetskredse = $("#hfRetskredse").val().split(',');
        $("#hfRetskredse").val(selectedRetskredse.RemoveElements(retskredse.split(',')).join(','));
    }
    UpdateSelectedRetskredse(updateResultCount);
}
//Updates the showing of retskredse
function UpdateSelectedRetskredse(updateResultCount) {
    retskredsproxySync.invoke("LoadInfo", { retskredse: $("#hfRetskredse").val() },
      function(result) {
          AddItemsToList("#divSelectedRetskredse", result, 4, "#lnkRemoveRetskredse");
          if (updateResultCount) {
              ShowSearchResultCountDefault();
          }
      }
      );
}
