﻿function SelectUsersSaveDisplayState(popupid, stateid) {
    var popup = cp_GetElement(popupid);
    if (popup)
        cp_SetValue(stateid, popup.style.display);
    return true;
}
function SelectUsersUpdateUserListCheckbox(contextid, userid, checked) { 
    if (new String(userid).indexOf('E', 0) == 0)
        return;
    var checkbox = cp_GetElement(contextid + "_CheckBoxFriend_" + userid);
    if (checkbox) {
        if (checkbox.checked != checked)
            checkbox.checked = checked;
    }
    checkbox = cp_GetElement(contextid + "_CheckBoxUser_" + userid);
    if (checkbox) {
        if (checkbox.checked != checked)
            checkbox.checked = checked;
    }
    checkbox = cp_GetElement(contextid + "_CheckboxFederation_" + userid);
    if (checkbox) {
        if (checkbox.checked != checked)
            checkbox.checked = checked;
    }
}
function SelectUsersUserDivId(userid) {
    var newdivid = "SelectedUser_" + userid;
    return newdivid;
}
function SelectUsersIsUserSelected(userid, selectedhiddenid) {
    var selinput = cp_GetElement(selectedhiddenid);
    if (selinput) {
        var sel = new String(selinput.value);
        if (sel.indexOf("\t" + userid + "\t\t", 0) >= 0)
            return true;
    }
    return false;
}
function SelectUsersSelectUser(select, username, userid, selectedhiddenid) {
    var selinput = cp_GetElement(selectedhiddenid);
    if (! selinput)
        return;
    var sel = new String(selinput.value);
    var key = username + "\t" + userid + "\t\t";
    if (select)
        sel = sel.concat(key);
    else
        sel = sel.replace(key, "");
    selinput.value = sel;
}
function SelectUsersAddUser(contextid, newdivid, username, userid, selectedhiddenid, selecteddivid) { 
    if (SelectUsersIsUserSelected(userid, selectedhiddenid))
        return false;

    var div = cp_GetElement(selecteddivid);
    if (!div)
        return false;

    var newdiv = document.createElement("DIV");
    newdiv.id = newdivid;
    div.appendChild(newdiv);
    var newspan = document.createElement("SPAN");
    newspan.innerHTML = username;
    newdiv.appendChild(newspan);
    var newinput = document.createElement("INPUT");
    newinput.type = "image";
    newinput.src = "/Images/Delete16.png";
    newinput.onclick = function() { return SelectUsersRemoveUserClick(contextid, newinput, username, userid, selectedhiddenid) }
    newdiv.appendChild(newinput);
    SelectUsersSelectUser(true, username, userid, selectedhiddenid)
    SelectUsersUpdateUserListCheckbox(contextid, userid, true);
    return true;
}
function SelectUsersAddUserByIdName(contextid, username, userid, selectedhiddenid, selecteddivid) {
    SelectUsersAddUser(contextid, SelectUsersUserDivId(userid), username, userid, selectedhiddenid, selecteddivid);
}
function SelectUsersUserListCheckboxClick(contextid, checkbox, username, userid, selectedhiddenid, selecteddivid) { 
    if (checkbox.checked) {
        SelectUsersAddUserByIdName(contextid, username, userid, selectedhiddenid, selecteddivid);
    } else {
        SelectUsersRemoveUserClick(contextid, null, username, userid, selectedhiddenid);
    }
    return true;
}
function SelectUsersRemoveUserClick(contextid, removebutton, username, userid, selectedhiddenid) { 
    var div
    if (removebutton)
        div = removebutton.parentNode;
    if ( ! div )
        div = cp_GetElement(SelectUsersUserDivId(userid));
    if (div)
        div.parentNode.removeChild(div);
    SelectUsersSelectUser(false, username, userid, selectedhiddenid)
    SelectUsersUpdateUserListCheckbox(contextid, userid, false);

    return false;
}
SelectUsersEmailRegExp = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
function SelectUsersCheckEmail(email) {
    var OK = SelectUsersEmailRegExp.exec(email);

    if (OK) {
        if (OK[0] == email)
            return true;
    }
    return false;
}
function SelectUsersAddEmail(contextid, textnameid, spannameid, textemailid, spanemailid, selectedhiddenid, selecteddivid) { 
    var username = cp_GetValue(textnameid);
    var email = cp_GetValue(textemailid);
    if (!username)
        username = '';
    if (!email)
        email = '';
    var ok = true;
    if (username == '') {
        cp_ShowHide(spannameid, true);
        ok = false;
    } else
        cp_ShowHide(spannameid, false);
    if ( ! SelectUsersCheckEmail(email)) {
        cp_ShowHide(spanemailid, true);
        ok = false;
    } else
        cp_ShowHide(spanemailid, false);
    if (!ok)
        return false;
    SelectUsersAddUser(contextid, '', username, 'E' + email, selectedhiddenid, selecteddivid);
    cp_SetValue(textnameid, '');
    cp_SetValue(textemailid, '');
    return false;
}
function SelectUsersSelectEmail(contextid, textnameid, spannameid, textemailid, spanemailid, selectedhiddenid, selecteddivid) {
    var username = cp_GetValue(textnameid);
    var email = cp_GetValue(textemailid);
    if (!username)
        username = '';
    if (!email)
        email = '';
    var ok = true;
    if (username == '') {
        cp_ShowHide(spannameid, true);
        ok = false;
    } else
        cp_ShowHide(spannameid, false);
    if (!SelectUsersCheckEmail(email)) {
        cp_ShowHide(spanemailid, true);
        ok = false;
    } else
        cp_ShowHide(spanemailid, false);
    if (!ok)
        return false;
    return ok;
}
function SelectUsersSelectUnknownUser(contextid, textnameid, spannameid, textemailid, spanemailid, selectedhiddenid, selecteddivid) {
    var username = cp_GetValue(textnameid);
    var email = cp_GetValue(textemailid);

    if (!username)
        username = '';


    if (!email) {
        email = '';
    }

    var ok = true;
    if (username == '') {
        cp_ShowHide(spannameid, true);
        ok = false;
    }
    else {
        cp_ShowHide(spannameid, false);
    }
    if (!SelectUsersCheckEmail(email)) {
        cp_ShowHide(spanemailid, true);
        ok = false;
    } else {
        cp_ShowHide(spanemailid, false);
    }
    if (!ok) {
        return false;
    }
    
    return ok;
}



function SelectUsersShowPopup(id, bgrid, stateid, show) {
    cp_ShowHide(id, show);
    cp_ShowHide(bgrid, show);
    cp_SetValue(stateid, show ? 'block' : 'none');
    return false;
}
function SelectUsersShowPopupCustomData(id, bgrid, stateid, show, customid, customvalue) {
    cp_SetValue(customid, customvalue);
    return SelectUsersShowPopup(id, bgrid, stateid, show);
}
function SelectUsersReset(selectedhiddenid, selecteddivid) {
    var div1 = cp_GetElement(selecteddivid);
    var child = div1.firstChild;
    while (child != null) {
        var nextchild = child.nextSibling;
        div1.removeChild(child);
        child = nextchild;
    }
    cp_SetValue(selectedhiddenid, '');
}

