function generateHtmlRow(repoData)
{
    var html = "<tr class=\"table_row\">";
    html+="<td><a href='" + repoData.url + "'>" + repoData.name +  "</a></td>";
    html+="<td>" + repoData.forks +  "</td>";
    html+="<td>" + repoData.language +  "</td>";
    html +="</tr>";
    return html;
}


var repos = [];

function fetchAllRepositories(orgName, page)
{
    return new Promise(function(resolve, reject)
    {
        queryAPIByOrg(API_REPOSITORIES + "?page=" + page, orgName,
            function(data)
            {
                repos.push(...data);

                if (data.length === 30)
                {
                    fetchAllRepositories(orgName, page + 1).then(function ()
                    {
                        resolve();
                    })
                }
                else {
                    resolve();
                }
            },
            function(error)
            {
                //console.log("Unable to load table data");
            });
    });
}


function createOrgTable(orgName, tableContainer)
{
    var html = "";


    fetchAllRepositories(orgName, 1).then(function()
    {
        for(var i=0; i < repos.length; i++)
        {
            html += generateHtmlRow(repos[i]);
        }

        $("#" + tableContainer).html(html);

        setTimeout(function() {
            $('#dataTable').DataTable();
        }, 1500);
    }).catch(function(error)
    {
        //console.log("Unable to create table");
    });
}