function catalogInit() {
	if(!document.getElementById){ return; }
	var catTable = document.getElementById("tbl-catalog");
	var catTableRows = catTable.getElementsByTagName("tr");
	var part, partrow;
	var URL = window.location.href.toString();

	cleanWhitespace(catTable);

	for(var j = 1; j < catTableRows.length; j++){
		if(j % 2 == 0){ catTableRows[j].className = "odd"; }
		link = document.createElement('a');
		link.name = link.id = j;
		catTableRows[j].firstChild.appendChild(link);
		if(j == (catTableRows.length-1)) { break; }
		catTableRows[j].onmouseover = function(){ this.style.backgroundColor="#BBB"; }
		catTableRows[j].onmouseout = function(){ this.style.backgroundColor=""; }
		catTableRows[j].onclick = function(){ if(!/\bselecteditem\b/.test(this.className)){ this.className += " selecteditem"; this.onmouseover = ""; this.onmouseout = ""; }
						      else{ this.className = this.className.replace(/\bselecteditem\b/, ""); this.onmouseover = function(){ this.style.backgroundColor="#BBB"; }; this.onmouseout = function(){ this.style.backgroundColor=""; }; }
    						}
  	}

	var y;
	if (self.innerHeight){ y = self.innerHeight; }
	else if (document.documentElement && document.documentElement.clientHeight){ y = document.documentElement.clientHeight; }
	else if (document.body) { y = document.body.clientHeight; }

	catTable.style.marginBottom = (y + "px");

	if(window.location.href.indexOf('#') >= 0){
		window.location.href = window.location.href;
		part = URL.substring((URL.indexOf("#") + 1), URL.length);
		part = document.getElementById(part);
		if(part){
			partrow = part.parentNode.parentNode;
			partrow.className += " founditem";
			partrow.onmouseover = "";
			partrow.onmouseout = "";
		}

	}
}

function cleanWhitespace(node) {
	for (var x = 0; x < node.childNodes.length; x++) {
		var childNode = node.childNodes[x];
		if (childNode.nodeType == 3 && !/\S/.test(childNode.nodeValue)) {
			node.removeChild(node.childNodes[x]);
			x--;
		}
		if (childNode.nodeType == 1) { cleanWhitespace(childNode); }
	}
}

var cataloghead, catalogheadYpos;
function catalogScroll() {
	if(catalogheadYpos <= findPageScroll()) { cataloghead.className = "fixCatalogHeader"; }
	else { cataloghead.className = "staticCatalogHeader"; }
}

function scrollInit() {
	cataloghead = document.getElementById("cataloghead");
	catalogheadYpos = findPos(cataloghead);
}

function findPos(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) { curtop += obj.offsetTop; }
	}
	return curtop;
}

function findPageScroll() {
	var y;
	if (self.pageYOffset) { y = self.pageYOffset; }
	else if (document.documentElement && document.documentElement.scrollTop) { y = document.documentElement.scrollTop; }
	else if (document.body) { y = document.body.scrollTop; }
	return y;
}

function addEvent( obj, type, fn ) {
	if ( obj.attachEvent ) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
		obj.attachEvent( 'on'+type, obj[type+fn] );
	}
	else { obj.addEventListener( type, fn, false ); }
}

addEvent(window, 'load', catalogInit);
addEvent(window, 'load', scrollInit);
addEvent(window, 'scroll', catalogScroll);