﻿/***************************************************************************************************/
/* Namespace D2D Declairations                                                                     */
/***************************************************************************************************/

var D2D = {
    Common: {
        // Enum StatusCodes
        StatusCodes: {
            S100_SuccessfullyAddedNewMember: 100,
            S101_SuccessfullyRetrievedMember: 101,
            S300_InvalidEmailAddress: 300,
            S301_InvalidPassword: 301,
            S302_MembershipExpired: 302,
            S303_MemberIsLockedOut: 303,
            S304_SessionExpired: 304,
            S305_InvalidSessionId: 305,
            S306_AccountAlreadyExists: 306
        }, // End StatusCodes
        // Enum GenderTypes
        GenderTypes: {
            Unknown: 0,
            Male: 1,
            Female: 2
        }, // End GenderTypes
        // Enum MaritalStatus
        MaritalStatus: {
            DivorcedLooking: 0,
            DivorcedNotLooking: 1,
            SeparatedLooking: 2,
            SeparatedNotLooking: 3,
            MarriedNotLooking: 4,
            Other: 5
        }, // End MaritalStatus
        // Enum IsReadyToDate
        IsReadyToDate: {
            Yes: 0,
            No: 1,
            Maybe: 2
        } // End IsReadyToDate

    }, // End Common 
    DateTime: {
        // Enum WeekDays
        WeekDays: {
            Sun: 0,
            Mon: 1,
            Tue: 2,
            Wed: 3,
            Thu: 4,
            Fri: 5,
            Sat: 6
        }, // End WeekDays
        // Enum Months
        Months: {
            Jan: 0,
            Feb: 1,
            Mar: 2,
            Apr: 3,
            May: 4,
            Jun: 5,
            Jul: 6,
            Aug: 7,
            Sep: 8,
            Oct: 9,
            Nov: 10,
            Dec: 11
        }, // End Months
        // Function toMonthString()
        toMonthString: function (month) {
            var m = "";
            switch (month) {
                case 0:
                    m = "Jan";
                    break;
                case 1:
                    m = "Feb";
                    break;
                case 2:
                    m = "Mar";
                    break;
                case 3:
                    m = "Apr";
                    break;
                case 4:
                    m = "May";
                    break;
                case 5:
                    m = "Jun";
                    break;
                case 6:
                    m = "Jul";
                    break;
                case 7:
                    m = "Aug";
                    break;
                case 8:
                    m = "Sep";
                    break;
                case 9:
                    m = "Oct";
                    break;
                case 10:
                    m = "Nov";
                    break;
                case 11:
                    m = "Dec";
                    break;
            }
            return m;
        }, // End toMonthString()
        // Function toTimeString()
        toTimeString: function (hour, minute) {
            var h = "";
            var m = "";
            var time = "";

            if (hour == 0) {
                h = "12";
            }
            else if (hour < 10) {
                h = "0" + hour.toString();
            }
            else if (hour <= 12) {
                h = hour.toString();
            }
            else {
                h = (parseInt(hour) - 12).toString();
            }
            if (minute < 10) {
                m = "0" + minute.toString();
            }
            else {
                m = minute.toString();
            }
            if (hour < 12) {
                time = h.toString() + ":" + m.toString() + " am";
            }
            else {
                time = h.toString() + ":" + m.toString() + " pm";
            }
            return time;
        }, // End toTimeString()
        // Function toWeekDay()
        toWeekDay: function (weekDay) {
            var day = "";
            switch (weekDay) {
                case 0:
                    day = "Sun";
                    break;
                case 1:
                    day = "Mon";
                    break;
                case 2:
                    day = "Tue";
                    break;
                case 3:
                    day = "Wed";
                    break;
                case 4:
                    day = "Thu";
                    break;
                case 5:
                    day = "Fri";
                    break;
                case 6:
                    day = "Sat";
                    break;
            }
            return day;
        } // End toWeekDay()
    } // End DateTime
};        // End D2D

/***************************************************************************************************/
/* Dialog boxes                                                                                    */
/***************************************************************************************************/
// Shows a basic message box with an okay button.
function showMessage(msg, msgTitle) {
    var $dialog = $("<div></div>")
		         .html(msg)
		         .dialog({
		             autoOpen: false,
		             title: msgTitle,
		             buttons: { "Ok": function () { $(this).dialog("close"); } },
		             modal: true
		         });

    $dialog.dialog('open');
    return false;
}

// Shows an basic alert box with error text appended to msg.
function showError(msg, msgTitle) {
    var errorMsg = "We’re sorry! An error has occurred.\n";
    errorMsg += msg + "\nPlease try again. If the problem persists, please contact the D2D web administrator.";
    var $dialog = $("<div></div>")
		         .html(errorMsg)
		         .dialog({
		             autoOpen: false,
		             title: msgTitle,
		             buttons: { "Ok": function () { $(this).dialog("close"); } },
		             modal: true
		         });


    $dialog.dialog('open');
    return false;
}

/***************************************************************************************************/
/* Window / Page functions                                                                         */
/***************************************************************************************************/
// Returns the value of the query string parameter by name. If not found returns null.
function getQueryStringParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);

    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

// Shows a page in a new window.
function newWindow(page) {
    window.open(page);
}
