﻿function ToggleSC(img, gridId, scRow, divId, tournId, rowId, innerRows) {
    var tr = document.getElementById(scRow);
    var tb = tr.parentNode;
    var trNext = tr;
    var i;
    var grid = document.getElementById(gridId);
    for (i = 0; i < (innerRows + 1); i++) {
        trNext = trNext.nextSibling;
    }

    //Check to see if this is a close or open
    var bVisible = false;
    if (trNext && trNext.nodeName == 'TR' && trNext.id.substr(0, 6) == 'SCRow_')
        bVisible = true;

    if (bVisible) {
        grid.deleteRow(trNext.rowIndex);
    } else {
        var trNew;
        var data = document.getElementById(divId);
        var asRows;
        if (navigator.userAgent.indexOf(' MSIE ') > -1) {
            asRows = data.innerHTML.split("<BR>");
        } else {
            asRows = data.innerHTML.split("<br>");
        }
        var asData;
        var tdNew;
        var tableNew;

        var trInner;
        var tdInner;
        var tbNew;

        //Build new row and cell to put scorecard table into
        trNew = document.createElement('tr');
        trNew.id = 'SCRow_' + rowId;
        trNew.className = tr.className;
        trNew.style.borderTop = '1px solid Black';
        trNew.style.borderBottom = '1px solid Black';
        tdNew = document.createElement('td');
        tdNew.colSpan = tr.cells.length
        tdNew.align = 'center';

        //Build scorecard table
        var bMatch = false;
        if (rowId.substr(0, 1) == 'M')
            bMatch = true;
        tableNew = document.createElement('table');
        tableNew.className = 'SCInline';
        tableNew.border = '0';
        tableNew.cellPadding = '1';
        tableNew.cellSpacing = '1';
        tbNew = document.createElement('tbody');
        if (!bMatch) {
            AddStrokeCardHoleRow(tbNew);
        }
        var aiPar = new Array();
        var aiCss = new Array();
        for (var iRowIndex = 0; iRowIndex < asRows.length; iRowIndex++) {
            if (asRows[iRowIndex] != '') {
                var eStatus;
                trInner = document.createElement('tr');
                asData = asRows[iRowIndex].split("|");
                eStatus = asData[0];
                switch (eStatus) {
                    case 'H':
                        trInner.className = 'SCHeaderRowInline';
                        break;
                    case 'P':
                        trInner.className = 'SCParRowInline';
                        break;
                    case 'S':
                    case 'A':
                    case 'B':
                    case 'C':
                    case 'D':
                        trInner.className = 'HBHInline';
                        break;
                }
                for (var iCellIndex = 1; iCellIndex < asData.length; iCellIndex++) {
                    tdInner = document.createElement('td');
                    tdInner.innerHTML = asData[iCellIndex];
                    if (iCellIndex == 1) {
                        //Style cell
                        switch (eStatus) {
                            case 'H':
                                if (bMatch) {
                                    tdInner.className = 'MatchColTitleInline';
                                } else {
                                    tdInner.className = 'SCTitleInline';
                                }
                                trInner.appendChild(tdInner);
                                break;
                            case 'S':
                                tdInner.className = 'HBHName';
                                trInner.appendChild(tdInner);
                                break;
                            case 'C':
                            case 'B':
                                tdInner.rowSpan = '2';
                                trInner.appendChild(tdInner);
                                break;
                            case 'P':
                                trInner.appendChild(tdInner);
                                break;
                        }
                    } else {
                        //Style cell
                        switch (eStatus) {
                            case 'H':
                                tdInner.className = 'MatchColScoreInline';
                                trInner.appendChild(tdInner);
                                break;
                            case 'S':
                                tdInner.className = 'HBH';
                                trInner.appendChild(tdInner);
                                break;
                        }

                        if (eStatus == 'N') {
                            //Collect style info for next score row
                            aiCss[iCellIndex] = asData[iCellIndex];
                        } else {
                            //Style this cell
                            if (aiCss.length >= iCellIndex) {
                                tdInner.className = aiCss[iCellIndex];
                                aiCss[iCellIndex] = ''; //Clear style behind so isn't applied further down
                            }
                        }
                        trInner.appendChild(tdInner);
                    }
                }
                if (eStatus != 'N')
                    tbNew.appendChild(trInner);
            }
        }
        tableNew.appendChild(tbNew);
        tdNew.appendChild(tableNew);
        trNew.appendChild(tdNew);
        if (trNext) {
            tb.insertBefore(trNew, trNext);
        } else {
            tb.appendChild(trNew);
        }
    }

    //Swap expand image for collapse
    if (img) {
        if (bVisible) {
            img.src = "images/expand.gif";
        } else {
            img.src = "images/collapse.gif";
        }
    }

    //Set cookie
    var d = new Date();
    if (bVisible) {
        d.setTime(d.getTime() - (24 * 60 * 60 * 1000));
        document.cookie = 'ExpandStateT' + tournId + 'R' + rowId + '=0;expires=' + d.toGMTString();
    } else {
        d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 1000));
        document.cookie = 'ExpandStateT' + tournId + 'R' + rowId + '=T' + tournId + 'R' + rowId + ';expires=' + d.toGMTString();
    }
}

function AddStrokeCardHoleRow(tbNew) {
    trInner = document.createElement('tr')
    trInner.className = 'SCHeaderRowInline';
    tdInner = document.createElement('td')
    tdInner.className = 'SCTitleInline';
    tdInner.innerHTML = 'Hole';
    trInner.appendChild(tdInner);
    for (i = 1; i <= 18; i++) {
        tdInner = document.createElement('td')
        tdInner.className = 'SCHoleInline';
        tdInner.innerHTML = i;
        trInner.appendChild(tdInner);
    }
    tbNew.appendChild(trInner);
}

var timerId = 0;
function SCHoverHandler(target, gwp, matchId, divId, scId, position, offsetX, offsetY) {
    timerId = setTimeout("ToggleHoverSC('" + target + "','" + gwp + "','" + matchId + "','" + divId + "','" + scId + "'," + position + "," + offsetX + "," + offsetY + ")", 250);
}

function SCHoverOut() {
    if (timerId != 0)
        clearTimeout(timerId);
}

function ToggleHoverSC(target, gwp, matchId, divId, scId, position, offsetX, offsetY) {
    //Get the scorecard layer and initialize it
    timerId = 0;
    var divSC = $get(scId);
    //var divSC = document.getElementById(scId);
    if (divSC && divSC.childNodes && divSC.childNodes.length > 0)
        divSC.removeChild(divSC.childNodes[0]);

    //Build the scorecard
    var asData;
    var tableNew;
    var trInner;
    var tdInner;
    var tbNew;
    var sCaption;
    var data = $get(divId);
    //var data = document.getElementById(divId);
    var asRows;
    if (navigator.userAgent.indexOf(' MSIE ') > -1) {
        asRows = data.innerHTML.split("<BR>");
    } else {
        asRows = data.innerHTML.split("<br>");
    }
    tableNew = document.createElement('table');
    tableNew.className = 'SCInline';
    tableNew.border = '0';
    tableNew.cellPadding = '1';
    tableNew.cellSpacing = '1';
    tbNew = document.createElement('tbody');
    var aiPar = new Array();
    var aiCss = new Array();
    for (var iRowIndex = 0; iRowIndex < asRows.length; iRowIndex++) {
        if (asRows[iRowIndex] != '') {
            var eStatus;
            trInner = document.createElement('tr');
            asData = asRows[iRowIndex].split("|");
            eStatus = asData[0];
            switch (eStatus) {
                case 'H':
                    trInner.className = 'SCHeaderRow';
                    break;
                case 'P':
                    trInner.className = 'SCParRow';
                    break;
                case 'S':
                case 'A':
                case 'B':
                case 'C':
                case 'D':
                    trInner.className = 'HBHInline';
                    break;
            }
            for (var iCellIndex = 1; iCellIndex < asData.length; iCellIndex++) {
                tdInner = document.createElement('td');
                tdInner.innerHTML = asData[iCellIndex];
                if (iCellIndex == 1) {
                    //Style cell
                    switch (eStatus) {
                        case 'H':
                            tdInner.className = 'SCTitleInline';
                            trInner.appendChild(tdInner);
                            break;
                        case 'S':
                            tdInner.className = 'HBHName';
                            trInner.appendChild(tdInner);
                            break;
                        case 'C':
                        case 'B':
                            tdInner.rowSpan = '2';
                            trInner.appendChild(tdInner);
                            break;
                        case 'P':
                            trInner.appendChild(tdInner);
                            break;
                        case 'T':
                            sCaption = asData[iCellIndex];
                            break;
                    }
                } else {
                    //Style cell
                    switch (eStatus) {
                        case 'H':
                            tdInner.className = 'MatchColScoreInline';
                            trInner.appendChild(tdInner);
                            break;
                        case 'S':
                            tdInner.className = 'HBH';
                            trInner.appendChild(tdInner);
                            break;
                    }

                    if (eStatus == 'N') {
                        //Collect style info for next score row
                        aiCss[iCellIndex] = asData[iCellIndex];
                    } else {
                        //Style this cell
                        if (aiCss.length >= iCellIndex) {
                            tdInner.className = aiCss[iCellIndex];
                            aiCss[iCellIndex] = ''; //Clear style behind so isn't applied further down
                        }
                    }
                    trInner.appendChild(tdInner);
                }
            }
            if (eStatus != 'N' && eStatus != 'T')
                tbNew.appendChild(trInner);
        }
    }
    tableNew.appendChild(tbNew);

    //Populate scorecard
    divSC.appendChild(tableNew);

    //Show the popup
    var popup = $find(gwp);
    popup.setCaption(sCaption)
    popup.showAtControl(target, position, offsetX, offsetY);
}