﻿//define our object with defaults that could
//be hidden based on settings
Dea.emsData = {};
Dea.Search = {};
var currentPage = 0;
var resultsCount = 0;
var mc_numberOfPages = 0;
Dea.pageHandleCallback = function(emsResponse, context) {
    if (emsResponse.success && emsResponse.success === "0") {
        alert(emsResponse.msg);
        return true;
    }
    switch (context) {
        case "groupByChangedSearchGrid":
        case "sortSearchGrid":
        case "sortSpecialDatesSearchGrid":
        case "getResults":
            Dea.Get("resultsHolder").innerHTML = emsResponse.resultsGrid;
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            mc_numberOfPages = emsResponse.pageCount;
            resultsCount = emsResponse.resultsCount;
            if (Dea.Get(eventSearchId).checked === true)
                Dea.setDisplay("groupByRow", "block");
            else
                Dea.setDisplay("groupByRow", "none");

            wireUpModals();
            return true;
        case "movePage":
            Dea.Get("resultsHolder").innerHTML = emsResponse.resultsGrid;
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            Dea.Get("searchFiltersContainer").focus();
            resultsCount = emsResponse.resultsCount;
            wireUpModals();
            return true;
        case "selectPage":
            Dea.Get("resultsHolder").innerHTML = emsResponse.resultsGrid;
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            Dea.Get("searchFiltersContainer").focus();
            resultsCount = emsResponse.resultsCount;
            wireUpModals();
            return true;
    }
    return false;
}


function getResults() {
    if (mcCalIds === "") {
        alert(noCalendarsSelectedmsg);
        return false;
    }

    var inputs = document.getElementsByTagName("input");
    var oStartDate = Dea.Get("StartDate", inputs);
    var oEndDate = Dea.Get("EndDate", inputs);

    var dtStart = new Date(Dea.getValue(oStartDate));
    var dtEnd = new Date(Dea.getValue(oEndDate));
    if (dtStart > dtEnd) {
        alert(startdateInvalidmsg);
        oEndDate.focus();
        return false;
    }
        
    Dea.setEmsData();
    setSearchType();
    Dea.emsData.pageNumber = 0; //currentPage
    Dea.emsData.calIds = mcCalIds;
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.locations = mcLocations;
    Dea.makeCallback("getResults", Dea.emsData);
    return false; 
}

function setSearchType() {
    if (Dea.Get(eventSearchId).checked === true)
        Dea.emsData.searchType = "Event";
    else
        Dea.emsData.searchType = "Special";
}

function movePage(page)
{
   Dea.setEmsData();
   setSearchType();
   if (page < 0) {
       page = 0;
       return false;
   }

   if (page > mc_numberOfPages) {
       page = mc_numberOfPages;
       return false;
   }   
   Dea.emsData.pageNumber = page;
   currentPage = page;
   Dea.emsData.calIds = mcCalIds;
   Dea.makeCallback("movePage", Dea.emsData);
   return false; 
}

function moveFirst()
{
   Dea.setEmsData();
   setSearchType();
   Dea.emsData.pageNumber = 0;
   currentPage = 0;
   Dea.emsData.calIds = mcCalIds;
   Dea.makeCallback("movePage", Dea.emsData);
   return false; 
}


function selectPage(dd)
{
   Dea.setEmsData();
   setSearchType();
   Dea.emsData.pageNumber = dd.value;
   currentPage = dd.value;
   Dea.emsData.calIds = mcCalIds;
   Dea.makeCallback("movePage", Dea.emsData);
   return false; 
}

function validateResults() {
    if (resultsCount > 0) {
        return true;
    }
    else {
        alert(noResultsToExport);
        return false;
    }
    
}

function applyEventTypes()
{
    hideEventTypeFilters();
    if (mcEventTypeIds == "")
        selectValueSet(eventTypesDDId, "-1");
    else if (mcEventTypeIds.indexOf(",") <= 0 && mcEventTypeIds > 0)
        selectValueSet(eventTypesDDId, mcEventTypeIds);
    else {
        addMultipleSelected(eventTypesDDId, multipleSelectedItem);
    }
    return false;
}

function loadEventTypeDetails(dd)
{
    var o = Dea.Get(eventTypesDiv);
    removeSelectValue(eventTypesDDId, -2);
    if (dd.value == 0) {
        SetCurrentPos(eventTypesDiv);
        o.style.visibility = "visible";
    }
    else if (dd.value == -1) {
        clearEventTypes();
        mcEventTypeIds = "";
        hideEventTypeFilters();
    }
    else {
        clearEventTypes();
        mcEventTypeIds = "";
        addEventTypeId(dd.value);
        hideEventTypeFilters();
    }
    return false;
}

function applyLocations()
{
    hideLocationFilters();
    if(mcLocations == "")
        selectValueSet(locationDDId, "-1");
    else if (mcLocations.indexOf(",") <= 0 && mcLocations > 0)
        selectValueSet(locationDDId, mcLocations);
    else
        addMultipleSelected(locationDDId, multipleSelectedItem);
        
    return false;
}

function loadLocationDetails(dd) {

    var o = Dea.Get(locationsDiv);
    removeSelectValue(locationDDId, -2);
    if (dd.value == 0) {
        SetCurrentPos(locationsDiv);
        o.style.visibility = "visible";
    }
    else if (dd.value == -1) {
        clearLocations();
        mcLocations = "";
        hideLocationFilters();
    }
    else {
        clearLocations();
        mcLocations = "";
        addLocationId(dd.value);
        hideLocationFilters();
    }
    return false;
}

var eventTypeTipShowing = false;
Dea.Search.showFindEventTypes = function() {
    if (!eventTypeTipShowing) {
        hideLocationFilters();
        var o = Dea.Get(eventTypesDiv);
        SetCurrentPosWithOffset(eventTypesDiv, 135);
        o.style.visibility = "visible";
        eventTypeTipShowing = true;
    }
    return false;
}

var locationTipShowing = false;
Dea.Search.showFindLocation = function() {
    if (!locationTipShowing) {
        hideEventTypeFilters();
        var o = Dea.Get(locationsDiv);
        SetCurrentPosWithOffset(locationsDiv, 145);
        o.style.visibility = "visible";
        locationTipShowing = true;
    }
    return false;
}