﻿var data = '';   
var editornot = '';
var emptyurl = 'images/empty.png';
var clsPermission = function(ctlDdlPublicPrivate, ctlHdDropVal, ctlDivPublic, RadioButtonList1, ctlChkAllFriends, ctlDivAllFriends1, RadioButtonList2, ctlChkSomeFriend, ctlDivSomeFriends, ctlDivAllFriends, ctlUlAllFriends, ctldivSelected, ctlUlSelectedFriends, ctlHdSelectedFriends, ViewableFriendsHiddenId, DownloadableFriendsHiddenId, AddtoProfileListHiddenId, DownloadableFriendsUl, ViewableFriendsUl, AddtoProfileListUI, ctlDivButtons, ctlBtnViewable, ctlBtnDownloadable, ctlBtnAddToProfile, ctlDivPrivate) {
    this.ctlDdlPublicPrivate = ctlDdlPublicPrivate;
    this.ctlHdDropVal = ctlHdDropVal;
    this.ctlDivPublic = ctlDivPublic;
    this.RadioButtonList1 = RadioButtonList1;
    this.ctlChkAllFriends = ctlChkAllFriends;
    this.ctlDivAllFriends1 = ctlDivAllFriends1;
    this.RadioButtonList2 = RadioButtonList2;
    this.ctlChkSomeFriend = ctlChkSomeFriend;
    this.ctlDivSomeFriends = ctlDivSomeFriends;
    this.ctlDivAllFriends = ctlDivAllFriends;
    this.ctlUlAllFriends = ctlUlAllFriends;
    this.ctldivSelected = ctldivSelected;
    this.ctlUlSelectedFriends = ctlUlSelectedFriends;
    this.ctlHdSelectedFriends = ctlHdSelectedFriends;
    this.ViewableFriendsHiddenId = ViewableFriendsHiddenId;
    this.DownloadableFriendsHiddenId = DownloadableFriendsHiddenId;
    this.AddtoProfileListHiddenId = AddtoProfileListHiddenId;

    this.DownloadableFriendsUl = DownloadableFriendsUl;
    this.ViewableFriendsUl = ViewableFriendsUl;
    this.AddtoProfileListUI = AddtoProfileListUI;
    this.ctlDivButtons = ctlDivButtons;
    this.ctlBtnViewable = ctlBtnViewable;
    this.ctlBtnDownloadable = ctlBtnDownloadable;
    this.ctlBtnAddToProfile = ctlBtnAddToProfile;
    this.SetPermissions = SetPermissions;
    this.ResetPermission = resetpermission;
    this.clearall = clearall;
    this.clearallPrivate = clearallPrivate;
    this.ChangeDivs = ChangeDivs;
    this.FunctionRemoveSelected = FunctionRemoveSelected;
    this.FunctionSelected = FunctionSelected;
    this.AddtoViewList = AddtoViewList;
    this.AddtoDownloadList = AddtoDownloadList;
    this.FunctionRemoveView = FunctionRemoveView;
    this.RequestPermission = "WebServices/FriendService.asmx/fnIlStringPermission";
    this.RequestUrl = "WebServices/FriendService.asmx/fnIlStringAllFriends";
    this.RequestUrlPermission = "WebServices/FriendService.asmx/fnIlStringPermittedFriends";
    this.AddtoListProfile = AddtoListProfile;
    this.FunctionRemoveDownload = FunctionRemoveDownload;
    this.FunctionRemoveProfile = FunctionRemoveProfile;
    this.ShowSomeFriendDiv = ShowSomeFriendDiv;
    this.ShowSomeFriendDiv1 = ShowSomeFriendDiv1;
    this.ctlDivPrivate = ctlDivPrivate;

    function resetpermission() {
        $('#' + this.ViewableFriendsHiddenId).val('');
        $('#' + this.DownloadableFriendsHiddenId).val('');
        $('#' + this.AddtoProfileListHiddenId).val('');
        $('#' + this.ctlHdRadio1Selected).val('');
        $('#' + this.ctlHdRadio2Selected).val('');
         data = '';        
        $('#' + this.ViewableFriendsUl).append(data); 
        $('#' + this.DownloadableFriendsUl).append(data);
        $('#' + this.AddtoProfileListUI).append(data);        
    }
    function clearall() {
        $('#' + this.ctlDdlPublicPrivate).val(-1);
        $('#' + ctlChkAllFriends).attr('checked', false);
        $('#' + ctlChkSomeFriend).attr('checked', false);
        $("input[name=" + this.RadioButtonList1 + "][value='1']").attr("checked", true)
        $("input[name=" + this.RadioButtonList2 + "][value='1']").attr("checked", true)
        // $('#' + RadioButtonList1 + " [value=1]").attr("checked", "checked");

        $('#' + ctlDivAllFriends1).hide();
        $('#' + ctlChkSomeFriend).attr('checked', false);
        $('#' + ctlDivPublic).hide();
        $('#' + ctlDivSomeFriends).hide();
        data = '';
        $('#' + this.ctlUlSelectedFriends).html('');
        $('#' + this.ViewableFriendsUl).html('');
        $('#' + this.DownloadableFriendsUl).html('');
        $('#' + this.AddtoProfileListUI).html('');

        $('#' + this.ViewableFriendsHiddenId).val('');
        $('#' + this.DownloadableFriendsHiddenId).val('');
        $('#' + this.AddtoProfileListHiddenId).val('');
        $('#' + this.ctlHdSelectedFriends).val();
    }
    function clearallPrivate() {
        $('#' + ctlChkAllFriends).attr('checked', false);
        $('#' + ctlChkSomeFriend).attr('checked', false);
        $("input[name=" + this.RadioButtonList1 + "][value='1']").attr("checked", true)
        $("input[name=" + this.RadioButtonList2 + "][value='1']").attr("checked", true)
        // $('#' + RadioButtonList1 + " [value=1]").attr("checked", "checked");

        $('#' + ctlDivAllFriends1).hide();
        $('#' + ctlChkSomeFriend).attr('checked', false);
        $('#' + ctlDivSomeFriends).hide();
        data = '';
        $('#' + this.ctlUlSelectedFriends).html('');
        $('#' + this.ViewableFriendsUl).html('');
        $('#' + this.DownloadableFriendsUl).html('');
        $('#' + this.AddtoProfileListUI).html('');

        $('#' + this.ViewableFriendsHiddenId).val('');
        $('#' + this.DownloadableFriendsHiddenId).val('');
        $('#' + this.AddtoProfileListHiddenId).val('');
        $('#' + this.ctlHdSelectedFriends).val();
    }

    function radio2Change(radname, radvalue) {

        var base = this;
        var radioButtons = $('#' + radname + ' input');
        for (var x = 0; x < radioButtons.length; x++) {
            if (radioButtons[x].value == radvalue) {
                $('#' + base.ctlHdRadio2Selected).val(radvalue);
                $('#' + base.radname + " [value=" + radioButtons[x].value + "]").attr("checked", "checked");
                // radioButtons[x].checked = true;
            }
            else {
                $('#' + base.radname + " [value=" + radioButtons[x].value + "]").removeAttr("checked");
            }
        }
    }

    function FunctionRemoveSelected(prmli) {
        var base = this;
        var uid = $(prmli).attr('relid');
        var username = $(prmli).find('span.myspan').html();
        $(prmli).remove();
        var data = '';
        data = $(' <li relid="' + uid + '" ><img src="images/uncheck.jpg" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
        $(data).click(function() { base.FunctionSelected(this); });
        $('#' + this.ctlUlAllFriends).append(data);
        $('#' + this.ctlHdSelectedFriends).val($('#' + this.ctlHdSelectedFriends).val().replace(uid + ',', ''));

        animatecheckbox();
    }

    function FunctionSelected(prmli) {
        var base = this;
        var uid = $(prmli).attr('relid');
        var username = $(prmli).find('span.myspan').html();
        $(prmli).remove()
        var data = '';
        data = $(' <li relid="' + uid + '" ><img src="images/cut.png" /><span class="myspan">' + username + '</span></li>');
        $(data).click(function() { base.FunctionRemoveSelected(this); });
        $('#' + this.ctlUlSelectedFriends).append(data);
        var uid = uid + ',';
        var oldval = $('#' + this.ctlHdSelectedFriends).val();
        $('#' + this.ctlHdSelectedFriends).val(oldval + uid);
        animatecheckbox();

    }




    function AddtoViewList() {

        var base = this;
        var ul = $('#' + this.ctldivSelected).find('li')
        for (var i = 0; i < ul.length; i++) {
            var uid = $(ul[i]).attr('relid');
            var username = $(ul[i]).find('span.myspan').html();
            $(ul[i]).remove();
            var data = '';
            data = $(' <li relid="' + uid + '" ><img src="images/check.png" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
            data.click(function() { base.FunctionRemoveView(this); });
            $('#' + base.ViewableFriendsUl).append(data);
            var oldval = $('#' + base.ViewableFriendsHiddenId).val();
            $('#' + base.ViewableFriendsHiddenId).val(oldval + uid + ',');
            $('#' + base.ctlHdSelectedFriends).val($('#' + base.ctlHdSelectedFriends).val().replace(uid + ',', ''));
        }
        animatecheckbox();
    }
    function AddtoDownloadList(listorhd) {
        var base = this;
        var ul = $('#' + this.ctldivSelected).find('li')
        for (var i = 0; i < ul.length; i++) {
            var uid = $(ul[i]).attr('relid');
            var username = $(ul[i]).find('span.myspan').html();
            $(ul[i]).remove();
            var data = '';
            data = $(' <li relid="' + uid + '" ><img src="images/check.png" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
            data.click(function() { base.FunctionRemoveDownload(this); });
            $('#' + base.DownloadableFriendsUl).append(data);
            var oldval = $('#' + base.DownloadableFriendsHiddenId).val();
            $('#' + base.DownloadableFriendsHiddenId).val(oldval + uid + ',');
            $('#' + base.ctlHdSelectedFriends).val($('#' + base.ctlHdSelectedFriends).val().replace(uid + ',', ''));
        }
        animatecheckbox();
    }
    function AddtoListProfile(listorhd) {

        var base = this;
        var ul = $('#' + this.ctldivSelected).find('li')
        for (var i = 0; i < ul.length; i++) {
            var uid = $(ul[i]).attr('relid');
            var username = $(ul[i]).find('span.myspan').html();
            $(ul[i]).remove();
            var data = '';
            data = $(' <li relid="' + uid + '"><img src="images/check.png" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
            data.click(function() { base.FunctionRemoveProfile(this); });

            $('#' + base.AddtoProfileListUI).append(data);
            var oldval = $('#' + base.AddtoProfileListHiddenId).val();
            $('#' + base.AddtoProfileListHiddenId).val(oldval + uid + ',');
            $('#' + base.ctlHdSelectedFriends).val($('#' + base.ctlHdSelectedFriends).val().replace(uid + ',', ''));
        }
        animatecheckbox();
    }

    function FunctionRemoveView(prmli) {
        var base = this;
        var uid = $(prmli).attr('relid');
        var username = $(prmli).find('span.myspan').html();
        $(prmli).remove();
        var data = '';
        data = $(' <li relid="' + uid + '" onclick="FunctionSelected(this);"><img src="images/uncheck.jpg" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
        data.click(function() { base.FunctionSelected(this); });
        $('#' + base.ctlUlAllFriends).append(data);
        $('#' + base.ViewableFriendsHiddenId).val($('#' + base.ViewableFriendsHiddenId).val().replace(uid + ',', ''));
        animatecheckbox();
    }
    function FunctionRemoveDownload(prmli) {
        var base = this;
        var uid = $(prmli).attr('relid');
        var username = $(prmli).find('span.myspan').html();
        $(prmli).remove();
        var data = '';
        data = $(' <li relid="' + uid + '" onclick="FunctionSelected(this);"><img src="images/uncheck.jpg" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
        data.click(function() { base.FunctionSelected(this); });
        $('#' + base.ctlUlAllFriends).append(data);
        $('#' + base.DownloadableFriendsHiddenId).val($('#' + base.DownloadableFriendsHiddenId).val().replace(uid + ',', ''));
        animatecheckbox();
    }
    function FunctionRemoveProfile(prmli) {
        var base = this;
        var uid = $(prmli).attr('relid');
        var username = $(prmli).find('span.myspan').html();
        $(prmli).remove();
        var data = '';
        data = $(' <li relid="' + uid + '" onclick="FunctionSelected(this);"><img src="images/uncheck.jpg" style="vertical-align:bottom" /><span class="myspan">' + username + '</span></li>');
        data.click(function() { base.FunctionSelected(this); });
        $('#' + base.ctlUlAllFriends).append(data);
        $('#' + base.AddtoProfileListHiddenId).val($('#' + base.AddtoProfileListHiddenId).val().replace(uid + ',', ''));
        animatecheckbox();
    }
    function ChangeDivs(dropdown) {
        $('#' + this.ctlDivPublic).show();
        $('#' + this.ctlHdDropVal).val($(dropdown).val());
        if ($(dropdown).val() == '1') {
            // $('#ctlDivPublic').show('slow');
            $('#' + this.ctlDivPublic).show('slow');
            this.clearallPrivate();
            $('div#' + this.ctlDivPrivate).block({ message: 'Public apply for all friends also' });

        }
        else {
            //$('#ctlDivPublic').hide('slow');
            $('#' + this.ctlDivPublic).hide('slow');
            if (editornot == "New") {
                this.SetPermissions('');
            }
            $('div#' + this.ctlDivPrivate).unblock();

        }

    }
    function ShowSomeFriendDiv(chk) {
        if ($(chk).is(':checked'))
            $('#' + this.ctlDivSomeFriends).show('slow');
        else
            $('#' + this.ctlDivSomeFriends).hide('slow');
    }
    function ShowSomeFriendDiv1(chk) {
        if ($(chk).is(':checked'))
            $('#' + this.ctlDivAllFriends1).show('slow');
        else
            $('#' + this.ctlDivAllFriends1).hide('slow');
    }

    function SetPermissions(userid) {
        this.clearall();
        var base = this;
        var datac = "{ 'UserId': '" + userid + "' }";
        var options = "";
        if (editornot == "New") {
            $("#" + base.ctlUlAllFriends).html('');
            datac = "{ 'UserId': '" + userid + "' }";
            options = {
                type: "POST",
                url: this.RequestUrl,
                data: datac,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(response) {
                    $(response.d).each(function() {
                        var data = '';
                        var data1 = '';
                        data = $('<li relid=' + this.UserId + '><img src="images/uncheck.jpg" style="vertical-align:bottom" /><span class="myspan">' + this.UserName + '</span></li>');
                        data.click(function() { base.FunctionSelected(this); });
                        $("#" + base.ctlUlAllFriends).append(data);
                        $('div#' + base.ctlDivPrivate).unblock();
                        animatecheckbox();
                    });
                }
            };

        }
        else {
            //base.ResetPermission();
            $('#' + base.ctlUlAllFriends).html('');
            $('#' + base.ViewableFriendsUl).html('');
            $('#' + base.DownloadableFriendsUl).html('');
            $('#' + base.AddtoProfileListUI).html('');
            datac = "{ 'ItemId': '" + editornot + "' }";
            options = {
                type: "POST",
                url: this.RequestUrlPermission,
                data: datac,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(response) {

                    $(response.d).each(function() {
                        var data = '';
                        if (this.Type == 0) {
                            data = $(' <li relid=' + this.UserId + '><img src="images/uncheck.jpg" style="vertical-align:bottom" /><span class="myspan">' + this.UserName + '</span></li>');
                            $(data).click(function() { base.FunctionSelected(this); });

                            $('#' + base.ctlUlAllFriends).append(data);
                        }
                        else if (this.Type == 1) {
                        data = $(' <li relid=' + this.UserId + ' ><img src="images/check.png" style="vertical-align:bottom" /><span class="myspan">' + this.UserName + '</span></li>');
                            $(data).click(function() { base.FunctionRemoveView(this); });

                            $('#' + base.ViewableFriendsUl).append(data);

                            $('#' + base.ViewableFriendsHiddenId).val($('#' + base.ViewableFriendsHiddenId).val() + this.UserId + ',');


                        }
                        else if (this.Type == 2) {
                        data = $(' <li relid=' + this.UserId + ' ><img src="images/check.png" style="vertical-align:bottom" /><span class="myspan">' + this.UserName + '</span></li>');
                            $(data).click(function() { base.FunctionRemoveDownload(this); });

                            $('#' + base.DownloadableFriendsUl).append(data);
                            $('#' + base.DownloadableFriendsHiddenId).val($('#' + base.DownloadableFriendsHiddenId).val() + this.UserId + ',');




                        }
                        else if (this.Type == 3) {
                        data = $(' <li relid=' + this.UserId + ' ><img src="images/check.png" style="vertical-align:bottom" /><span class="myspan">' + this.UserName + '</span></li>)');
                            $(data).click(function() { base.FunctionRemoveProfile(this); });

                            $('#' + base.AddtoProfileListUI).append(data);
                            $('#' + base.AddtoProfileListHiddenId).val($('#' + base.AddtoProfileListHiddenId).val() + this.UserId + ',');

                        }
                        animatecheckbox();
                    });
                }
            };

        }

        $.ajax(options);



        if (editornot != "New") {
            datac = "{ 'ItemId': '" + editornot + "' }";
            options1 = {
                type: "POST",
                url: this.RequestPermission,
                data: datac,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(response) {

                    $(response.d).each(function() {
                        var data = '';

                        $('#' + base.ctlDdlPublicPrivate).val(this.IsPublic);
                        $('#' + base.ctlHdDropVal).val(this.IsPublic);
                        if (this.IsPublic) {
                            $('div#' + base.ctlDivPrivate).unblock();
                            $('div#' + base.ctlDivPrivate).block({ message: 'Public apply for all friends also' });
                            $('#' + base.ctlDivPublic).show();
                        }
                        else {
                            $('div#' + base.ctlDivPrivate).unblock();
                            $('#' + base.ctlDivPublic).hide();
                        }
                        $('#' + base.ctlHdRadio1Selected).val(this.PublicScope);
                        $('#' + base.ctlHdRadio2Selected).val(this.PermissionId);


                        $('#' + base.RadioButtonList1 + " [value=" + this.PublicScope + "]").attr("checked", "checked");

                        $('#' + base.RadioButtonList2 + " [value=" + this.PermissionId + "]").attr("checked", "checked");
                    });
                }
            };
            $.ajax(options1);


        }


    }
}

function animatecheckbox() {
    $('input:checkbox').checkbox({ cls: 'jquery-safari-checkbox', empty: emptyurl });
}

