/* @author: Klaus Rabus www.klaus-rabus.de*/

function resetscreen(){
	if( window.innerHeight ) availh = window.innerHeight -5; 
	else if( document.body.clientHeight ) availh = document.body.clientHeight -5;
	else availh = 400 -5;

	document.getElementById('sidemenu').style.height = (availh)+"px";
	document.getElementById('content').style.height = (availh)+"px";
	n = 0;
	needh = 0;
	while( n<mainbox ){
		needh += mboxheight[n] +15; // every menu has a following 15px image
		n++;
	}
	inittransf('buftop', 3, parseInt(document.getElementById('buftop').style.height), availh-(needh+70-1) );
	clearInterval(mtime);
	mtime = setInterval( "maketransf()", 40 );
}

// toggle buttons in top menu
function toggletop(cobj, n){
	if( n==0 ){ // no background
		cobj.style.backgroundImage = "url(img/menu-top-bglo.png)";
	}
	else{ // show background
		cobj.style.backgroundImage = "url(img/menu-top-bghi.png)";
	}
}

// toggle buttons in main menu
function togglemain(n){
	if( n==0 ){ // close mainmenu
		inittransf('mainmenu', 2, parseInt(document.getElementById('mainmenu').style.width), 0, 25);
		inittransf('mainmenu', 3, parseInt(document.getElementById('mainmenu').style.height), 0, 28);
	}
	else{ // open menu
		inittransf('mainmenu', 2, parseInt(document.getElementById('mainmenu').style.width), 460, 3 );
		inittransf('mainmenu', 3, parseInt(document.getElementById('mainmenu').style.height), 280, 0 );
	}
	clearInterval(mtime);
	mtime = setInterval( "maketransf()", 40 );
}

// toggle buttons in left menu and open sub-bubbles
function togglesub(n, cobj, obj, aim){
	if( n==0 ){ // close menu
		cobj.style.backgroundColor = "transparent";
		inittransf(obj, 3, parseInt(document.getElementById(obj).style.height), aim, 20);
		inittransf(obj, 2, parseInt(document.getElementById(obj).style.width), 0, 24);
	}
	else{ // open menu
		cobj.style.backgroundColor = "#f8fb7b";
		bobj = document.getElementById(obj)
		bobj.parentNode.parentNode.style.overflow = "visible";
		inittransf(obj, 3, parseInt(document.getElementById(obj).style.height), aim, 4);
		inittransf(obj, 2, parseInt(document.getElementById(obj).style.width), 220, 0);
	}
	clearInterval(mtime);
	mtime = setInterval( "maketransf()", 40 );
}

//toggle button highlights
function marker(cobj, n){ // Mark menu item on mouseover
	if( n==0 ) cobj.style.backgroundColor = "transparent";
	if( n==1 ) cobj.style.backgroundColor = "#ffffff";
	if( n==2 ) cobj.style.backgroundColor = "#f8fb7b";
	if( n==3 ) cobj.style.backgroundColor = "#feffeb";
}

function markhome(n){
	if( n==0 ) document.getElementById('homebutt').style.color = "#303030";
	if( n==1 ) document.getElementById('homebutt').style.color = "#f29400";
	if( n==2 ) window.location.href = "index2.php?lang="+lang;
}

function bestellen(){ // Bestellvorgang einleiten
	window.location.href = "bestell.php?lang="+lang;
}

// picture zoom management
// #######################
function zoomover(evt){
	basex = 0;
	basey = 0;
	obj = document.getElementById('zoomer');
	while( obj ){
		basex += obj.offsetLeft;
		basey += obj.offsetTop;
		obj = obj.offsetParent;
	}
//	alert("xoffset is:" + basex + " <br>\nyoffset is:" + basey);
	document.getElementById('zrect').style.visibility = "visible";
	document.getElementById('zoomshow').style.borderWidth = 1+"px";
	inittransf('zoomshow', 2, parseInt(document.getElementById('zoomshow').style.width), 270 );
	inittransf('zoomshow', 3, parseInt(document.getElementById('zoomshow').style.height), 270 );
	clearInterval(mtime);
	mtime = setInterval( "maketransf()", 40 );
}
function zoomout(evt){
	document.getElementById('zrect').style.visibility = "hidden";
	document.getElementById('zoomshow').style.borderWidth = 0+"px";
	inittransf('zoomshow', 2, 270, 0, 25);
	clearInterval(mtime);
	mtime = setInterval( "maketransf()", 40 );
}
function zoommove(evt){
	xmax = 220; // zoomer width - zoombox-width
	ymax = 220;
	if( !evt ) evt = window.event;
	if( evt.pageX ){
		xcoord = evt.pageX;
		ycoord = evt.pageY;
	}
	if( evt.clientY ){
		xcoord = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		ycoord = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	obj = document.getElementById('zrect');
	obp = document.getElementById('content');
	xcoord = xcoord - basex + obp.scrollLeft -40;
	ycoord = ycoord - basey + obp.scrollTop -40;

	if( xcoord<0 ) xcoord = 0;
	if( ycoord<0 ) ycoord = 0;
	if( xcoord>xmax ) xcoord = xmax;
	if( ycoord>ymax ) ycoord = ymax;
	obj.style.left = xcoord+"px";
	obj.style.top = ycoord+'px'; 
//document.getElementById('ptxt').innerHTML = "x: "+xcoord+"<br>y: "+ycoord+"<br><br>y-off:" + obp.scrollTop;
	obj = document.getElementById('zoomed');
	obj.style.left = (-xcoord*(1000-270)/xmax )+"px"; // -xcoord*(image-width - zoomshow-width) / xmax
	obj.style.top = (-ycoord*(1000-270)/ymax )+"px";
//	obj.style.left = (-xcoord*(1000/270) )+"px"; // -xcoord*(image-width - zoomshow-width) / xmax
//	obj.style.top = (-ycoord*(1000/270) )+"px";
}


// transform functions
// ###################
function inittransf(obj, tf, act, aim, wait){
	obj = obj+"_"+tf;
	if( (tf==2 || tf==3)&& aim<0 ) aim = 0; // width/height cannot be negative!
	transf[obj] = new Array();
	transf[obj]["act"] = act;
	transf[obj]["aim"] = aim;
	if( wait==undefined) wait = 0;
	transf[obj]["wait"] = wait;
	document.getElementById('timershow').style.backgroundColor = "#990000";
}
function maketransf(){
// top = 0; left= 1, breite = 2, höhe = 3, 
	n = 0;
	for( obj in transf ){
		if( transf[obj]["wait"]>0){
			transf[obj]["wait"]--;
			n++;
			continue;
		}

		var it = obj.split("_");
		obs = it[0];

		v = approach(transf[obj]["act"], transf[obj]["aim"], 0.2);
		if( it[1]=="0" ) document.getElementById(obs).style.top = v+'px';
		if( it[1]=="1" ) document.getElementById(obs).style.left = v+'px';
		if( it[1]=="2" ) document.getElementById(obs).style.width = v+'px';
		if( it[1]=="3" ) document.getElementById(obs).style.height = v+'px';
		transf[obj]["act"] = v;

		if( v==transf[obj]["aim"] ) delete transf[obj];
		else n++;
	}
	if( n==0 ){
		clearInterval(mtime);
		document.getElementById('timershow').style.backgroundColor = "#ffffff";
	}
}
function approach(act, aim, spd){ // without speed limit
	d = act + (aim - act) * spd;
	if( Math.abs(d - aim) <0.1 ) d = aim;
	return d;
}
