//
// gloabl js-tools
//

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//
// FLASH DETECTION
//
// -----------------------------------------------------------------------------
// Globale Variablen
// Erforderliche Hauptversion von Flash
var requiredMajorVersion = 7;
// Erforderliche Unterversion von Flash
var requiredMinorVersion = 0;
// Erforderliche Flash-Revision
var requiredRevision = 0;
// Die unterstützte JavaScript-Version
var jsVersion = 1.0;
// -----------------------------------------------------------------------------
<!-- // Client-Browsertyp ermitteln
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
jsVersion = 1.1;
// JavaScript-Hilfsprogramm ist zur Ermittlung der Versionsinformationen des Flash Player Plug-Ins erforderlich
function JSGetSwfVer(i){
	// NS/Opera-Version >= 3 auf Flash-Plug-In im Plug-In-Array prüfen
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// MSN/WebTV 2.6 unterstützt Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 unterstützt Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// älteres WebTV unterstützt Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	// Ermittlung in allen anderen Fällen nicht möglich
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// Wenn der Funktionsaufruf ohne Parameter erfolgt, gibt diese Funktion einen Gleitkommawert zurück,
// bei dem es sich entweder um die Flash Player-Version oder um 0.0 handelt.
// Beispiel: Flash Player 7r14 gibt 7.14 zurück.
// Wenn reqMinorVer, reqMajorVer, reqRevision aufgerufen wird, wird 'true' zurückgegeben, sofern diese bzw. eine höhere Version verfügbar ist
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// Versionen rückwärts durchlaufen, bis die neueste Version gefunden wird	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// ist die Hauptrevision >= angeforderte Hauptrevision UND die Nebenversion >= angeforderte Nebenversion
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	return (reqVer ? false : 0.0);
}
// -->
// DETECTION ENDS
//

//
// menu config objects:
//

menu_entry = function (entry_text, entry_ref) {
	this.text = entry_text;
	this.ref = entry_ref;
}

menu_conf = function(title, subs) {
	this.title = title;
	this.subs = new Array();
	this.subs = subs;
}


// runtime vars

var z_index = 0;
var active_title = "none";

var down_pressed = true;

var active_sub = 1000;
var check_timeout = 0;

var menu_counter = 0;

var sub_top_border = 17;
var sub_height = 1;

var menues_down = new Array();
var sub_obj_down = new Array();

var menues_top = new Array();
var sub_obj_top = new Array();

// menue class

js_menu_down = function (categorie, ids,menu_counter) {
	this.id = menu_counter;
	this.subs_meta = new Array();
	this.styletype = categorie;
	switch (categorie) {
		case "projekte":
			this.title = projekte[ids[0]];
			
			if (typeof(ids[1]) != "undefined") {
				for (i=0;i<ids.length;i++) {
					this.subs_meta[i-1] = projekte[ids[i]];
				}
			}
			break;
		case "kunden":
			this.title = kunden[ids[0]];
			
			if (typeof(ids[1]) != "undefined") {
				for (i=1;i<ids.length;i++) {
					this.subs_meta[i-1] = kunden[ids[i]];
				}
			}
			break;
	}
	this.sub_obj = new Array();
}


js_menu_down.prototype.create_sub = function () {
	var entry_id = "entry_down_" + this.id;
	var sub_id = "sub_down_" + this.id;
	
	if ( this.subs_meta.length > 0 ) {
		html = "<td class='td_submenu_links' width='100%' onMouseDown='down_pressed=true;switch_on(\"down\",\""+sub_id+"\",\""+this.id+"\");' bgcolor='#efefef' height='14' onMouseOut='set_timeout_for(\"down\",\""+sub_id+"\",\""+this.id+"\")'><span class='arbeitenfont'>"+this.title.text+"</span></td>";
		html += "<td class='td_submenu_rechts' width='15' height='14' bgcolor='#efefef' onMouseDown='switch_on(\"down\",\""+sub_id+"\",\""+this.id+"\")' onMouseOut='set_timeout_for(\"down\",\""+sub_id+"\",\""+this.id+"\")'><img border='0' align='right' valign='top' src='../pix/pics_of_elements/pfeilrunter_gray.gif' /></td>";
		html += "<div class=\"submenu_down\" id=\""+sub_id+"\" style=\"z-index:"+ ++z_index +";\" onMouseOver='switch_on(\"down\",\""+sub_id+"\",\""+this.id+"\")'  onMouseOut='switch_off(\"down\",\""+sub_id+"\",\""+this.id+"\")'>";
		for (var i=0;i<this.subs_meta.length;i++) {
			sub_div_id = "sub_div_down_" + this.id + "_" + i;
			sub_a = "<div class=\"subdif_down_"+ this.styletype +"\" id=\"" + sub_div_id + "\" ><a href=\"" + this.subs_meta[i].ref + "\">" + this.subs_meta[i].text + "</a></div>";
			html +=sub_a;
			this.sub_obj[i] = sub_div_id;
		}
		html +="</div>";
	} else {
		html = "<td class='td_submenu_links' bgcolor='#efefef' height='14'><span class='arbeitenfont'>"+this.title.text+"</span></td>";
		html += "<td class='td_submenu_rechts' width='15' bgcolor='#efefef'><span class='arbeitenfont'>&nbsp;</span></td>";
	}
	document.write(html);
	sub_obj_down[this.id] = new Array();
	sub_obj_down[this.id] = this.sub_obj;
}


//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

js_menu_top = function (which_menu) {
	this.id = which_menu;
	this.title = menu_struct_top[which_menu].title;
	this.subs_meta = menu_struct_top[which_menu].subs;
	this.sub_obj = new Array();
}


js_menu_top.prototype.create_sub = function () {
	var entry_id = "entry_" + this.id;
	var sub_id = "sub_" + this.id;
	document.write("<div style='width:10px;'>");
	document.write("<span class=\"title\" style=\"z-index:"+ ++z_index +";\" onMouseOver='switch_on(\"top\",\""+sub_id+"\",\""+this.id+"\")' onMouseOut=\"set_timeout_for('top','"+sub_id+"','"+this.id+"')\">");
	document.write(this.title.text);
	document.write("</span>");
	sub_span = "<span class=\"submenu_top\" id=\""+sub_id+"\" style=\"z-index:"+ ++z_index +";\" onMouseOver='switch_on(\"top\",\""+sub_id+"\",\""+this.id+"\")'  onMouseOut='switch_off(\"top\",\""+sub_id+"\",\""+this.id+"\")'>";
	document.write(sub_span);
	for (var i=0;i<this.subs_meta.length;i++) {
		sub_div_id = "sub_div_" + this.id + "_" + i;
		sub_a = "<div class=\"subdif_top\" id=\""+sub_div_id+"\" ><a class=\"subfont_top\" href=\""+this.subs_meta[i].ref+"\">"+this.subs_meta[i].text+"</a></div>";
		document.write(sub_a);
		this.sub_obj[i] = sub_div_id;
	}
	document.write("</span>");
	document.write("</div>");
	sub_obj_top[this.id] = new Array();
	sub_obj_top[this.id] = this.sub_obj;
}


function set_timeout_for(topdown,which_element, which_id) {
	mouse_over = false;
	check_timeout = setTimeout("check_on_off(\""+topdown+"\",\""+ which_element +"\", \""+which_id+"\")",1000);
}


function check_on_off(topdown,which_element,which_id) {

	if ((active_title == "none") || (!mouse_over)) {
		switch_off(topdown, which_element, which_id);
	}
	clearTimeout(check_timeout);
}

function switch_off (topdown,which_element,which_id) {
	document.getElementById(which_element).style.visibility = "hidden";
	a = new Array();
	
	if (topdown == "top") {
		a = sub_obj_top;
	} else {
		a = sub_obj_down;
	}
	for (i=0;i<a[which_id].length;i++) {
		document.getElementById(a[which_id][i]).style.visibility = "hidden";
	}
	active_title = "none";
	active_sub = 1000;
	active_menue = "none";
}

function switch_on (topdown,which_element,which_id) {
	mouse_over = true;
	if (active_title != "none") {
		switch_off(active_menue,active_title,active_sub);
	}
	a = new Array();
	if (topdown == "top") {
		a = sub_obj_top;
	} else {
		a = sub_obj_down;
		document.getElementById(which_element).style.top = "16px";
	}
	if ((topdown == "down") && (down_pressed == false)) {
//		alert ("surpressed mistake");
	} else {
		for (i=0;i<a[which_id].length;i++) {
			document.getElementById(a[which_id][i]).style.visibility = "visible";
		}
		document.getElementById(which_element).style.visibility = "visible";
	}
	active_title = which_element;
	active_sub = which_id;
	active_menue = topdown;
}

function create_menu_top(which_menu) {
	menues_top[which_menu] = new js_menu_top(which_menu);
	menues_top[which_menu].create_sub();
}

function create_menu_down(categorie, ids) {
	menues_down[menu_counter] = new js_menu_down(categorie, ids,menu_counter );
	menues_down[menu_counter++].create_sub();
}






