﻿// ************ Start Service Dialog Functions *************

function OpenServiceDialogHelperFunction(serviceID, jsonAddress, serviceDialogTitle) {
    //Enable tabs by default
    $('#servicedialogTabs').tabs("enable", 3);
    $('#servicedialogTabs').tabs("enable", 4);

    //Clean values
    $("#serviceDialogPathway").html("");
    $("#serviceDialogCapacity").html("");
    $("#serviceDialogLeadTime").html("");
    $("#serviceDialogFormalReferral").html("");
    $("#serviceDialogSites").html("");
    $("#serviceDialogHours").html("");
    $("#serviceDocumentsList").html("");

    //Call the service
    $.ajax({
        url: jsonAddress + "/PsycoServices.svc/GetService",
        type: "POST",
        dataType: "json",
        data: '{ "serviceID": "' + serviceID + '" }',
        contentType: "application/json; charset=\"utf-8\"",
        success: function (xData) {
            //Create print link
            $("#serviceDialogPrintLink").html("<a target='blank' href='Print/PrintService.aspx?id=" + serviceID + "'><img alt='Click here to print' title='Click here to print' border='0' src='Images/Print.png' />Printer Friendly Version</a>");
            // General values

            //Get capacity descriptive value
            var bCapacity = false;
            var strCapacity = "N/A";
            bCapacity = xData.d["Capacity"];
            strCapacity = bCapacity ? "Yes" : "No";

            $("#serviceDialogServiceType").html(xData.d.Type["Name"]);
            $("#serviceDialogPathway").html(xData.d["Pathway"]);
            $("#serviceDialogCapacity").html(strCapacity);
            $("#serviceDialogLeadTime").html(xData.d["LeadTime"]);
            $("#serviceDialogFormalReferral").html(xData.d["FReferalRequired"]);
            $("#serviceDialogSites").html(xData.d["Sites"]);
            $("#serviceDialogHours").html(xData.d["Hours"]);
            //Provider values
            $("#serviceDialogProviderName").html(xData.d.ServiceProvider["Name"]);
            $("#serviceDialogProviderDescription").html(xData.d.ServiceProvider["Description"]);
            var ProviderServices = '';
            for (var i in xData.d.ServiceProvider.Services) {
                ProviderServices = ProviderServices + xData.d.ServiceProvider.Services[i]["Name"] + '<br/>';
            }
            $("#serviceDialogProviderServices").html(ProviderServices);
            var ProviderClients = '';
            for (var i in xData.d.ServiceProvider.Clients) {
                ProviderClients = ProviderClients + xData.d.ServiceProvider.Clients[i]["Name"] + '<br/>';
            }
            $("#serviceDialogProviderClients").html(ProviderClients);
            //Councelling values
            var hasCouncellingServices = false;
            var councellingtable = "<table cellspacing='5' width='100%'>"
            councellingtable = councellingtable + "<tr><td align='center'><b>Type</b></td><td align='center'><b>Capacity</b></td><td align='center'><b>Lead Time</b></td><td align='center'><b>Contact</b></td></tr>";
            councellingtable = councellingtable + "<tr><td colspan='4'><hr/></td></tr>"
            for (var i in xData.d.CounsellingServices) {

                hasCouncellingServices = true;
                bCapacity = xData.d.CounsellingServices[i]["Capacity"];
                strCapacity = bCapacity ? "Yes" : "No";

                councellingtable = councellingtable + "<tr>"
                councellingtable = councellingtable + "<td>"
                councellingtable = councellingtable + xData.d.CounsellingServices[i].Type["Name"];
                councellingtable = councellingtable + "</td>"
                councellingtable = councellingtable + "<td><center>"
                councellingtable = councellingtable + strCapacity;
                councellingtable = councellingtable + "</center></td>"
                councellingtable = councellingtable + "<td><center>"
                councellingtable = councellingtable + xData.d.CounsellingServices[i]["LeadTime"];
                councellingtable = councellingtable + "</center></td>"
                councellingtable = councellingtable + "<td>"
                councellingtable = councellingtable + xData.d.CounsellingServices[i]["Pathway"];
                councellingtable = councellingtable + "</td>"
                councellingtable = councellingtable + "</tr>"
            }
            councellingtable = councellingtable + "</table>";
            if (hasCouncellingServices) {
                $("#serviceDialogCouncellingServiceList").html(councellingtable);
            }
            else {
                $('#servicedialogTabs').tabs("disable", 3);
            }

            //Forms
            var hasDocuments = false;
            var documentsTable = "<table cellspacing='1' width='100%'>"
            documentsTable = documentsTable + "<tr><td><b>Title</b></td><td><b>File Name</b></td><td><b>Category</b></td><td align='center'><b>Size</b></td></tr>";
            documentsTable = documentsTable + "<tr><td colspan='4'><hr/></td></tr>"
            for (var i in xData.d.Documents) {
                hasDocuments = true;
                documentsTable = documentsTable + "<tr>"

                documentsTable = documentsTable + "<td>"
                documentsTable = documentsTable + "<img src='" + xData.d.Documents[i]["IconPath"] + "' alt='" + xData.d.Documents[i]["Extension"] + "' title='Click to download " + xData.d.Documents[i]["Extension"] + " file' style='cursor: hand' onclick='javascript:DownloadFile(" + xData.d.Documents[i]["Id"] + ");' /> ";
                documentsTable = documentsTable + "<a href='javascript:DownloadFile(" + xData.d.Documents[i]["Id"] + ");'>" + xData.d.Documents[i]["Title"] + "</a>";
                documentsTable = documentsTable + "</td>"

                documentsTable = documentsTable + "<td>"
                documentsTable = documentsTable + xData.d.Documents[i]["Name"];
                documentsTable = documentsTable + "</td>"

                if (xData.d.Documents[i].Category == null) {
                    docCategory = "None";
                }
                else {
                    docCategory = xData.d.Documents[i].Category["Name"]
                }
                documentsTable = documentsTable + "<td>"
                documentsTable = documentsTable + docCategory;
                documentsTable = documentsTable + "</td>"

                documentsTable = documentsTable + "<td align='right'>"
                documentsTable = documentsTable + xData.d.Documents[i]["Size"];
                documentsTable = documentsTable + "</td>"

                documentsTable = documentsTable + "</tr>"
            }
            documentsTable = documentsTable + "</table>";
            if (hasDocuments) {
                $("#serviceDialogFormsList").html(documentsTable);
            }
            else {
                $('#servicedialogTabs').tabs("disable", 4);
            }


            //Location
            $("#serviceDialogLocationTitle").html(xData.d.ServiceLocation["Name"]);
            $("#serviceDialogLocationDescription").html(xData.d.ServiceLocation["Description"]);
            $("#serviceDialogLocationEvents").html("<a href='EventCalendar.aspx?loc=" + xData.d.ServiceLocation["Id"] + "'><img src='Images/calendar-select.png' border='0' alt='' /> See events &amp; programs in " + xData.d.ServiceLocation["Name"] + "</a>");

            var serviceTitle = serviceDialogTitle;
            $('#servicedialog').dialog("option", "title", "<img src='Images/hand-share.png' alt='' /> " + serviceTitle);
            $('#servicedialog').dialog('open');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.responseText);
        }
    });

    //Select allways the first tab
    $('#servicedialogTabs').tabs("select", 0);

}

// ************ End Service Dialog Functions *************

// ************ Start Event Dialog Functions *************

function OpenEventDialogHelperFunction(eventID, jsonAddress) {

    //Enable tabs by default
    $('#eventdialogTabs').tabs("enable", 2);
    $('#eventdialogTabs').tabs("enable", 3);

    //Clean values
    $("#eventDetailDialogAddress").html("");
    $("#eventDialogDetailActivity").html("");
    $("#eventDialogDetailDetails").html("");
    $("#eventDialogDetailComments").html("");
    $("#eventDialogDetailContactDetails").html("");
    $("#eventDialogDetailStartDate").html("");
    $("#eventDialogDetailEndDate").html("");
    $("#eventDialogDetailchkAllDay").attr('checked', false);
    $("#eventDialogDetailAllDay").html("");
    ToggleEventDetailDates(false);
    $("#eventDialogDetailchkAllDay").hide();

    $("#eventDialogLocationTitle").html("");
    $("#eventDialogLocationDescription").html("");
    $("#eventDialogLocationEvents").html("");

    $("#eventDialogProviderName").html("");
    $("#eventDialogProviderDescription").html("");
    $("#eventDialogProviderServices").html("");
    $("#eventDialogProviderClients").html("");

    $("#eventDialogFormsList").html("");

    //Call the service
    $.ajax({
        url: jsonAddress + "/PsycoServices.svc/GetEvent",
        type: "POST",
        dataType: "json",
        data: '{ "eventID": "' + eventID + '" }',
        contentType: "application/json; charset=\"utf-8\"",
        success: function (xData) {

            //Set print link
            $("#eventDialogPrintLink").html("<a target='blank' href='Print/PrintEvent.aspx?id=" + eventID + "'><img alt='Click here to print' title='Click here to print' style='border:0;' src='Images/Print.png' />Printer Friendly Version</a>");

            // Event details values
            $("#eventDialogDetailAddress").html(xData.d["Address"]);
            $("#eventDialogDetailActivity").html(xData.d["Activity"]);
            $("#eventDialogDetailDetails").html(xData.d["Details"]);
            $("#eventDialogDetailComments").html(xData.d["Comments"]);
            $("#eventDialogDetailContactDetails").html(xData.d["ContactDetails"]);
            $("#eventDialogDetailchkAllDay").attr('checked', xData.d["AllDay"]);

            var showDates = true;
            var appendTime = false;
            var startDate = FormatJsonDate(xData.d["StartTime"], false);
            var endDate = FormatJsonDate(xData.d["EndTime"], false);

            //Check if it is an all day event
            if ($("#eventDialogDetailchkAllDay").attr('checked')) {

                $("#eventDialogDetailAllDay").html("Yes");
                //Check if the event starts and ends the same day
                if (startDate == endDate) {
                    //Do not Append the time
                    appendTime = false;
                }
                else {
                    //Append the time
                    appendTime = true;
                }
            }
            else {
                //Not an all day event. Show the dates with time
                $("#eventDialogDetailAllDay").html("No");
                appendTime = true;
            }

            if (showDates) {
                $("#eventDialogDetailStartDate").html(FormatJsonDate(xData.d["StartTime"], appendTime));
                $("#eventDialogDetailEndDate").html(FormatJsonDate(xData.d["EndTime"], appendTime));
                ToggleEventDetailDates(showDates);
            }


            //Location
            $("#eventDialogLocationTitle").html(xData.d.EventLocation["Name"]);
            $("#eventDialogLocationDescription").html(xData.d.EventLocation["Description"]);
            $("#eventDialogLocationEvents").html("<a href='EventCalendar.aspx?loc=" + xData.d.EventLocation["Id"] + "'><img src='Images/calendar-select.png' border='0' alt='' /> See events &amp; programs in " + xData.d.EventLocation["Name"] + "</a>");

            //Provider values
            //Check if the event has a provider associated
            if (xData.d.EventProvider != null) {
                $("#eventDialogProviderName").html(xData.d.EventProvider["Name"]);
                $("#eventDialogProviderDescription").html(xData.d.EventProvider["Description"]);
                var ProviderServices = '';
                for (var i in xData.d.EventProvider.Services) {
                    ProviderServices = ProviderServices + xData.d.EventProvider.Services[i]["Name"] + '<br/>';
                }
                $("#eventDialogProviderServices").html(ProviderServices);
                var ProviderClients = '';
                for (var i in xData.d.EventProvider.Clients) {
                    ProviderClients = ProviderClients + xData.d.EventProvider.Clients[i]["Name"] + '<br/>';
                }
                $("#eventDialogProviderClients").html(ProviderClients);
            }
            else {
                $('#eventdialogTabs').tabs("disable", 2);
            }

            //Forms
            var hasDocuments = false;
            var documentsTable = "<table cellspacing='1' width='100%'>"
            documentsTable = documentsTable + "<tr><td><b>Title</b></td><td><b>File Name</b></td><td><b>Category</b></td><td align='center'><b>Size</b></td></tr>";
            documentsTable = documentsTable + "<tr><td colspan='4'><hr/></td></tr>"
            for (var i in xData.d.Documents) {
                hasDocuments = true;
                documentsTable = documentsTable + "<tr>"

                documentsTable = documentsTable + "<td>"
                documentsTable = documentsTable + "<img src='" + xData.d.Documents[i]["IconPath"] + "' alt='" + xData.d.Documents[i]["Extension"] + "' title='Click to download " + xData.d.Documents[i]["Extension"] + " file' style='cursor: hand' onclick='javascript:DownloadFile(" + xData.d.Documents[i]["Id"] + ");' /> ";
                documentsTable = documentsTable + "<a href='javascript:DownloadFile(" + xData.d.Documents[i]["Id"] + ");'>" + xData.d.Documents[i]["Title"] + "</a>";
                documentsTable = documentsTable + "</td>"

                documentsTable = documentsTable + "<td>"
                documentsTable = documentsTable + xData.d.Documents[i]["Name"];
                documentsTable = documentsTable + "</td>"

                if (xData.d.Documents[i].Category == null) {
                    docCategory = "None";
                }
                else {
                    docCategory = xData.d.Documents[i].Category["Name"]
                }
                documentsTable = documentsTable + "<td>"
                documentsTable = documentsTable + docCategory;
                documentsTable = documentsTable + "</td>"

                documentsTable = documentsTable + "<td align='right'>"
                documentsTable = documentsTable + xData.d.Documents[i]["Size"];
                documentsTable = documentsTable + "</td>"

                documentsTable = documentsTable + "</tr>"
            }
            documentsTable = documentsTable + "</table>";
            if (hasDocuments) {
                $("#eventDialogFormsList").html(documentsTable);
            }
            else {
                $('#eventdialogTabs').tabs("disable", 3);
            }

            $('#eventdialog').dialog("option", "title", "<img src='Images/chart-up-color.png' /> Event &amp; Program");
            $('#eventdialog').dialog('open');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert(XMLHttpRequest.responseText);
        }
    });

    //Select allways the first tab
    $('#eventdialogTabs').tabs("select", 0);

}

// Toggles the event details dates as desired
function ToggleEventDetailDates(trueToShowDates) {
    if (trueToShowDates) {
        $("#eventDialogDetailStartDate").show();
        $("#eventDialogDetailStartDateTitle").show();
        $("#eventDialogDetailEndDate").show();
        $("#eventDialogDetailEndDateTitle").show();
    }
    else {
        $("#eventDialogDetailStartDate").hide();
        $("#eventDialogDetailStartDateTitle").hide();
        $("#eventDialogDetailEndDate").hide();
        $("#eventDialogDetailEndDateTitle").hide();
    }
}

// ************ End Service Dialog Functions ************
