function tableHover(table, exclude, excludeLink, replaceClass, linkCol) {

	switch (typeof exclude) {
		case 'undefined':
			exclude = new Array();
			break;
		case 'object':
			break;
		default:
			exclude = new Array(exclude);
			break;
	}

	switch (typeof excludeLink) {
		case 'undefined':
			excludeLink = new Array();
			break;
		case 'object':
			break;
		default:
			excludeLink = new Array(excludeLink);
			break;
	}

	switch (typeof replaceClass) {
		case 'undefined':
			replaceClass = /^.*$/;
			break;
		default:
			try {
				replaceClass.test('');
			}
			catch (exception) {
				throw new Error('No valid RegExp Object!');
			}
			break;
	}

	var rows = document.getElementById(table).getElementsByTagName('tr');
	for (var i = 1; i < rows.length; i++) {
		rows[i].onmouseover = function () {
			this.temp = '';
			if (replaceClass.test(this.className)) {
				this.temp = this.className.match(replaceClass)[0];
				this.className = this.className.replace(replaceClass, ' hover ');
			}
		}
		rows[i].onmouseout = function () {
			this.className = this.className.replace(/(^|\s)hover(\s|$)/, ' ' + this.temp + ' ');
		};

		var j;
		var elementNumber = 0;
		if (linkCol == undefined) {
			for (j = 0; j < rows[i].getElementsByTagName('a').length; j++) {
				if (in_array(rows[i].getElementsByTagName('a')[j].href.split(':', 1)[0], excludeLink)) {
					elementNumber++;
				}
			}
		} else {
			elementNumber = rows[i].getElementsByTagName('a').length;

			var cols = rows[i].getElementsByTagName('td');
			if (cols.length > linkCol) {
				var links = cols[linkCol].getElementsByTagName('a');
				if (links.length > 0 && !in_array(links[0].href.split(':', 1)[0], excludeLink)) {
					var link = links[0];
					for (j = 0; j < rows[i].getElementsByTagName('a').length; j++) {
						if (rows[i].getElementsByTagName('a')[j] == link) {
							elementNumber = j;
						}
					}
				}
			}
		}

		if (rows[i].getElementsByTagName('a').length == elementNumber) {
			rows[i].style.cursor = 'auto';
			continue;
		}

		rows[i].getElementsByTagName('a')[elementNumber].onclick = new Function('', 'return false;');
		var cells = rows[i].getElementsByTagName('td');
		for (j = 0; j < cells.length; j++) {
			if (in_array(j, exclude)) {
				cells[j].style.cursor = 'auto';
				continue;
			}
			if (rows[i].getElementsByTagName('a')[elementNumber].target == '') {
				cells[j].onclick = new Function('', 'location.href = this.parentNode.getElementsByTagName(\'a\')[' + elementNumber + '].href;');
			} else {
				cells[j].onclick = new Function('', 'window.open(this.parentNode.getElementsByTagName(\'a\')[' + elementNumber + '].href, this.parentNode.getElementsByTagName(\'a\')[' + elementNumber + '].target);');
			}
		}
	}
}

function confirm_delete(url, text) {
	if (confirm(text)) {
		document.location.href = url;
	}
}

function confirmDelete(url, text) {
	confirm_delete(url, text);
}

function getPos(obj) {
	var myTarget;
	if (typeof obj == 'object') {
		myTarget = obj;
	} else {
		myTarget = document.getElementById(obj);
	}
	var top = 0;
	var left = 0;
	while(myTarget != document.getElementsByTagName('body')[0] && myTarget != document.getElementsByTagName('html')[0]) {
		top += myTarget.offsetTop;
		left += myTarget.offsetLeft;

		if (myTarget.style.position == 'absolute') {
			return Array(left, top);

			if (typeof myTarget.style.top != 'undefined') {
				top -= myTarget.style.top.replace(/[^\d]/g, '');
			}
			if (typeof myTarget.style.left != 'undefined') {
				left -= myTarget.style.left.replace(/[^\d]/g, '');
			}
		}

		myTarget = myTarget.offsetParent;
	}
	return Array(left, top);
}



function selectAll(element, check) {
	var inputs = document.getElementById(element).getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == 'checkbox') {
			inputs[i].checked = check;
		}
	}
}

/**
 *  trim Funktion
 */
function trim(str) {
	return str.replace(/(^\s+)|(\s+$)/, '');
}


function in_array(needle, haystack) {
	if (typeof haystack != 'object') {
		return false;
	}
	
	for (var i = 0; i < haystack.length; i++) {
		if (typeof haystack[i] != 'undefined' && haystack[i] == needle) {
			return true;
		}
	}
	
	return false;
}

/**
 * Macht die Symbole vor dem LI anklickbar
 */
function liToClick() {
	var lists;
	var hrefs;
	var hrefSplit;
	lists = self.document.getElementsByTagName('li');
	for(var listNumber = 0; listNumber < lists.length; listNumber++) {
		hrefs = lists[listNumber].getElementsByTagName('a');
		if (hrefs.length == 1) {
			hrefSplit = hrefs[0].href.split(':');
			if (hrefSplit[0] == 'javascript') {
				var shiftedHref = hrefSplit.shift();
				var newfunction = hrefSplit.join(':');
				self.document.getElementsByTagName('li')[listNumber].onclick = new Function('', newfunction);
			} else {
				if (hrefs[0].target == '') {
					self.document.getElementsByTagName('li')[listNumber].onclick = new Function('', 'document.location.href=\'' + hrefs[0].href + '\'');
				} else {
					self.document.getElementsByTagName('li')[listNumber].onclick = new Function('', 'window.open(\'' + hrefs[0].href + '\', \'' + hrefs[0].target + '\');');
				}
			}
			self.document.getElementsByTagName('li')[listNumber].getElementsByTagName('a')[0].onclick = new Function('', 'return false;');
			self.document.getElementsByTagName('li')[listNumber].style.cursor = 'pointer';
		}
	}
}

/**
 * setzt eine CSS-Klasse für alle <input type="checkbox" />  Elemente
 */
function setCheckBoxCssClass(cssClassName) {
	if (typeof cssClassName == 'undefined') {
		cssClassName = 'checkbox';
	}

	var boxes = document.getElementsByTagName('input');

	for (var i = 0; i < boxes.length; i++) {
		if (boxes[i].getAttribute('type') == 'checkbox') {
			boxes[i].setAttribute('className', cssClassName);
			boxes[i].setAttribute('class', cssClassName);
		}
	}
}

/**
 * Visibilty ändern
 */
function switchVisibiltyOfNextSiblings(node) {
	node = node.nextSibling;
	var i = 0;
	while (node != null) {
		if (node.nodeType != 1) {
			node = node.nextSibling;
			if (++i == 10) {
				break;
			}
			continue;
		}

		if (node.style.display == '' || node.style.display == 'block') {
			node.style.display == 'none';
		}
	}
	node = node.nextSibling;
}


function changeProductInfosImage(image) {
	var temp;
	var bigImage = document.getElementById('productInfosImagesFirst').getElementsByTagName('img')[0];

/*	if (document.getElementById('productInfosImagesDescription').getElementsByTagName('span')[0].firstChild == undefined) {
		document.getElementById('productInfosImagesDescription').getElementsByTagName('span')[0].appendChild(document.createTextNode(''));
	}
	document.getElementById('productInfosImagesDescription').getElementsByTagName('span')[0].firstChild.nodeValue = image.alt;*/

	temp = bigImage.alt;
	bigImage.alt = image.alt;
	image.alt = temp;

	temp = bigImage.src;
	bigImage.src = image.src.replace(/_small/, '');
	image.src = temp.replace(/.jpg$/, '_small.jpg');
}

