

//*** Update Juli 2001  ver 1.1
// xconst,yconst - Floater soll sich nur in x oder y richtung bewegen, die angegebene bleibt konstant. 
// xlim, ylim - Soll nur gefloatet werden wenn x,y größer als ein mindestwert - damit sich der floater nicht über anderen Inhalt schiebt.
// aufruf mit zB "or,120,100,xconst:8,ylim:480;" 
//  soll heissen - bewegt sich nur in der senkrechten, bleibt in x immer an 8; wenn höhe des browserfensters kleiner 480 ist y=480


//*** Skript für schwebende Layer ver 1.0
// CR Juni 2001
// Getestet mit:
// ie 5.5 ie 4.0 netscape 4.61 netscape 4.06 netscape 6.0 Opera 5.11 (Win)
//
//  benötigt folgende Funktionen: showly(); setpos(); Steinman-Browserdetektion
//
// Festlegung der Eigenschaften durch den Aufruf onLoad=InitFloat(Beschreibung)
// Format der Beschreibung: z.B."or,120,100;ol,10,8;ur,6,7;ul,7,9"
//		oder		"ur,100,110"
//
//     or=oben rechts, ul = unten links usw.
//     erste Zahl: x-Abstand, 2. Zahl y-Abstand. Dies bedeutet jeweils, um wie weit der Layer nach innen gerückt ist
//	also bei einem 100x120 grossen Bild 100,125.




var Opera = window.opera ? true : false;

//*** Zahl, Start-Eigenschaften, Namen der Layer usw
FloaterDivNumber= 1
FloaterDivProps	= '{position:absolute;visibility:hidden;z-index:255;left:0px;top:0px}'
FloaterDivName	= 'floater'
cssCode 	= '<style type="text/css">'
delay		=  75	// wie schnell bei NS aktualisiert wird
winW=770;winH=450 	//Default-Werte, falls ein obskurer Browser durchrutscht

//*** Rand-Angaben für die verschiedenen Positionen richtig umsetzen (-/+)
xf=new Array(); yf=new Array();
xf['or']=-1;	xf['ur']=-1;	xf['ol']=1;	xf['ul']= 1;
yf['or']= 1;	yf['ur']=-1;	yf['ol']=1;	yf['ul']=-1;


//*** CSS bei Abarbeiten des im Head verlinkten JS schreiben.
for (n=1; n<=FloaterDivNumber; n++)	{
		cssCode = cssCode 	
			+ '\n#' 
			+ FloaterDivName + n 
			+ FloaterDivProps };
		cssCode = cssCode + '\n</style>';
		document.write(cssCode)


//*** Fensterabmessungen bestimmen
function getDim() 	{if (is.ns) 	{winW=window.innerWidth; winH=window.innerHeight
					 offW=window.pageXOffset; offH=window.pageYOffset}
			 if (is.ie && !Opera)	
					{winW=document.body.clientWidth; winH=document.body.clientHeight
					 offW=document.body.scrollLeft;  offH=document.body.scrollTop }
			 if (Opera)	{winW=window.innerWidth; winH=window.innerHeight
					 offW=window.pageXOffset; offH=window.pageYOffset}
			}

function getXP(c) 	{base=(c.split(',')[0].indexOf('r')>=0) ? winW : 0
			 xp = base + parseInt(c.split(',')[1],10) * xf[c.split(',')[0]] + offW;  
			 xp  =useAdditionalXParams(xp,c);  return xp}

function getYP(c) 	{base=(c.split(',')[0].indexOf('u')>=0) ? winH : 0
			 yp = base + parseInt(c.split(',')[2],10) * yf[c.split(',')[0]] + offH;  
			 yp = useAdditionalYParams(yp,c);	return yp}
function
 useAdditionalYParams(yp,c) {t=c.indexOf('ylim');   if(t>=0) {cc=parseInt(c.substring(t+5,c.length).split(',')[0]); if (yp<cc) {yp=cc}}
			     t=c.indexOf('yconst'); if(t>=0) {yp=parseInt(c.substring(t+7,c.length).split(',')[0]);}
			     return yp}

function
 useAdditionalXParams(xp,c) {t=c.indexOf('xlim');   if(t>=0) {cc=parseInt(c.substring(t+5,c.length).split(',')[0]); if (xp<cc) {xp=cc}}
			     t=c.indexOf('xconst'); if(t>=0) {xp=parseInt(c.substring(t+7,c.length).split(',')[0]);}
			     return xp}


//*** positionieren
function adjust() 		{getDim(); positionAll(all);}

function positionAll(descr) 	{for (n=0; n<descr.split(';').length;n++)
					{c=descr.split(';')[n]
					 setpos(FloaterDivName + (n+1) , getXP(c) , getYP(c) );
					 showly(FloaterDivName + (n+1));
					}
				}
//*** loslegen
function InitFloat(descr)	
				{getDim(); if (descr==null) {descr='ur,120,40'}
				 all=descr; positionAll(all)
				 if (is.ns || Opera) 	{setInterval('adjust()',delay)}	
					else	{window.onscroll=adjust; window.onresize=adjust}
				}







