S1910752 - Packages Builder

version 8 = south Asian version 9 = Chinese version 11 = arabic overhaul version 12 = chinese overhaul (correct)

by dixalex

HTML

<table id='data'>
    <tbody>
        <tr>
            <td>JADE</td>
            <td>JADE, CCTV 4</td>
            <td>CANTONESE PACK</td>
            <td>PHOENIX NORTH AMERICA AND PHOENIX INFO NEWS</td>
            <td>MANDARIN PACK</td>
        </tr>
        <tr>
            <td>$9.99/mo.</td>
            <td>$14.99/mo.</td>
            <td>$14.99/mo.</td>
            <td>$6.99/mo.</td>
            <td>$24.99/mo.</td>
        </tr>
        <tr>
            <td>TVB</td>
            <td>CCTV 4</td>
            <td>TVB</td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td>TVB</td>
            <td>TVB DRAMA</td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td>TVB1</td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td>TVB2</td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td>TVBE</td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
            <td>TVBS</td>
            <td></td>
            <td></td>
        </tr>

    </tbody>
</table>

CSS

table {
    border: solid 1px #000;
    border-collapse: collapse;
    display: none;
}

td {
    border: solid 1px #000;
    text-align: center;
}

ul {
    border: solid 1px #000;
}

JavaScript

var lists = [];
var listArray = [];
buildLists();

function arrayFunction() {
    $('#data tr:eq(0)').find('td').not('td:empty').each(function() {
        listArray.push($(this).html());
    });
}

arrayFunction()

//console.log(listArray);

for (i = 0, z = listArray.length; i < z; i++) {
    var headerName = listArray[i];
    var itemPrice = '';
    $('body').append("<ul class='col" + i + "'><li class='channelHeader'><h5>" + headerName + "</h5></li></ul>");
    var sublist = lists[headerName].toString().split(',');
    console.log(sublist);
    for (c = 1, b = sublist.length; c < b; c++) {
        if (sublist[c].match(/\$/gi)) {
            itemPrice = sublist[c].toString();
            itemPrice = itemPrice.replace("/mo.", "");
            itemPrice = itemPrice.replace("$", "");
            $('ul.col' + i).append("<li><h5 class='channelPrice' data-price='" + itemPrice + "'>" + sublist[c] + "</h5></li>");
        } else {
            $('ul.col' + i).append("<li>" + sublist[c] + "</li>");
        }

    }
}

//console.log(JSON.stringify(lists, null, '	'));

//console.log(lists);

//console.log(lists["WILLOW ADD-ON: $6.99"]);

//console.log(listArray);
function buildLists() {
    $('#data tbody tr td').each(function() {
        var columnIndex = $(this).closest('tr').children().index($(this));
        var rowIndex = $(this).closest('tbody').children().index($(this).closest('tr'));
        if ($(this).html() !== '') {
            var columnHeader = getTableCellValue('data', 0, columnIndex);
            var rowHeader = getTableCellValue('data', rowIndex, columnIndex);

            //console.log('hit at ' + rowIndex + ' ' + columnIndex);
            //console.log(getTableCellValue('data', rowIndex, columnIndex));
            //console.log(columnHeader + ' : ' + rowHeader);

            if (!lists[columnHeader]) {
                lists[columnHeader] = [];
            }

            lists[columnHeader].push(rowHeader);
        };
    });
};

function...