﻿jQuery.noConflict();

jQuery(document).ready(function () {

    jQuery("#findByGroup").hide();
    jQuery("#rdbthSearch").attr('checked', 'checked');

    jQuery("#UserInGroupContainer").hide();
    jQuery("#EditUserContainer").hide();
    jQuery(".load").hide();
    jQuery("#findByGroup").hide();
    jQuery("#findByGroupContainer").hide(); //
    jQuery("#UserInSearchContainer").hide();

    jQuery("input[name=group2]").change(function () {
        var currentButton = jQuery(this).val();
        jQuery(".filter").hide();
        jQuery("#" + currentButton).show();
        jQuery("#EditUserContainer").hide();
        jQuery("#UserInGroupContainer").hide();
    }); 

    jQuery("input[name=TxtBxSearchFullName]").keyup(function () {
        if (jQuery("#TxtBxSearchFullName").val().length >= 2) {
            jQuery("#TxtBxSearchEmail").val('');
            SearchByName(jQuery("#TxtBxSearchFullName").val()); //
        }
    });

    jQuery("input[id=TxtBxSearchEmail]").keyup(function () {
        if (jQuery("#TxtBxSearchEmail").val().length >= 2) {
            jQuery("#TxtBxSearchFullName").val('');
            SearchByEmail(jQuery("#TxtBxSearchEmail").val()); //
        }
    });

    jQuery('.closeSpan').click(function () {
        var currentDiv = jQuery(this).val();
        currentDiv.replace('_', '');
        jQuery('#' + currentDiv).fadeOut('slow');
    });

    // using in Unsubscribe.ascx
    jQuery("#unSubscribeSuccesFormContainer").hide();
    jQuery('#unSubscribeFail').hide();
    // /using in Unsubscribe.ascx
});

function doRenderUserFromRoleList(e) {
    q = e;
    jQuery("#loadDiv").show();
    jQuery('#saveDiv').hide();
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/RenderUserFromRoleList',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            jQuery("#UserInGroupContainer").show();
            handleRenderResult(msg.d);
            jQuery("#EditUserContainer").hide();
            jQuery('#loadDiv').fadeOut('slow');
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });


    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/EcmGroupSession',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}

function handleRenderResult(result) {

    var x = "<tr class=\"trRow\">" +
			"   <td class=\"tdCellFirst\">" +
            "       <a onclick=\"editEcmUser('${UserName}');\" href=\"javascript:;\">${FullName}</a>" +
			"   </td>" +
			"   <td class=\"tdCellSecond\">" +
            "       ${Email}" +
			"   </td>" +
			"   <td class=\"tdCellThird\">" +
            "       ${StreetAdress}<br /> ${ZipCode} ${City}" +
			"   </td>" +
            "</tr>";

    //jQuery("#UserInGroupContainer").show();

    // create template
    jQuery.template("itemTemplate", x);
    jQuery('#ecmUsersList .trRow').remove();
    // add new items to code in front.
    jQuery.tmpl("itemTemplate", result).appendTo("#ecmUsersList");
}

function editEcmUser(e) {
    q = e;
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/EditUser',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            handleEditUserResult(msg.d);
            //jQuery('#cloneThis').clone().appendTo('#EcmGroups'); 
            getEcmGroups(q);
        },
        error: function (xhr, status, error) {
//            console.log(error);
        }
    });
}

function handleEditUserResult(result) {
    var x = "<div class=\"row\">" + //
			"   <div class=\"text\">" +
			"       <table>" +
            "               <tr><td>Name: </td><td><input id=\"TxtBxFullName\" type=\"textbox\" value=\"${FullName}\" /></td><tr>" +
            "               <tr><td>Mail: </td><td><input id=\"TxtBxEmail\" type=\"textbox\" value=\"${Email}\" /></td><tr>" +
            "               <tr><td>Adress: </td><td><input id=\"TxtBxStreetAdress\" type=\"textbox\" value=\"${StreetAdress}\" /></td><tr>" +
            "               <tr><td>City: </td><td><input id=\"TxtBxCity\" type=\"textbox\" value=\"${City}\" /></td><tr>" +
            "               <tr><td>Zipcode: </td><td><input id=\"TxtBxZipCode\" type=\"textbox\" value=\"${ZipCode}\" />" +
            "               <input id=\"HddnUserName\" type=\"hidden\" value=\"${UserName}\" /></td><tr>" +
			"       </table>" +
			"   </div>" +
			"   <div class=\"clear\"></div>" +
            "</div>";

    jQuery("#EditUserContainer").show();
    // create template
    jQuery.template("itemTemplate", x);
    jQuery('#ecmEditUser .row').remove();
    // add new items to code in front.
    jQuery.tmpl("itemTemplate", result).appendTo("#ecmEditUser");

}
function saveUser() {

    var fullName = jQuery("#TxtBxFullName").val();
    var email = jQuery("#TxtBxEmail").val();
    var userName = jQuery("#HddnUserName").val();
    var userStreetAdress = jQuery("#TxtBxStreetAdress").val();
    var userCity = jQuery("#TxtBxCity").val();
    var userZipCode = jQuery("#TxtBxZipCode").val();

    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/SaveUser',
        data: "{'userName':'" + userName + "','fullName':'" + fullName + "','email':'" + email + "','userStreetAdress':'" + userStreetAdress + "','userCity':'" + userCity + "','userZipCode':'" + userZipCode + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            jQuery('#saveDiv').fadeIn().delay(2000).fadeOut('slow');
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}

function deleteUser() {

    var fullName = jQuery("#TxtBxFullName").val();
    var email = jQuery("#TxtBxEmail").val();
    var userName = jQuery("#HddnUserName").val();

    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/DeleteUser',
        data: "{'userName':'" + userName + "','fullName':'" + fullName + "','email':'" + email + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            jQuery('#deleteUserDiv').fadeIn().delay(2000).fadeOut('slow');
            //saveUserResult(msg.d);
            jQuery('#ecmEditUser .row').remove();
            jQuery('#ecmUsersList .row').remove();
            jQuery("#UserInGroupContainer").hide();
            jQuery("#EditUserContainer").hide();

            if (jQuery('#TxtBxSearchEmail').val().length > 0) {
                SearchByEmail(jQuery('#TxtBxSearchEmail').val());
            }
            else if (jQuery('#TxtBxSearchFullName').val().length > 0) {
                SearchByName(jQuery('#TxtBxSearchFullName').val());
            }

        },
        error: function (xhr, status, error) {
            //            console.log(xhr);
            //            console.log(status);
            //            console.log(error);
        }
    });
}
function getEcmGroups(e) {
    q = e;
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/RenderRoleList',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            handleEcmGroupsResult(msg.d);
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}

function handleEcmGroupsResult(result) {
    var x = "<div class=\"row\">" + //
			"   <div class=\"text\">" +
			"       <div class=\"innerPadding\">" +
            "               <label><input onclick=\"saveGroupForUser('${RoleName}', '${RoleNameWhiteSpaceRemoved}');\" class=\"ChckBxRoleName\" id=\"${RoleNameWhiteSpaceRemoved}\" value=\"${RoleName}\" type=\"checkbox\" ${IsMemberOfGroup} /> ${RoleName}</label>" + //
			"       </div>" +
			"   </div>" +
			"   <div class=\"clear\"></div>" +
            "</div>";

    // create template
    jQuery.template("itemTemplate", x);
    jQuery('#EcmGroups .row').remove();
    // add new items to code in front.
    jQuery.tmpl("itemTemplate", result).appendTo("#EcmGroups");

}

function saveGroupForUser(e, f) {

    var groupName = e;
    var checkboxId = '#' + f;
    var userName = jQuery('#HddnUserName').val();
    var addToGroup = jQuery(checkboxId).attr("checked");
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/SaveGroupsForUser',
        data: "{'userName':'" + userName + "','groupName':'" + groupName + "','addToGroup':'" + addToGroup + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            jQuery('#saveDiv').fadeIn().delay(2000).fadeOut('slow');
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}

function SearchByName(q) {
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/SearchByName',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            jQuery("#UserInSearchContainer").show();
            handleSearchResult(msg.d);
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}
function SearchByEmail(q) {
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/SearchByEmail',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            jQuery("#UserInSearchContainer").show();
            handleSearchResult(msg.d);
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}
function handleSearchResult(result) {

//    var x = "<tr class=\"trRow\">" +
//			"   <td class=\"tdCellFirst\">" +
//            "       <a onclick=\"editEcmUser('${UserName}');\" href=\"javascript:;\">${FullName}</a>" +
//			"   </td>" +
//			"   <td class=\"tdCellSecond\">" +
//            "       ${Email}" +
//			"   </td>" +
//			"   <td class=\"tdCellThird\">" +
//            "   &nbsp;" +
//			"   </td>" +
//            "</tr>";
    var x = "<tr class=\"trRow\">" +
			"   <td class=\"tdCellFirst\">" +
            "       <a onclick=\"editEcmUser('${UserName}');\" href=\"javascript:;\">${FullName}</a>" +
			"   </td>" +
			"   <td class=\"tdCellSecond\">" +
            "       ${Email}" +
			"   </td>" +
			"   <td class=\"tdCellThird\">" +
            "       ${StreetAdress}<br /> ${ZipCode} ${City}" +
			"   </td>" +
            "</tr>";

    jQuery("#UserInGroupContainer").show();

    // create template
    jQuery.template("itemTemplate", x);
    jQuery('#ecmUsersSearchList .trRow').remove();
    // add new items to code in front.
    jQuery.tmpl("itemTemplate", result).appendTo("#ecmUsersSearchList");
}

// ----------- using in Unsubscribe.ascx ----------- 
function UnSubscribeUser() {

    q = jQuery('#txtBxEmail').val();
    jQuery.ajax({
        type: 'POST',
        url: '/ws/AdminWebService.asmx/UnSubscribeUser',
        data: "{'q':'" + q + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        timeout: 100000,
        success: function (msg) {
            handleUnSubscribeUser(msg.d);
        },
        error: function (xhr, status, error) {
//            console.log(xhr);
//            console.log(status);
//            console.log(error);
        }
    });
}
function handleUnSubscribeUser(result) {
    if (result == true) {
        jQuery('#unSubscribeFormContainer').hide();
        jQuery('#unSubscribeFail').show();
        jQuery("#unSubscribeSuccesFormContainer").show();
    }
    else {
        jQuery('#unSubscribeFormContainer').show(); 
        jQuery('#unSubscribeFail').show(); 
    }
}

//  ----------- /using in Unsubscribe.ascx ----------- 

