﻿function appInit() {
    var allTables = document.getElementsByTagName('table');
    var pricesheetTables = [];
    for (var i = 0; i < allTables.length; i++) {
        if (allTables[i].attributes.getNamedItem('rel') != null && allTables[i].attributes.getNamedItem('rel').nodeValue == 'pricesheet') {
            pricesheetTables.push(allTables[i]);
        }
    }
    var table;
    for (var k = 0; k < pricesheetTables.length; k++) {
        table = pricesheetTables[k];
        for (var i = 0; i < table.rows.length; i++) {
            for (var j = 0; j < table.rows[i].cells.length; j++) {
                if (table.rows[i].attributes.getNamedItem('rel') != null) {
                    $addHandler(table.rows[i], 'mouseover', mouseOver);
                    $addHandler(table.rows[i], 'mouseout', mouseOut);
                }
                if (table.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                    $addHandler(table.rows[i].cells[j], 'mouseover', mouseOver);
                    $addHandler(table.rows[i].cells[j], 'mouseout', mouseOut);
                }
            }

        }
    }

}

function getMillTable(tableCell) {
    var millTable;
    var parentTable = tableCell.parentNode;
    while (parentTable.tagName.toLowerCase() != 'table') {
        parentTable = parentTable.parentNode;
    }

    millTable = parentTable.attributes.getNamedItem('milltable').nodeValue;

    return $get(millTable);
}

function mouseOver(sender) {

    var element = new Sys.UI.Control(this);

    element.toggleCssClass('highlighted');
    element.dispose();
    //this.className = 'highlighted';

    var mills = this.attributes.getNamedItem('rel').nodeValue.split(' ');

    var millTable = getMillTable(this);

    for (var i = 0; i < mills.length; i++) {
        if ($get(mills[i], millTable) != null) {
            $get(mills[i], millTable).className = 'P highlighted';
        }
    }

}

function mouseOut(sender) {
    var element = new Sys.UI.Control(this);

    element.toggleCssClass('highlighted');
    element.dispose();

    var millTable = getMillTable(this);
    for (var i = 0; i < millTable.rows.length; i++) {
        for (var j = 0; j < millTable.rows[i].cells.length; j++) {
            if (millTable.rows[i].cells[j].className == "P highlighted") {

                millTable.rows[i].cells[j].className = 'unhighlighted';
            }
        }
    }

}

function millMouseOver(sender) {
    var element = new Sys.UI.Control(sender);

    element.toggleCssClass('highlighted');
    element.dispose();

    var tableTag = sender;
    while (tableTag.tagName.toLowerCase() != 'table' && tableTag.parentNode != null) {
        tableTag = tableTag.parentNode;
    }

    if (tableTag.parentNode != null) {
        var extraTable = $get(tableTag.attributes.getNamedItem('extra-table').nodeValue);
        var relatedMills;
        for (var i = 0; i < extraTable.rows.length; i++) {
            for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                    relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                    for (var k = 0; k < relatedMills.length; k++) {
                        if (relatedMills[k] == sender.id) {
                            extraTable.rows[i].cells[j].className = 'P highlighted';
                        }
                    }
                }
            }
        }
        var extraTable = $get('CoatingsTable');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                extraTable.rows[i].cells[j].className = 'P highlighted';
                            }
                        }
                    }
                }
            }
        }

        var extraTable = $get('FPTable');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                extraTable.rows[i].cells[j].className = 'P highlighted';
                            }
                        }
                    }
                }
            }
        }

        var extraTable = $get('FPGroup');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                if (extraTable.rows[i].cells[j].className.indexOf("alt-row") > 0) {

                                    extraTable.rows[i].cells[j].className = 'left top   alt-row highlighted';
                                }
                                else {
                                    extraTable.rows[i].cells[j].className = 'left top  highlighted';
                                }
                            }
                        }
                    }
                }
            }
        }

        var extraTable = $get('PETable');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                extraTable.rows[i].cells[j].className = 'P highlighted';
                            }
                        }
                    }
                }
            }
        }
        for (var p = 0; p < 6; p++) {
            for (var z = 0; z < 10; z++) {
                var tblName = 'group' + p + +z;
                var extraTable = $get(tblName);

                if (extraTable != null) {

                    var relatedMills;
                    for (var i = 0; i < extraTable.rows.length; i++) {
                        for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                            if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                                relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                                for (var k = 0; k < relatedMills.length; k++) {
                                    if (relatedMills[k] == sender.id) {

                                        if (extraTable.rows[i].cells[j].className.indexOf("alt-row") > 0) {
                                            if (extraTable.rows[i].cells[j].className.indexOf("right") >= 0) {
                                                extraTable.rows[i].cells[j].className = 'right top alt-row highlighted';
                                            }
                                            else {
                                                extraTable.rows[i].cells[j].className = 'top alt-row highlighted';
                                            }
                                        }
                                        else {
                                            if (extraTable.rows[i].cells[j].className.indexOf("right") >= 0) {
                                                extraTable.rows[i].cells[j].className = 'right top  highlighted';
                                            }
                                            else {
                                                extraTable.rows[i].cells[j].className = 'top  highlighted';
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }


                }

            }
        }
    }
}

function millMouseOut(sender) {
    var element = new Sys.UI.Control(sender);

    element.toggleCssClass('highlighted');
    element.dispose();
    var tableTag = sender;
    while (tableTag.tagName.toLowerCase() != 'table' && tableTag.parentNode != null) {
        tableTag = tableTag.parentNode;
    }
    if (tableTag.parentNode != null) {
        //alert(tableTag.attributes.getNamedItem('extra-table').nodeValue);
        var extraTable = $get(tableTag.attributes.getNamedItem('extra-table').nodeValue);
        var relatedMills;
        for (var i = 0; i < extraTable.rows.length; i++) {
            for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                    relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                    for (var k = 0; k < relatedMills.length; k++) {
                        if (relatedMills[k] == sender.id) {
                            var element = new Sys.UI.Control(extraTable.rows[i].cells[j]);
                            element.toggleCssClass('highlighted');
                            element.dispose();
                        }
                    }
                }
            }
        }
        var extraTable = $get('CoatingsTable');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                var element = new Sys.UI.Control(extraTable.rows[i].cells[j]);
                                element.toggleCssClass('highlighted');
                                element.dispose();
                            }
                        }
                    }
                }
            }
        }

        var extraTable = $get('FPTable');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                var element = new Sys.UI.Control(extraTable.rows[i].cells[j]);
                                element.toggleCssClass('highlighted');
                                element.dispose();
                            }
                        }
                    }
                }
            }
        }

        var extraTable = $get('PETable');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                var element = new Sys.UI.Control(extraTable.rows[i].cells[j]);
                                element.toggleCssClass('highlighted');
                                element.dispose();
                            }
                        }
                    }
                }
            }
        }
        var extraTable = $get('FPGroup');
        var relatedMills;
        if (extraTable != null) {
            for (var i = 0; i < extraTable.rows.length; i++) {
                for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                    if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                        relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                        for (var k = 0; k < relatedMills.length; k++) {
                            if (relatedMills[k] == sender.id) {
                                var element = new Sys.UI.Control(extraTable.rows[i].cells[j]);
                                element.toggleCssClass('highlighted');
                                element.dispose();
                            }
                        }
                    }
                }
            }
        }

        for (var p = 0; p < 6; p++) {
            for (var z = 0; z < 10; z++) {
                var tblName = 'group' + p + z;
                var extraTable = $get(tblName);

                if (extraTable != null) {

                    var relatedMills;
                    for (var i = 0; i < extraTable.rows.length; i++) {
                        for (var j = 0; j < extraTable.rows[i].cells.length; j++) {
                            if (extraTable.rows[i].cells[j].attributes.getNamedItem('rel') != null) {
                                relatedMills = extraTable.rows[i].cells[j].attributes.getNamedItem('rel').nodeValue.split(' ');
                                for (var k = 0; k < relatedMills.length; k++) {
                                    if (relatedMills[k] == sender.id) {
                                        var element = new Sys.UI.Control(extraTable.rows[i].cells[j]);
                                        element.toggleCssClass('highlighted');
                                        element.dispose();
                                    }
                                }
                            }
                        }
                    }


                }

            }
        }
    }
}

