var mainMenuTop = 42
var mainMenuLeft = 18;
var globMenuData = new Array();
var oldDataVal = 1;

var onScroll = 0;
var scrollVal = 0;
var scrollLay = "";
var curPos = 0;

DynAPI.setLibraryPath('includes/libjs/dynapi/lib/');
DynAPI.include('dynapi.api.*');
DynAPI.include('dynapi.event.*')
DynAPI.include('dynapi.util.thread.js');
DynAPI.include('dynapi.util.pathanim.js');
DynAPI.include('dynapi.gui.viewport.js');
DynAPI.include('dynapi.gui.label.js');

function onEr() {
	return true;
}

window.onerror = onEr;

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 hpInit()
{	
	MM_preloadImages('images/blank.gif');
}

var arrowTimer = new Array();
arrowTimer[1] = 0;
arrowTimer[2] = 0;

function startArrow(vp, button)
{
	arrowTimer[vp] = 1;
	arrowState(vp, button);
}

function stopArrow(vp, button)
{
	arrowTimer[vp] = 0;
	arrowState(vp, button);				
}

function arrowState(vpid, button)
{
	if (vpid==1) {
		vp = viewport;	
	} else {
		vp = viewport2;		
	}
	
	if (vp.contentPane.getHeight() <= vp.getHeight())
	{
		layer_hide('viewportTextNav'+vpid+'Oben');
		layer_hide('viewportTextNav'+vpid+'Unten');	
		return;		
	}
	var intData = vp.getRatioY();
	if (intData > 1)
	{
		layer_hide('viewportTextNav'+vpid+'Oben');
		layer_hide('viewportTextNav'+vpid+'Unten');
	} else if (intData <= 0)
	{
		layer_hide('viewportTextNav'+vpid+'Oben');
		layer_show('viewportTextNav'+vpid+'Unten');
	} else if (intData == 1)
	{
		layer_show('viewportTextNav'+vpid+'Oben');
		layer_hide('viewportTextNav'+vpid+'Unten');
	} else {
		layer_show('viewportTextNav'+vpid+'Oben');
		layer_show('viewportTextNav'+vpid+'Unten');	
	}
	
	if (arrowTimer[vpid]==1)
	{
		setTimeout('arrowState('+vpid+', "'+button+'");', 50);
	}
}

function selmenu(check)
{
	if (check)
	{
		return "sel";	
	} else {
		return "";
	}
}

function openPopupWnd(url, ttl, w, h, scrollbars, toolbar, menubar) 
{
	var shopWidth = w;
	var shopHeight = h;
			
	if (screen.width >= 1024) 
	{
		Left = (screen.width / 2) - ( w /2);
		Top =(screen.height / 2) - ( h /2);
	} else { 
		Left = 0;
		Top = 0;    
	}    
				
	winStats='toolbar='+toolbar+',location=no,directories=no,menubar='+menubar+',resizable=yes,';
	winStats+='scrollbars='+scrollbars+',width='+w+',height='+h;
				       
	if (navigator.appName.indexOf("Microsoft") >= 0) {
		winStats+=',left=' + Left +',top=' + Top;
	}else{
		winStats+=',screenX=' + Left +',screenY=' + Top;
	}
			
	var shopWindow = window.open(url , ttl ,winStats) 
	shopWindow.resizeTo(shopWidth + 12, shopHeight + 13);
				
	if (shopWindow.opener == null) 
	 {
		shopWindow.opener = self;
	}
	
	return shopWindow;
}

function openMediaPopup(type, lang, txtData)
{
	
	openPopupWnd("mediaPopup.asp?lang="+lang+"&view="+type+"&data="+txtData, "123", 795, 750, 'yes', 'yes', 'no');
}

function showExhibition()
{
	openPopupWnd("default.asp?page=7", "123", 1024, 580, 'yes', 'yes', 'no');
}

// projekt # ---------------------------------------------
var projGrpCt = 0;
var curSel = 0;
var projGruppe = new Array();

function prjData()
{
	var id = 0;
	var sName = "";
	
	var projCt = 0;
	var projList = new Array();
};

function addProjektGruppe(id, name)
{
	var curGrp = new prjData();
	
	curGrp.projCt = 0;
	curGrp.projList = new Array();
	
	curGrp.id = id;
	curGrp.sName = name;
	projGruppe[projGrpCt] = curGrp;
	projGrpCt++;
}

function addProjekt(grpID, id, name)
{
	for (f=0; f < projGruppe.length; f++)
	{
		if (projGruppe[f].id == grpID) 
			break;
	}
	
	var curGrp = projGruppe[f];
	var data = new prjData();
	
	data.id = id;
	data.sName = name;
	
	curGrp.projList[curGrp.projCt] = data;
	curGrp.projCt++;
}

function selGrp(id, lang, page)
{
	curSel = id;
	viewPortfolioMenu(lang, page);
	viewProjektList(id, lang, page);
}

function viewPortfolioMenu(lang, page)
{
	
	var txtHTML = "";
	txtHTML = '<table border="0" width="242" cellpadding="0" cellspacing="0">';
	txtHTML += '<tr><td height="121" valign="bottom">';
	for (var f=0; f < projGruppe.length; f++)
	{
		txtHTML += '<a href="javascript://" '
		txtHTML += ' onmouseover="viewProjektList('+f+', '+lang+', '+page+');" onmouseout="viewProjektList('+curSel+', '+lang+', '+page+');" onclick="selGrp('+f+', '+lang+', '+page+');" class="portmenu'+selmenu(f==curSel)+'" onFocus="if(this.blur)this.blur();">';
		txtHTML += projGruppe[f].sName+'</a><br>';
	}
	txtHTML += '</td></tr></table>';
	layer_setHTML("portfolioMenu1", txtHTML);
}

function viewProjektList(id, lang, page)
{
	var txtHTML = "";
	var projektList = projGruppe[id].projList;
	document.images['porfolio_rand'].src = "images/ms_portfolio_randn_"+id+".jpg";
	
	txtHTML = '<table border="0" width="239" cellpadding="0" cellspacing="0">';
	txtHTML += '<tr><td valign="top">';
	for (var f=0; f < projektList.length; f++)
	{
		txtHTML += '<a href="default.asp?lang='+lang+'&page='+page+'&view='+projGruppe[id].id+'&data='+projektList[f].id+'" onFocus="if(this.blur)this.blur();" class="projektlist">';
		txtHTML += projektList[f].sName+'</a><br>';
	}
	txtHTML += '</td></tr></table>';
	
	prjListLabel = new Label(txtHTML);
	prjListLabel.setWrap(true);
	prjListLabel.setWidth(239);	
	viewport.setContent(prjListLabel);
	arrowState(1, "arrow");
}


// suche # ---------------------------------------------
var gSearchDataCt = 0;
var gSearchData = new Array();

var gSearchLand = "";
var gSearchArea_1 = 0;
var gSearchArea_2 = 0;
var gSearchCompl = 0;

var gCol2Ct = 0;
var gCol3Ct = 0;
var gCol4Ct = 0;
var gCol2 = new Array;
var gCol3 = new Array;
var gCol4 = new Array;

function setFilter(col, var1, var2)
{
	switch (col)
	{
		case 2:
			gSearchLand = var1;
			break;
		case 3:
			gSearchArea_1 = parseInt(var1);
			gSearchArea_2 = parseInt(var2);
			break;
		case 4:
			gSearchCompl = var1;
			break;			
	}
	gCol2Ct = 0;
	gCol3Ct = 0;
	gCol4Ct = 0;
	gCol2 = null;
	gCol3 = null;
	gCol4 = null;
	gCol2 = new Array();
	gCol3 = new Array();
	gCol4 = new Array();	
	viewSearchSelection();
}

function jsstring(vchar, ct)
{
	var retVal = "";
	for (var f =0; f < ct; f++)
		retVal+=vchar;
	return retVal;
}

function objSearchData()
{
	var sLand = "";
	var iArea = 0;
	var iCompletition = 0;
	this.init = objSearchData_init;
	this.check = objSearchData_check;
};

function objSearchData_check()
{
	if (gSearchLand != "")
		if (this.sLand != gSearchLand) 
			return 0;					
	if (gSearchCompl != 0)
		if (this.iCompletition != gSearchCompl)
			return 0;					
	if (gSearchArea_1 != 0 && gSearchArea_2 != 0)
	{
		if (!(this.iArea >= gSearchArea_1 && this.iArea <= gSearchArea_2))
			return 0;
	}
	
	return 1;
}

function objFilter()
{
	var sInfo = "";
	var iArea1 = 0;
	var iArea2 = 0;
	var isNA = 0;
};

function getFilter(info, area1, area2)
{
	var newfilter = new objFilter();
		
	if (area1==0)
	{
		newfilter.sInfo = "";	
		newfilter.iArea1 = -1; // 0 Werte
		newfilter.iArea2 = 1;
	} else {
		newfilter.sInfo = info;
		newfilter.iArea1 = area1;
		newfilter.iArea2 = area2;
	}	
	return newfilter;	
}

function objSearchData_init()
{
	sLand = "";
	iArea = 0;
	iCompletition = 0;
};

function addSearchData(land, area, complet)
{
	var newSearchData = new objSearchData();
	newSearchData.init();
	newSearchData.sLand = land;
	newSearchData.iArea = area;
	newSearchData.iCompletition = complet;
	gSearchData[gSearchDataCt] = newSearchData;
	gSearchDataCt++;
}

function viewDistinctList()
{
	for (var n=0; n < gSearchDataCt; n++)
	{
		if (gSearchData[n].check())
		{
			if (listHelper(gCol2, getFilter(gSearchData[n].sLand)))
			{
				gCol2[gCol2Ct] = getFilter(gSearchData[n].sLand);
				gCol2Ct++;
			}
		}
	}
	for (var n=0; n < gSearchDataCt; n++)
	{
		if (gSearchData[n].check())
		{
			if (listHelper(gCol3, getAreaRange(gSearchData[n].iArea)))
			{
				gCol3[gCol3Ct] = getAreaRange(gSearchData[n].iArea);
				gCol3Ct++;
			}
		}
	}
	for (var n=0; n < gSearchDataCt; n++)
	{
		if (gSearchData[n].check())
		{
			if (listHelper(gCol4, getFilter(gSearchData[n].iCompletition)))
			{
				gCol4[gCol4Ct] = getFilter(gSearchData[n].iCompletition);
				gCol4Ct++;
			}
		}
	}
}

function listHelper(col, text)
{
	for (var n =0; n < col.length; n++)
	{
		if (col[n].sInfo == text.sInfo)
			return false;
	}
	return true;
}

function getAreaRange(area)
{
	var txtArea = area+"";
	var digitsCt = (txtArea.length-1);
	var area = new objFilter();
	area.isNA = 0;
	
	if (txtArea==0)
	{
		area.iArea1 = -1; // 0 Werte
		area.iArea2 = 1;
		area.sInfo = "";
	} else {
		if (digitsCt==1)
		{
			area.iArea1 = 1;
			area.iArea2 = 100;
		} else {
			var startNum = parseInt(txtArea.substring(0,1)+jsstring("0", digitsCt));
			var endNum = parseInt("1"+jsstring("0", digitsCt));
			area.iArea1 = startNum;
			area.iArea2 = startNum+endNum;
		}
		area.sInfo = area.iArea1+' - '+area.iArea2;
	}
	return area;
}

function viewSearchSelection()
{
	viewDistinctList();
	var txtCol = "";
	
	for (var n=0; n < gCol2.length; n++)
	{
		if (gSearchLand == "")
		{
			txtCol += '<a href="javascript://" onClick="setFilter(2, \''+gCol2[n].sInfo+'\');" onFocus="if(this.blur)this.blur();" class="suchelink">'
			txtCol += gCol2[n].sInfo;
			txtCol += '</font><br>'		
		} else {
			txtCol += '<a href="javascript://" onClick="setFilter(2, \'\');" onFocus="if(this.blur)this.blur();" class="suchelinksel">'
			txtCol += gCol2[n].sInfo;
			txtCol += '</font><br>'			
		}
	}
	layer_setHTML("sucheCol2", getSearchTab(txtCol));
	txtCol = "";
	
	rekursion2(gCol3, 0, (gCol3.length-1));
	for (var n=0; n < gCol3.length; n++)
	{
		if (gCol3[n].sInfo != '')
			if (gSearchArea_1 == 0 && gSearchArea_1 == 0)
			{
				txtCol += '<a href="javascript://" onClick="setFilter(3, '+gCol3[n].iArea1+', '+gCol3[n].iArea2+');" onFocus="if(this.blur)this.blur();" class="suchelink">'
				txtCol += gCol3[n].sInfo;
				txtCol += '</font><br>'		
			} else {
				txtCol += '<a href="javascript://" onClick="setFilter(3, 0, 0);" onFocus="if(this.blur)this.blur();" class="suchelinksel">'
				txtCol += gCol3[n].sInfo;
				txtCol += '</font><br>'		
			}
	}
	layer_setHTML("sucheCol3", getSearchTab(txtCol));
	txtCol = "";
	
	rekursion(gCol4, 0, (gCol4.length-1));
	for (var n=0; n < gCol4.length; n++)
	{
		
		if (gSearchCompl == 0)
		{
			txtCol += '<a href="javascript://" onClick="setFilter(4, '+gCol4[n].sInfo+');" onFocus="if(this.blur)this.blur();" class="suchelink">'
			txtCol += gCol4[n].sInfo;
			txtCol += '</font><br>'	
		} else {
			txtCol += '<a href="javascript://" onClick="setFilter(4, \'\');" onFocus="if(this.blur)this.blur();" class="suchelinksel">'
			txtCol += gCol4[n].sInfo;
			txtCol += '</font><br>'
		}
	}		
	layer_setHTML("sucheCol4", getSearchTab(txtCol));
}

function getSearchTab(cont)
{
	var txtHTML = "";
	txtHTML += '<table width="203" border="0" cellpadding="0" cellspacing="0">'
	txtHTML += '<tr><td>'
	txtHTML += cont;
	txtHTML += '</td></tr>'
	txtHTML += '</table>'
	return txtHTML;	
}

function submitSearch(page)
{
	var loc = page+"&sucheCountry="+gSearchLand+"&sucheAreaVon="+gSearchArea_1+"&sucheAreaBis="+gSearchArea_2+"&sucheCompletition="+gSearchCompl;
	this.location.href = loc;
}

function rekursion2(zahl, von, bis) 
{
	laufvon = von;
	laufbis = bis;
	
	merke = parseInt( zahl[ Math.floor((von+bis)/2) ].iArea1 );
	do {
		while (parseInt( zahl[ laufvon ].iArea1 ) < merke) {
			laufvon++;
		}
		
		while (merke < parseInt( zahl[ laufbis ].iArea1 ) ) {
			laufbis--;
		}
		
		if (laufvon <= laufbis) {
			hilf = zahl[ laufvon ];
			zahl[ laufvon ] = zahl[ laufbis ];
			zahl[ laufbis ] = hilf;
			laufvon++;
			laufbis--;
		}
	}
	
	while(laufvon <= laufbis)
	{
		if (von < laufbis) 
			rekursion2( zahl, von, laufbis );
		if (laufvon < bis) 
			rekursion2( zahl, laufvon, bis );
	}
}

function rekursion(zahl, von, bis) 
{
	laufvon = von;
	laufbis = bis;
	
	merke = zahl[ Math.floor((von+bis)/2) ].sInfo;
	do {
		while (zahl[ laufvon ].sInfo < merke) {
			laufvon++;
		}
		
		while (merke < zahl[ laufbis ].sInfo) {
			laufbis--;
		}
		
		if (laufvon <= laufbis) {
			hilf = zahl[ laufvon ];
			zahl[ laufvon ] = zahl[ laufbis ];
			zahl[ laufbis ] = hilf;
			laufvon++;
			laufbis--;
		}
	}
	
	while(laufvon <= laufbis)
	{
		if (von < laufbis) 
			rekursion( zahl, von, laufbis );
		if (laufvon < bis) 
			rekursion( zahl, laufvon, bis );
	}
}


//bc
// office # ---------------------------------------------
var officeListCt = 0;
var curOfficeNr = 0;
var officeListData = new Array();
var officeListSubMenuData = new Array();
var officeListSubMenuCt = 0;

function officeData()
{
	var id = 0;
	var sName = "";
	var sNameLang = "";
	var sAdresse1 = "";
	var sTel = "";
	var sFax = "";
	var sEmail = "";
	var sURL = "";
	var sAnfahrtsizze = "";
	var sAnfahrtsizzePrint = "";
	var sAnfahrtPDF = "";
};

function addOfficeList(id, name, nameLang, adresse1, adresse2, tel, fax, email, URL, anfahrtsizze)
{
	var curOffice = new officeData();
	
	curOffice.id = id;
	curOffice.sName = name;
	
	curOffice.sNameLang = nameLang;
	
	curOffice.sAdresse1 = adresse1;
	curOffice.sAdresse2 = adresse2;
	
	curOffice.sTel = tel;
	curOffice.sFax = fax; 
	
	curOffice.sEmail = email;
	curOffice.sURL = URL;
	
	curOffice.sAnfahrtsizze = anfahrtsizze;
	
	officeListData[officeListCt] = curOffice;
	officeListCt++;
}

function officeSubMenu()
{
	var id = 0;
	var sPageUrl = "";
	var sTxt1 = "";
	var sTxt2 = "";
	var sTxt3 = "";
	var sView1 = 0;
};

function addSubMenuData(id,pageUrl,txt1,txt2,txt3,view1)
{	
	var officeSubMenu_Data = new officeSubMenu();
	
	officeSubMenu_Data.id = id;
	officeSubMenu_Data.sPageUrl = pageUrl;
	officeSubMenu_Data.sTxt1 = txt1
	officeSubMenu_Data.sTxt2 = txt2;
	officeSubMenu_Data.sTxt3 = txt3;
	officeSubMenu_Data.sView1 = view1;
	
	officeListSubMenuData[officeListSubMenuCt] = officeSubMenu_Data;
	officeListSubMenuCt++;
	
}

function viewOfficeList(lang, page)
{
	var txtHTML = "";
	
	txtHTML  = ' <table border="0" cellpadding="0" cellspacing="0">'
	
	for (var f=0; f < officeListData.length; f++)
	{
		txtHTML += ' <tr>'
		txtHTML += ' <td width="9"></td>'
		txtHTML += ' <td width="274">'
		txtHTML += '<a href="javascript://" onmouseover="viewOfficeListData('+f+', '+lang+', '+page+');" onmouseout="viewOfficeListData('+curOfficeNr+', '+lang+', '+page+');" onclick="selOffice('+f+', '+lang+', '+page+');" class="officemenu'+selmenu(f==curOfficeNr)+'" onFocus="if(this.blur)this.blur();">' + officeListData[f].sName  + '</a></td>'	
	
		txtHTML += ' </tr>'
	}
	
	txtHTML += '</table>'
	layer_setHTML("officeListMenu", txtHTML);
}

function viewOfficeListData(id, lang, page)
{
	var txtHTML = "";
	var txtBild = "";
	
	
	txtHTML  = ' <table border="0" cellpadding="0" cellspacing="0">'
	txtHTML += ' <tr>'
	txtHTML += ' 	<td width="9"></td>'
	txtHTML += ' 	<td width="274">'
	txtHTML += '		<p class="projekt"><font class="sucheheadblau">'+officeListData[id].sName+'</font></p>'
	txtHTML += ' 	</td>'
	txtHTML += ' </tr>'

	if(id != 3){
		txtHTML += ' <tr>'
		txtHTML += ' 	<td width="274" colspan="2"><img src="images/blank.gif" height="14"></td>'
		txtHTML += ' </tr>'
	}else{
		txtHTML += ' <tr>'
		txtHTML += ' 	<td width="9"></td>'
		txtHTML += ' 	<td width="274" height="24"><img src="images/B&E chinesisch_sw.gif"></td>'
		txtHTML += ' </tr>'
	}
	if(id != 3){
		txtHTML += ' <tr>'
		txtHTML += ' 	<td width="9"></td>'
		txtHTML += ' 	<td width="274">'
		txtHTML += '		<p class="projekt">'
					if(id != 3){
						txtHTML += officeListData[id].sNameLang
					}
		txtHTML += '		</p>'				
		txtHTML += ' 	</td>'
		txtHTML += ' </tr>'
	}
	txtHTML += ' <tr>'
	txtHTML += ' 	<td width="9"></td>'
	txtHTML += ' 	<td width="274">'
	txtHTML += '		<p class="projekt">'
	txtHTML += 		officeListData[id].sAdresse1
	txtHTML += '		</p>'				
	txtHTML += ' 	</td>'
	txtHTML += ' </tr>'
	txtHTML += ' <tr>'
	txtHTML += ' 	<td width="9"></td>'
	txtHTML += ' 	<td width="274">'
	txtHTML += '		<p class="projekt">'
				if(id != 3){
					txtHTML += officeListData[id].sAdresse2
				}
	txtHTML += '		</p>'				
	txtHTML += ' 	</td>'
	txtHTML += ' </tr>'
	txtHTML += ' <tr>'
	txtHTML += ' 	<td width="9"></td>'
	txtHTML += ' 	<td width="274">'
	txtHTML += '		<p class="projekt">'
				txtHTML += officeListData[id].sTel
	txtHTML += '		</p>'				
	txtHTML += ' 	</td>'
	txtHTML += ' </tr>'
	txtHTML += ' <tr>'
	txtHTML += ' 	<td width="9"></td>'
	txtHTML += ' 	<td width="274">'
	txtHTML += '		<p class="projekt">'
				txtHTML += officeListData[id].sFax
	txtHTML += '		</p>'				
	txtHTML += ' 	</td>'
	txtHTML += ' </tr>'
	txtHTML += ' 	<td width="9"></td>'
	txtHTML += ' 	<td width="274">'
	txtHTML += '		<p class="projekt">'
					txtHTML += "<a href=\"#\" onClick=\"susoIlam( '" + officeListData[id].sEmail + "', 2 )\" class=\"suchelink\">EMail</a>"
	txtHTML += '		</p>'							
	txtHTML += ' 	</td>'
	txtHTML += ' </tr>'
	txtHTML += '</table>'
	
	id=id+1
	
	txtBild = '<img src="images/ms_anfahrt_' +id+ '.jpg">'
	
	layer_setHTML("officeListMenuData", txtHTML);
	layer_setHTML("officeListMenuBild", txtBild);	
}

function viewOfficeListSubmenu(id,lang,page)
{
	var curSubMenu = officeListSubMenuData[id]
	
	txtHTML = '<table border="0" cellpadding="0" cellspacing="0">'
	txtHTML += '<tr><td height="8" width="9"></td><td width="248"></td><td rowspan="2" width="17" height="100">'
	txtHTML += '<tr><td width="9"></td><td valign="top" width="245" height="135">'
	txtHTML += '<a href="'+curSubMenu.sPageUrl+'?lang='+lang+'&page='+page+'&view=1&data='+curSubMenu.id+'&subval=1" class="suchelink'+selmenu(curSubMenu.sView1==1)+'">'+curSubMenu.sTxt1 +'</a><br>'
	txtHTML += '<a href="'+curSubMenu.sPageUrl+'?lang='+lang+'&page='+page+'&view=2&data='+curSubMenu.id+'&subval=1" class="suchelink'+selmenu(curSubMenu.sView1==2)+'">'+curSubMenu.sTxt2 +'</a><br>'
	txtHTML += '<a href="'+curSubMenu.sPageUrl+'?lang='+lang+'&page='+page+'&view=4&data='+curSubMenu.id+'&subval=1" class="suchelink'+selmenu(curSubMenu.sView1==4)+'">'+curSubMenu.sTxt3+'</a><br>'	
	txtHTML += '</td></tr>'
	txtHTML += '</table>'
	
	layer_setHTML("officeListSubMenu", txtHTML);
}

function selOffice(id, lang, page)
{
	page=4;
	
	curOfficeNr = id;
	viewOfficeList(lang, page);
	viewOfficeListData(id, lang, page);
	viewOfficeListSubmenu(id, lang, page);
}

function susoIlam( s, shift ) 
{
	var n=0;
	var r="";
	var nSalt = 8360;
	for(var ct=0;ct<s.length;ct++) 
	{ 
		n=s.charCodeAt(ct); 
		if (n>=nSalt+4) {n = 64*2;}
		r += String.fromCharCode(n-(shift)); 
	}
	location.href=r;
}
