﻿var MemberManagement =
    {
        allFormFields: new Array(),
        requiredFormFields: new Array(),
        companyID: "",
        memberID: "",
        returnURL: "",
        currentPage: 0,
        memberPages: 10,
        isAdmin: false,
        isOwner: false,
        searchFlag: false,
        searchFirstName: "",
        searchLastName: "",
        searchIncludeSubsription: false,
        userLogin: function() {
            (function($) {
                $(document).ready(function() {
                    var username = $("#txtUserName").val();
                    var password = $("#txtPassword").val();
                    var rememberme = $("#chkRememberMe").is(':checked');
                    SpiritedFans.BLL.SpiritedFansWebService.UserLogin(MemberManagement.companyID, username, password, rememberme, function(result) {

                        (function($) {
                            $(document).ready(function() {
                                var loginResult = eval(result);
                                if (loginResult.status) {
                                    if (MemberManagement.returnURL != "")
                                        window.location.href = "/" + MemberManagement.returnURL;
                                    else
                                        window.location.href = "/Home";
                                }
                                else {
                                    $("#divEmailInvalid").css("display", "");
                                }
                            });
                        })(jQuery);
                    }, function() {
                        alert("Problem");
                    }); //web-service
                });
            })(jQuery);
        },
        userLogin1: function() {
            (function($) {
                $(document).ready(function() {
                    var username = $("#txtUserName1").val();
                    var password = $("#txtPassword1").val();
                    var rememberme = $("#chkRememberMe1").is(':checked');
                    SpiritedFans.BLL.SpiritedFansWebService.UserLogin(MemberManagement.companyID, username, password, rememberme, function(result) {

                        (function($) {
                            $(document).ready(function() {
                                var loginResult = eval(result);
                                if (loginResult.status) {
                                    if (MemberManagement.returnURL != "")
                                        window.location.href = "/" + MemberManagement.returnURL;
                                    else
                                        window.location.href = "/Home";
                                }
                                else {
                                    $("#divEmailInvalid1").css("display", "");
                                }
                            });
                        })(jQuery);
                    }, function() {
                        alert("Problem");
                    }); //web-service
                });
            })(jQuery);
        },
        drawPager: function(totalResult) {
            (function($) {
                $(document).ready(function() {
                    $("#pnlPager").hide("slow");
                    $("#pnlPager").html("");
                    var totalPages = parseInt(Math.ceil(totalResult / MemberManagement.memberPages));
                    for (var i = 0; i < totalPages; i++) {
                        var pageItem = "<div>";
                        if (MemberManagement.currentPage != i) {
                            pageItem += "<a href='javascript:void(0);' onclick='MemberManagement.getCompanyMembers(\"" + i + "\");'>" + (i + 1) + "</a>";
                        }
                        else {
                            pageItem += "<a href='javascript:void(0);'>" + (i + 1) + "</a>";
                        }
                        pageItem += "</div>";
                        $("#pnlPager").append(pageItem);
                    }
                    $("#pnlPager").show("slow");

                }); //document.ready
            })(jQuery);
        },
        drawListViewItems: function(members) {
            (function($) {
                $(document).ready(function() {
                    $("#pnlListView").html("");
                    for (var i = 0; i < members.length; i++) {
                        var member = members[i];
                        var memberID = member.MemberId;
                        var memberItem = "<div id='lst" + member.ID + "'>";
                        memberItem += "  <div class='left'>";
                        memberItem += "<span><a href='Members/Profile/" + member.UserName + "'>";
                        memberItem += "<img src='" + member.MiniPhoto + "' alt='member' />";
                        memberItem += "</a></span><span><b>";
                        memberItem += member.FirstName + "&nbsp;" + member.LastName;
                        memberItem += "</b></span><span><a class='EmailAnchor' href='mailto:" + member.Email + "'>";
                        memberItem += member.Email;
                        memberItem += "</a></span>";
                        memberItem += "</div>";
                        memberItem += "<div class='right'>";
                        memberItem += "<span>";
                        memberItem += "<a class='EditAnchor' href='Members/Profile/" + member.UserName + "'>View</a>";
                        memberItem += "</span>";
                        memberItem += "<span>";
                        if (memberID == MemberManagement.memberID || MemberManagement.isAdmin) {
                            memberItem += "<a class='EditAnchor' href='Members/Edit/" + member.UserName + "'>";
                            memberItem += "<img src='/Themes/private/img/icons/page_edit.png' alt='Edit' title='Edit' />";
                            memberItem += "</a>";
                            memberItem += "</span>";
                        }
                        if (MemberManagement.isAdmin && member.Privileges.toLowerCase() != "owner") {
                            memberItem += "<span>";
                            memberItem += "<a href='javascript:void(0);' onclick='MemberManagement.deleteMember(\"" + member.MemberId + "\",\"" + member.ID + "\");'>";
                            memberItem += "<img alt='Delete Member' title='Delete Member' src='Themes/Private/img/icons/cross.png' /></a>";
                            memberItem += "</span>";
                        }
                        memberItem += "</div>";
                        memberItem += "<div class='clear'>";
                        memberItem += "</div>";
                        memberItem += "</div>";
                        $("#pnlListView").append(memberItem);
                    }
                }); //document.ready
            })(jQuery);
        },
        drawGridViewItems: function(members) {
            (function($) {
                $(document).ready(function() {
                    $("#pnlGridView").html("");
                    for (var i = 0; i < members.length; i++) {
                        var member = members[i];
                        var memberID = member.MemberId;
                        var memberItem = "<div id='" + member.ID + "' class='member_item left'>";
                        memberItem += "<div>";
                        memberItem += "<a href='Members/Profile/" + member.UserName + "'>";
                        memberItem += "<img src='" + member.SmallPhoto + "' alt='member' />";
                        memberItem += "</a>";
                        memberItem += "</div>";
                        memberItem += "<div>";
                        memberItem += "<div>";
                        memberItem += "<b>";
                        memberItem += member.FirstName + "&nbsp;" + member.LastName;
                        memberItem += "</b>";
                        memberItem += "</div>";
                        memberItem += "<div>";
                        memberItem += "<b><a class='EditAnchor' href='Members/Profile/" + member.UserName + "'>";
                        memberItem += member.UserName + "</a> </b>";
                        memberItem += "</div>";
                        memberItem += "<div>";
                        memberItem += "<a class='EmailAnchor' href='mailto:" + member.Email + "'>";
                        memberItem += member.Email;
                        memberItem += "</a>";
                        memberItem += "</div>";
                        memberItem += "<div>";
                        memberItem += "<strong>";
                        memberItem += member.Privileges;
                        memberItem += "</strong>";
                        memberItem += "</div>";
                        if (memberID == MemberManagement.memberID || MemberManagement.isAdmin) {
                            memberItem += "<div>";
                            memberItem += "<a class='EditAnchor' href='Members/Edit/" + member.UserName + "'>Edit Profile</a>";
                            memberItem += "</div>";
                        }
                        memberItem += "<div>";
                        memberItem += "<a class='EditAnchor' href='Members/Profile/" + member.UserName + "'>View Profile</a>";
                        memberItem += "</div>";
                        if (MemberManagement.isAdmin && member.Privileges.toLowerCase() != "owner") {
                            memberItem += "<div>";
                            memberItem += "<a href='javascript:void(0);' onclick='MemberManagement.deleteMember(\"" + member.MemberId + "\",\"" + member.ID + "\");' >";
                            memberItem += "Delete Member</a>";
                            memberItem += "</div>";
                        }
                        memberItem += "</div>";
                        memberItem += "</div>";
                        $("#pnlGridView").append(memberItem);
                    }
                }); //document.ready
            })(jQuery);
        },
        memberAdvancedSearch: function(includeNewsLetter) {
            (function($) {
                $(document).ready(function() {
                    var pagerSize = MemberManagement.memberPages;
                    var firstName = $("#txtFirstName").val();
                    var lastName = $("#txtLastName").val();
                    if (firstName.trim() == "" && lastName.trim() == "") {
                        MemberManagement.searchFlag = false;
                        MemberManagement.getCompanyMembers(0);
                        return;
                    }
                    MemberManagement.searchFirstName = firstName;
                    MemberManagement.searchLastName = lastName;
                    try {
                        MemberManagement.searchIncludeSubsription = $("#chkNewsSubsription").is(":checked");
                    }
                    catch (e) {
                        MemberManagement.searchIncludeSubsription = false;
                    }
                    MemberManagement.searchFlag = true;
                    MemberManagement.currentPage = 0;
                    SpiritedFans.BLL.SpiritedFansWebService.SearchCompanyMembers(MemberManagement.companyID, MemberManagement.currentPage, MemberManagement.memberPages, firstName, lastName, MemberManagement.searchIncludeSubsription, function(args) {
                        (function($) {
                            $(document).ready(function() {
                                var result = eval(args);
                                MemberManagement.drawGridViewItems(result);
                                MemberManagement.drawListViewItems(result);
                                MemberManagement.drawPager(result[0].TotalResult);
                                MemberManagement.currentPage = parseInt(result[0].currentPage);
                            });
                        })(jQuery);
                    });
                }); //document.ready
            })(jQuery);
        },
        memberAdvancedSearchPaging: function(pageNumber) {
            (function($) {
                $(document).ready(function() {
                    var pagerSize = MemberManagement.memberPages;
                    var firstName = MemberManagement.searchFirstName;
                    var lastName = MemberManagement.searchLastName;
                    var includeSubscription = MemberManagement.searchIncludeSubsription;
                    if (firstName.trim() == "" && lastName.trim() == "") {
                        MemberManagement.searchFlag = false;
                        MemberManagement.getCompanyMembers(0);
                        return;
                    }
                    MemberManagement.searchFlag = true;
                    MemberManagement.currentPage = pageNumber;
                    SpiritedFans.BLL.SpiritedFansWebService.SearchCompanyMembers(MemberManagement.companyID, MemberManagement.currentPage, MemberManagement.memberPages, firstName, lastName, MemberManagement.searchIncludeSubsription, function(args) {
                        (function($) {
                            $(document).ready(function() {
                                var result = eval(args);
                                MemberManagement.drawGridViewItems(result);
                                MemberManagement.drawListViewItems(result);
                                MemberManagement.drawPager(result[0].TotalResult);
                                MemberManagement.currentPage = parseInt(result[0].currentPage);
                            });
                        })(jQuery);
                    });
                }); //document.ready
            })(jQuery);
        },
        newsLetterSubscription: function() {
            (function($) {
                $(document).ready(function() {
                    SpiritedFans.BLL.SpiritedFansWebService.SubscripeNewsLetter(MemberManagement.companyID, function(args) {
                        (function($) {
                            $(document).ready(function() {
                                var result = eval(args);
                                if (result.status) {
                                    alert("Successfully Saved");
                                    $("#lnkSubscription").remove();
                                }
                            }); //document.ready
                        })(jQuery);
                    }); //webservice
                }); //document.ready
            })(jQuery);
        },
        newsLetterUnSubscription: function() {
            (function($) {
                $(document).ready(function() {
                    SpiritedFans.BLL.SpiritedFansWebService.UnSubscripeNewsLetter(MemberManagement.companyID, function(args) {
                        (function($) {
                            $(document).ready(function() {
                                var result = eval(args);
                                if (result.status) {
                                    alert("Successfully Saved");
                                    $("#lnkUnSubscripe").remove();
                                }
                            }); //document.ready
                        })(jQuery);
                    }); //webService
                }); //document.ready
            })(jQuery);
        },
        changeMemberView: function() {
            (function($) {
                $(document).ready(function() {
                    var val = $("#ddlMemberView").val();
                    switch (val.toLowerCase()) {
                        case "grid":
                            $("#pnlListView").css("display", "none");
                            $("#pnlGridView").css("display", "");
                            break;
                        case "list":
                            $("#pnlListView").css("display", "");
                            $("#pnlGridView").css("display", "none");
                            break;
                        default:
                            break;
                    }
                }); //document.ready
            })(jQuery);
        },
        toggleSearchPanel: function() {
            (function($) {
                $(document).ready(function() {
                    if ($("#pnlAdvancedSearch").css("display") == "none") {
                        $("#pnlAdvancedSearch").show("slow");
                    }
                    else {
                        $("#pnlAdvancedSearch").hide("slow");
                    }
                }); //document.ready
            })(jQuery);
        },
        toggleNewsLetterPanel: function() {
            (function($) {
                $(document).ready(function() {
                    if ($("#pnlNewsLetter").css("display") == "none") {
                        $("#pnlNewsLetter").show("slow");
                    }
                    else {
                        $("#pnlNewsLetter").hide("slow");
                    }
                }); //document.ready
            })(jQuery);
        },
        sendNewsLetter: function() {
            (function($) {
                $(document).ready(function() {
                    var sendMode = parseInt($("input[name='SendMode']:checked").val());
                    var memberList = new Array();
                    if (sendMode != 0) {
                        $("#pnlGridView > div").each(function() {
                            memberList.push($(this).attr("id"));
                        });
                    }
                    var newsLetter = $("#txtNewsLetter").val();
                    if (newsLetter.trim() == "") {
                        return;
                    }
                    SpiritedFans.BLL.SpiritedFansWebService.SendNewsLetter(MemberManagement.companyID, newsLetter, sendMode, MemberManagement.searchFirstName, MemberManagement.searchLastName, memberList, function(args) {
                        (function($) {
                            $(document).ready(function() {
                                var result = eval(args);
                                if (result.status) {
                                    alert("Successfully Send");
                                    $("#txtNewsLetter").val("");
                                    MemberManagement.toggleNewsLetterPanel();
                                }
                                else {
                                    alert(result.errors);
                                }
                            }); //document.ready
                        })(jQuery);
                    }); //webService
                }); //document.ready
            })(jQuery);
        },
        getCompanyMembers: function(pageNumber) {
            if (MemberManagement.searchFlag) {
                MemberManagement.memberAdvancedSearchPaging(pageNumber);
                return;
            }
            var pagerSize = MemberManagement.memberPages;
            SpiritedFans.BLL.SpiritedFansWebService.GetCompanyMembers(MemberManagement.companyID, parseInt(pageNumber), parseInt(pagerSize), function(args) {
                (function($) {
                    $(document).ready(function() {
                        var result = eval(args);
                        MemberManagement.drawGridViewItems(result);
                        MemberManagement.drawListViewItems(result);
                        MemberManagement.drawPager(result[0].TotalResult);
                        MemberManagement.currentPage = parseInt(result[0].currentPage);
                    }); //document.ready
                })(jQuery);
            });
        },
        changePagerSettings: function() {
            (function($) {
                $(document).ready(function() {
                    var pager = $("#ddlPagerSize").val();
                    MemberManagement.memberPages = parseInt(pager);
                    MemberManagement.getCompanyMembers(MemberManagement.currentPage);
                }); //document.ready
            })(jQuery);
        },
        showHidePassword: function() {
            (function($) {
                $(document).ready(function() {
                    $("#PasswordContainer").toggle("slow");
                }); //document.ready
            })(jQuery);
        },
        deleteMember: function(memberId, container) {
            (function($) {
                $(document).ready(function() {
                    if (confirm("Are you sure you want to delete this member?")) {
                        {
                            $("#" + container).remove();
                            $("#lst" + container).remove();
                            SpiritedFans.BLL.SpiritedFansWebService.DeleteMember(memberId, MemberManagement.companyID, MemberManagement.DeleteSuccess);
                        }
                    }
                });
            })(jQuery);
        },
        DeleteSuccess: function(args) {
            (function($) {
                $.ui.dialog.defaults.bgiframe = true;
                var result = eval(args);
                var div;
                if (result) {
                    div = "<div >Member deleted successfully.</div>";
                    $('#dialog').html(div);
                    $(function() {
                        $("#dialog").dialog({
                            width: 500,
                            height: 200,
                            title: 'Success',
                            resizable: false,
                            modal: true,
                            buttons:
                    {
                        'Ok': function() {
                            $("#dialog").dialog('destroy');
                        }
                    }
                        });
                    });
                }
                else {
                    div = "<div >You don't have permission to delete this member.</div>";
                    $('#dialog').html(div);
                    $(function() {
                        $("#dialog").dialog({
                            width: 500,
                            height: 200,
                            title: 'Fail',
                            resizable: false,
                            modal: true,
                            buttons:
                    {
                        'Ok': function() {
                            $("#dialog").dialog('destroy');
                        }
                    }
                        });
                    });
                }
            })(jQuery);
        },
        webserviceFail: function() {
            $.ui.dialog.defaults.bgiframe = true;
            var div = "<div >Problem.</div>";
            $('#dialog').html(div);
            $(function() {
                $("#dialog").dialog({
                    width: 500,
                    height: 200,
                    title: 'Problem',
                    resizable: false,
                    modal: true,
                    buttons: {
                        'Ok': function() {
                            $("#dialog").dialog('destroy');
                        }
                    }

                });
            });
        },
        changePassword: function() {
            (function($) {
                $(document).ready(function() {
                    var newPassword = $("#txtNewPassword").val();
                    var confirmPassword = $("#txtConfirmPassword").val();
                    var oldPassword = "";
                    try {
                        oldPassword = $("#txtOldPassword").val();
                    }
                    catch (e) {
                        oldPassword = "";
                    }
                    if (newPassword.trim() == "" || confirmPassword.trim() == "") {
                        $.ui.dialog.defaults.bgiframe = true;
                        var div = "<div >Password Field can't be blank.</div>";
                        $('#dialog').html(div);
                        $(function() {
                            $("#dialog").dialog({
                                width: 500,
                                height: 200,
                                title: 'Error',
                                resizable: false,
                                modal: true,
                                buttons: {
                                    'Ok': function() {
                                        $("#dialog").dialog('destroy');
                                    }
                                }

                            });
                        });
                        return;
                    }
                    if (newPassword != confirmPassword) {
                        $.ui.dialog.defaults.bgiframe = true;
                        var div = "<div >Password dismatch</div>";
                        $('#dialog').html(div);
                        $(function() {
                            $("#dialog").dialog({
                                width: 500,
                                height: 200,
                                title: 'Error',
                                resizable: false,
                                modal: true,
                                buttons: {
                                    'Ok': function() {
                                        $("#dialog").dialog('destroy');
                                    }
                                }

                            });
                        });
                        return;
                    }
                    if (oldPassword == undefined)
                        oldPassword = "";
                    if (newPassword == undefined) {
                        $.ui.dialog.defaults.bgiframe = true;
                        var div = "<div >Problem.</div>";
                        $('#dialog').html(div);
                        $(function() {
                            $("#dialog").dialog({
                                width: 500,
                                height: 200,
                                title: 'Problem',
                                resizable: false,
                                modal: true,
                                buttons: {
                                    'Ok': function() {
                                        $("#dialog").dialog('destroy');
                                    }
                                }

                            });
                        });
                        return;
                    }
                    SpiritedFans.BLL.SpiritedFansWebService.ChangePassword(MemberManagement.companyID, MemberManagement.memberID, newPassword, oldPassword, function(result) {
                        if (result) {
                            $.ui.dialog.defaults.bgiframe = true;
                            var div = "<div >Successfully saved.</div>";
                            $('#dialog').html(div);
                            $(function() {
                                $("#dialog").dialog({
                                    width: 500,
                                    height: 200,
                                    title: 'Success',
                                    resizable: false,
                                    modal: true,
                                    buttons: {
                                        'Ok': function() {
                                            $("#dialog").dialog('destroy');
                                        }
                                    }

                                });
                            });
                        }
                        else {
                            $.ui.dialog.defaults.bgiframe = true;
                            var div = "<div >Problem.</div>";
                            $('#dialog').html(div);
                            $(function() {
                                $("#dialog").dialog({
                                    width: 500,
                                    height: 200,
                                    title: 'Problem',
                                    resizable: false,
                                    modal: true,
                                    buttons: {
                                        'Ok': function() {
                                            $("#dialog").dialog('destroy');
                                        }
                                    }

                                });
                            });
                        }
                    }, MemberManagement.webserviceFail);
                });
            })(jQuery);
        }, //change password
        drawFormProcessField: function(processObject, containerID) {
            (function($) {
                $(document).ready(function() {
                    var _newProcess = " <fieldset id='reg" + processObject.ID + "' class=''>";
                    _newProcess += "<legend><b>" + processObject.Title + "</b></legend>";
                    _newProcess += "<div class='right'>";
                    _newProcess += "</div>";
                    _newProcess += "<div class='clear'></div>";
                    _newProcess += "<div class='pnlProcessControls'>";
                    _newProcess += "</div>";
                    _newProcess += "</fieldset>";
                    $("#" + containerID).append(_newProcess);
                    var _addControlHTML = "<div id='add_new_control_panel'>";
                    _addControlHTML += "<div class='DivT3'></div>";
                    _addControlHTML += "<div class='DivT2'></div>";
                    _addControlHTML += "<div class='DivT1'></div>";
                    _addControlHTML += "<div class='DivT1'></div>";
                    _addControlHTML += "<div class='DivT2'></div>";
                    _addControlHTML += "<div class='DivT3'></div>";
                    _addControlHTML += "</div>";
                    $("#" + processObject.ID + " > .pnlProcessControls").html(_addControlHTML);
                });
            })(jQuery);
        },
        drawFormProcessControls: function(controlObject) {
            (function($) {
                $(document).ready(function() {
                    var _newControl = "";
                    switch (parseInt(controlObject.ControlType)) {
                        case 3:
                            {
                                //TextBox
                                _newControl += "<div class='reg_entry_panel'>";
                                _newControl += "<div class='reg_header left'>";
                                _newControl += controlObject.Title;
                                _newControl += "</div>";
                                _newControl += "<div class='left' id='pnlOptions" + controlObject.ID + "'>";
                                _newControl += "</div>";
                                _newControl += "<div class='clear'></div>";
                                _newControl += "</div>";
                                break;
                            }
                        case 4:
                            {
                                MemberManagement.allFormFields.push("ddl" + controlObject.ID);
                                if (controlObject.Required) {
                                    MemberManagement.requiredFormFields.push("ddl" + controlObject.ID);
                                }
                                _newControl += "<div class='reg_entry_panel'>";
                                _newControl += "<div class='reg_header left'>";
                                _newControl += controlObject.Title;
                                _newControl += "</div>";
                                _newControl += "<div class='left' id='pnlOptions" + controlObject.ID + "'>";
                                _newControl += "<select id='ddl" + controlObject.ID + "'";
                                _newControl += "</select>";
                                _newControl += "</div>";
                                _newControl += "<div class='clear'></div>";
                                _newControl += "</div>";
                                break;
                            }
                        case 1:
                            {
                                MemberManagement.allFormFields.push("rd" + controlObject.ID);
                                if (controlObject.Required) {
                                    MemberManagement.requiredFormFields.push("rd" + controlObject.ID);
                                }
                            }
                        default:
                            {
                                _newControl += "<div class='reg_entry_panel'>";
                                _newControl += "<div class='reg_header left'>";
                                _newControl += controlObject.Title;
                                _newControl += "</div>";
                                _newControl += "<div class='left' id='pnlOptions" + controlObject.ID + "'>";
                                _newControl += "</div>";
                                _newControl += "<div class='clear'></div>";
                                _newControl += "</div>";
                                break;
                            }
                    } //switch
                    $("#reg" + controlObject.RootID).append(_newControl);
                });
            })(jQuery);
        },
        drawFormControlOption: function(optionObject, controlType, checked) {
            (function($) {
                $(document).ready(function() {
                    var _newOption = "";
                    switch (parseInt(controlType)) {
                        case 1:
                            {
                                //RadioButton
                                _newOption += "<div>";
                                _newOption += "<input " + checked + " value='" + optionObject.ID + "' id='rd" + optionObject.ID + "' class='" + optionObject.RootID + "' type='radio' name='rd" + optionObject.RootID + "' />";
                                _newOption += "<span>";
                                _newOption += optionObject.Title;
                                _newOption += "</span>";
                                _newOption += "</div>";
                                $("#pnlOptions" + optionObject.RootID).append(_newOption);
                                SpiritedFans.BLL.SpiritedFansWebService.getMemberInformation(MemberManagement.memberID, optionObject.ID, function(result) {
                                    var option = eval(result);
                                    if (option.status) {
                                        $("#rd" + option.optionID).attr("checked", "checked");
                                    }
                                }); //web service
                                break;
                            }
                        case 2:
                            {
                                //CheckBox
                                MemberManagement.allFormFields.push("chk" + optionObject.ID);
                                if (optionObject.Required) {
                                    MemberManagement.requiredFormFields.push("chk" + optionObject.ID);
                                }
                                _newOption += "<div>";
                                _newOption += "<input " + checked + " id='chk" + optionObject.ID + "' type='checkbox' name='chk" + optionObject.RootID + "' />";
                                _newOption += "<span>";
                                _newOption += optionObject.Title;
                                _newOption += "</span>";
                                _newOption += "</div>";
                                $("#pnlOptions" + optionObject.RootID).append(_newOption);
                                SpiritedFans.BLL.SpiritedFansWebService.getMemberInformation(MemberManagement.memberID, optionObject.ID, function(result) {
                                    var option = eval(result);
                                    if (option.status) {
                                        $("#chk" + option.optionID).attr("checked", "checked");
                                    }
                                }); //web service
                                break;
                            }
                        case 3:
                            {
                                //TextBox
                                MemberManagement.allFormFields.push("txt" + optionObject.ID);
                                if (optionObject.Required) {
                                    MemberManagement.requiredFormFields.push("txt" + optionObject.ID);
                                }
                                $("#pnlOptions" + optionObject.RootID).html("<input type='text' class='reg_text_input' id='txt" + optionObject.ID + "' />");
                                SpiritedFans.BLL.SpiritedFansWebService.getMemberInformation(MemberManagement.memberID, optionObject.ID, function(result) {
                                    var option = eval(result);
                                    if (option.status) {
                                        $("#txt" + option.optionID).val(option.value);
                                    }
                                }); //web service
                                break;
                            }
                        case 4:
                            {
                                //DropDownList
                                _newOption += "<option value='" + optionObject.ID + "'>";
                                _newOption += "<span>";
                                _newOption += optionObject.Title;
                                _newOption += "</span>";
                                _newOption += "</option>";
                                $("#ddl" + optionObject.RootID).append(_newOption);
                                SpiritedFans.BLL.SpiritedFansWebService.getMemberInformation(MemberManagement.memberID, optionObject.ID, function(result) {
                                    var option = eval(result);
                                    if (option.status) {
                                        $("#ddl" + option.rootID).val(option.optionID);
                                    }
                                }); //web service
                                break;
                            }
                        default:
                            {
                                break;
                            }
                    }
                });
            })(jQuery);
        },
        addPrivilgesStep: function() {
            (function($) {
                $(document).ready(function() {
                    var _priviliges = "<fieldset>";
                    _priviliges += "<legend><b>Member Priviliges</b></legend>";
                    _priviliges += "<div class='reg_entry_panel'>";
                    _priviliges += "<div class='reg_entry_panel'>";
                    _priviliges += "<div class='reg_header left'>";
                    _priviliges += 'Priviliges';
                    _priviliges += '</div>';
                    _priviliges += "<div id='Div2' class='left'>";
                    _priviliges += "<select id='ddlPriviliges'>";
                    _priviliges += "<option value='2'>Member</option>";
                    _priviliges += "<option value='1'>Administrator</option>";
                    _priviliges += "</select>";
                    _priviliges += "</div>";
                    _priviliges += "<div class='clear'>";
                    _priviliges += "</div>";
                    _priviliges += "</div>";
                    _priviliges += "</div>";
                    _priviliges += "</fieldset>";
                    $("#pnlMemPriv").append(_priviliges);
                    $("#ddlPriviliges").val(MemberManagement.selectedMemberPrivilges);
                });
            })(jQuery);
        },
        currenMemberPriviliges: 2,
        selectedMemberPrivilges: 2,
        getMemberInformation: function() {
            (function($) {
                $(document).ready(function() {
                    SpiritedFans.BLL.SpiritedFansWebService.getComapnyProcessFields(MemberManagement.companyID, function(result) {
                        var _regColl = eval(result);
                        switch (parseInt(MemberManagement.currenMemberPriviliges)) {
                            case 0:
                                SpiritedFans.BLL.SpiritedFansWebService.MemberPrivilges(MemberManagement.companyID, MemberManagement.memberID, function(result) {
                                    MemberManagement.selectedMemberPrivilges = parseInt(result);
                                    switch (MemberManagement.selectedMemberPrivilges) {
                                        case 2:
                                            MemberManagement.addPrivilgesStep();
                                            break;
                                        case 1:
                                            MemberManagement.addPrivilgesStep();
                                            break;
                                        default:
                                            break;
                                    }
                                }, MemberManagement.webserviceFail);
                                break;
                            case 1:
                                break;
                            case 2:
                                break;
                            default:
                                break;
                        }
                        for (var p = 0; p < _regColl.length; p++) {
                            var _process = _regColl[p];
                            MemberManagement.drawFormProcessField(_process, "pnlMemberInfo");
                            for (var c = 0; c < _process.Controls.length; c++) {
                                var _control = _process.Controls[c];
                                MemberManagement.drawFormProcessControls(_control);
                                for (var o = 0; o < _control.Options.length; o++) {
                                    var _option = _control.Options[o];
                                    MemberManagement.drawFormControlOption(_option, _control.ControlType, "");
                                } //Options
                            } //Controls
                        } //Process
                        $("#lnkchangePassword").click(MemberManagement.changePassword);
                        $("#lnkSaveChanges").click(MemberManagement.completeRegistration);
                        if (parseInt(MemberManagement.currenMemberPriviliges) == 0 || parseInt(MemberManagement.currenMemberPriviliges) == 1) {
                            $("#pnlOldPassword").remove();
                        }
                    }, MemberManagement.webserviceFail);
                });
            })(jQuery);
        },
        FormErrors: new Array(),
        showRegistrationErrors: function() {
            (function($) {
                $(document).ready(function() {
                    var errMsg = "<table cellspacing='0' cellpadding='0' width='100%'><tr>";
                    errMsg += "<td><img alt='error' width='100px' height='100px' src='Themes/Private/img/Error.png' /></td>";
                    errMsg += "<td><ul class='ulRegistrationError'>";
                    for (var i = 0; i < MemberManagement.FormErrors.length; i++) {
                        errMsg += "<li>" + MemberManagement.FormErrors[i] + "</li>";
                    }
                    errMsg += "</ul></td></tr></table>";
                    $.ui.dialog.defaults.bgiframe = true;
                    var div = "<div >" + errMsg + ".</div>";
                    $('#dialog').html(div);
                    $(function() {
                        $("#dialog").dialog({
                            width: 500,
                            height: 300,
                            title: "<img src='Themes/Private/img/comment-del-hover.png' />" + '&nbsp;&nbsp;Error',
                            resizable: false,
                            modal: true,
                            buttons:
                    { 'Ok': function() {
                        $("#dialog").dialog('destroy');
                    }
                    }
                        });
                    });
                });
            })(jQuery);
        },
        completeRegistration: function() {
            (function($) {
                $(document).ready(function() {
                    var ddlSelPreviliges = $('#ddlPriviliges').val();
                    if (ddlSelPreviliges == undefined) {
                        MemberManagement.DoRegistration();
                        return;
                    }
                    MemberManagement.FormErrors = new Array();
                    if (ddlSelPreviliges > 2)
                        return;
                    var requestedPreviliges = (MemberManagement.currenMemberPriviliges == 0) ? MemberManagement.selectedMemberPrivilges : MemberManagement.currenMemberPriviliges;
                    if (ddlSelPreviliges == requestedPreviliges)
                        MemberManagement.DoRegistration();
                    else {
                        if (ddlSelPreviliges == 1) {
                            SpiritedFans.BLL.SpiritedFansWebService.CheckMaximumRegularUsersCount(MemberManagement.companyID, ddlSelPreviliges, MemberManagement.CheckingMaxUsersComplete);
                        }
                        else {
                            MemberManagement.DoRegistration();
                        }

                    }
                }); //document.ready
            })(jQuery);
        },
        CheckingMaxUsersComplete: function(args) {
            (function($) {
                $(document).ready(function() {
                    var isMaximum = eval(args);
                    var ddlSelPreviliges = $('#ddlPriviliges').val();
                    if (isMaximum) {
                        if (ddlSelPreviliges == 1) {
                            if (MemberManagement.isOwner) {
                                Notification.drawOwnerUpgradeNotification('Sorry, your company has reached maximum number of admins');
                                return;
                            }
                            else
                                MemberManagement.FormErrors.push("Sorry, can't handle your request now,<br/> please try again later");
                        }
                        else {
                            if (MemberManagement.isOwner) {
                                Notification.drawOwnerUpgradeNotification('Sorry, your company has reached maximum number of users');
                                return;
                            }
                            else
                                MemberManagement.FormErrors.push("Sorry, can't handle your request now,<br/> please try again later");
                        }
                        MemberManagement.showRegistrationErrors();
                    }
                    else
                        MemberManagement.DoRegistration();
                }); //document.ready
            })(jQuery);
        },
        DoRegistration: function() {
            (function($) {
                $(document).ready(function() {
                    //Form Validation

                    $(".ulRegistrationError > li").each(function() {
                        $(this).remove();
                    }); //pnlMemberInfo
                    var containCustomError = false;
                    for (var i = 0; i < MemberManagement.requiredFormFields.length; i++) {
                        var _item = MemberManagement.requiredFormFields[i];
                        try {
                            if (_item.search(/^txt/) != -1) {
                                var value = $("#" + _item).val();
                                var optionID = _item.replace(/^txt/, "");
                                if (value == "undefined" || value.trim() == "") {
                                    $("#txt" + optionID).css("backgroundColor", "#FF2424");
                                    containCustomError = true;
                                }
                                else {
                                    $("#txt" + optionID).css("backgroundColor", "white");
                                }
                            }
                            else if (_item.search(/^rd/) != -1) {
                                var value = $('input[name=' + _item + ']:checked').val();
                                var optionID = _item.replace(/^rd/, "");
                                if (typeof (value) == "undefined" || value.trim() == "") {
                                    $("." + optionID).css("backgroundColor", "#FF2424");
                                    containCustomError = true;
                                }
                                else {
                                    $("." + optionID).css("backgroundColor", "white");
                                }
                            }
                            else if (_item.search(/^ddl/) != -1) {
                                var value = $("#" + _item).val();
                                var optionID = _item.replace(/^ddl/, "");
                                if (value == "undefined" || value.trim() == "") {
                                    $("#ddl" + optionID).css("backgroundColor", "#FF2424");
                                    containCustomError = true;
                                }
                                else {
                                    $("#ddl" + optionID).css("backgroundColor", "white");
                                }
                            }
                        }
                        catch (e) {
                        }
                    }
                    if (containCustomError) {
                        MemberManagement.FormErrors.push("Please fill all the red fields");
                    }
                    if (containCustomError) {
                        MemberManagement.showRegistrationErrors();
                        return;
                    }
                    var answersID = new Array();
                    var answer = new Array();
                    for (var i = 0; i < MemberManagement.allFormFields.length; i++) {
                        try {
                            var _item = MemberManagement.allFormFields[i];
                            if (_item.search(/^txt/) != -1) {
                                answer.push($("#" + _item).val());
                                answersID.push(_item.replace(/^txt/, ""));
                            }
                            else if (_item.search(/^rd/) != -1) {
                                answer.push($('input[name=' + _item + ']:checked').val());
                                answersID.push($('input[name=' + _item + ']:checked').val());
                            }
                            else if (_item.search(/^ddl/) != -1) {
                                answer.push($("#" + _item).val());
                                answersID.push($("#" + _item).val());
                            }
                            else if (_item.search(/^chk/) != -1) {
                                answer.push($("#" + _item).attr("checked"));
                                answersID.push(_item.replace(/^chk/, ""));
                            }
                        }
                        catch (e) {
                        }
                    } //for  
                    var priv = MemberManagement.selectedMemberPrivilges;
                    try {
                        priv = parseInt($("#ddlPriviliges").val());
                        if (isNaN(priv)) {
                            priv = MemberManagement.selectedMemberPrivilges;
                        }
                    }
                    catch (e) {
                        priv = MemberManagement.selectedMemberPrivilges;
                    }
                    SpiritedFans.BLL.SpiritedFansWebService.SaveMemberInformation(MemberManagement.memberID, MemberManagement.companyID, answer, answersID, priv, function(result) {
                        var registrationStatus = eval(result);
                        if (result.status) {
                            $.ui.dialog.defaults.bgiframe = true;
                            var div = "<div >Successfully saved.</div>";
                            $('#dialog').html(div);
                            $(function() {
                                $("#dialog").dialog({
                                    width: 500,
                                    height: 200,
                                    title: 'Success',
                                    resizable: false,
                                    modal: true,
                                    buttons: {
                                        'Ok': function() {
                                            $("#dialog").dialog('destroy');
                                        }
                                    }

                                });
                            });
                        }
                        else {
                            $(".ulRegistrationError").append("<li>" + registrationStatus.errors + "</li>");
                        }
                    }, MemberManagement.webserviceFail);
                }); //document.ready
            })(jQuery);
        },
        showMemberProfileInformation: function() {
            (function($) {
                $(document).ready(function() {
                    SpiritedFans.BLL.SpiritedFansWebService.GetMemberProfileInformation(MemberManagement.companyID, function(args) {
                        (function($) {
                            $(document).ready(function() {
                                var result = eval(args);
                                for (var i = 0; i < result.length; i++) {
                                    var item = result[i];
                                    var processID = $("#" + item.ProcessID).attr("id");
                                    if (typeof (processID) == 'undefined') {
                                        var processContainerHTML = "<div id='" + item.ProcessID + "'>";
                                        processContainerHTML += "<fieldset>";
                                        processContainerHTML += "<legend>";
                                        processContainerHTML += item.ProcessTitle;
                                        processContainerHTML += "</legend>";
                                        processContainerHTML += "<div>";
                                        processContainerHTML += "<div id='cld" + item.ProcessID + "'>";
                                        processContainerHTML += "</fieldset>";
                                        processContainerHTML += "</div>";
                                        $("#memberProfileInformation").append(processContainerHTML);
                                        processID = item.ProcessID;
                                    }
                                    var controlID = $("#" + item.ControlID).attr("id");
                                    if (typeof (controlID) == 'undefined') {
                                        var controlContainerHTML = "<div id='" + item.ControlID + "' class='pnlMemberInfo'>";
                                        controlContainerHTML += "<div class='left' style='width:200px;'>";
                                        controlContainerHTML += item.ControlTitle;
                                        controlContainerHTML += "</div>";
                                        controlContainerHTML += "<div class='left'><ul class='mem-info' id='cld" + item.ControlID + "'></ul></div>";
                                        controlContainerHTML += "<div class='clear'></div>";
                                        controlContainerHTML += "</div>";
                                        $("#cld" + item.ProcessID).append(controlContainerHTML);
                                    } //undefined if
                                    $("#cld" + item.ControlID).append("<li>" + item.OptionAnswer + "</li>");
                                }
                            });
                        })(jQuery);
                    }, MemberManagement.webserviceFail);
                });
            })(jQuery);
        }
    };
