//dropdown scripts
function hilight(elmt,status) {
	if (status) {
		elmt.parentNode.parentNode.getElementsByTagName('div')[0].getElementsByTagName('a')[2].className = 'dd_right_hi';
	}
	else {
		elmt.parentNode.parentNode.getElementsByTagName('div')[0].getElementsByTagName('a')[2].className = 'dd_right';
	}
}

function hoverMe(elmt,status) {
	if (status) {
		elmt.className = 'a_hover';
	}
	else {
		elmt.className = '';
	}
	
	
}

var currentDropdown = null;

function showDropdown(elmt,status) {
	if (elmt.parentNode.parentNode.getElementsByTagName('div')[1].className == 'dropdownContent_hi') {
		
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].className = 'dropdownContent';
		if (status) {
			elmt.parentNode.parentNode.getElementsByTagName('a')[1].innerHTML = elmt.innerHTML;
			elmt.parentNode.parentNode.getElementsByTagName('input')[0].value = elmt.name.slice(elmt.name.indexOf('value:')+6,elmt.name.length);
		}
	}
	else {
		if (elmt != currentDropdown && currentDropdown) {
			currentDropdown.getElementsByTagName('div')[1].className = 'dropdownContent';
		}
		
		currentDropdown = elmt.parentNode.parentNode;
		
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].className = 'dropdownContent_hi';
		
		elmt.parentNode.parentNode.style.position = 'relative';
		_tmp_top = elmt.parentNode.parentNode.offsetTop;
		_tmp_left = elmt.parentNode.parentNode.offsetLeft;
		elmt.parentNode.parentNode.style.position = '';
		
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].style.top = Number(_tmp_top)+Number(22)+'px';
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].style.left = _tmp_left+'px';
		
		elmt.parentNode.parentNode.style.position = 'relative';
		_tmp_top = elmt.parentNode.parentNode.offsetTop;
		_tmp_left = elmt.parentNode.parentNode.offsetLeft;
		elmt.parentNode.parentNode.style.position = '';
		
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].style.top = Number(_tmp_top)+Number(22)+'px';
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].style.left = _tmp_left+'px';
		
		b = elmt.parentNode.parentNode.getElementsByTagName('div')[1].offsetWidth;
		
		for (i=0;i<elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a').length;i++) {
			elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a')[i].style.width = Number(b) - Number(10) + 'px';	
		}
	}
}

document.onclick = handler;
function handler (e) {
	e = e || window.event;
 	var target = e.target || e.srcElement
	
	if (target.parentNode.parentNode != currentDropdown && currentDropdown) {
		currentDropdown.getElementsByTagName('div')[1].className = 'dropdownContent';
	}
}

function initDropdowns() {
	for (i=0;i<document.body.getElementsByTagName('select').length;i++) {
		
		var currentSelect = document.body.getElementsByTagName('select')[i];
		
		//breite system dropdown ermitteln
		var customDropDownWidth = currentSelect.offsetWidth;
		
		//attribute system dropdown ermitteln
		var selectedOptionText = currentSelect.getElementsByTagName('option')[0].innerHTML;
		var selectedOptionValue = currentSelect.getElementsByTagName('option')[0].value;
		var selectedOptionName = currentSelect.name;
		var selectedOptionId = currentSelect.id;
		
		//array mit value, text, optional selected values bilden
		selectOptions = new Array();
		seperator = '|';
		
		for (j=0;j<currentSelect.getElementsByTagName('option').length;j++) {
			currentOption = currentSelect.getElementsByTagName('option')[j];
			
			if (currentOption.selected == true) {
				selectedOptionText = currentOption.innerHTML;
				selectedOptionValue = currentOption.value;
			}
				
			selectOptions.push(currentOption.getAttribute('value')+seperator+currentOption.innerHTML);
		}	
		
		//erzeuge linkliste aus option tags
		html = '';
		
		for (k=0;k<selectOptions.length;k++) {
			_temp = selectOptions[k].split('|')
			
			html += '<a name="value:'+_temp[0]+'" onmouseover="hoverMe(this,true)" onmouseout="hoverMe(this,false)" onclick="showDropdown(this,true)">'+_temp[1]+'</a>';
		}
		
		//erzeuge custom dropdown menue
		var objBody = document.getElementsByTagName('body').item(0);
		
		var objDropdownContainer = document.createElement('div');
		currentSelect.parentNode.insertBefore(objDropdownContainer, currentSelect);
		
		var objDropdown = document.createElement('div');
		objDropdown.className = 'dropdown';
		objDropdownContainer.appendChild(objDropdown);
		
		var objHiddenField = document.createElement('input');
		objHiddenField.setAttribute('type','hidden');
		objHiddenField.setAttribute('name',selectedOptionName);
		objHiddenField.setAttribute('id',selectedOptionId);
		objHiddenField.setAttribute('value',selectedOptionValue);
		objDropdown.appendChild(objHiddenField);
		
		var objDiv = document.createElement("div");
		objDropdown.appendChild(objDiv);
		
		var objSelectLeft = document.createElement('a');
		objSelectLeft.setAttribute('href','javascript://');
		objSelectLeft.className = 'dd_left';
		objSelectLeft.onmouseover = function(e) {  
   			hilight(this,true); 
		}; 
		objSelectLeft.onmouseout = function(e) {  
   			hilight(this,false); 
		};
		objSelectLeft.onclick = function(e) {  
   			showDropdown(this,false); 
		}; 
		objDiv.appendChild(objSelectLeft);
		
		var objSelectMiddle = document.createElement('a');
		objSelectMiddle.setAttribute('href','javascript://');
		objSelectMiddle.className = 'dd_middle';
		objSelectMiddle.onmouseover = function(e) {  
   			hilight(this,true); 
		}; 
		objSelectMiddle.onmouseout = function(e) {  
   			hilight(this,false); 
		}; 
		objSelectMiddle.onclick = function(e) {  
   			showDropdown(this,false); 
		}; 
		objSelectMiddle.innerHTML = selectedOptionText;
		objDiv.appendChild(objSelectMiddle);
		
		var objSelectRight = document.createElement('a');
		objSelectRight.setAttribute('href','javascript://');
		objSelectRight.className = 'dd_right';
		objSelectRight.onclick = function(e) {  
   			showDropdown(this,false); 
		}; 
		objDiv.appendChild(objSelectRight);
		
		var objDropdownContent = document.createElement('div');
		objDropdownContent.className = 'dropdownContent';
		objDropdownContent.innerHTML = html;
		objDropdown.appendChild(objDropdownContent);
		
		var clearFix = document.createElement('br');
		clearFix.className = 'clear';
		objDropdownContainer.appendChild(clearFix);
		
		//korrekte breite für custom dropdown berechnen und setzen
		if(window.getComputedStyle) { 
           	var	leftWidth = window.getComputedStyle(objSelectLeft,'').getPropertyValue('width'); 
			var rightWidth = window.getComputedStyle(objSelectRight,'').getPropertyValue('width'); 
			var middlePadding = window.getComputedStyle(objSelectMiddle,'').getPropertyValue('padding-right'); 
			
			var middleWidth = parseInt(customDropDownWidth)-(parseInt(leftWidth)+parseInt(rightWidth)+parseInt(middlePadding));
			var dropdownWidth =  parseInt(customDropDownWidth);
			var dropdownContentWidth = parseInt(customDropDownWidth)-2;
		}
		else {
			var leftWidth = objSelectLeft.currentStyle.width;
			var rightWidth = objSelectRight.currentStyle.width;
			var middlePadding = objSelectMiddle.currentStyle.paddingRight;
			
			var middleWidth = parseInt(customDropDownWidth)-(parseInt(leftWidth)+parseInt(rightWidth)+parseInt(middlePadding));
			var dropdownWidth =  parseInt(customDropDownWidth);
			var dropdownContentWidth = parseInt(customDropDownWidth)-2;
		}
		
		objSelectMiddle.style.width = middleWidth+'px';		
		objDropdown.style.width = dropdownWidth+'px';		
		objDropdownContent.style.minWidth = dropdownContentWidth+'px';		
		objDropdownContent.style.width = dropdownContentWidth+'px';		
	}
	
	var currentSelect = new Array()
	for (i=0;i<document.body.getElementsByTagName('select').length;i++) {
		currentSelect.push(document.body.getElementsByTagName('select')[i])
	}
	
	for (i=0;i<currentSelect.length;i++) {
		currentSelect[i].parentNode.removeChild(currentSelect[i]);
	}
}