/**
 * Legt einen Hover Effekt über eine Tabelle und verlinkt jede Zeile mit dem
 * ersten Link in der Zeile.
 * 
 * @param	string	table			Der Name der Tabelle.
 * @param	mixed	exclude			Eine einzelne Spalten Nr. oder ein Array mit
 * 									mehreren, die angeben welche Spalten nicht
 * 									verlinkt werden.
 * @param	mixed	excludeLink		String mit einem Link Typ oder Array mit
 * 									mehreren Link Typen die nicht verwendet
 * 									werden (z.B. http, javascript).
 * @param	RegEx	replaceClass	Regulärer Ausdruck anhand dessen bestimmt
 * 									wird welche CSS Klasse ersetzt wird.
 * @param	integer	linkCol			Spalte in der nach einem Link gesucht werden
 * 									soll.
 */
function tableHover(table, exclude, excludeLink, replaceClass, linkCol) {
  // deprecated: durch CSS Befehl ersetzt
} 


function confirm_delete(url, text) {
	if (confirm(text)) {
		document.location.href = url;
	}
}

//_node_name -> id eines divs, aus dem das erste div dupliziert wird
function add_node (_node_name, max_nodes) {
	
	var _node = document.getElementById(_node_name);
	
	if (typeof max_nodes != undefined && count_real_nodes(_node) >= max_nodes) {
		return;
	}

// text-nodes werden von IE ignoriert, von Opera und NS nicht
	for (var i = 0; i<_node.childNodes.length; i++) {
		if (_node.childNodes[i].nodeName != '#text') {
			break;
		}
	}
	var _node_clone = _node.childNodes[i].cloneNode(true);

// IE Workaround für selected
	var _selects = _node.childNodes[i].getElementsByTagName('select');
	var _clone_selects = _node_clone.getElementsByTagName('select');
	for (i = 0; i < _selects.length; i++) {
		_clone_selects[i].selectedIndex = _selects[i].selectedIndex;
	}

	_node.appendChild(_node_clone);
}

function del_node (_node_name) {
	_node = document.getElementById(_node_name)
// Länge ausrechnen (Text-Nodes nicht zählen)
	if (count_real_nodes(_node) <= 1) {
		return;
	}

	_node.removeChild(_node.lastChild);
}

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;
}

function count_real_nodes(_node) {
	var node_count =0;
	for (var i = 0; i<_node.childNodes.length; i++) {
		if (_node.childNodes[i].nodeName != '#text') {
			node_count++;
		}
	}
	return node_count;
}	

function contactWindow(customer, tlg, lg, details) {
	if (typeof details == 'undefined') {
		details = '';
	} else {
		details = escape(details);
	}

	var window = open('http://www.city-map.de/city/kontakt?tlg=' + tlg + '&lg=' + lg + '&kundennummer=' + customer + '&details=' + details, 'contactwindow', 'width=580, height=540, scrollbars=yes');
}



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+$)/, '');
}

