//sonstige globale variablen
var dropper_open_delay=10; //Oeffner Verzoegerung in ms / default 100 (100ms = 1s) 
var dropper_close_delay=10; //Schliess Verzoegerung in ms / default 350 (100ms = 1s)
var dropperstop=0;
var dropperstop_menu=0;
var dropperstop_downmenu=0;
var dropperstop_next=0; 
var dropperstop_id=0;
var old_dropper_point=0;
var old_dropper_point_class='';
var old_dropper_menu_class='';
var dropper_text='';
var dropper_top='';
var dropper_start=0;

var dropperType = 'overview';

var droppers = new Array();
droppers['article']  = { width:233, height:400, max_right:800 };
droppers['overview'] = { width:175, height:400, max_right:800 };                  
droppers['4']        = { width:175, height:400, max_right:800 };
droppers['5']        = { width:140, height:400, max_right:800 };
droppers['6']        = { width:116, height:400, max_right:800 };


/**
 * Waehlt einen Droppertyp aus.
 * 
 * Taucht dazu auch die verwendete CSS-Definition aus.
 * 
 * @param index
 * @return
 */
function use_dropper(type) {

    dropperType = type;
	// Tausche CSS aus
	var cssLink = document.getElementById("dropperCss");
	if (cssLink) {
		cssLink.removeAttribute("href");
		cssLink.setAttribute("href","/ullapopken/resources/css/dropper_"+dropperType+".css");
	}
	
}

function dropper_delayin(id,menu_id,dropdown_id,num) //oeffnet das menu nach dem der counter abgelaufen ist
{
	//alert(document.getElementById(id).offsetTop);
	//if(typeof $ == 'function') {
	//	$(".dropper_border").css("border-width","1px");
	//}
	if (dropperstop==num)
	if (document.getElementById(menu_id).className!='dropper_menu_over')
	{
		if (dropperstop_id) 
				if (dropperstop_id!=id) 
					{
						window.setTimeout("document.getElementById('"+dropperstop_id+"').style.display='none';",1);
						document.getElementById(dropperstop_menu).className=old_dropper_menu_class;
						if (old_dropper_point) old_dropper_point.className=old_dropper_point_class;//setzt den menupunkt effekt zurueck
					}
		document.getElementById(id).style.display='inline';
		dropdownEl = document.getElementById(dropdown_id);
		if (dropdownEl) {
			dropdownEl.scrollTop=0;
		}		
		old_dropper_menu_class=document.getElementById(menu_id).className;
		document.getElementById(menu_id).className='dropper_menu_over';
		dropperstop_menu=menu_id;
		dropperstop_downmenu=dropdown_id;
		dropperstop_id=id;
		dropper_stopper();
	}	
}

function dropper_delaycheck(id,menu_id,dropdown_id) //passt das menu an width,height,top,left,scrollbar,kein scrollbar e.t.c.
{
	var dropper_width = droppers[dropperType].width;
	var dropper_height = droppers[dropperType].height;
	var dropper_max_right = droppers[dropperType].max_right;
	var divEl = document.getElementById(id)
	var dropdownEl = document.getElementById(dropdown_id);
	var menuEl = document.getElementById(menu_id);
	if (dropdownEl) {
		dropdownEl.style.width=dropper_width+'px';
		if (dropdownEl.offsetHeight>=dropper_height)
		{
			dropdownEl.style.overflow ='auto';
			dropdownEl.style.height=dropper_height+'px';
		}
	}
	//divEl.style.top=(document.getElementById(id).offsetTop-0)+'px';
	if (divEl.offsetLeft+dropper_width>dropper_max_right) {		
		divEl.style.left=(divEl.offsetLeft-(dropper_width-menuEl.offsetWidth+10))+'px';
	}
	divEl.style.left=(divEl.offsetLeft-10)+'px';
	divEl.style.display='none';
	divEl.style.visibility='visible';
	dropper_start=1;// sobald der hier auf 1 ist kann das menu benutzt werden
}

function dropper_delayout(num) //schliest das menu nach dem der counter abgelaufen ist
{
	if (dropperstop_id)
	if (dropperstop==num)
		{
			window.setTimeout("document.getElementById('"+dropperstop_id+"').style.display='none';",1);
			document.getElementById(dropperstop_menu).className=old_dropper_menu_class;
			if (old_dropper_point) old_dropper_point.className=old_dropper_point_class;
			old_dropper_point=0;
			dropperstop_id=0;
		}
}

function dropper_over(id,menu_id,dropdown_id) //startet oeffner counter
{
	if (dropper_start)//erst wenn das menu schon gecheckt wurde
	{
		dropperstop++;
		dropperstop_next=dropperstop;
		window.setTimeout('dropper_delayin("'+id+'","'+menu_id+'","'+dropdown_id+'",'+dropperstop+');',dropper_open_delay);
	}
}

function dropper_out() //startet schlies counter
{
	dropperstop++;
	dropperstop_next=dropperstop;
	window.setTimeout('dropper_delayout('+dropperstop+');',dropper_close_delay); //zeit bis zur Schliessung 100 schnell bis 1000+ langsam
}

function dropper_check(id,menu_id,dropdown_id) //startet check counter
{
	window.setTimeout("dropper_delaycheck('"+id+"','"+menu_id+"','"+dropdown_id+"');",1); //verzoegerter aufbau damit alle sachen positioniert sind befor das menu angeordnet werden kann (safari macht sonst probleme)
}

function dropper_point(id) //menupunkt over effekt
{
	if (old_dropper_point) 
	{
		old_dropper_point.className=old_dropper_point_class;
	}
	if (id.className=='dropper_point')
	{
		id.className='dropper_point_over';
		old_dropper_point=id;
		old_dropper_point_class='dropper_point';
	}
	else
	{
		id.className='dropper_point_inactiv_over';
		old_dropper_point=id;
		old_dropper_point_class='dropper_point_inactiv';
	}
	dropper_stopper();
}

function dropper_stopper() {dropperstop++;}


function dropper_init(){
	for (var i=1; i<=10; i++){
		if (document.getElementById('div_'+i)){
			dropper_check('div_'+i, 'div_'+1+'_menu', 'div_'+i+'_dropdown');
		}
	}
}

/**
 * Markiert den Dropper als selektiert.
 * 
 * Fuegt die entsprechende CSS-Klasse hinzu
 * 
 * @param id
 * @return
 */
function dropper_setselected(dropperNr) {	
	var dropperSelectClass = "selected";
	var element = document.getElementById('div_'+dropperNr+'_head');
	if (element) {		
		var clazz = element.className;
		if (clazz.indexOf(dropperSelectClass)<0) {
			element.className = dropperSelectClass+" "+clazz;
		}
	}
}

/**
 * Selektiert den Wert "value" im Dropper.
 * 
 * @param id
 * @param value
 * @return
 */
function dropper_select(dropperNr,optionKey) {
	if (optionKey && optionKey!='') {
	    var menuEl = document.getElementById("div_"+dropperNr);
	    if (!menuEl) return;
	
	    var itemElKey = "div_"+dropperNr+"_item_"+optionKey;
	    var itemEl = document.getElementById(itemElKey);
	    if (itemEl) {
	        var headEl = document.getElementById("div_"+dropperNr+"_head");                       
	        headEl.innerHTML = itemEl.innerHTML;
	        dropper_setselected(dropperNr);
	    }
	}
}
