﻿//Public Variables
var SelectedNetworks = new Array();
var NetworkPopUpLauncherID;
var NetworkPrepopulated = false;
var personalNetworkName = "PERSONAL NETWORKS";
var professionalNetworkName = "PROFESSIONAL NETWORKS";

//Start of Network Prepopulation Fix

function FixPrepopulationOnClose() {
    if (NetworkPrepopulated == true) {
        if (NetworkPopUpLauncherID) {
            //document.getElementById(NetworkPopUpLauncherID).setAttribute("name", "");
        }
    }
    NetworkPrepopulated = false;
}

// End of Network Prepopulation Fix

//Start of Select All

function SelectAll(checkboxName) {
    RemoveNetworkFromArray(document.getElementsByName("PUBLIC")[0].id);
    var i = 0;
    while (document.getElementsByName(checkboxName)[i])
    {
        document.getElementsByName(checkboxName)[i].checked = true;
        AddNetworkToArrayExplicit(document.getElementsByName(checkboxName)[i].id)
        i++;
    }
}

//End of Select All

//Start of Get Added Networks

function AddNetworks(rowIndex) {
    var Temp = new Array();
    Temp = NetworkPopUpLauncherID.split("#");

    var strTemp = ArrayToString();

    PageMethods.SetNetworks(Temp[0], Temp[1], strTemp, AddNetworksCallBack, RedirectToLoginPage);
    ClosePopup();
}

function AddNetworksCallBack(result) {
    if (result[3] == "popup") {
        document.getElementById(NetworkPopUpLauncherID).innerHTML = result[0];
        document.getElementById(NetworkPopUpLauncherID).setAttribute("name", result[1]);
    }
    else if (result[3] == "grid") {
        document.getElementById(NetworkPopUpLauncherID).innerHTML = result[0];
        document.getElementById(NetworkPopUpLauncherID).setAttribute("name", result[1]);
        Validate(NetworkPopUpLauncherID)//Get the cell corresponding to the network popup
    }
    else {
        RenderNewGrid(result);
        document.getElementById(NetworkPopUpLauncherID).setAttribute("name", "");
    }
}

//End of Get Added Networks

//Start of Array to String

function ArrayToString() {
    var strTemp = "";

    for (var counter = 0; counter < SelectedNetworks.length; counter++) {
        strTemp += SelectedNetworks[counter] + "#";
    }

    return strTemp;
}

//End of Array to String

//Start of String to Array

function StringToArray() {
    if (document.getElementById(NetworkPopUpLauncherID).getAttribute("name")) {
        SelectedNetworks = null;
        SelectedNetworks = document.getElementById(NetworkPopUpLauncherID).getAttribute("name").split("#");
        for (var counter = 0; counter < SelectedNetworks.length; counter++) {
            if (SelectedNetworks[counter] == "") {
                SelectedNetworks.splice(counter, 1);
            }
        }
    }
}

//End of String to Array

//Start of Add/Remove Network To/From Array

function AddNetworkToArrayExplicit(NetworkId) {
    var IsinArray = false;
    for (var counter = 0; counter < SelectedNetworks.length; counter++) {
        if (NetworkId == SelectedNetworks[counter]) {
            IsinArray = true;
        }
    }
    if (IsinArray == false) {
        SelectedNetworks.push(NetworkId);
    }
}

function RemoveNetworkFromArray(NetworkId) {

    var IsinArray = false;
    for (var counter = 0; counter < SelectedNetworks.length; counter++) {
        if (NetworkId == SelectedNetworks[counter]) {
            document.getElementById(NetworkId).checked = false;
            SelectedNetworks.splice(counter, 1);
        }
    }
}

function AddNetworkToArray(NetworkId) {
    var IsinArray = false;

    //Uncheck all Non public networks if public is clicked
    if (document.getElementById(NetworkId).getAttribute("name") == "PUBLIC") {
        var i = 0;
        while (document.getElementsByName(personalNetworkName)[i]) {
            RemoveNetworkFromArray(document.getElementsByName(personalNetworkName)[i].id)
            i++;
        }
        i = 0;
        while (document.getElementsByName(professionalNetworkName)[i]) {
            RemoveNetworkFromArray(document.getElementsByName(professionalNetworkName)[i].id)
            i++;
        }
    }//Uncheck Public Network if Any other Network is clicked
    else {
        RemoveNetworkFromArray(document.getElementsByName("PUBLIC")[0].id)        
    }

    for (var counter = 0; counter < SelectedNetworks.length; counter++) {
        if (NetworkId == SelectedNetworks[counter]) {
            IsinArray = true;
        }
    }
    if (IsinArray == false) {
        SelectedNetworks.push(NetworkId);
    }
    else {
        for (counter = 0; counter < SelectedNetworks.length; counter++) {
            if (NetworkId == SelectedNetworks[counter]) {
                SelectedNetworks.splice(counter, 1);
            }
        }
    }
}

//End of Added Network To Array

//Start of Reset Selected Networks

function ResetSelectedNetworks(popUpLauncherID)
{
    SelectedNetworks.splice(0, SelectedNetworks.length);
    NetworkPopUpLauncherID = popUpLauncherID;
    StringToArray();
}

//End of Reset Selected Networks
