
function Screeneffect(p_ObjectName)
{
	this.objectName = p_ObjectName;
	this.docWidth	= 1024;
	this.docHeight	= 768;
	this.actEffect	= null;
	this.bInit		= false;
	this.isRunning	= false;
	this.effectType = "vertical"
	this.doSmoothIn = false;
	this.doSmoothOut= false;
	this.imageSrc	= "";
	this.images		= new Array();
	this.imageCount = 10;
	this.interval	= 10;
	this.doLoop		= true;
	this.startPosX		= null
	this.startPosY		= null;
	this.userStartPosX	= null;
	this.userStartPosY	= null;
	this.spacingRight	= 0;
	this.spacingBottom	= 0;
	this.amplitude	= 0;
	this.speed		= null;
	this.ns4up		= (document.layers) ? 1 : 0;  
	this.ie4up		= (document.all) ? 1 : 0;
	this.iedom		= document.all||document.getElementById;
	this.ns4		= (document.layers)? true : false;
	this.ie4		= (document.all && !this.ie4) ? true : false;
	this.ie5		= (document.all && this.ie4)? true : false;
	this.ns6		= (this.ie4 && navigator.appName.indexOf("Netscape") >= 0) ? true : false;
	this.w3c		= (document.getElementById) ? true : false;
	this.iedom		= document.all||document.getElementById;
	if(this.ns4up) 
	{
		this.docWidth	= self.innerWidth;
		this.docHeight	= self.innerHeight;
	} 
	else if(this.ie4up || this.iedom) 
	{
		this.docWidth	= document.body.clientWidth-10;
		this.docHeight	= document.body.clientHeight;
	}
	this.docWidthToUse	= this.docWidth;
	this.docHeightToUse	= this.docHeight;
	this.onClick = "(" + this.objectName + ".isRunning)?" + this.objectName + ".stop():" + this.objectName + ".start()"
	this.start				= funcStart;
	this.stop				= funcStop;
	this.setEffectType		= funcSetEffectType;
	this.effectVertical		= funcEffectVertical;
	this.effectHorizontal	= funcEffectHorizontal;
	this.setSpacingRight	= funcSetSpacingRight;
	this.setSpacingBottom	= funcSetSpacingBottom;
	this.setStartPosX		= funcSetStartPosX;
	this.setStartPosY		= funcSetStartPosY;
	this.setImages			= funcSetImages;
}
function funcStart()
{
	switch(this.effectType)
	{
		case "vertical":
			this.isRunning = true;
			this.effectVertical();
			break;
		case "horizontal":
			this.isRunning = true;
			this.effectHorizontal();
			break;
	}
}
function funcStop()
{ 
	if(this.actEffect!=null)
	{	
		window.clearTimeout(this.actEffect);
		this.isRunning = false;
	}
}
function funcSetEffectType(p_strType)
{
	switch(p_strType)
	{
		case "horizontal":
			this.effectType = p_strType;
			break;
		default:
			this.effectType = p_strType;
			break;
	}
}
function funcSetSpacingRight(p_lVal)
{
	if(!p_lVal && isNaN(p_lVal))
	{
		this.spacingRight = 0;
	}
	else
	{
		this.spacingRight = p_lVal;
		this.docWidthToUse	= this.docWidth - p_lVal;
		if(this.userStartPosX!=null)
			this.setStartPosX(this.userStartPosX)
	}
}
function funcSetSpacingBottom(p_lVal)
{
	if(!p_lVal && isNaN(p_lVal))
	{
		this.spacingBottom = 0;
	}
	else
	{
		this.spacingBottom = p_lVal;
		this.docHeightToUse	= this.docHeight - p_lVal;
		if(this.userStartPosY!=null)
			this.setStartPosY(this.userStartPosY)
	}
}
function funcSetStartPosX(p_lVal)
{
	if(!p_lVal && isNaN(p_lVal))
	{
		this.startPosX = null;
	}
	else
	{
		this.userStartPosX = p_lVal;
		if(p_lVal >= 0)
		{
			this.startPosX = p_lVal;
		}
		else
		{
			this.startPosX = this.docWidthToUse+p_lVal;
		}
	}
}
function funcSetStartPosY(p_lVal)
{
	if(!p_lVal && isNaN(p_lVal))
	{
		this.startPosY = null;
	}
	else
	{
		this.userStartPosY = p_lVal;
		if(p_lVal >= 0)
		{
			this.startPosY = p_lVal;
		}
		else
		{
			this.startPosY = this.docHeightToUse+p_lVal;
		}
	}
}
function funcSetImages(p_strVal)
{
	if(p_strVal)
	{
		//	p_strVal:	BildUrl1;BildUrl2,...
		p_strVal = p_strVal.split(";")
		this.images = p_strVal;
	}
}
function funcEffectVertical() 
{  
	this.effectVerticalNS	= funcEffectVerticalNS;
	this.effectVerticalIE	= funcEffectVerticalIE;
	this.effectVerticalInit = funcEffectVerticalInit;
	this.effectVerticalHide = funcEffectVerticalHide;
	if(!this.bInit)
	{
		if(!this.effectVerticalInit())
			return;
	}
	if(this.ns4up)
	{
		//this.actEffect = setInterval(this.objectName + '.effectVerticalNS()', this.interval);
		this.actEffect = setTimeout(this.objectName + '.effectVerticalNS()', this.interval);
	}
	else if(this.ie4up||this.iedom)
	{
		//this.actEffect = setInterval(this.objectName + '.effectVerticalIE()', this.interval);
		this.actEffect = setTimeout(this.objectName + '.effectVerticalIE()', this.interval);
	}
}
function funcEffectVerticalInit()
{
	this.xpStart	= new Array();
	this.ypStart	= new Array();
	this.xp			= new Array();
	this.yp			= new Array();
	this.am			= new Array();
	this.stx		= new Array();
	this.dx			= new Array();
	this.sty		= new Array();
	this.isActive	= new Array();
	this.posSmoothOut = (this.docHeightToUse-60);
	var i;
	var img=0;
	if(isNaN(this.imageCount) || this.images.length <= 0)
	{
		return false;
	}
	for(i = 0; i < this.imageCount; ++ i) 
	{  
		this.isActive[i] = true;
		this.dx[i] = 0;                        
		if(this.startPosX==null)
			this.xp[i] = Math.random()*this.docWidthToUse;
		else
			this.xp[i] = this.startPosX;
		if(this.startPosY==null)
			this.yp[i] = Math.random()*(this.docHeightToUse/2);
		else
			this.yp[i] = this.startPosY;
		this.xpStart[i] = this.xp[i];
		this.ypStart[i] = this.yp[i];
		this.am[i] = Math.random()*this.amplitude;  		
		this.stx[i] = 0.02 + Math.random()/10; 
		if(this.speed==null)
			this.sty[i] = 0.7 + Math.random();     
		else
			this.sty[i] = this.speed
		if(this.doSmoothIn && this.doSmoothOut)
		{
			if(this.docWidth<250)
			{
				this.doSmoothIn=false;
				this.doSmoothIn=false;
			}
			if(!this.ie4up)
			{
				this.doSmoothIn=false;
				this.doSmoothIn=false;
			}
		}
		if(this.ns4up) 
		{                      
			document.write("<layer name=\"effect"+ i + "_" + this.objectName +"\" left=\"" + this.xp[i] + "\" top=\"" + this.yp[i] + "\" visibility=\"show\"><img name=\"effect"+ i + "_" + this.objectName +"_IMG\" src='" + this.images[img] + "' border=\"0\"></layer>");
		} 
		else if(this.ie4up||this.iedom) 
		{
			document.write("<div onclick=\"" + this.onClick + "\" id=\"effect"+ i + "_" + this.objectName +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: " + this.yp[i] + "px; LEFT: " + this.xp[i] + "px;\"><img id=\"effect"+ i + "_" + this.objectName +"_IMG\" src='"+ this.images[img] +"' border=\"0\"></a></div>");
		}
		if(this.doSmoothIn)
		{
			oImg = document.all["effect"+i+"_"+this.objectName+"_IMG"];
			oImg.style.filter="Alpha(opacity=0)";
		}
		img++;
		if(img>=this.images.length)
			img=0;
	}
	this.bInit = true;
	return true;
}
function funcEffectVerticalNS()
{
	var i;
	var stopRunning = true;
	for (i = 0; i < this.imageCount; ++ i) 
    {  
		if(this.isActive[i])
		{
			this.yp[i] += this.sty[i];
			if(this.yp[i] > this.docHeightToUse) 
			{
				if(this.doLoop)
				{
					if(this.startPosX==null)
						this.xp[i] = Math.random()*this.docWidthToUse;
					else
						this.xp[i] = this.startPosX;
					if(this.startPosY==null)
						this.yp[i] = Math.random()*(this.docHeightToUse/2);
					else
						this.yp[i] = this.startPosY;
					this.stx[i] = 0.02 + Math.random()/10;
					if(this.speed==null)
						this.sty[i] = 0.7 + Math.random();     
					else
						this.sty[i] = this.speed
				}
				else
				{
					this.isActive[i] = false;
					this.effectVerticalHide(i)
				}
			}
			if(this.isActive[i])
			{
				stopRunning = false;
				this.dx[i] += this.stx[i];
				document.layers["effect"+i+"_"+this.objectName].top		= Math.floor(this.yp[i]);
				document.layers["effect"+i+"_"+this.objectName].left	= Math.floor(this.xp[i] + this.am[i]*Math.sin(this.dx[i]));
			}
		}
    }
    if(stopRunning)
	{
		this.stop();
	}
	else
	{
		this.actEffect = setTimeout(this.objectName + '.effectVerticalNS()', this.interval);
	}
}
function funcEffectVerticalIE()
{
	var i;
	var k;
	var stopRunning = true;
	for(i = 0; i < this.imageCount; ++ i) 
	{  
		if(this.isActive[i])
		{
			if(this.ie4)
			{
				oImgContainer = document.all["effect"+i+"_"+this.objectName];
				if(this.doSmoothOut || this.doSmoothIn)
					oImg = document.all["effect"+i+"_"+this.objectName+"_IMG"];
			}
			else
			{
				oImgContainer = document.getElementById("effect"+i+"_"+this.objectName);
				if(this.doSmoothOut || this.doSmoothIn)
					oImg = document.getElementById("effect"+i+"_"+this.objectName+"_IMG");
			}
			this.yp[i] += this.sty[i];
			if(this.doSmoothOut)
			{ 
				if(this.yp[i] > this.posSmoothOut)
				{
					k=parseInt(this.yp[i] - this.posSmoothOut);
					k=100-(k*2);
					if(k%10==0)
						oImg.style.filter="Alpha(opacity=" + k + ")";
				}
			}
			if(this.yp[i] > this.docHeightToUse) 
			{
				if(this.doLoop)
				{
					if(this.startPosX==null)
						this.xp[i] = Math.random()*this.docWidthToUse;
					else
						this.xp[i] = this.startPosX;
					if(this.startPosY==null)
						this.yp[i] = Math.random()*(this.docHeight/2);
					else
						this.yp[i] = this.startPosY;
					this.xpStart[i] = this.xp[i];
					this.ypStart[i] = this.yp[i];
					this.stx[i] = 0.02 + Math.random()/10;
					if(this.speed==null)
						this.sty[i] = 0.7 + Math.random();     
					else
						this.sty[i] = this.speed
					if(this.doSmoothOut && !this.doSmoothIn)
						oImg.style.filter="Alpha(opacity=100)";
				}
				else
				{
					this.isActive[i] = false;
					this.effectVerticalHide(i)
				}
			}
			if(this.isActive[i])
			{
				if(this.doSmoothIn)
				{
					k=parseInt(this.yp[i]-this.ypStart[i]);
					if(k<=60)
					{
						k *= 2;
						if(k%10==0)
							oImg.style.filter="Alpha(opacity="+k+")";
					}
				}
				stopRunning = false;
				this.dx[i] += this.stx[i];
				oImgContainer.style.top		= Math.floor(this.yp[i]);
				oImgContainer.style.left	= Math.floor(this.xp[i] + this.am[i]*Math.sin(this.dx[i]));
			}
		}
	}
	if(stopRunning)
	{
		this.stop();
	}
	else
	{
		this.actEffect = setTimeout(this.objectName + '.effectVerticalIE()', this.interval);
	}
}
function funcEffectVerticalHide(p_lID)
{
	if(this.ie4)
	{
		oImg = document.all["effect"+p_lID+"_"+this.objectName+"_IMG"];
		oImgContainer = document.all["effect"+p_lID+"_"+this.objectName];
	}
	else
	{
		oImg = document.getElementById("effect"+p_lID+"_"+this.objectName+"_IMG");
		oImgContainer = document.getElementById("effect"+p_lID+"_"+this.objectName);
	}
	oImgContainer.style.visibility = "hidden";
	oImgContainer.style.display = "none";
}
function funcEffectHorizontal() 
{  
	this.effectHorizontalNS = funcEffectHorizontalNS;
	this.effectHorizontalIE = funcEffectHorizontalIE;
	this.effectHorizontalInit = funcEffectHorizontalInit;
	this.effectHorizontalHide = funcEffectHorizontalHide;
	if(!this.bInit)
	{
		if(!this.effectHorizontalInit())
			return;
	}
	if(this.ns4up)
	{
		//this.actEffect = setInterval(this.objectName + '.effectHorizontalNS()', this.interval);
		this.actEffect = setTimeout(this.objectName + '.effectHorizontalNS()', this.interval);
	}
	else if(this.ie4up||this.iedom)
	{
		//this.actEffect = setInterval(this.objectName + '.effectHorizontalIE()', this.interval);
		this.actEffect = setTimeout(this.objectName + '.effectHorizontalIE()', this.interval);
	}
}
function funcEffectHorizontalInit()
{
	this.dx			= new Array();
	this.dy			= new Array();
	this.xpStart	= new Array();
	this.ypStart	= new Array();
	this.xp			= new Array();
	this.yp			= new Array();
	this.am			= new Array();
	this.stx		= new Array();
	this.sty		= new Array();
	this.isActive	= new Array();
	this.posSmoothOut = (this.docWidthToUse-60);
	var i;
	var img=0;
	if(isNaN(this.imageCount) || this.images.length <= 0)
	{
		return false;
	}
	for(i = 0; i < this.imageCount; ++ i) 
	{  
		this.isActive[i] = true;
		this.dy[i] = 0;                        
		if(this.startPosY==null)
			this.yp[i] = Math.random()*this.docHeightToUse;
		else
			this.yp[i] = this.startPosY;
		if(this.startPosX==null)
			this.xp[i] = Math.random()*(this.docWidthToUse/2);
		else
			this.xp[i] = this.startPosX;
		this.xpStart[i] = this.xp[i];
		this.ypStart[i] = this.yp[i];
		this.am[i] = Math.random()*this.amplitude;    
		this.sty[i] = 0.02 + Math.random()/10; 
		if(this.speed==null)
			this.stx[i] = 0.7 + Math.random();     
		else
			this.stx[i] = this.speed
		if(this.doSmoothIn && this.doSmoothOut)
		{
			if(this.docWidth<250)
			{
				this.doSmoothIn=false;
				this.doSmoothIn=false;
			}
			if(!this.ie4up)
			{
				this.doSmoothIn=false;
				this.doSmoothIn=false;
			}
		}
		if(this.ns4up) 
		{                      
			document.write("<layer name=\"effect"+ i + "_" + this.objectName +"\" left=\"" + this.xp[i] + "\" top=\"" + this.yp[i] + "\" visibility=\"show\"><img name=\"effect"+ i + "_" + this.objectName +"_IMG\" src='" + this.images[img] + "' border=\"0\"></layer>");
		} 
		else if(this.ie4up||this.iedom) 
		{
			document.write("<div onclick=\"" + this.onClick + "\" id=\"effect"+ i + "_" + this.objectName +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: " + this.yp[i] + "px; LEFT: " + this.xp[i] + "px;\"><img id=\"effect"+ i + "_" + this.objectName +"_IMG\" src='"+ this.images[img] +"' border=\"0\"></a></div>");
		}
		if(this.doSmoothIn)
		{
			oImg = document.all["effect"+i+"_"+this.objectName+"_IMG"];
			oImg.style.filter="Alpha(opacity=0)";
		}
		img++;
		if(img>=this.images.length)
			img=0;
	}
	this.bInit = true;
	return true;
}
function funcEffectHorizontalNS()
{
	var i;
	var stopRunning = true;
	for (i = 0; i < this.imageCount; ++ i) 
    {  
		if(this.isActive[i])
		{
			this.xp[i] += this.stx[i];
			if(this.xp[i] > this.docWidthToUse) 
			{
				if(this.doLoop)
				{
					if(this.startPosY==null)
						this.yp[i] = Math.random()*this.docHeightToUse;
					else
						this.yp[i] = this.startPosY;
					if(this.startPosX==null)
						this.xp[i] = Math.random()*(this.docWidthToUse/2);
					else
						this.xp[i] = this.startPosX;
					this.sty[i] = 0.02 + Math.random()/10;
					if(this.speed==null)
						this.stx[i] = 0.7 + Math.random();     
					else
						this.stx[i] = this.speed
				}
				else
				{
					this.isActive[i] = false;
					this.effectHorizontalHide(i)
				}
			}
			if(this.isActive[i])
			{
				stopRunning = false;
				this.dy[i] += this.sty[i];
				document.layers["effect"+i+"_"+this.objectName].top		= Math.floor(this.yp[i] + this.am[i]*Math.sin(this.dy[i]));
				document.layers["effect"+i+"_"+this.objectName].left	= Math.floor(this.xp[i]);
			}
		}
    }
    if(stopRunning)
	{
		this.stop();
	}
	else
	{
		this.actEffect = setTimeout(this.objectName + '.effectHorizontalNS()', this.interval);
	}
}
function funcEffectHorizontalIE()
{
	var i;
	var k;
	var stopRunning = true;
	for(i = 0; i < this.imageCount; ++ i) 
	{  
		if(this.isActive[i])
		{
			if(this.ie4)
			{
				oImg = document.all["effect"+i+"_"+this.objectName+"_IMG"];
				oImgContainer = document.all["effect"+i+"_"+this.objectName];
			}
			else
			{
				oImg = document.getElementById("effect"+i+"_"+this.objectName+"_IMG");
				oImgContainer = document.getElementById("effect"+i+"_"+this.objectName);
			}
			this.xp[i] += this.stx[i];
			if(this.doSmoothOut)
			{ 
				if(this.xp[i] >= this.posSmoothOut)
				{
					k=parseInt(this.xp[i] - this.posSmoothOut);
					k=100-(k*2);
					if(k%10==0)
					{
						oImg.style.filter="Alpha(opacity=" + k + ")";
					}
				}
			}
			if(this.xp[i] > this.docWidth-50) 
			{
				if(this.doLoop)
				{
					if(this.startPosY==null)
						this.yp[i] = Math.random()*this.docHeightToUse;
					else
						this.yp[i] = this.startPosY;
					if(this.startPosX==null)
						this.xp[i] = Math.random()*(this.docWidthToUse/2);
					else
						this.xp[i] = this.startPosX;
					this.xpStart[i] = this.xp[i];
					this.ypStart[i] = this.yp[i];
					this.sty[i] = 0.02 + Math.random()/10;
					if(this.speed==null)
						this.stx[i] = 0.7 + Math.random();     
					else
						this.stx[i] = this.speed
					if(this.doSmoothOut && !this.doSmoothIn)
						oImg.style.filter="Alpha(opacity=100)";
				}
				else
				{
					this.isActive[i] = false;
					this.effectHorizontalHide(i)
				}
			}
			if(this.isActive[i])
			{
				if(this.doSmoothIn)
				{
					k=this.xp[i]-this.xpStart[i];
					if(k<=60)
					{
						k=parseInt(k*2);
						if(k%10==0)
							oImg.style.filter="Alpha(opacity="+k+")";
					}
				}
				stopRunning = false;
				this.dy[i] += this.sty[i];
				oImgContainer.style.top		= Math.floor(this.yp[i] + this.am[i]*Math.sin(this.dy[i]));
				oImgContainer.style.left	= Math.floor(this.xp[i]);
			}
		}
	}
	if(stopRunning)
	{
		this.stop();
	}
	else
	{
		this.actEffect = setTimeout(this.objectName + '.effectHorizontalIE()', this.interval);
	}
}
function funcEffectHorizontalHide(p_lID)
{
	if(this.ie4)
	{
		oImg = document.all["effect"+p_lID+"_"+this.objectName+"_IMG"];
		oImgContainer = document.all["effect"+p_lID+"_"+this.objectName];
	}
	else
	{
		oImg = document.getElementById("effect"+p_lID+"_"+this.objectName+"_IMG");
		oImgContainer = document.getElementById("effect"+p_lID+"_"+this.objectName);
	}
	oImgContainer.style.visibility = "hidden";
	oImgContainer.style.display = "none";
}

