
function RollImage( objDomImage )
	{
		//Variablen
		var strReplace;
		var objRefImage = objDomImage;
		var strRefImageName = objDomImage.id;
		var strRefImageSrc = objDomImage.src;
		
		this.Name = strRefImageName;
		
		//Images erzeugen
		var objOutImage, objOverImage;
		objOutImage = new Image();
		objOutImage.src = objDomImage.src;
		
		var objOverImage = new Image();
		strReplace = objDomImage.src;
		objOverImage.src = strReplace.replace(/_out/, "_over" );
		
		//EventHandler
		objDomImage.onmouseout = function() { SwapSrc(); }
		objDomImage.onmouseover = function() { SwapSrc(); }
		
		//SwapSrc()
		this.SwapSrc = function() { SwapSrc(); }
		
		function SwapSrc()
			{
				strRefImageSrc = objDomImage.src;
				
				if( strRefImageSrc.search(/_out/) > -1 ) { objRefImage.src = objOverImage.src; }
				else if( strRefImageSrc.search(/_over/) > -1 ) { objRefImage.src = objOutImage.src; }	
			}	
	}

function RollBackgroundImage( objDomElement )
	{
		//Variablen
		var objReference;
		var arrStrings = new Array();
		var strBackgroundImage = new String();
		var strStyleTag;
		
		arrStrings.Append("url");
		arrStrings.Append("(");
		arrStrings.Append(")");
		arrStrings.Append('"');
		arrStrings.Append('"');
		
		var myObject = this;

		strBackgroundImage = GetStyle( objDomElement ).backgroundImage.RemoveStrings( arrStrings );
		objReference = objDomElement;

		this.Name = objDomElement.id;
		
		//Images erzeugen
		var objOutImage;
		objOutImage = new Image();
		objOutImage.src = strBackgroundImage;
			
		var objOverImage = new Image();
		objOverImage.src = objOutImage.src.replace(/_out/, "_over" );
		
		//EventHandler 
		objDomElement.onmouseout = function() { SwapSrc(); }
		objDomElement.onmouseover = function() { SwapSrc(); }
		if( objDomElement.id.Contains("Button") == false )  objDomElement.onclick = function() { objTabManager.Shift( myObject ); }
		
		this.SwapSrc = function() { SwapSrc(); }
		
		//SwapSrc()
		function SwapSrc()
			{
				var strRefImageSrc = GetStyle(objReference).backgroundImage;
				
				if( strRefImageSrc.search(/_out/) > -1 ) 
					{ 
						objReference.style.backgroundImage = objOverImage.src.GenerateBackgroundImageStyleTag();

						if( objReference.firstChild ) { objReference.firstChild.style.color = strOverColor; }
					}
				else if( strRefImageSrc.search(/_over/) > -1 ) 
					{ 
						objReference.style.backgroundImage = objOutImage.src.GenerateBackgroundImageStyleTag(); 
						
						if( objReference.firstChild ) { objReference.firstChild.style.color = strOutColor; }
					}	
			}
		
		//GetStyle()
		function GetStyle( objElement ) 
			{
		  		if (objElement.currentStyle) 
					{ var objStyle = objElement.currentStyle; } 
				else if (window.getComputedStyle) 
					{ var objStyle = window.getComputedStyle(objElement, null); }
		  		
		  		return objStyle;
			}
	}

function ThumbNail( objDomImage )
	{
		//Variablen
		var strReplace;
		var objRefImage = objDomImage;
		var strRefImageName = objDomImage.id;
		var strRefImageSrc = objDomImage.src;
		
		this.Name = strRefImageName;
		var myObject = this;
		
		//Images erzeugen
		var objOutImage, objOverImage;
		objOutImage = new Image();
		objOutImage.src = objDomImage.src;
		
		var objOverImage = new Image();
		strReplace = objDomImage.src;
		objOverImage.src = strReplace.replace(/_out/, "_over" );
		
		var objZoomImage = new Image();
		strReplace = objDomImage.src;
		objZoomImage.src = strReplace.replace(/_out/, "_zoom" );
		this.Zoom = objZoomImage;
		
		//EventHandler
		objDomImage.onmouseout = function() { SwapSrc(); }
		objDomImage.onmouseover = function() { SwapSrc(); }
		objDomImage.onclick = function() { objThumbManager.Zoom( myObject ); }
		
		this.SwapSrc = function() { SwapSrc(); }
		
		//SwapSrc()
		function SwapSrc()
			{
				strRefImageSrc = objDomImage.src;
				
				if( strRefImageSrc.search(/_out/) > -1 ) { objRefImage.src = objOverImage.src; }
				else if( strRefImageSrc.search(/_over/) > -1 ) { objRefImage.src = objOutImage.src; }	
			}	
	}

function Tab( objElement, strOutClassName, strOverClassName )
	{
		this.Element = objElement;
		this.Name = objElement.id;
		var myObject = this;
		
		var numIndex = objElement.id.GetIndexFromID();
		this.Index = numIndex;
		var boolAllwaysOver = false;
		
		if( numIndex == 1 ) { boolAllwaysOver = true; }
		
		objElement.onmouseover = function() { Select(); }
		objElement.onmouseout = function() { Clear(); }
		objElement.onclick = function() 
			{ 
				objTabManager.Click( myObject );
				boolAllwaysOver = true;
				Select();
			}
		
		this.Select = function() { Select(); }
		
		function Select()
			{
				objTabManager.ClearAll();
				objElement.className = strOverClassName;
			}
			
		this.Clear = function() { Clear(); }
		
		function Clear()
			{ if( boolAllwaysOver == false ) { objElement.className = strOutClassName; } }
		
		this.ClearAllwaysSelected = function() { boolAllwaysOver = false; }
		this.SetAllwaysSelected = function() { boolAllwaysOver = true; }
	}

function TabBorder( objElement )
	{
		var strOverClassName, strOutClassName;
		
		strOutClassName = objElement.className;
		
		
		strOverClassName = strOutClassName.replace( /_out/, "_over" );
		strOverClassName = strOverClassName.replace( /DarkGray/, "Orange" );
		
		if( strOutClassName.Contains("_Small") )
			{
				strOutclassName = strOutClassName.replace(/Tab_Border/, "Tab_Small_Border" );
				strOverClassName = strOverClassName.replace(/Tab_Border/, "Tab_Small_Border" );
			}
	
		var objTab = new Tab( objElement, objElement.className, strOverClassName );
		this.Tab = objTab;
	}

function TabFilled( objElement )
	{
		var strOverClassName, strOutClassName;
		
		strOutClassName = objElement.className;
		
		strOverClassName = strOutClassName.replace( /_out/, "_over" );
		strOverClassName = strOverClassName.replace( /DarkGray/, "Orange" );
		
		if( strOutClassName.Contains("_Small") )
			{
				strOutclassName = strOutClassName.replace(/Tab_Filled/, "Tab_Small_Filled" );
				strOverClassName = strOverClassName.replace(/Tab_Filled/, "Tab_Small_Filled" );
			}
		
		var objTab = new Tab( objElement, objElement.className, strOverClassName );
		this.Tab = objTab;
	}

function ZoomImage( objThumb )
	{
		var objDom = document.createElement( "div" );
		objDom.className = "Zoom";
		objDom.id = "Zoom";
		this.Name = objDom.id;
		
		var objImage = new Image();
		objImage.className = "Zoom_Image";
		objImage.onclick = function() { objThumbManager.CloseZoom( objDom.id ); }
		
		objImage.src = objThumb.Zoom.src;
		objDom.appendChild( objImage );
		
		return objDom;
	}

	