//DD Tab Menu- Script rewritten April 27th, 07: http://www.dynamicdrive.com
//**Updated Feb 23rd, 08): Adds ability for menu to revert back to default selected tab when mouse moves out of menu

//Only 2 configuration variables below:

var ddtabmenu={
	disabletablinks: false, //Disable hyperlinks in 1st level tabs with sub contents (true or false)?
	snap2original: [true, 300], //Should tab revert back to default selected when mouse moves out of menu? ([true/false, delay_millisec]

	currentpageurl: window.location.href.replace("http://"+window.location.hostname, "").replace(/^\//, ""), //get current page url (minus hostname, ie: http://www.dynamicdrive.com/)

definemenu:function(tabid, dselected){
	this[tabid+"-menuitems"]=null
	this[tabid+"-dselected"]=-1
	this.addEvent(window, function(){ddtabmenu.init(tabid, dselected)}, "load")
},

showsubmenu:function(tabid, targetitem){
	var menuitems=this[tabid+"-menuitems"]
	this.clearrevert2default(tabid)
 for (i=0; i<menuitems.length; i++){
		menuitems[i].className=""
		if (typeof menuitems[i].hasSubContent!="undefined")
			document.getElementById(menuitems[i].getAttribute("rel")).style.display="none"
	}
	targetitem.className="current"
	if (typeof targetitem.hasSubContent!="undefined")
		document.getElementById(targetitem.getAttribute("rel")).style.display="block"
},

isSelected:function(menuurl){
	var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^\//, "")
	return (ddtabmenu.currentpageurl==menuurl)
},

isContained:function(m, e){
	var e=window.event || e
	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
	while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
	if (c==m)
		return true
	else
		return false
},

revert2default:function(outobj, tabid, e){
	if (!ddtabmenu.isContained(outobj, tabid, e)){
		window["hidetimer_"+tabid]=setTimeout(function(){
			ddtabmenu.showsubmenu(tabid, ddtabmenu[tabid+"-dselected"])
		}, ddtabmenu.snap2original[1])
	}
},

clearrevert2default:function(tabid){
 if (typeof window["hidetimer_"+tabid]!="undefined")
		clearTimeout(window["hidetimer_"+tabid])
},

addEvent:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
	var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
	if (target.addEventListener)
		target.addEventListener(tasktype, functionref, false)
	else if (target.attachEvent)
		target.attachEvent(tasktype, functionref)
},

init:function(tabid, dselected){
	var menuitems=document.getElementById(tabid).getElementsByTagName("a")
	this[tabid+"-menuitems"]=menuitems
	for (var x=0; x<menuitems.length; x++){
		if (menuitems[x].getAttribute("rel")){
			this[tabid+"-menuitems"][x].hasSubContent=true
			if (ddtabmenu.disabletablinks)
				menuitems[x].onclick=function(){return false}
			if (ddtabmenu.snap2original[0]==true){
				var submenu=document.getElementById(menuitems[x].getAttribute("rel"))
				menuitems[x].onmouseout=function(e){ddtabmenu.revert2default(submenu, tabid, e)}
				submenu.onmouseover=function(){ddtabmenu.clearrevert2default(tabid)}
				submenu.onmouseout=function(e){ddtabmenu.revert2default(this, tabid, e)}
			}
		}
		else //for items without a submenu, add onMouseout effect
			menuitems[x].onmouseout=function(e){this.className=""; if (ddtabmenu.snap2original[0]==true) ddtabmenu.revert2default(this, tabid, e)}
		menuitems[x].onmouseover=function(){ddtabmenu.showsubmenu(tabid, this)}
		if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[x].href)){
			ddtabmenu.showsubmenu(tabid, menuitems[x])
			this[tabid+"-dselected"]=menuitems[x]
			var setalready=true
		}
		else if (parseInt(dselected)==x){
			ddtabmenu.showsubmenu(tabid, menuitems[x])
			this[tabid+"-dselected"]=menuitems[x]
		}
	}
}
}






function do_iframe() {
	ret =false;
	if(document.all && navigator.userAgent.toLowerCase().search("opera") == -1) {
	ret = true;
	}
	return ret;
}

function PageOffsetTop(el) {
	var y;

	y = el.offsetTop;
	if (el.offsetParent != null) {
	if(el.offsetParent.style && el.offsetParent.style.overflow && el.offsetParent.style.overflow!="visible") {
	}
	else {
		y += PageOffsetTop(el.offsetParent);
	}
	}
	return y;
}


function PageOffsetLeft(el) {
	var x;
  
	x = el.offsetLeft;
	if (el.offsetParent != null) {
		if(el.offsetParent.style && el.offsetParent.style.overflow && el.offsetParent.style.overflow!="visible") {
		}
		else {
		x += PageOffsetLeft(el.offsetParent);
		}
	}
	return x;
}


function hover_info_hide() {
	w=document.getElementById("hover_info");
	w.style.display="none";

	u=document.getElementById("underground");
	u.style.display="none";
}

function hover_info(text, button) {

	    w=document.getElementById("hover_info");
	    w.innerHTML=text;

	    w.style.top=PageOffsetTop(button)+"px";
	    w.style.left=(PageOffsetLeft(button)-305)+"px";
	    w.style.display="";
	    
	    if(do_iframe()) {
			u=document.getElementById("underground");
			u.style.top=w.style.top;
			u.style.left=w.style.left;
			u.style.width=w.style.width;
			u.style.height=w.offsetHeight;
			u.style.display="";
	    }
}

function hover_info_left(text, button) {

	    w=document.getElementById("hover_info");
	    w.innerHTML=text;

	    w.style.top=PageOffsetTop(button)+"px";
	    w.style.left=(PageOffsetLeft(button)+40)+"px";
	    w.style.display="";
	    
	    if(do_iframe()) {
			u=document.getElementById("underground");
			u.style.top=w.style.top;
			u.style.left=w.style.left;
			u.style.width=w.style.width;
			u.style.height=w.offsetHeight;
			u.style.display="";
	    }
}

function my_toggle(tid) {
    if(r=document.getElementById("row"+tid)) {
		if(r.style.display=="none") {
			r.style.display="";
		}
		else {
			r.style.display="none";
		}
	}
	
}

var orig_class="";
function line_light(e,state) {
	if(state==1) {
		orig_class=e.className;
		e.className="marked";
	}
	else {
		e.className=orig_class;
	}
}


function address_select(url,orig_form,field) {
	if(url.match(/\?/)) {
		url=url+"&";
	}
	else {
		url=url+"?";
	}
	url=url+"orig_form="+orig_form+"&field="+field;
	f=window.open(url,"selector","width=800,height=430,resize=no");
	f.focus();
	
}

function as(id,form,field) {
	if(window.opener) {
		if(window.opener.document[form]) {
			if(window.opener.document[form][field]) {
				f=window.opener.document[form][field];
				found=false;
				i=0;
				while(!found && i<f.length) {
					if(f[i].value==id) {
						f.selectedIndex=i;
						found=true;
					}
					i++;
				}

				if(found) {
					window.opener.sp_select();
					window.opener.focus();
					window.close();
				}
				else {
					alert("Diese Adresse konnte nicht in der Auswahl des aufrufenden Fensters gefunden werden. Bitte laden Sie die Seite neu und wählen erneut die Adresse aus.");
				}
			}
		}
		else {
			alert("Adresse kann nicht übertragen werden. GGf. wurde das aufrufende Fenster gewechselt?");
		}
	}
	else {
		alert("Adresse kann nicht übertragen werden. GGf. wurde das aufrufende Fenster geschlossen?");
	}
}
