
	var v_felder = [];
	var func_felder = [];
	var radioaktivhide = [];
	var feld_id = [];
	var ft_id = [];
	var in_felder = [];
	
	var ft_hide = [];
	ft_hide[ 'plzpreis' ] = [];
	
	var preiscode = 0;
	var ausgabecode = 0;
	var cur_tmpval = '';
	
	function handleListeners()
	{
		
	}
	
	function IE()
	{
		if( 
			navigator.appName.indexOf("Internet Explorer") != -1
		)
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
	
	function IE6()
	{
		var version = navigator.appVersion.match(/MSIE ([0-9])/);
		if( version )
		{
			version = version[ 1 ];
		}
		else version = 0;
		
		if( 
			navigator.appName.indexOf("Internet Explorer") != -1
				&&
			version <= 6
		)
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}
	
	function dataInput( key, val, nr )
	{
//		alert(key+' / '+val+' / '+nr);		
		if( key == 'preis' )
		{
			//confirm( val );
		}
		
		vals = val.split("|");
		
		if( nr ) key += '_' + nr;
		
		if( vals[ 0 ] != '' && vals[ 0 ] != 'undefined' )
		{
			eval( 'jQuery("#lbl_' + feld_id[ key ] + '").html( "' + vals[ 0 ] + '" );' );
		}

		
		if( (inp = document.getElementById( feld_id[ key ] ) ) && vals[ 1 ] != 'undefined' )
		{
//			alert(inp.type+' / '+key+' / '+feld_id[ key ]+' / '+ vals[ 1 ]);	
			inpdiv = document.getElementById( feld_id[ key ] + '_seldiv' );
			//if( key == 'alternativausgabe' ) confirm( key + ' * ' + val + ' * ' + vals[ 1 ] + ' * ' + inp.type );
			if( inp.type == 'radio' )
			{
				inp.value = vals[ 1 ];
			}
			else if( inp.type == 'select-one' )
			{	
				inp.innerHTML = vals[ 1 ];
				if( IE() ) {
					inp.outerHTML = inp.outerHTML;
					//confirm( feld_id[ key ] );
					initListeners();
				} 
			}
			else if( inp.type == 'text' )
			{
				inp.value = vals[ 1 ];
			}
			else
			{
				eval( 'jQuery("#' + feld_id[ key ] + '").html( "' + vals[ 1 ] + '" );' );
			}
		}
	}
	
	function dataGet( key, nr )
	{
		if( nr ) key += '_' + nr;
		
		if( document.getElementById( feld_id[ key ] ))
		{
			return document.getElementById( feld_id[ key ] ).value;
		}
		else return '';
	}
	
	function setFocus( key, nr )
	{
		if( nr ) key += '_' + nr;
		
		if( document.getElementById( feld_id[ key ] ))
		{
			document.getElementById( feld_id[ key ] ).focus();
		}
	}
	
	function plztest() 
	{ 
	}
	
	function do_auswahl( tmpval, nr, _objekt ) {
//alert(tmpval+', '+nr+', '+_objekt);	
		if(cur_tmpval) {
			do_ausgabe( '', nr, _objekt );
		} else {
			$.get( "ax/", { 
				type: "ausgabe", 
				value: dataGet( 'plz', nr ), 
				objekt: _objekt
			}, function(data) {  
				do_ausgabe( data,  nr, _objekt);  
			} 
			);
		}
	}
	
	function do_ausgabe( tmpval, nr, _objekt )
	{
		if(tmpval) {
			cur_tmpval = tmpval;
		} else {
			if(cur_tmpval) {
				tmpval = cur_tmpval;
			}
		}
//alert(tmpval+' / '+nr+' / '+_objekt+' / '+cur_tmpval);

		if( preiscode && !IE6())
		{
			var add_field = {};
			
			for (i in in_felder) {
			    if (in_felder.hasOwnProperty(i)) {
			    	add_field[i] = jQuery('#'+i).val();
			    }
			}
			add_field = object2String(add_field)
//alert($('#abonr').val());		
			$.get( "ax/", { 
				type: "preis", 
				value: tmpval, 
				objekt: _objekt, 
				ausgabecode: ausgabecode, 
				preiscode: preiscode, 
				plz: dataGet( 'plz', nr ), 
				ort: dataGet( 'ort', nr ),
				in_felder: add_field,
				abonr:$('#abonr').val()
			}, function(data) { 
//alert(data);					
					if($('#'+feld_id['ausgabe-hauptausgabe']+':checked').length) {
						$('#'+feld_id['alternativausgabe']+" option[value=0]").attr("selected", "selected");
					}
					if($('#'+feld_id['ausgabe_'+nr+'-hauptausgabe_'+nr]+':checked').length) {
						if(feld_id['alternativausgabe_'+nr]) {
							$('#'+feld_id['alternativausgabe_'+nr]+" option[value=0]").attr("selected", "selected");
						} else {
							$('#'+feld_id['alternativausgabe']+" option[value=0]").attr("selected", "selected");
						}
					}
					dataInput( 'preis', data, nr ); 
					if( ft_hide[ 'plzpreis' ] [ nr ] ) { 
						showFThide( ft_hide['plzpreis'][ nr ] ); 
					} 
				} 
			);
		}
	}
	
	
	function loader( key, nr ) {
		
		if( nr ) key += '_' + nr;
		
		if( document.getElementById( feld_id[ key ] ) )
		{
			document.getElementById( feld_id[ key ] ).value = 'bitte warten ...';
		}
	}
	
	function do_switchLieferung( tmpval, nr, _objekt ) {
		if(nr==1) {
			jQuery('#ft_' + ft_hide['plzpreis'][1]).show();
			jQuery('#ft_' + ft_hide['plzpreis'][2]).hide();
		}
		else {
			jQuery('#ft_' + ft_hide['plzpreis'][1]).hide();
			jQuery('#ft_' + ft_hide['plzpreis'][2]).show();
		}
		
	}
	
	function do_showhideAusgabe( tmpval, nr, _objekt ) {
		if(feld_id['ausgabe_'+nr+'-hauptausgabe_'+nr]) {
			var curr_id = 'ausgabe_'+nr+'-hauptausgabe_'+nr;
		} else {
			var curr_id = 'ausgabe-hauptausgabe';
		}
		if( !jQuery('#' + feld_id['bestellung']).length || jQuery('#' + feld_id['bestellung']).attr('checked') ) {
			jQuery('#ft_' + ft_id[ feld_id[curr_id] ]).show();
		}
		else {
			jQuery('#ft_' + ft_id[ feld_id[curr_id] ]).hide();
		}
	}
	
	function do_showhideBestelldaten( tmpval, nr, _objekt ) {
		if(feld_id['ausgabe_'+nr+'-hauptausgabe_'+nr]) {
			var curr_id = 'ausgabe_'+nr+'-hauptausgabe_'+nr;
		} else {
			var curr_id = 'ausgabe-hauptausgabe';
		}
		if( !jQuery('#' + feld_id['bestellung']).length || jQuery('#' + feld_id['bestellung']).attr('checked') ) {
			jQuery('#ft_' + ft_id[ feld_id[curr_id] ]).show();
			jQuery('#'+feld_id[curr_id]).attr('checked', 'checked');
			jQuery('#ft_' + ft_id[ feld_id['zahlungsart-'] ]).show();
			jQuery('#ft_' + ft_id[ feld_id['zahlungsart-1'] ]).show();
			jQuery('#ft_' + ft_id[ feld_id['bank'] ]).show();
			jQuery('#ft_' + ft_id[ feld_id['hinweis'] ]).show();
			jQuery('#' + feld_id['zahlungsart-1']).attr('checked', 'checked');
		}
		else {
			jQuery('#ft_' + ft_id[ feld_id[curr_id] ]).hide();
			jQuery('#ft_' + ft_id[ feld_id['zahlungsart-'] ]).hide();
			jQuery('#ft_' + ft_id[ feld_id['zahlungsart-1'] ]).hide();
			jQuery('#ft_' + ft_id[ feld_id['bank'] ]).hide();
			jQuery('#ft_' + ft_id[ feld_id['hinweis'] ]).hide();
			jQuery('#' + feld_id['zahlungsart-1']).attr('checked', false);
			jQuery('#' + feld_id['zahlungsart-2']).attr('checked', false);
			jQuery('#'+feld_id[curr_id]).attr('checked', false);
		}
	}
	
	function do_plz( tmpval, nr, _objekt )
	{
//alert(tmpval+', '+nr+', '+_objekt);		
		//if( ie6() ) return 0;
		val = tmpval;
		if( tmp = val.split("*"));
		else return 0;
		
		plz = tmp[ 0 ];
		ort = tmp[ 1 ];
			
		if( plz.length == 5 && !IE6() )
		{
			dataInput( 'plz', '|' + plz, nr );
						
			if(!jQuery('#' + feld_id['bestellung']).length || jQuery('#' + feld_id['bestellung']).attr('checked')) {
				if(feld_id['ausgabe_'+nr+'-hauptausgabe_'+nr]) {
					var curr_id = 'ausgabe_'+nr+'-hauptausgabe_'+nr;
				} else {
					var curr_id = 'ausgabe-hauptausgabe';
				}
				if(feld_id['alternativausgabe_'+nr]) {
					var curr_id_andere = 'alternativausgabe_'+nr;
				} else {
					var curr_id_andere = 'alternativausgabe';
				}
			    if( func_felder[ 'hauptausgabe_' + nr ] )
                {           
//                    eval( '$.get( "ax/", { type: "ausgabe", value: "' + plz + '", objekt: "' + _objekt + '" }, function(data) { dataInput("ausgabe-hauptausgabe", data); do_ausgabe( data, nr, _objekt );  } );' );
                    eval( '$.get( "ax/", { type: "ausgabe", value: "' + plz + '", objekt: "' + _objekt + '" }, function(data) { dataInput("' + curr_id  + '", data); do_ausgabe( data, "' + nr + '", "' + _objekt + '" );  } );' );
                }
                else if( preiscode )
                {
                    $.get( "ax/", { type: "preis", value: tmpval, objekt: _objekt, ausgabecode: ausgabecode, preiscode: preiscode, plz: dataGet( 'plz', nr ), ort: dataGet( 'ort', nr ) }, function(data) { dataInput( 'preis', data, nr ); if( ft_hide[ 'plzpreis' ] [ nr ] ) { showFThide( ft_hide['plzpreis'][ nr ] ); } } );
                }
                
                if( func_felder[ 'andere_ausgabe_' + nr ] )
                {
                    eval( '$.get( "ax/", { type: "andere_ausgabe", value: "' + plz + '", objekt: "' + _objekt + '" }, function(data) { dataInput("' + curr_id_andere + '", data); } );' );
                }   
			}
					
			if( ort != '' ) 
			{
				dataInput( 'ort', "|" + ort, nr );
				
				dataInput( 'strasse', '|', nr );
				dataInput( 'hausnummer', '|', nr );
				
				setFocus( 'strasse', nr );
			}
			
			
			//if( ft_hide[ 'plz' ] [ nr ] )
			//for( var i = 0, j = ft_hide[ 'plz' ] [ nr ].length; i < j; i++ )
			//{
				//showFThide( ft_hide[ 'plz' ] [ nr ][ i ] );
			//}
			
			//else eval( '$.get( "ax/", { type: "ort", value: "' + plz + '" }, function(data) { dataInput("ort", data); } );' );
			
		}
		
		return plz;
	}
	
	function do_strasse( tmpval, nr, _objekt )
	{
		setFocus( 'hausnummer', nr );
	}
	
	
	function showhide( tmpval )
	{
		var val = tmpval.split( '/' );
		
		if( val[ 0 ] )
		{
			var val2 = val[ 0 ].split( '_' );
			if( val2.length )
			for( i = 0; i < val2.length; i++ )
			{
				show( feld_id[ val2[ i ] ] );
			}
		}
		
		if( val[ 1 ] )
		{
			var val2 = val[ 1 ].split( '_' );
			
			if( val2.length )
			for( i = 0; i < val2.length; i++ )
			{
				hide( feld_id[ val2[ i ] ] );
			}
		}
	}
	
	
	function hide( key )
	{
		$("#feld_" + key).hide();
		$("#label_" + key).hide();
	}
	
	
	function hideFT( key )
	{
		$("#ft_" + key).hide();
	}
	
	
	function hideFThide( key )
	{
		$("#ft_hide_" + key).hide();
	}
	
	
	function show( key )
	{
		$("#feld_" + key).show();
		$("#label_" + key).show();
	}
	

	function showFT( key )
	{
		$("#ft_" + key ).show();
	}
	
	
	function showFThide( key )
	{
		$("#ft_hide_" + key).show();
	}

	function childEl( elname, zust )
	{
		eval( "$(\"[name='" + elname + "']\").css('display', '" + zust + "') " );
	}
	function switchLA(id,nr){
		if(jQuery('#'+id+':checked').length) {
			do_switchLieferung(null,nr,null);
		}
	}
	function object2String(obj) {
	    var val, output = '';
	    if (obj) {    
	        output += '{';
	        for (var i in obj) {
	            val = obj[i];
	            switch (typeof val) {
	                case ("object"):
	                    if (val[0]) {
	                        output += '"' + i + '":"' + array2String(val) + '",';
	                    } else {
	                        output += '"' + i + '":"' + object2String(val) + '",';
	                    }
	                    break;
	                case ("string"):
	                    output += '"' + i + '":"' + escape(val) + '",';
	                    break;
	                default:
	                    output += '"' + i + '":"' + val + '",';
	            }
	        }
	        output = output.substring(0, output.length-1) + '}';
	    }
	    return output;
	}

