function CZoom()
{
	this.zoomInterval = false;
	this.border = 0;
	this.zoomObj = false;			
	this.zoomObjClone = false;
	this.zoomStepWidth = 10;
	this.zoomStepHeight = 10;
	this.zoomWidthProp = 2;
	this.zoomHeightProp = 2;
	this.zoomMaxWidth = false;
	this.zoomMaxHeight = false;
	this.zoomPositionX = "right";  	//--- left, center, right (zoom geht nach links, gleichmässig links oder recht, rechts)
	this.zoomPositionY = "bottom";  //--- top, center, bottom (zoom geht nach oben, gleichmässig oben oder unten, unten)
	
	this.zoomIn = function(obj,zoomPositionX,zoomPositionY,zoomMaxWidth,zoomMaxHeight,zoomWidthProp,zoomHeightProp)
	{					
		if(zoomPositionX)
		{
			this.zoomPositionX = zoomPositionX;
		}

		if(zoomMaxWidth)
		{
			this.zoomMaxWidth = zoomMaxWidth;
		}

		if(zoomMaxHeight)
		{
			this.zoomMaxHeight = zoomMaxHeight;
		}

		if(zoomWidthProp)
		{
			this.zoomWidthProp = zoomWidthProp;
		}

		if(zoomPositionY)
		{
			this.zoomPositionY = zoomPositionY;
		}

		if(zoomHeightProp)
		{
			this.zoomHeightProp = zoomHeightProp;
		}
		
		
		this.zoomStepWidth = Math.abs(this.zoomStepWidth);
		this.zoomStepHeight = Math.abs(this.zoomStepHeight);
		
		this.zoomObj = new CElement(obj);
		
		this.zoomObjClone = this.zoomObj.obj.cloneNode(true);
		this.zoomObjClone = new CElement(this.zoomObjClone);
		
		this.zoomObjClone.insertBefore(this.zoomObj.obj);
		this.zoomObjClone.obj.onclick = this.zoomOut.scope(this);				
		this.borderX = parseFloat(this.zoomObj.prop['borderLeftWidth']) + parseFloat(this.zoomObj.prop['borderRightWidth']);
		this.borderY = parseFloat(this.zoomObj.prop['borderTopWidth']) + parseFloat(this.zoomObj.prop['borderBottomWidth']);
		this.zoomMaxWidth = this.zoomObj.prop['noborderwidth'] * this.zoomWidthProp;
		this.zoomMaxHeight = this.zoomObj.prop['noborderheight'] * this.zoomHeightProp;
		this.zoomObj.setStyle("visibility","hidden");
		this.zoomObjClone.setStyle("zIndex",1);
		this.zoomObjClone.setStyle("position","absolute");
		this.zoomObjClone.setStyle("left",this.zoomObj.prop['abs_left'] + "px");
		this.zoomInterval = window.setInterval(this.zoomInActive.scope(this),10);
//		this.zoomInActive(this);
	}

	this.zoomOut = function()
	{
//				this.zoomInvertPosition();
		this.zoomStepWidth = this.zoomStepWidth * -1;
		this.zoomStepHeight = this.zoomStepHeight * -1;
		this.zoomInterval = window.setInterval(this.zoomOutActive.scope(this),10);
	}
	
	this.zoomInActive = function()
	{			
		if(		this.zoomObjClone.prop['width'] + this.zoomStepWidth < this.zoomMaxWidth 
			&&  this.zoomObjClone.prop['height'] + this.zoomStepHeight < this.zoomMaxHeight)
		{					
			this.zoomObjClone.setStyle("width",this.zoomObjClone.prop['width'] + this.zoomStepWidth);
			this.zoomObjClone.setStyle("height",this.zoomObjClone.prop['height'] + this.zoomStepHeight);
			this.zoomPosition();
			this.zoomObjClone.moveIframe('move');
		}else{					
			window.clearInterval(this.zoomInterval);
		}
	}			

	this.zoomOutActive = function()
	{		
		if(this.zoomObjClone && this.zoomObj)
		{			
			if(		this.zoomObjClone.prop['width'] + this.zoomStepWidth > this.zoomObj.prop['noborderwidth'] 
				&&  this.zoomObjClone.prop['height'] + this.zoomStepHeight > this.zoomObj.prop['noborderheight'])
			{					
				this.zoomObjClone.setStyle("width",this.zoomObjClone.prop['width'] + this.zoomStepWidth);
				this.zoomObjClone.setStyle("height",this.zoomObjClone.prop['height'] + this.zoomStepHeight);
				this.zoomPosition();
				this.zoomObjClone.moveIframe('move');
			}else{
				window.clearInterval(this.zoomInterval);
				this.zoomObj.setStyle("visibility","visible");
				this.zoomObjClone.obj.parentNode.removeChild(this.zoomObjClone.obj);
				this.zoomObjClone.moveIframe();					
			}
		}
	}			
	
	this.zoomPosition = function(zoomStatus)
	{		
		if(this.zoomPositionX == "left")
		{									
			this.zoomObjClone.setStyle("left",this.zoomObjClone.prop['left'] - this.zoomStepWidth - this.borderX);
		}else if(this.zoomPositionX == "center")
		{
			this.zoomObjClone.setStyle("left",this.zoomObjClone.prop['left'] - (this.zoomStepWidth - this.borderX) / 2);				
		}

		if(this.zoomPositionY == "top")
		{
			this.zoomObjClone.setStyle("top",this.zoomObjClone.prop['top'] - this.zoomStepHeight - this.borderY);
		}else if(this.zoomPositionY == "center")
		{
			this.zoomObjClone.setStyle("top",this.zoomObjClone.prop['top'] - (this.zoomStepHeight - this.borderX) / 2);				
		}			
	}			
}