var display = isIE() ? 'block' : 'table-row';
var searchTerm = '';
var headMarker1;
var headMarker2;

function init() {
        if (document.URL.indexOf('searchterm') > 0)
           searchTerm = document.URL.substring(document.URL.indexOf('searchterm') + 11, document.URL.length);
	tables = document.getElementsByTagName('table');
	var numElements = tables.length;
	for(var i = 0; i < numElements; i++) {
		if(tables[i].className.indexOf('collapse') >= 0) {
			collapse(tables[i]);
		}
	}

        /*
        try {
          headMarker1 = document.getElementById('expand-header1');
          headMarker2 = document.getElementById('expand-header2');
          setHeadWidths();
        }
        catch (e) {
          headMarker1 = null;
          headMarker2 = null;
        }
        */
}

function collapse(table) {
	columnNumbers = getColumnNumbers(table);	
	columnCount = getColumnCount(table);
	tbody = table.getElementsByTagName('tbody')[0];
	newRow = tbody.insertRow(0);
	
	dataRows = tbody.rows;
	var numElements = dataRows.length;	
	for (i = 0; i < numElements; i++) {
		dataRows[i].className = 'tableData';
                if (searchTerm == '' || dataRows[i].innerHTML.indexOf(searchTerm) < 0)
 		    dataRows[i].style.display = 'none';

		try {
                    if (dataRows[i].cells[0].innerHTML != 'Model') {
                        //dataRows[i].cells[0].style.paddingLeft = '1.5em';
                        for (var j = 1; j <= iconCols; j++)
                            dataRows[i].cells[columnCount - j].style.display = 'none';
                    }
                }
                catch(e) {}
	}
		
	dataRows = getElementsByClassName('tableData', tbody);
	var numElements = dataRows.length;
	newBranch = true;
	addRows = 0;
	rangeCount = 1;
	for(i = 0; i < numElements - 1; i++) {
		cols = dataRows[i].getElementsByTagName('td');			
		nextCols = dataRows[i+1].getElementsByTagName('td');
		
		for(var j = 0; j < columnNumbers.length; j++) {
			try {
				if (i > 0 && cols[columnNumbers[j]].innerHTML != nextCols[columnNumbers[j]].innerHTML) {
					newBranch = true;
				}
			}
			catch(e) {
				newBranch = true;
				rangeCount = 0;
			}
		}
		
		if (newBranch) {
			newRow = tbody.insertRow(i + addRows + 1);
			if ((rangeCount > 0 && dataRows[i + 1].cells[columnNumbers[0]].innerHTML != columnList.replace(' ', '').split(',')[0])
				|| dataRows[i].cells[0].colSpan > 1 ) {
				HTML = '<a onclick="expand(this)"><img src="child-expand.gif" class="expand-icon" /></a>';
				for(var j = 0; j < columnNumbers.length; j++)
					HTML += '&nbsp;' + dataRows[i + 1].cells[columnNumbers[j]].innerHTML;
                                if (iconCols == 4) HTML += 'V';  // append to cooling units  only
				newCell = newRow.insertCell(0);
				newCell.innerHTML = HTML;
                                newCell.style.fontWeight = 'bold';
				newCell.colSpan = 2;
				newCell.getElementsByTagName('a')[0].style.cursor = 'pointer';
                                
                                if (iconCols == 3) {
                                    newCell = newRow.insertCell(1);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 3].innerHTML;

                                    newCell = newRow.insertCell(2);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 2].innerHTML;

                                    newCell = newRow.insertCell(3);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 1].innerHTML;
 				    newCell.colSpan = 7;

                                }
                                else if (iconCols == 4) {
                                    newCell = newRow.insertCell(1);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 4].innerHTML;

                                    newCell = newRow.insertCell(2);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 3].innerHTML;

                                    newCell = newRow.insertCell(3);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 2].innerHTML;

                                    newCell = newRow.insertCell(4);
                                    newCell.style.textAlign = 'center';
                                    newCell.innerHTML = dataRows[i + 1].cells[columnCount - 1].innerHTML;
 				    newCell.colSpan = 6;


                                }
			}
			else {				
				dataRows[i + 1].style.display = display;
			}
			dataRows[i].className = 'endRange';
			addRows++;
			newBranch = false;
			rangeCount = 0;
		}

		rangeCount++;

	}
	
}

function expand(obj) {
	
	startRow = obj.parentNode.parentNode;

	if (obj.innerHTML.indexOf('collapse') >= 0) {
		thisDisplay = 'none';
		obj.innerHTML = '<img src="child-expand.gif" class="expand-icon" />';
	}
	else {
		thisDisplay = display;
		obj.innerHTML = '<img src="child-collapse.gif" class="expand-icon" />';
	}
	
	endRow = startRow;
	count = 1;
	while(true) {
		count ++;
		endRow = endRow.nextSibling;
		try {
			endRow.style.display = thisDisplay;
                        // remove model number from child listings
                        endRow.cells[0].innerHTML = '';
                        endRow.cells[4].innerHTML = '';
                        endRow.cells[6].colSpan = 5;
		}
		catch(e) {
		}
		if (endRow.className == 'endRange')
			break;
	}

        setHeadWidths();
}


function getColumnNumbers(table) {
	var columns = columnList.replace(' ', '').split(',');
	var columnNumbers = new Array();
        columnNumbers[0] = 0;
        columnNumbers[1] = 4;
        return columnNumbers;

        // old code
	headLocated = false;
	
	headRows = table.getElementsByTagName('tr');
	var numElements = headRows.length;
	for(var i = 0; i < numElements; i++) {
		if (headRows[i].className != 'excludeCollapse') {
			cols = headRows[i].getElementsByTagName('td');
			for(var j = 0; j < cols.length; j++) {
				for(var k = 0; k < columns.length; k++) {
					//if(cols[j].innerHTML.indexOf(columns[k]) >= 0) {
					if(cols[j].innerHTML == columns[k]) {
						columnNumbers[columnNumbers.length] = j;
						headLocated = true;
					}
				}
			}
		}
		if (headLocated)
			return columnNumbers;
	}
	
	return columnNumbers;
}

function getColumnCount(table) {
	tbody = table.getElementsByTagName('tbody')[0];
	
	dataRows = tbody.rows;

	cols = dataRows[0].cells.length;
	
	return cols;
}


function getElementsByClassName(classname, node) {
	if(!node) node = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp('\\b' + classname + '\\b');
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)
		if(re.test(els[i].className))a.push(els[i]);
	return a;
}

function setHeadWidths () {
/*  if (headMarker1 != null) {
    if (isIE) {
      headMarker2.cells[0].style.width = '115px';
      headMarker2.cells[1].style.width = '115px';
      headMarker2.cells[2].style.width = '180px';
      headMarker2.cells[3].style.width = '160px';
      headMarker2.cells[5].style.width = '45px';
      headMarker2.cells[6].style.width = '120px';
    }
    else {
      headMarker2.cells[0].style.width = '110px';
      headMarker2.cells[1].style.width = '100px';
      headMarker2.cells[2].style.width = '180px';
      headMarker2.cells[3].style.width = '170px';
      headMarker2.cells[5].style.width = '45px';
      headMarker2.cells[6].style.width = '90px';
    }

      if (iconCols == 3) {
        headMarker2.cells[3].style.width = '55px';
        headMarker2.cells[5].style.width = '82px';
        headMarker2.cells[6].style.width = '200px';
      }

  }
*/
}

function isIE() {
   return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}



init();