<!--

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

//-->

// JavaScript Document
var TableHighlighter = (function(){
	function getElsByTagName(obj, type){
		var nlist;
		if(obj){
			if(obj.getElementsByTagName){
				nlist = obj.getElementsByTagName(type);
			}else if((obj.all)&&(obj.all.tags)){
				nlist = obj.all.tags(type);
			}
		}
		if(nlist){
			return nlist;
		}
		return [];
	}
	function addRows(rowArr, ndList){
		for(var c = 0;c < ndList.length;c++){
			var rowList = (ndList[c].rows)?ndList[c].rows:getElsByTagName(ndList[c], 'TR');
			rowArr = addCells(rowArr, rowList);
		}
		return rowArr;
	}
	function addCells(rowArr, rowList){
		for(var i = 0;i < rowList.length;i++){
			rowArr[rowArr.length] = getCells(rowList[i]);
		}
		return rowArr;
	}
	function getCells(trObj){
		var tgNm, tempObj, colObj, retArray = [];
		if(trObj.cells){  //IE 4+ Moz/Net6+ Opera 7+
			colObj = trObj.cells;
		}else if(trObj.children){  //Opera <= 6 spoofing IE
			colObj = trObj.children;
		}else if(trObj.childNodes){
			 //DOM browser without cells (unknown)
			colObj = trObj.childNodes;
		}else if(trObj.firstChild){
			 //DOM browser without childNodes or cells (unknown and unlikely)
			colObj = [];
			tempObj = trObj.firstChild;
			do{
				colObj[colObj.length] = tempObj;
			}while(tempObj = tempObj.nextSibling);
		}else if(trObj.getElementsByTagName){
			 //Opera 5 & 6 (not spoofing IE) and other DOM level 1 browsers
			colObj = [];
			var ndListC = trObj.getElementsByTagName('TH');
			for(var f = 0;f < ndListC.length;f++){
				colObj[colObj.length] = ndListC[f];
			}
			ndListC = trObj.getElementsByTagName('TD');
			for(var f = 0;f < ndListC.length;f++){
				colObj[colObj.length] = ndListC[f];
			}
		}
		if((colObj)&&(colObj.length)){
			for(var f = 0;f < colObj.length;f++){
				tempObj = colObj[f];
				if(tempObj.tagName){
					tgNm = tempObj.tagName.toUpperCase();
					if((tgNm == 'TD')||(tgNm == 'TH')){
						retArray[retArray.length] = tempObj;
					}
				}
			}
		}
		return retArray;
	}
	function setMouseOver(arObj, testObj){
		return (function(colSetArr, rowSetArr){
			 if(rowSetArr){
				 arObj.append(colSetArr, rowSetArr);
			 }else if(testObj.setUp){
				 arObj.change('over', this);
			 }
		});
	}
	function setMouseOut(arObj, testObj){
		return (function(){
			if(testObj.setUp){
				 arObj.change('out', this);
			}
		});
	}
	function addNew(targetAr, newAr){
		var notFound;
		for(var c = newAr.length;c--;){
			notFound = true;
			for(var i = targetAr.length;i--;){
				if(targetAr[i] == newAr[c]){
					notFound = false;
					break;
				}
			}
			if(notFound)targetAr[targetAr.length] = newAr[c];
		}
	}
	function setStyle(cel, sy){
		var tagNm = cel.tagName.toUpperCase();
		for(var i = sy[tagNm].length;i--;){
			cel.style[sy[tagNm][i][0]] = sy[tagNm][i][1];
		}
	}
	function finalize(){
		for(var c = hlgtrAr.length;c--;)hlgtrAr[c].finalize;
	}
	var hlgtrAr = [];
	function tblHiLgtr(colSetArr, rowSetArr, styOb){
		hlgtrAr[hlgtrAr.length] = this;
		this.change = function(action, celObj){
			var sy = styOb[action].cols; //cols
			for(var c = colSetArr.length;c--;){
				setStyle(colSetArr[c], sy);
			}
			sy = styOb[action].rows; //rows
			for(var c = rowSetArr.length;c--;){
				setStyle(rowSetArr[c], sy);
			}
			setStyle(celObj, styOb[action].current);
		};
		this.append = function(colSet, rowSet){
			addNew(colSetArr, colSet);
			addNew(rowSetArr, rowSet);
		};
		this.finalize = function(){
			colSetArr = (rowSetArr = (styOb = null));
		}
	}
	return (function(tbl, styleConfig){
		if(tbl){
			tbl.onmouseover = null;
			if((tbl.tagName)&&(tbl.style)&&((tbl.cells && tbl.rows)||(tbl.getElementsByTagName)||(tbl.all))){
				var testObj = {setUp:false};
				var celCount, rowLength, workArr, colSetArr, rowSetArr, rowspan, colspan, cel, ndList, rowArr = [];
				if(tbl.rows){
					 rowArr = addCells(rowArr, tbl.rows);
				}else{
					 ndList = (tbl.thead)?[tbl.thead]:getElsByTagName(tbl, 'THEAD');
					 rowArr = addRows(rowArr, ndList);
					 ndList = tbl.tBodies||getElsByTagName(tbl, 'TBODY');
					 rowArr = addRows(rowArr, ndList);
					 ndList = (tbl.tfoot)?[tbl.tfoot]:getElsByTagName(tbl, 'TFOOT');
					 rowArr = addRows(rowArr, ndList);
				}
				if(rowArr.length > 0){
					rowLength = rowArr[0].length;
					for(var c = 0;c < rowArr[0].length;c++){
						 if(rowArr[0][c].colSpan > 1){
							  rowLength = rowLength + (rowArr[0][c].colSpan - 1);
						 }
					}
					workArr = new Array(rowArr.length);
					for(var c = rowArr.length;c--;){
						 workArr[c]= new Array(rowLength);
					}
					for(var c = 0;c < workArr.length;c++){
						 celCount = 0;
						 for(var i = 0;i < rowLength;i++){
							 if(!workArr[c][i]){
								 cel = rowArr[c][celCount];
								 colspan = (cel.colSpan > 1)?cel.colSpan:1;
								 rowspan = (cel.rowSpan > 1)?cel.rowSpan:1;
								 for(var t = 0;((t < colspan)&&((i+t) < rowLength));t++){
									 for(var n = 0;((n < rowspan)&&((c+n) < workArr.length));n++){
										 workArr[(c+n)][(i+t)] = cel;
									 }
								 }
								 if(++celCount == rowArr[c].length)break;
							 }
						 }
					}
					rowArr = [];
					for(var c = workArr.length;c--;){
						 for(var i = workArr[c].length;i--;){
							 if(workArr[c][i]){
								 colSetArr = [];
								 rowSetArr = [];
								 for(var t = rowLength;t--;){
									 if((workArr[c][t])&&(workArr[c][i] != workArr[c][t])){
										 rowSetArr[rowSetArr.length] = workArr[c][t];
									 }
								 }
								 for(var t = workArr.length;t--;){
									 if((workArr[t][i])&&(workArr[c][i] != workArr[t][i])){
										 colSetArr[colSetArr.length] = workArr[t][i];
									 }
								 }
								 if(ndList = workArr[c][i].onmouseover){
									if((colSetArr.length > 0)||(rowSetArr.length > 0)){
										ndList(colSetArr, rowSetArr);
									}
								 }else{
									 cel = new tblHiLgtr(colSetArr, rowSetArr, styleConfig);
									 workArr[c][i].onmouseover = setMouseOver(cel, testObj);
									 workArr[c][i].onmouseout = setMouseOut(cel, testObj);
								 }
							 }
						 }
					}
					if(typeof finalizeMe != 'undefined'){
						finalizeMe(finalize);
					}
					testObj.setUp = true;
				}
			}
		}
	})
})();

tblHiLgtr_config = {
	over:{
		cols:{TH:[
				['color',		'#88FFFF'],
				['backgroundColor', '#000088']
			],
		TD:[
				['color',		'#002222'],
				['backgroundColor', '#D0E0FF']
			]
		},
		rows:{TH:[
				['color',		'#FFFFFF'],
				['backgroundColor', '#0080A0']
			],
		TD:[
				['color',		'#000088'],
				['backgroundColor', '#B0FFE0']
			]
		},
		current:{TH:[
				['color',		'#88FFFF'],
				['backgroundColor', '#000060']
			],
		TD:[
				['color',		'#220000'],
				['backgroundColor', '#FFFFFF']
			]
		}
	},
     out:{
		cols:{TH:[
				['color',		'#FFFFFF'],
				['backgroundColor', '#FFFFFF']
			],
		TD:[
				['color',		'#000000'],
				['backgroundColor', '#FFFFFF']
			]
		},
		rows:{TH:[
				['color',		'#FFFFFF'],
				['backgroundColor', '#FFFFFF']
			],
		TD:[
				['color',		'#000000'],
				['backgroundColor', '#FFFFFF']
			]
		},
		current:{TH:[
				['color',	'#FFFFFF'],
				['backgroundColor', '#FFFFFF']
		],
		TD:[
				['color',		'#000000'],
				['backgroundColor', '#FFFFFF']
			]
		}
 	}
};
