var x = 0;

function getElementsByClassName(node,classname) {
  if (node.getElementsByClassName) { // use native implementation if available
    return node.getElementsByClassName(classname);
  } else {
    return (function getElementsByClass(searchClass,node) {
        if ( node == null )
          node = document;
        var classElements = [],
            els = node.getElementsByTagName("*"),
            elsLen = els.length,
            pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"), i, j;

        for (i = 0, j = 0; i < elsLen; i++) {
          if ( pattern.test(els[i].className) ) {
              classElements[j] = els[i];
              j++;
          }
        }
        return classElements;
    })(classname, node);
  }
}
var mouseX = 0, mouseY = 0;
document.onmousemove = function(e) { mouseX = e.pageX, mouseY = e.pageY; }

window.addEvent('domready', function(){
	document.getElementById('team').style.visibility = 'visible';
	
	// grouping
	var groups = getElementsByClassName($('team'), 'team_group');
	var slides = new Array(groups.length);

	for (var i = 0; i < groups.length; i++) {
		slides[i] = new Fx.Slide(groups[i]);
		if (typeof onlyGroup != 'undefined' && onlyGroup.toLowerCase() == groups[i].id.toLowerCase()) 	slides[i].show();
		else 																							slides[i].hide();
	}

	// toggle
	if (typeof onlyGroup == 'undefined') {
		var toggles = getElementsByClassName($('team'), 'toggle_group');
		for (i = 0; i < toggles.length; i++)
			toggles[i].addEvent('click', function(e){
				e = new Event(e);
				for (var j = 0; j < slides.length; j++)
					if (j != this.id) slides[j].slideOut();
					else 			  slides[j].toggle();
				e.stop();
			});
	}

	// scroller
	var imageBoxes = getElementsByClassName($('team'), 'imageBox');
	var imageBoxesInside = getElementsByClassName($('team'), 'imageBoxInside');
	var scrollers = new Array(imageBoxes.length);

	for (i = 0; i < imageBoxes.length; i++) {
		scrollers[i] = new Fx.Scroll(imageBoxes[i], {
			wait: false,
			duration: 1000,
			transition: Fx.Transitions.Quad.easeInOut
		});

		// if box is smaller than 1000px adjust to middle
		var boxWidth = imageBoxesInside[i].style.width.split('px')[0];
		if (boxWidth < 1000)
			imageBoxesInside[i].style.marginLeft = ((1000 - boxWidth) / 2) + "px";
	}

	// scrolling
	var scrollButtonsLeft = getElementsByClassName($('team'), 'scroll_left');
	var scrollButtonsRight = getElementsByClassName($('team'), 'scroll_right');

	for (i = 0; i < scrollButtonsLeft.length; i++)
		scrollButtonsLeft[i].addEvent('click', function(event) {
			event = new Event(event).stop();
			var toValue = scrollers[this.id].from ? scrollers[this.id].to[0] : 0;
			scrollers[this.id].scrollTo(toValue - 1000, 0);
			checkButtons(scrollers[this.id]['to'][0], this.id);
		});

	for (i = 0; i < scrollButtonsRight.length; i++)
		scrollButtonsRight[i].addEvent('click', function(event) {
			event = new Event(event).stop();
			var toValue = scrollers[this.id].from ? scrollers[this.id].to[0] : 0;
			scrollers[this.id].scrollTo(toValue + 1000, 0);
			checkButtons(scrollers[this.id]['to'][0], this.id);
		});

	// init buttons checkButtons
	for (i = 0; i < scrollButtonsRight.length; i++)
		checkButtons(0, i);

	function checkButtons(toValue, id) {
		if (toValue <= 0) scrollButtonsLeft[id].style.display = "none";
		else 			scrollButtonsLeft[id].style.display = "block";
		
		if (toValue >= (imageBoxesInside[id].style.width.split("px")[0] - 1000)) 	scrollButtonsRight[id].style.display = "none";
		else 																		scrollButtonsRight[id].style.display = "block";
	}
});

function show(mitarbeiter){
	document.getElementById(mitarbeiter).style.display = 'block';
}

function hide(mitarbeiter){
	document.getElementById(mitarbeiter).style.display = 'none';
}

function toggleProfile(mitarbeiter){
	var job = document.getElementById("profil_"+mitarbeiter);
	var employee = document.getElementById(mitarbeiter)
	
	if (job) {
		// job.style.left = mouseX + "px";
		// job.style.top = mouseY + "px";
		job.style.left = ((employee.offsetLeft + 100) + "px");
		job.style.top = ((employee.offsetTop + 60) + "px");

		if (job.style.display == 'block') 	job.style.display = 'none';
		else 								job.style.display = 'block';

		var jobs = getElementsByClassName($('team'), 'job_profil');
		for (var i = 0; i < jobs.length; i++)
			if (jobs[i].id != job.id)
				jobs[i].style.display = 'none';
	}
}
