function adler_book_balance( hotel_id, balance_indicator, balance_roomtype, book_page ) {
	
	var balance_programs = false;
	
	var criterias = {};
	criterias['cart[tf_from]'] = '0000-00-00';
	criterias['cart[tf_to]'] = '0000-00-00';
	criterias['cart[tf_stays]'] = 7;
	criterias['cart[hotel]'] = hotel_id;
	criterias['crits[ids_hotels][]'] = hotel_id;
	criterias['crits[ids_indicator]['+balance_indicator+']'] = balance_indicator;
	
	function url_parameters_get( ) {
	    var vars = [], hash;
	    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	    for(var i = 0; i < hashes.length; i++)
	    {
	        hash = hashes[i].split('=');
	        vars.push(hash[0]);
	        vars[hash[0]] = hash[1];
	    }
	    return vars;
	}
	
	function program_change( ) {
		var week = false, complete = true;
		
		sel.each( function( i, s ) {
			var sel_option = jQuery( s.options[s.selectedIndex] );
			hp_duration = sel_option.attr( 'hp_duration' );
			if( hp_duration == '7' ) {
				week = true;
			}
		} )
		
		var stays_select = jQuery( 'div#ad-balance-book-stays select' )
		
		if( !week ) {
			jQuery( 'option', stays_select ).remove( )
			
			stays_select.append(
				jQuery( '<option />' )
					.attr( 'value', 'short' )
					.html( 'Short Stay' )		
			)
			stays_select.attr( 'value', 'short' );
		} else {
			jQuery( 'option', stays_select ).remove( )
			stays_select.append(
					jQuery( '<option />' )
						.attr( 'value', 'week' )
						.html( 'Week Stay' )		
				)
			
			stays_select.attr( 'value', 'week' );
		}
	}
	
	var params = url_parameters_get();
	
	jQuery.ajax(
		{
			type: 'POST',
			url: book_page+'search.php?action=json_programs',
			data: criterias,
			dataType: 'json',
			success: function( result ) {
				var programs = false;
				jQuery.each( result.programs, function( i, group ) {
					if( group.indicator.coi_id == balance_indicator ) {
						balance_programs = group.programs;
						return false;
					}
				} );
				
				balance_programs.sort( function( a, b ) {
					if( a.hp_order > b.hp_order ){
						return 1;
					} else if ( a.hp_order == b.hp_order ){
						return 0;
					} else {
						return -1;
					}
				} );

				sel = jQuery( 'tr.person-1-programs td select, tr.person-2-programs td select' )
				jQuery.each( balance_programs, function( i, program ) {
					sel.append(
						jQuery( '<option />' )
							.attr( 'value', program.hp_id )
							.attr( 'hp_duration', program.hp_duration )
							.html( program.hp_name )
					);
				} );
				
				sel.change( program_change )
				
				if( params['adler_program'] ) {
					// der ie setzt die auswahl zwar, wirft aber trotzdem einen unknown error
					jQuery( 'tr.person-1-programs td select' ).val( params['adler_program'] );
					
					/*
					try {
						jQuery( 'tr.person-1-programs td select' ).attr( 'value', params['adler_program'] );
						jQuery( 'tr.person-1-programs td select option[value="'+params['adler_program']+'"]' ).attr( 'selected', 'selected' );
					} catch (e) {}
					*/
					
					// Alle anderen ausblenden, wenn eine vorauswahl getroffen wurde.
					var sel_name = jQuery( 'tr.person-1-programs td select option:selected' ).text().substr( 0, 15 );
					jQuery( 'tr.person-1-programs td select option' ).each( function( i, op ) {
						if( jQuery( op ).text().substr( 0, sel_name.length ) != sel_name ) {
							jQuery( op ).remove();
						}
					})
					
					sel.trigger( 'change' );
				}
				
			}
		}
	);
	

	jQuery( 'div#ad-balance-book-person-1 input[name="person-1-more"]' ).click( function( ) {
	
		if( jQuery( this ).attr( 'value' ) == 0 ) {
			jQuery( 'div#ad-balance-book-person-2' ).fadeIn( );
		} else {
			jQuery( 'div#ad-balance-book-person-2' ).fadeOut( );
		}
	
	} );
	jQuery( 'div#ad-balance-book-person-1 select' ).change( function( ) {
		//alert( jQuery( this.options[this.selectedIndex] ).text( ) );
	} );
	jQuery( 'div#ad-balance-book-person-2 input[name="person-2-program"]' ).click( function( ) {
		if( jQuery( this ).attr( 'value' ) == 1 ) {
			//jQuery( 'tr.person-2-programs' ).empty( );
			jQuery( 'tr.person-2-programs' ).fadeIn( );
			// jQuery( 'tr.person-2-programs' ).append( jQuery( 'tr.person-1-programs td' ).clone( ) );
		} else {
			jQuery( 'tr.person-2-programs' ).fadeOut( );
		}
	
	} );
	
	jQuery( '.ad-balance-book-button' ).click( function( ) {
		var url = book_page+'search.php?';
		
		
		url += '&c[ids_hotels][]='+hotel_id;
		
		var alone = jQuery( 'input#person-1-more-1:checked' ).val();
		if( alone == null || alone == '0' ) {
			url += '&config_search_form_persons=2';
			url += '&book_item[]=hrt_'+balance_roomtype+',step_skip:20,cart_init_auto:1,cart_amount:1,cart_item_roomtype:'+balance_roomtype;
		} else {
			url += '&config_search_form_persons=1';
			url += '&book_item[]=hrt_'+balance_roomtype+',step_skip:20,cart_init_auto:1,cart_amount:1,cart_item_roomtype:'+balance_roomtype;
		}
		
		// console.log( url )
		
		if( ( p1_program = jQuery( 'tr.person-1-programs td select' ).attr( 'value' ) ) > 0 ) {
			url += '&book_item[]=hp_'+p1_program+',step_skip:30,cart_init_auto:1,cart_person:0,cart_item_roomtype:'+balance_roomtype;
		} else {
			alert( 'Bitte wählen Sie für die 1. Person ein Programm aus' );
			return false;
		}
		
		if( ( p2_program = jQuery( 'tr.person-2-programs td select' ).attr( 'value' ) ) > 0 ) {
			url += '&book_item[]=hp_'+p2_program+',step_skip:30,cart_init_auto:1,cart_person:1,cart_item_roomtype:'+balance_roomtype;
		}
		
		var stays = document.getElementById( 'ad-balance-book-stays-select' ).value;
		if( stays == 'short' ) {
			url += '&adler_stay=short';
		} else if( stays == 'week' ){
			
			// bei intensivprogrammen soll man mehr als eine woche auswaehlen können..
			if( jQuery( 'tr.person-1-programs td select option:selected, tr.person-2-programs td select option:selected' ).text().indexOf( 'Intensiv') > 0 ) {
				url += '&adler_stay=moreweek';
			} else {
				url += '&adler_stay=week';
			}
		} else {
			alert( 'Bitte wählen Sie die Anzahl der Übernachtungen aus.');
			return false;
		}
		
		
		// alert( jQuery( '#ad-balance-book-stays' ).value );
		
		url += '#cst-book-10';
		
		jQuery( this ).attr( 'href', url );
		return true;
	} );
	
}
