// JavaScript Document

// Mootools Library Needed

var OnlineReservationManager = {
	
	fAgeChildrenFieldNames : { 1: 'uid30',
							   2: 'uid31',
							   3: 'uid32',
							   4: 'uid33'},
	
	init: function(){
		// Check If Online Reservation 'Container' Exists
		if($$('div.online_reservation_form').length > 0){
			 OnlineReservationManager.getFormContent($$('div.online_reservation_form'));
		}
		// Select Box - Number Of Children -----------------------
		var select_children = $('children');
		if(select_children){
			select_children.addEvent('change', OnlineReservationManager.changeElementStateListener);
			OnlineReservationManager.changeElementState(select_children);
		}
		// -------------------------------------------------------
	},
	
	getFormContent: function(elements){
		// Preparing AJAX CALL
		// Host To Ajax Request
		var host = window.location.host;
		// Paramter to Controller Dispatching (type, action, system_language)
		var type = 'online_reservation';
		var action = 'get_form_content';
		// -> Default System Language UID = 0 => ENGLISH
		var system_language_uid = 0;
		// -> Get System Language UID
		if($('system_language_uid')){
			system_language_uid = $('system_language_uid').value;
		}
		// -> Get Page Type (Homepage or Page Content)
		var page = 'page';
		if(!$('page_content_right')){
			page = 'home';	
		}
		// Controller URL
		var url_controller = 'http://'+host+'/fileadmin/php_contents/online_reservation/controller_online_reservation.php';
		// Ajax Request 
		var req = new Request({  
				url: url_controller,
				async: false,
				method: 'post',
				data: 'type='+type+'&action='+action+'&system_language_uid='+system_language_uid+'&page='+page,
				onComplete: function(response){
					if(response == 'parameter_error'){
						alert('Error: Online Reservation: Invalid Parameters!');
						return false;
					}
					// Set Ajax Response To Html Content
					for(var i=0;i<elements.length;i++){
						elements[i].innerHTML = response;	
					}
					return true;
				}  
			}  
		).send();
	},
	
	// Listener of Select Box - Number Of Children
	changeElementStateListener: function(event){
		OnlineReservationManager.changeElementState(this);
		event.preventDefault();
	},
	
	// Function of Select Box - Number Of Children
	changeElementState: function(select_element){
		if($$('div.online_reservation_form_children_age')[0] && $$('div.online_reservation_form')[0]){
			// Clear Content Node
			$$('div.online_reservation_form_children_age')[0].empty();
			// Create and Set DIV Element
			var div_title = document.createElement('div');
			div_title.className = 'online_reservation_form_title';
			var system_language_uid = '0';
			// -> Get System Language UID
			if($('system_language_uid')){
				system_language_uid = $('system_language_uid').value;
			}
			switch(system_language_uid){
				case '0':
					div_title.innerHTML = 'Alter Kinder';
					break;
				case '1':
					div_title.innerHTML = 'Age Children';
					break;
				case '2':
					div_title.innerHTML = 'Età Bambini';
					break;
				default:
					div_title.innerHTML = 'Age Children';
					break;
			}
			// Append Child
			$$('div.online_reservation_form_children_age')[0].appendChild(div_title);
			// Create and Set DIV and SELECT Element
			var div_field = null;
			var select_box = null;
			for(var i=1;i<=select_element.selectedIndex;i++){
				div_field = document.createElement('div');
				div_field.className = 'online_reservation_form_field';
				select_box = document.createElement('select');
				select_box.name = 'tx_powermail_pi1[' + OnlineReservationManager.fAgeChildrenFieldNames[i] + ']';
				select_box.id = 'children_age_' + i;
				select_box.className = 'select online_reservation_select';
				var option = null;
				for(var j=0;j<18;j++){
					option = document.createElement('option');
					if(j==0){
						option.innerHTML = '-';
						option.value = '-';
					}else{
						option.innerHTML = ''+(j-1);
						option.value = ''+(j-1);
					}
					select_box.appendChild(option);
				}
				// Append Child
				div_field.appendChild(select_box);
				// Append Child
				$$('div.online_reservation_form_children_age')[0].appendChild(div_field);
			}
			var input_hidden = null;
			var tmp = select_element.selectedIndex+1;
			for(var h=tmp;h<=4;h++){
				div_field = document.createElement('div');
				div_field.className = 'online_reservation_form_field';
				input_hidden = document.createElement('input');
				input_hidden.name = 'tx_powermail_pi1[' + OnlineReservationManager.fAgeChildrenFieldNames[h] + ']';
				input_hidden.type = 'hidden';
				input_hidden.value = '-';
				// Append Child
				div_field.appendChild(input_hidden);
				// Append Child
				$$('div.online_reservation_form_children_age')[0].appendChild(div_field);
			}
			// Display DIV
			if($$('div.online_reservation_form')[0].parentNode.id == 'home_content_right'){
				$$('div.online_reservation_form_children_age')[0].setStyle('display', 'block');
				$$('div.online_reservation_form')[0].setStyle('height','209px');
				$$('div.online_reservation_form')[0].setStyle('margin-bottom','20px');
			}else{
				$$('div.online_reservation_form_children_age')[0].setStyle('display', 'block');
			}
			if(select_element.selectedIndex == 0){
				// Hide DIV
				if($$('div.online_reservation_form')[0].parentNode.id == 'home_content_right'){
					$$('div.online_reservation_form_children_age')[0].setStyle('display', 'none');
					$$('div.online_reservation_form')[0].setStyle('height','172px');
					$$('div.online_reservation_form')[0].setStyle('margin-bottom','57px');
				}else{
					$$('div.online_reservation_form_children_age')[0].setStyle('display', 'none');
				}
			}
		}
	}
	
};

// Mootools DOM ready
window.addEvent('domready', function(){
		OnlineReservationManager.init();
	}
);
