﻿//define our object with defaults that could
//be hidden based on settings
Dea.emsData
 = {
     "movingMultiplier": "0"
 };
var selectedTabNumber;
var selectedDisplay;
var tipOpen = false;
var newTip = true;
var currentPage = 0;
var mc_numberOfPages = 0;
var mouseOutFired = false;
var showFilters = true;
function highlightEvent(e, o, eventDetailId, highlight) {
    if (!newTip || mc_showTip === 'undefined')
        return;
    
    mouseOutFired = false;
        
    sRowPreviousColor = o.style.backgroundColor;
    if (highlight)
        o.className = "highlight";
        
    if (!tipOpen) {
        if (mc_showTip === "1") {
            
           showEventTip(eventDetailId);
        }
    }
}

function checkDiv(x, y) {
    if (mouseOutFired) {
        OverDivPosition(Dea.Mouse.x, Dea.Mouse.y);
    }
    setTimeout("reCheckDiv('" + Dea.Mouse.x + "', '" + Dea.Mouse.y + "')", 100);

}

function reCheckDiv(x, y) {
    if (mouseOutFired) {
        OverDivPosition(Dea.Mouse.x, Dea.Mouse.y);
    }
    if (!tipOpen) {
        hideTip();
        newTip = true;
        return;
    }
    else
        setTimeout("reCheckDiv('" + Dea.Mouse.x + "', '" + Dea.Mouse.y + "')", 100);
}

function unHighlightEvent(e, o, highlight) {
    mouseOutFired = true;
    if (highlight)
        o.className = "calendarEvent";
    /*if (highlight) {
        Dea.Css.removeClass(node, "highlightColor");
        Dea.Css.addClass(o, "calendarEvent");
    } */  
    if(!tipOpen)
    {
        if (mc_showTip === "1") {
            hideTip();
        }
    }
 
   
}

Dea.pageHandleCallback = function(emsResponse, context) {
    if (emsResponse.success && emsResponse.success === "0") {
        alert(emsResponse.msg);
        return true;
    }
    switch (context) {
        case "showUserOnly":
        case "showPast":
        case "tabPressed":
        case "selectDate":
        case "goTo":
        case "checkCalendar":
        case "checkEventTypesLocations":
            Dea.Get("mainDisplay").innerHTML = emsResponse.resultHtml;
            Dea.Get("miniCalHolder").innerHTML = emsResponse.smallcalendarHtml;
            Dea.Get("miniSearchHolder").innerHTML = emsResponse.filters;
            Dea.Get("ems_calDate").value = emsResponse.calDate;
            Dea.Get("CalendarDate").value = emsResponse.calDateBox;
            Dea.emsData.movePage = 0;
            Dea.emsData.movingMultiplier = "0";
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            mc_numberOfPages = emsResponse.pageCount;
            if (emsResponse.pastChecked === "1" && Dea.Get("Past") !== null)
                Dea.Get("Past").checked = true;

            showUserChecked(emsResponse);
            showSearch(showFilters);
            setEventTypes();
            wireUpModals();
            return true;
        case "movePage":
        case "selectPage":
            Dea.Get("mainDisplay").innerHTML = emsResponse.resultHtml;
            Dea.Get("miniCalHolder").innerHTML = emsResponse.smallcalendarHtml;
            Dea.Get("miniSearchHolder").innerHTML = emsResponse.filters;
            Dea.Get("ems_calDate").value = emsResponse.calDate;
            Dea.Get("CalendarDate").value = emsResponse.calDateBox;
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            Dea.Get("menu_btn_wrap").focus();
            showUserChecked(emsResponse);
            showSearch(showFilters);
            setEventTypes();
            wireUpModals();
            return true;
        case "groupByChangedStandardBrowseGrid":
        case "sortStandardBrowseGrid":
            Dea.Get("gridContainer").innerHTML = emsResponse.gridResults;
            Dea.emsData.movePage = 0;
            Dea.emsData.movingMultiplier = 0;
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            mc_numberOfPages = emsResponse.pageCount;
            showUserChecked(emsResponse);
            setEventTypes();
            wireUpModals();
            return true;
        case "sortCondensedBrowseGrid":
            Dea.Get("condensedGridContainer").innerHTML = emsResponse;
            Dea.emsData.movePage = 0;
            Dea.Get("pagingHolder").innerHTML = emsResponse.pagerResults;
            Dea.setDisplay("pagingHolder", "inline");
            mc_numberOfPages = emsResponse.pageCount;
            Dea.emsData.movingMultiplier = 0;
            showUserChecked(emsResponse);
            setEventTypes();
            wireUpModals();
            return true;
        case "eventsTip":
            loadTipHtml(emsResponse, null, "tipTransparent", "0px");
            setDivPosition();
            tipOpen = true;
            wireUpModals();
            return true;
    }
    return false;
}

function showUserChecked(emsResponse) {
    if (emsResponse.showUserRow == "1")
        Dea.setDisplay("ShowUserOnlyRow", "inline");
    else
        Dea.setDisplay("ShowUserOnlyRow", "none");

    if (emsResponse.showUserOnlyChecked === "1" && Dea.Get("ShowUserOnly") !== null)
        Dea.Get("ShowUserOnly").checked = true;
    else {
        if (Dea.Get("ShowUserOnly") !== null)
            Dea.Get("ShowUserOnly").checked = false;
    }
    
}

function movePage(page) {
    Dea.setEmsData();
    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;
    getShowPast();
    Dea.makeCallback("movePage", Dea.emsData);
    return false;
}

function moveFirst() {
    Dea.setEmsData();
    Dea.emsData.pageNumber = 0;
    currentPage = 0;
    Dea.emsData.calIds = mcCalIds;
    getShowPast();
    Dea.makeCallback("movePage", Dea.emsData);
    return false;
}


function selectPage(dd) {
    Dea.setEmsData();
    Dea.emsData.pageNumber = dd.value;
    currentPage = dd.value;
    Dea.emsData.calIds = mcCalIds;
    getShowPast();
    Dea.makeCallback("movePage", Dea.emsData);
    return false;
}

function getShowPast() {
    if (Dea.Get("Past") !== null)
        Dea.emsData.showPast = Dea.Get("Past").checked;
    else
        Dea.emsData.showPast = false;

    if (Dea.Get("ShowUserOnly") !== null)
        Dea.emsData.showUserOnly = Dea.Get("ShowUserOnly").checked;
    else
        Dea.emsData.showUserOnly = false;
          
}

function showPast() {
    Dea.setEmsData();
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = "0";
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.emsData.pageNumber = 0;
    getShowPast();
    Dea.makeCallback("showPast", Dea.emsData);
    return false;
}

function showUserOnly(obj) {
    Dea.setEmsData();
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = "0";
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.emsData.pageNumber = 0;
    getShowPast();
    Dea.makeCallback("showUserOnly", Dea.emsData);
    return false;
}

function showEventTip(eventDetailId) {
    loadTipHtml(mc_PauseToLoadMsg, null, "tipBgColor", "2px solid black");
    currentTip = window.setTimeout("getEventTip(" + eventDetailId + ")", 1000);
}

function getEventTip(eventDetailId) {
    Dea.setEmsData();
    Dea.emsData.eventDetailId = eventDetailId;
    Dea.makeCallback("eventsTip", Dea.emsData);
    setTimeout("checkDiv('" + Dea.Mouse.x + "', '" + Dea.Mouse.y + "')", 100);
    newTip = false;
}

function tabPressed(tab)
{
   selectedTab(tab);
   selectedTabNumber = tab;
   Dea.setEmsData();
   Dea.emsData.calDates = emsCalDates;
   Dea.emsData.movingMultiplier = "0";
   Dea.emsData.tabNumber = tab;
   Dea.emsData.display = selectedDisplay;
   Dea.emsData.pageNumber = 0;
   Dea.emsData.eventTypeIds = mcEventTypeIds;
   Dea.emsData.locations = mcLocations;
   getShowPast();
   Dea.makeCallback("tabPressed", Dea.emsData);
   return false; 
}

function displayPressed(display)
{
   if(selectedDisplay == display)
        return false;
        
   changeDisplay(display);
   selectedDisplay = display;
   Dea.setEmsData();
   Dea.emsData.calDates = emsCalDates;
   Dea.emsData.movingMultiplier = "0";
   Dea.emsData.tabNumber = selectedTabNumber;
   Dea.emsData.display = display;
   Dea.emsData.pageNumber = 0;
   Dea.emsData.eventTypeIds = mcEventTypeIds;
   Dea.emsData.locations = mcLocations;
   getShowPast();
   Dea.makeCallback("tabPressed", Dea.emsData);  
   return false;
}

function searchKeyPress(e) {
    if(Dea.WebBrowser.prototype.keyCode(e) === 13) {
        searchCal()
        return false;
    }
    else {
        return true;
    }
}  

function searchCal()
{
    Dea.setEmsData(true);
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = "0";
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.emsData.pageNumber = 0; //currentPage
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.locations = mcLocations;
    getShowPast();
    Dea.makeCallback("tabPressed", Dea.emsData);
    return false;
}

function moveDate(multiplier) {
    Dea.setEmsData(true);
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = multiplier;
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.emsData.pageNumber = 0; //currentPage
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.locations = mcLocations;
    getShowPast();
    Dea.makeCallback("tabPressed", Dea.emsData);
    return false;
}

function moveCal(moving)
{
    Dea.setEmsData(true);
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = moving;
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.emsData.pageNumber = 0;
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.locations = mcLocations;
    getShowPast();
    Dea.makeCallback("tabPressed", Dea.emsData);
    return false;
}

function dateClicked(selectedDate)
{
    Dea.setEmsData(true);
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = 0;
    selectedDisplay = 1;
    selectedTabNumber = 0;
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    selectedTab(selectedTabNumber);
    changeDisplay(selectedDisplay);
    Dea.emsData.selectedDate = selectedDate;
    Dea.emsData.pageNumber = 0;
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.locations = mcLocations;
    getShowPast();
    Dea.makeCallback("selectDate", Dea.emsData);
    return false;
}

function goToClicked()
{
    Dea.setEmsData();
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = "0";
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.emsData.pageNumber = 0; //currentPage
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.locations = mcLocations;
    getShowPast();
    Dea.makeCallback("goTo", Dea.emsData);
    return false;
}


function applyEventTypes()
{
    Dea.setEmsData(true);
    Dea.emsData.eventTypeIds = mcEventTypeIds;
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = 0;
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.makeCallback("checkEventTypesLocations", Dea.emsData);
    hideEventTypeFilters();

    setEventTypes();
        
    return false;
}

function setEventTypes() {
    if (mcEventTypeIds == "" || mcEventTypeIds == "-1")
        selectValueSet(eventTypesDDId, "-1");
    else if (mcEventTypeIds.indexOf(",") <= 0 && mcEventTypeIds > 0)
        selectValueSet(eventTypesDDId, mcEventTypeIds);
    else
        addMultipleSelected(eventTypesDDId, multipleSelectedItem);
}

function loadEventTypeDetails(dd)
{
    var o = Dea.Get(eventTypesDiv);
    removeSelectValue(eventTypesDDId, -2);
    if(dd.value == 0)
    {
        SetCurrentPos(eventTypesDiv);
        o.style.visibility = "visible";
    }
    else {
        clearEventTypes();
        hideEventTypeFilters();
        mcEventTypeIds = ""; 
        Dea.setEmsData(true);
        Dea.emsData.calDates = emsCalDates;
        Dea.emsData.movingMultiplier = "0";
        Dea.emsData.tabNumber = selectedTabNumber;
        Dea.emsData.display = selectedDisplay;
        Dea.emsData.eventTypeIds = dd.value;
        mcEventTypeIds = dd.value;
        getShowPast();
        Dea.makeCallback("tabPressed", Dea.emsData);
    }
    return false;
}



function applyLocations()
{
    Dea.setEmsData(true);
    Dea.emsData.locations = mcLocations;
    Dea.emsData.calDates = emsCalDates;
    Dea.emsData.movingMultiplier = 0;
    Dea.emsData.tabNumber = selectedTabNumber;
    Dea.emsData.display = selectedDisplay;
    Dea.makeCallback("checkEventTypesLocations", Dea.emsData);
    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
    {
        mcLocations = "";
        clearLocations();
        hideLocationFilters();
        Dea.setEmsData(true);
        Dea.emsData.calDates = emsCalDates;
        Dea.emsData.movingMultiplier = "0";
        Dea.emsData.tabNumber = selectedTabNumber;
        Dea.emsData.display = selectedDisplay;
        Dea.emsData.locations = dd.value;
        mcLocations = dd.value;
        Dea.emsData.eventTypeIds = mcEventTypeIds;
        getShowPast();
        Dea.makeCallback("tabPressed", Dea.emsData); 
    }
    return false;
}

function changeDisplay(display)
{
    if(display == 1)
    {
         Dea.Get(tabListId).className = "tab_format rollcolorselected";
         Dea.Get(tabGridId).className = "tabgrid_format rollcolor";
    }
    else
    {
         Dea.Get(tabGridId).className = "tabgrid_format rollcolorselected";
         Dea.Get(tabListId).className = "tab_format rollcolor";
    }
}

function changeActiveTab(tab, objId)
{
    switch(tab)
    {
        case 0:
            if(Dea.Get(objId).className == "tab_day")
                Dea.Get(objId).className = "tab_day_selected";
            break;
        case 1:
             if(Dea.Get(objId).className == "tab_week")
                Dea.Get(objId).className = "tab_week_selected";
            break;
        case 2:
            if(Dea.Get(objId).className == "tab_month")
                Dea.Get(objId).className = "tab_month_selected";
            break;
        case 3:
            if(Dea.Get(objId).className == "tab_year")
                Dea.Get(objId).className = "tab_year_selected";
            break;
    }
}

function tabOut(tab, objId)
{
     switch(tab)
    {
        case 0:
            if(Dea.Get(objId).className == "tab_day_selected")
                Dea.Get(objId).className = "tab_day";
            break;
        case 1:
             if(Dea.Get(objId).className == "tab_week_selected")
                Dea.Get(objId).className = "tab_week";
            break;
        case 2:
            if(Dea.Get(objId).className == "tab_month_selected")
                Dea.Get(objId).className = "tab_month";
            break;
        case 3:
            if(Dea.Get(objId).className == "tab_year_selected")
                Dea.Get(objId).className = "tab_year";
            break;
    }
}


function showSearch(show)
{
    if(show)
    {
        Dea.setDisplay("side_search_body", "inline");
        Dea.setDisplay("searchPlusHolder", "none");
        Dea.setDisplay("searchMinusHolder", "inline");
        showFilters = true;
    }
    else
    {
        Dea.setDisplay("side_search_body", "none");
        Dea.setDisplay("searchPlusHolder", "inline");
        Dea.setDisplay("searchMinusHolder", "none");
        showFilters = false;
    }
 
    return false;       
}

 function selectedTab(tab) {

       Dea.Get("tabDayDiv").className = "tab_date tab_date_color";
       Dea.Get("tabWeekDiv").className = "tab_date tab_date_color";
       Dea.Get("tabMonthDiv").className = "tab_date tab_date_color";
       Dea.Get("tabYearDiv").className = "tab_date tab_date_color";

        switch (tab)
        {
            case 0:
                Dea.Get("tabDayDiv").className = "tab_date_selected tab_date_selected_color";
                break;
            case 1:
                Dea.Get("tabWeekDiv").className = "tab_date_selected tab_date_selected_color";
                break;
            case 2:
                Dea.Get("tabMonthDiv").className = "tab_date_selected tab_date_selected_color";
                break;
            case 3:
                Dea.Get("tabYearDiv").className = "tab_date_selected tab_date_selected_color";
                break;
        }
}

function openExport() {
    window.location.href = 'ExportEvents.aspx?eE=1';
    return false;
}