browser = '';
if (navigator.appVersion.split('MSIE 6').length != 1)
	browser = 'ie6';


var aktDropdown = "";

function getEl(id) {
	return document.getElementById(id);
}
			
function checkDropdownLength(dropdownID) {
	if (dropdownID.indexOf('sprache') == -1) {
		if (document.getElementById(dropdownID+'_text_test').offsetWidth > (document.getElementById(dropdownID+'_dropdown_top').offsetWidth - 13))
			document.getElementById(dropdownID+'_punkte').style.display = 'inline';
		else
			document.getElementById(dropdownID+'_punkte').style.display = 'none';
	}
}

function correct_redering(dropdownID) {
	if (browser == 'ie6') {
		var listenLinks = new Array();
		listenLinks = getEl(dropdownID+'_dropdown_liste').getElementsByTagName('a');
		
		var maxWidth = 0;
		
		getEl(dropdownID+'_dropdown_liste').style.display = 'block';
		for (i=0; i<listenLinks.length; i++)
			if (listenLinks[i].offsetWidth > maxWidth) maxWidth = listenLinks[i].offsetWidth;
		getEl(dropdownID+'_dropdown_liste').style.display = 'none';
		
		if (hasCSSClass('dropdown_liste_scrollbar', getEl(dropdownID+'_dropdown_liste')))
			maxWidth += DROPDOWN_SCROLL_WIDTH_FOR_IE6;
		
		if (maxWidth < getEl(dropdownID+'_dropdown_top').offsetWidth) {
			newLinkWidth = getEl(dropdownID+'_dropdown_top').offsetWidth - 8 + 'px';
			newShadowWidth = getEl(dropdownID+'_dropdown_top').offsetWidth + 'px';
			for (i=0; i<listenLinks.length; i++)
				listenLinks[i].style.width = newLinkWidth;
			getEl(dropdownID+'_dropdown_u').style.width = newShadowWidth;
		}

		if (getEl(dropdownID+'_dropdown_liste').className.indexOf('dropdown_liste_scrollbar')!=-1) {
			liInListe = getEl(dropdownID+'_dropdown_scroll_outer').getElementsByTagName('li');
			for (var j=0; j<liInListe.length; j++) {
				liInListe[j].style.width = (maxWidth+1)+'px';
//				liInListe[j].getElementsByTagName('a')[0].style.width = (maxWidth+1)+'px';
			}
			if (maxWidth < getEl(dropdownID+'_dropdown_top').offsetWidth)
				getEl(dropdownID+'_dropdown_u').style.width = parseInt(getEl(dropdownID+'_dropdown_u').style.width)+DROPDOWN_SCROLL_WIDTH_FOR_IE6+'px';
		}

	}
}

function doCorrectRendering() {
	for (j=0; j<dropdowns.length; j++)
		correct_redering(dropdowns[j]);
}

var dropdowns = new Array();
function registerCorrectRendering(dropdownID) {
	if (dropdownID!='ddsprache')
		dropdowns.push(dropdownID);
}

function configureDropdown(dropdownID) {
	checkDropdownLength(dropdownID);
	registerCorrectRendering(dropdownID);
	setDropdownShadow(dropdownID);
}

function setDropdownShadow(dropdownID) {
	if (browser == 'ie6') {
		try {
			getEl(dropdownID+'_dropdown_liste').style.display = 'block';
			if (hasCSSClass('dropdown_liste_scrollbar', getEl(dropdownID+'_dropdown_liste')))
				getEl(dropdownID+'_dropdown_u').style.width = parseInt(getEl(dropdownID+'_dropdown_u').parentNode.offsetWidth) + DROPDOWN_SCROLL_WIDTH_FOR_IE6 + 'px';
			else
				getEl(dropdownID+'_dropdown_u').style.width = parseInt(getEl(dropdownID+'_dropdown_u').parentNode.offsetWidth) + 'px';
			getEl(dropdownID+'_dropdown_r').style.height = getEl(dropdownID+'_dropdown_r').parentNode.offsetHeight;
			getEl(dropdownID+'_dropdown_liste').style.display = 'none';
		} catch(e) {
		}
	}
}

function takeListEntry(dropdownID,entry) {
	text = entry.firstChild.innerHTML;
	getEl(dropdownID+'_text_test').innerHTML = text;
	getEl(dropdownID+'_text').innerHTML = text;

	// hidden-Field für Formular setzen
	try {
		getEl(dropdownID+'_value').value = text;
	} catch(e) {}

	checkDropdownLength(dropdownID);
	getEl(dropdownID+'_dropdown_liste').style.display = 'none';
	if (typeof(tmpTimer)!='undefined') window.clearTimeout(tmpTimer);

	return false;
}

function toggleDropdown(dropdownID) {
	liste = getEl(dropdownID+'_dropdown_liste');
	if (liste.style.display == 'block') {
		liste.style.display = 'none';
	} else {
		liste.style.display = 'block';
		aktDropdown = dropdownID;
	}
	
	correctIE7RenderingBug();
	
	return false;
}

function closeDropdown(dropdownID) {
	getEl(dropdownID+'_dropdown_liste').style.display = 'none';
	return false;
}

function dropdownInit() {
	if (document.addEventListener) {
		document.addEventListener("DOMFocusIn", checkBlur, true);
		document.addEventListener("mousedown", checkBlur, true);
	} else if (document.attachEvent) {
		document.attachEvent("onmousedown", checkBlur);
	}
	
	if (window.Node && Node.prototype && !Node.prototype.contains) {
		Node.prototype.contains = function (arg) {
			return !!(this.compareDocumentPosition(arg) & 16);
		};
	}

}

function correctIE7RenderingBug() {
	if (navigator.appVersion.split('MSIE 7').length != 1) {
		document.getElementsByTagName('body')[0].style.paddingTop = '1px';
		document.getElementsByTagName('body')[0].style.paddingTop = '0px';
	}
}

var checkBlur = function (e) {
	e = e || window.event;
	var target = e.target || e.srcElement || false;
	if (!target) {
		return;
	}
	if (aktDropdown!="") {
		var container = getEl(aktDropdown+'_dropdown_container');
		(getEl(aktDropdown+'_dropdown_liste').style.display == 'block') ? opened = true : opened = false;
		if (
			opened &&
			target != container &&
			!container.contains(target)
		) {
			closeDropdown(aktDropdown);
		}
	}
};


if(window.captureEvents) {
  window.captureEvents(Event.LOAD);
}

function doOnLoad() {
	dropdownInit();
	doCorrectRendering();
	doCorrectTooltipIEBug();
	doCorrectHomeTabsOnLoadStatus();
	doRePositionToolTips();
	doRePositionZoomPopups();
	loadStyle();
}

window.onload = doOnLoad;



var DROPDOWN_SCROLL_STEP = 5;
var DROPDOWN_SCROLL_INTERVAL = 50;
var DROPDOWN_SCROLL_WIDTH_FOR_IE6 = 18;
sliders = new Array();

function configureDropdownScrollbar(dropdownPrefix) {
	if (getEl(dropdownPrefix+'_dropdown_scroll_outer').getElementsByTagName('li').length>7)	{
		addCSSClass('dropdown_liste_scrollbar', getEl(dropdownPrefix+'_dropdown_liste'));
		toggleDropdown(dropdownPrefix);
		if (navigator.userAgent.indexOf('Safari')!=-1)
			getEl(dropdownPrefix+'_dropdown_scrollbar_track').style.height = '65px';
		dd_slider = new Control.Slider(dropdownPrefix+'_dropdown_scrollbar_handle', dropdownPrefix+'_dropdown_scrollbar_track', {
			axis: 'vertical',
			range: $R(0, 100),
			onSlide: function(v) { addCSSClass('mouseOnHandle', getEl(dropdownPrefix+'_dropdown_scrollbar_track')); scrollMouseUp(); scrollVertical(v, $(dropdownPrefix+'_dropdown_scroll_outer'), dd_slider);  },
			onChange: function(v) { removeCSSClass('mouseOnHandle', getEl(dropdownPrefix+'_dropdown_scrollbar_track')); scrollVertical(v, $(dropdownPrefix+'_dropdown_scroll_outer'), dd_slider); }
		});
		sliders[dropdownPrefix+'_slider'] = dd_slider;
		if (navigator.appVersion.split('MSIE 7').length != 1) {
			getEl(dropdownPrefix+'_dropdown_scroll_outer').style.width = parseInt(getEl(dropdownPrefix+'_dropdown_scroll_outer').offsetWidth)+'px';
		}
		getEl(dropdownPrefix+'_dropdown_scroll_outer').style.overflow = 'hidden';
		toggleDropdown(dropdownPrefix);
	}
}

function scrollVertical(value, element, slider) {
	element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}

function doScrollUp(slider) {
	tmp=slider.value-DROPDOWN_SCROLL_STEP; if (tmp<0) tmp=0; slider.setValue(tmp);
}

function doScrollDown(slider) {
	tmp=slider.value+DROPDOWN_SCROLL_STEP; if (tmp>100) tmp=100; slider.setValue(tmp);
}

function scrollMouseDown(dir, slider, obj) {
	switch (dir) {
		case 'up':
			if (typeof(dropdown_scroll)!='undefined') window.clearInterval(dropdown_scroll);
			dropdown_scroll = window.setInterval(function() { doScrollUp(slider); }, DROPDOWN_SCROLL_INTERVAL);
		break;
		case 'down': 
			if (typeof(dropdown_scroll)!='undefined') window.clearInterval(dropdown_scroll);
			dropdown_scroll = window.setInterval(function() { doScrollDown(slider); }, DROPDOWN_SCROLL_INTERVAL);
		break;
	}
}

function scrollMouseUp(obj) {
	if (typeof(obj)!='undefined') obj.blur();
	if (typeof(dropdown_scroll)!='undefined') window.clearInterval(dropdown_scroll);
}


function addCSSClass(cssClass, obj) {
	if ((' '+obj.className+' ').indexOf(' '+cssClass+' ') == -1)
		obj.className += ' '+cssClass;
}

function removeCSSClass(cssClass, obj) {
	if ((' '+obj.className+' ').indexOf(' '+cssClass+' ') != -1)
		obj.className = (' '+obj.className+' ').replace(new RegExp(' '+cssClass+' ',"g"),'');
}

function hasCSSClass(cssClass, obj) {
 return ((' '+obj.className+' ').indexOf(' '+cssClass+' ') == -1)
 ? false
 : true;
}
