	
	function inputFacing( iframeName )
	{
		this.config        = new Object();
		this.event         = new Object();
		this.config.fields = new Array();
		this.iframeName    = iframeName;
		
		this.config.field = function field( fieldName, inputType )
		{
			var count = this.fields.length;
			this.fields[count] = new Array();
			this.fields[count]["fieldName"] = fieldName;
			this.fields[count]["inputType"] = inputType;
		}
		
		this.openCloseCreditBars = function openCloseCreditBars( creditBar )
	    {
	      var objCreditBar = document.getElementsByName( "payment_method" );
		  
		  for ( var d = 0; d < objCreditBar.length; d++ )
		  {
		  	var objHidden = document.getElementById( objCreditBar[d].value );
			
			if (objHidden)
			{
			  	if (objCreditBar[d].checked)
				{
					inputFacing.deleteCss( objHidden, "hidden" );
					objHidden.style.display = "";
				}
				else
				{
					inputFacing.addCss( objHidden, "hidden" );
					objHidden.style.display = "none";
				}
			}
		  }
		  
		  changeFrameSize( this.iframeName )
		}

		function changeFrameSize( iframeName )
		{
			if ( typeof iframeActions != undefined )
			{
				iframeActions.resizeParentIframe( 'bookingRoadIframe' );
				
				if ( iframeName )
				{
					parent.iframeActions.resizeParentIframe( iframeName, 'searchForServices' );
				}
			}
		}
		
		function open_window( href )
		{
			window.open( href, "Allgemeine Geschäftsbedingungen"," toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizeable=0,width=800,height=600");
		}	
		
		function browserVersion()
		{
			check=[
['window.postMessage',
 'window.XMLHttpRequest&&(document.postMessage||window.external)',
 'document.compatMode',
 '(document.detachEvent||document.contentType)'],
['window.execScript','window.pkcs11','window.opera',
                                  'window.navigator&&window.navigator.vendor'],
[['IE 8','FF 3','Op 9.5','KDE?'],
 ['IE 7','FF 2','Op 9','KDE?'],
 ['IE 6','FF 1.5','Op 8','KDE/Safari 3'],
 ['IE 5x','NN 7','Op 7','KDE/Konqu. 3']]];

 			var j, b; 
 			
 			for(n=0;n<check[1].length;n++)
 			{
 				if(!eval(check[1][n])==0)
 				{
 					b=n;
 				}
 			}
 			
			for(n=check[0].length;n>-1;n--)
			{
				if(!eval(check[0][n])==0)
				{
					j=n;
				}
			}
			
			if (j>-1&&b>-1)
			{
				return check[2][j][b];
			}
			else
			{
				return "";
			}
			
		}
		
		this.onLoad = function onLoad()
		{
			var objForm = document.getElementById( this.config.formId );

			for ( var a = 0; a < this.config.fields.length; a++ )
			{
				var objInputs = document.getElementsByName( this.config.fields[a].fieldName );

				if (objInputs.length > 0)
				{
					for ( var b = 0; b < objInputs.length; b++ )
					{
						objInputs[b].varsInputActions              = new Object();
						objInputs[b].varsInputActions.objClassName = this.config.objClassName;
						objInputs[b].onmouseover = new Function ( this.config.objClassName+".event.onMouseOver( this )" );
						objInputs[b].onmouseout  = new Function ( this.config.objClassName+".event.onMouseOut( this )" );
						objInputs[b].onchange    = new Function ( this.config.objClassName+".event.onChange( this )" );
						objInputs[b].onblur      = new Function ( this.config.objClassName+".event.onBlur( this )" );
						objInputs[b].onkeydown   = new Function ( this.config.objClassName+".event.onKeyDown( this )" );
						objInputs[b].onfocus     = new Function ( this.config.objClassName+".event.onFocus( this )" );
					}
				}
			}
		}
		
		this.addCss = function addCss( objInput, cssName )
		{
			var regexstring_1        = "[\\s]{0,1}"+cssName+"{1}";
			var myregexp_1           = new RegExp(regexstring_1);
			
			if ( browserVersion() != "IE 7" )
			{
				if ( objInput.className )
				{
					if (!myregexp_1.test(objInput.className))
					{
						objInput.className += " "+cssName;
					}
				}
				else
				{
					objInput.className = cssName;
				}
			}
		}
		
		this.deleteCss = function deleteCss( objInput, cssName )
		{
			var regexstring_1 = "[\\s]{0,1}"+cssName+"{1}";
			var myregexp_1    = new RegExp(regexstring_1);

			objInput.style.backgroundImage = "";
			objInput.style.backgroundColor = "";
			objInput.className             = objInput.className.replace( myregexp_1, "" );
		}
		
		this.event.onMouseOver = function onMouseOver( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.deleteCss( objInput, objClass.config.cssOnMouseOver );
			objClass.addCss( objInput, objClass.config.cssOnMouseOver );
		}
		
		this.event.onMouseOut = function onMouseOut( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.deleteCss( objInput, objClass.config.cssOnMouseOver );
		}
		
		this.event.onChange = function onChange( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.addCss( objInput, objClass.config.cssOnChange );
			objClass.demarkAllOthers( objClass, objInput.name );
		}
		
		this.event.onFocus = function onFocus( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.addCss( objInput, objClass.config.cssOnChange );
		}
		
		this.event.onBlur = function onBlur( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.deleteCss( objInput, objClass.config.cssOnMouseOver );
			objClass.deleteCss( objInput, objClass.config.cssOnChange );
		}
		
		this.event.onKeyDown = function onKeyDown( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.deleteCss( objInput, objClass.config.cssOnMouseOver );
			objClass.addCss( objInput, objClass.config.cssOnChange );
		}
		
		this.event.onMouseClick = function onMouseClick( objInput )
		{
			var objClass = self[objInput.varsInputActions.objClassName];
			objClass.addCss( objInput, objClass.config.cssOnChange );
		}
		
		this.demarkAllOthers = function demarkAllOthers( objClass, inputName )
		{
			for ( var a = 0; a < objClass.config.fields.length; a++ )
			{
				var objInputs = document.getElementsByName( objClass.config.fields[a].fieldName );

				if (objInputs.length > 0)
				{
					for ( var b = 0; b < objInputs.length; b++ )
					{
						if (inputName!=objInputs[b].name)
						{
							objClass.deleteCss( objInputs[b], objClass.config.cssOnChange );
							objClass.deleteCss( objInputs[b], objClass.config.cssOnMouseOver );
						}
					}
				}
			}
		}
	}
