
	// Globale Variablen für den o2-Shop
	var DEBUGGING			= false;
	
	var Log				= null;
	var contractInfoPopup		= null;
	var zoomPopup			= null;
	var detailsPopup		= null;
	var DisturberList		= null;
	var resizeControl		= null;
	var errorFields			= null;
	var infoLayers			= null;
	var sendForm			= null;
	
	// URLs für Tarif-Infos (extern)
	var otContractDetailsGenionHome				= "http://www2.de.o2.com/appserver/tarife/html/o2genion/euro/Vertrag_ab_Juli_2002_Genion_Tarife.html";
	var otContractDetailsGenionCity				= "http://www2.de.o2.com/appserver/tarife/html/o2genion/euro/Vertrag_ab_Juli_2002_Select_Tarife.html";
	var otContractDetailsGenionStarter			= "http://www2.de.o2.com/appserver/tarife/html/o2genion/euro/Vertrag_ab_Juli_2002_Starter_Tarife.html";
	var otContractDetailsGenionStarterSimOnly	= "http://www2.de.o2.com/appserver/tarife/html/o2genion/euro/Vertrag_ab_Juli_2002_Starter_Tarife.html";
	var otContractDetailsLoop					= "http://www2.de.o2.com/appserver/tarife/html/o2genion/euro/LOOP_Tarife_Inland.html";
	
	
	// Globale Initialisierung aller Objekte
	function globalInit()
	{
		if ( DEBUGGING )
		{
			Log	 = new jsLogger();
			Log.init( true );
		}
		if ( disturberList != null ) disturberList.init();
		resizeControl = new otResizer();
		resetContent();
		if ( errorFields != null ) setErrorStyles();
		if ( infoLayers != null ) setInfoLayer();
		if ( sendForm != null ) sendForm.submit(); 
	}
	
	function resetContent()
	{
		var XOffset = 0;
		var YOffset = 0;
		
		var leftLayer = findLayer( "contentLeftLayer" );
		if ( leftLayer != null )
		{		
			// linker und rechter Inhalt werden als Layer positioniert, um im Netscape 4
			// die Ladezeiten ertäglich zu halten
			otSetLayerPosition( "contentLeftLayer", "contentLeftPositionMarker", XOffset, YOffset, true );
			otSetLayerPosition( "contentRightLayer", "contentRightPositionMarker", XOffset, YOffset, true );		
		}
	}	

	function getContext()
	{
		return location.pathname.substring(0, location.pathname.indexOf("/", 1));
	}

	function setErrorStyles()
	{
		for ( field in errorFields.fields )
		{
			var elementList = findElements(field);
			if ( elementList != null )
			{
				for (var i=0; i<elementList.length; i++)
				{
					element = elementList[i];
					if ( element.style )
					{
						element.style.background = "#FAE5E5";
					}
				}
			}
		}
	}
	
	function setInfoLayer()
	{
		for ( var i=0; i<infoLayers.length; i++ )
		{
			var layerid  = "infoLayer" + infoLayers[i];
			var anchorid = "infoPosition" + infoLayers[i];
			if (findLayer(layerid + "On") != null);
			{			
				otSetLayerPosition( layerid + "On", anchorid, 390, 0, false );
				otSetLayerPosition( layerid + "Off", anchorid, 390, 0, true );
			}
		}
	}
	
	function setFocus()
	{
		for (i=0; i<arguments.length; i++)
		{
			var element = findElement(arguments[i]);
			if (element != null)
				element.focus();
		}
		
	}
	
	function submitValue( whatValue )
	{
		if ( document.forms["orderForm"] )
		{
			document.forms["orderForm"].elements["nextPage"].value = whatValue;
			document.forms["orderForm"].submit();
		}
	}
	
	function findElements(elementName)
	{
		var res = new Array();
		for ( var i=0; i<document.forms.length; i++ )
		{
			var curForm = document.forms[i];
			for ( var j=0; j<curForm.elements.length; j++ )
			{
				var curElement = curForm.elements[j];
				if ((curElement.name) && (curElement.name.indexOf(elementName) == 0))
				{
					res[res.length] = curElement;
				}
			}
		}
		return res;
	}
	
	function findElement( elementName )
	{
		for ( var i=0; i<document.forms.length; i++ )
		{
			var curForm = document.forms[i];
			for ( var j=0; j<curForm.elements.length; j++ )
			{
				var curElement = curForm.elements[j];
				if ( ( curElement.name ) && ( curElement.name == elementName ) )
				{
					return curElement;
				}
			}
		}
		return null;
	}
	
	
	// Popup-Aufrufe --------------------------------------------------------------
	function showFaxOrder( url )
	{
		var options			= "width=470,height=500,scrollbars=1,resizable=1";
		faxPopup			= window.open( url, "FaxOrderView", options );
		faxPopup.focus();
	}
	
	function showAdvantagesPopup( url )
	{
		var options			= "width=470,height=500,scrollbars=1,resizable=1";
		advPopup			= window.open( url, "AdvantagesView", options );
		advPopup.focus();
	}
	
	function showOriginalSize( url )
	{
		var options			= "width=300,height=500,scrollbars=1,resizable=1";
		zoomPopup			= window.open( url, "ZoomView", options );
		zoomPopup.focus();
	}
	
	function showNewsletterPopup( url )
	{
		var options 	= "width=625,height=544,toolbar=0,scrollbars=1,resizable=1";
		newsletterPopup	= window.open( url, "newsletterPopup", options );
		newsletterPopup.focus();		
	}
	
	function showMobileDetails( url )
	{
		var options			= "width=440,height=500,scrollbars=1,resizable=1";
		detailsPopup		= window.open( url, "Details", options );
		detailsPopup.focus();
	}
	
	function showExternalInfo( url, w, h )
	{
		var options			= "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=" + w + ",height=" + h;
		externalInfoPopup	= window.open( url, "ExternalInfo", options );
		externalInfoPopup.focus();
	}
	
	function showContractInfo( url )
	{
		var options			= "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=440,height=380";
		contractInfoPopup	= window.open( url, "ContractInfo", options );
		contractInfoPopup.focus();
	}
	
	function showSimlockInfo( url )
	{
		var options			= "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=360,height=150";
		contractInfoPopup	= window.open( url, "SimlockInfo", options );
		contractInfoPopup.focus();
	}
	
	function closeContractInfo()
	{
		if ( ( contractInfoPopup != null ) && ( contractInfoPopup.close ) )
			contractInfoPopup.close();
	}

	
	// checkText-Funktion ---------------------------------------------------------
	// diese Funktion prüft die Anzahl der eingegeben Zeichen und gibt ggf. eine
	// Fehlermeldung aus
	function checkText( textField, charCount )
	{	
		var eingabe = textField.value;
		if(eingabe.length >= charCount )
		{
		neueeingabe = eingabe.substring(0,charCount);
		textField.value = neueeingabe;
		alert('Bitte nicht mehr als ' + charCount + ' Zeichen eingeben.');
		}
	}
	
	// otSetLayerPosition ---------------------------------------------------------
	function otSetLayerPosition( id, posanchor, xOffset, yOffset, show )
	{
		var x = getLeftPosition( posanchor );
		var y = getTopPosition( posanchor );
		if ( xOffset ) x += xOffset;
		if ( yOffset ) y += yOffset;
		setLayerLeft( id, x );
		setLayerTop( id, y );
		setLayerVisibility( id, show );
	}
	
	function otHideLayer( id )
	{
		setLayerVisibility( id, false );
	}
	
	function otShowLayer( id )
	{
		setLayerVisibility( id, true );
	}
	
	// OLD-FUNCTIONS:
	function otPrepaidTarif()
	{
		myWin = window.open('http://www8.viaginterkom.de/appserver/tarife/html/default/euro/LOOP_Tarife_Inland.html','Tarife', 'width=630,height=640,locationbar=no,menubar=no,resizable=no,dependent=no,scrollbars=no');
		myWin.focus();
	}
	
	function otPostpaidTarif()
	{
		myWin = window.open('http://www.viaginterkom.de/de/intro/welcome/produkte_tarife/privatkunden/powersms.contentframe.idxx.121100.ver.2.os.1.nnie.2.html','Tarife','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=630,height=640');
		myWin.focus();
	}
	
	function otFaxDataTarif()
	{
		myWin = window.open('http://www2.de.o2.com/appserver/tarife/html/o2genion/euro/Vertrag_ab_Juli_2002_Fax_und_Daten.html','Tarife', 'width=630,height=640,locationbar=no,menubar=no,resizable=no,dependent=no,scrollbars=1');
		myWin.focus();
	}	
