// functions for top-level menu
function setmimg (id,f) {
  img = document.getElementById(id);
  img.src = f;
}
function mover (id) {
  setmimg (id,'fileadmin/template/nobilitas/images/'+id+'_rollover.jpg');
}

function mout (id) {
  setmimg (id,'fileadmin/template/nobilitas/images/'+id+'.jpg');
}

// DA Direkt Link
function dadirektpopup () {
open('http://www.kfz-beitrag.de/nobilitas','popup','toolbar=yes,location=yes,status=yes,menubar=yes,width=700,height=750,resizable=yes,scrollbars=yes');
}

// Grafiken vergrößern
function enlargeimg (href, width, height) {
 w = open('/fileadmin/template/nobilitas/res/enlargeimg.php?file='+href,'bildgross','width='+width+',height='+height+',left=0,top=0,toolbar=no,statusbar=no,menubar=no,resizable=no,scrollbars=no');
}

// weitere Produktpartner
function partner () {
 w = open('/index.php?id=218','partner','width=440,height=400,left=0,top=0,toolbar=no,statusbar=no,menubar=no,resizable=no,scrollbars=yes');
}

// addEvent(window, "load", initKSnewsticker);

function dumpnode (node,indent) {
  var i;
  var dump = indent + "node: " + node.tagName + '\n';
  for (i=0; i<node.childNodes.length; i++) {
    var c = node.childNodes[i];
    dump = dump + indent + ' c'+i+' :';
    dump += dumpnode (c, indent + ' ');
    dump += '\n';
  }
  return dump;
}

// get only inner nodes of p elements
function fixtickercontent (cobj)
{
  nodesToRemove = new Array ();
  nodesToAdd = new Array ();
  for (i=0,j=0,k=0; i<cobj.childNodes.length; i++) {
    nodesToRemove[j] = cobj.childNodes[i];
    j++;
    if (cobj.childNodes[i].tagName == 'P') {
      for (l=0; l < cobj.childNodes[i].childNodes.length; l++) {
        nodesToAdd[k] = cobj.childNodes[i].childNodes[l];
        k++;
      }
    }
  }

  for (i=0; i < k; i++) {
    cobj.appendChild (nodesToAdd[i]);
  }

  for (i=0; i < nodesToRemove.length; i++) {
    cobj.removeChild (nodesToRemove[i]);
  }

//  dump = dumpnode (cobj,'');
//  alert (dump);

  return cobj;
}

function initKSnewsticker (id) {
	if (document.getElementById) {
		tck = document.getElementById(id);
		if (tck.getElementsByTagName("div").length > 0) {
			curnewsdiv = 0;
			step = 1;
			speed = 10;
			delay = 5;

			newsdiv = new Array();
			// assert: only one div
			for (i = 0; i < tck.getElementsByTagName("div").length; i++) {
				newsdiv[i] = tck.getElementsByTagName("div")[i];
				newsdiv[i].style.left = tck.offsetWidth + 'px';
				fixtickercontent(newsdiv[i]);
			}
			// break-free cycle only possible in IE
			// Mozilla has buggy offsetWidth ...
			if (newsdiv[0].offsetWidth != 0) {
				newsdiv[1] = newsdiv[0].cloneNode (true);
				newsdiv[1].style.left = tck.offsetWidth + newsdiv[0].offsetWidth + 'px';
				tck.appendChild (newsdiv[1]);

				w = newsdiv[0].offsetWidth; j = 2;
				while (w < tck.offsetWidth) {
					newsdiv[j] = newsdiv[0].cloneNode (true);
					newsdiv[j].style.left = tck.offsetWidth + w + newsdiv[j-1].offsetWidth + 'px';
					tck.appendChild (newsdiv[j]);
					w += newsdiv[j-1].offsetWidth;
					j++;
				}

				if (false) { // DEBUG
					info = '';
					for (i = 0; i < newsdiv.length; i++) {
						info += ' ' + newsdiv[i].style.left;
					}
					alert(info);
				}
			}

			tck.style.visibility = 'visible';
			rollNews();
			if (1) {
			  addEvent(tck, "mouseover", stopNews);
			  addEvent(tck, "mouseout", rollNews);
			}
		}
	}
}

function rollNews() {
	// move all newsdivs
	for (i = 0; i < newsdiv.length; i++) {
		newsdiv[i].style.left = parseInt(newsdiv[i].style.left) - step + "px";
	}

	if (parseInt(newsdiv[curnewsdiv].style.left) == tck.offsetWidth % step) {
		tick = setTimeout("rollNews()",delay);
	}
	else {
		if (newsdiv.length > 1) {
			// close cycle:
			// if current newsdiv drifts out of sight
			// (that is next.left < 0),
			// position it behind last div
			next = (curnewsdiv+1) % newsdiv.length;
			if (parseInt(newsdiv[next].style.left) <= 0) {
				last = curnewsdiv-1;
				if (last < 0) last = newsdiv.length-1;

				if (false) { // DEBUG
					info = '';
					for (i = 0; i < newsdiv.length; i++) {
						info += i + ' ' + newsdiv[i].style.left + '\n';
					}	
					alert(info +
					'last=' + last + ' ' +
					'last.offsetWidth=' + newsdiv[last].offsetWidth
					);
				}
				newsdiv[curnewsdiv].style.left = parseInt(newsdiv[last].style.left) + newsdiv[last].offsetWidth + 'px';
				curnewsdiv++;
				if (curnewsdiv == newsdiv.length) {curnewsdiv = 0;}
			}
		} else {
			if (parseInt(newsdiv[curnewsdiv].style.left) <= 0-newsdiv[curnewsdiv].offsetWidth) {
				curnewsdiv++;
				if (curnewsdiv == newsdiv.length) {curnewsdiv = 0;}
				newsdiv[curnewsdiv].style.left = tck.offsetWidth + 'px';
			}
		}
		tick = setTimeout("rollNews()",speed);
	}
}

function stopNews() {
	clearTimeout(tick);
}

function addEvent(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
	return false;
  }
}
