	var RequestsHandlers =
	{
		Common : 
		{
			_showWeekdays : function()
			{
				if($('weekdays').checked)
				{
					$('weekdays_am_cell').show();
					$('weekdays_pm_cell').show();
				}
				else
				{
					$('weekdays_am_cell').hide();
					$('weekdays_pm_cell').hide();
				}
			},
		
			_showWeekend : function()
			{
				if($('weekend').checked)
				{
					$('weekend_am_cell').show();
					$('weekend_pm_cell').show();
				}
				else
				{
					$('weekend_am_cell').hide();
					$('weekend_pm_cell').hide();
				}
			},
			
			init : function()
			{
				/*$('weekdays').observe('click', RequestsHandlers.Common._showWeekdays);
				RequestsHandlers.Common._showWeekdays();

				$('weekend').observe('click', RequestsHandlers.Common._showWeekend);
				RequestsHandlers.Common._showWeekend();*/
			}
		},
		
		Faq : 
		{
			init : function()
			{
				$('form_faq').observe('submit', RequestsHandlers.Faq._formHandler);
				$('reset_link_confirm').observe('click', RequestsHandlers.Faq.resetForm);
				$('reset_link_error').observe('click', RequestsHandlers.Faq.resetForm);
			},
			
			_formHandler : function(event)
			{
				event.stop();
				
				var inputError 		= {border 	: '1px solid #F00'};
				var inputConfirm 	= {border 	: '1px solid #999'};
				
				RequestsHandlers.Faq._formHandler._errors = Array();				
				
				$$('.required_faq').each
				(
					function(element, key)
					{
						if(element.value == '')
						{
							$(element).setStyle(inputError);							
							RequestsHandlers.Faq._formHandler._errors.push(element);
						}
						else
						{
							$(element).setStyle(inputConfirm);
						}
					}
				);				

				if(RequestsHandlers.Faq._formHandler._errors.length == 0)
				{					
					$(this).request
					(
						{
						  onComplete: function(transport)
						  { 
							var status = parseInt(transport.responseText);							
							
							switch(status)
							{
								case 1 :
								{
									new Effect.toggle($('faq_ask_form'), 'Appear', {duration:0.5}), 
									GlobalHandlers.customTrackView(Request.get('lang') + '/form/faq/confirm');
									setTimeout(function(){new Effect.toggle($('faq_ask_confirm'), 'Appear', {duration:0.5})}, 600);
									break;
								}
								default :
								{
									new Effect.toggle($('faq_ask_form'), 'Appear', {duration:0.5}), 
									GlobalHandlers.customTrackView(Request.get('lang') + '/form/faq/error');
									setTimeout(function(){new Effect.toggle($('faq_ask_error'), 'Appear', {duration:0.5})}, 600);
								}
							}
						  }
						}
					);
				}
				else
				{
					GlobalHandlers.customTrackView(Request.get('lang') + '/form/faq/incomplete');
				}
			},
			
			resetForm : function()
			{
				$('faq_ask_confirm').hide();
				$('faq_ask_error').hide();
				setTimeout(function(){new Effect.toggle($('faq_ask_form'), 'Appear', {duration:0.5})}, 600);
			}			
		},
		
		Contact : 
		{
			init : function()
			{
				RequestsHandlers.Common.init();	
				RequestsHandlers.Contact._map();
				RequestsHandlers.Contact._requestType();
				RequestsHandlers.Contact._childrenNumber();
				$('form_contact').observe('submit', RequestsHandlers.Contact._formHandler);
				$('contact_request_type').observe('change', RequestsHandlers.Contact._requestType);
				$('passengers_type_2').observe('change', RequestsHandlers.Contact._childrenNumber);
			},
		
			_formHandler : function(event)
			{
				event.stop();
				
				var inputError 		= {border 	: '1px solid #F00'};
				var inputConfirm 	= {border 	: '1px solid #999'};
				
				RequestsHandlers.Contact._formHandler._errors = Array();				
				
				$$('.required_contact').each
				(
					function(element, key)
					{
						if(element.value == '')
						{
							$(element).setStyle(inputError);
							RequestsHandlers.Contact._formHandler._errors.push(element);
						}
						else
						{
							$(element).setStyle(inputConfirm);
						}
					}
				);

				if($('required_contact_mail_first').value != $('required_contact_mail_second').value || $('required_contact_mail_second').value == '')
				{
				    $('required_contact_mail_second').setStyle(inputError);
				}
				else
				{
				    $('required_contact_mail_second').setStyle(inputConfirm);
				}    
				
				var request_type = $('contact_request_type')[$('contact_request_type').selectedIndex].value;

				if(request_type != 0)
				{
				    $$('.required_group_date').each
	                (
	                    function(element, key)
	                    {
	                        if(element.value == '' || isNaN(element.value))
	                        {
	                            $(element).setStyle(inputError);
	                            RequestsHandlers.Contact._formHandler._errors.push(element);
	                        }
	                        else
	                        {
	                            $(element).setStyle(inputConfirm);
	                        }
	                    }
	                );
 
				} 
				
				

				if(RequestsHandlers.Contact._formHandler._errors.length == 0)
				{
					//$('error_form').style.display = 'none';					
					this.submit();
				}
				else
				{
					//$('error_form').style.display = 'block';
					GlobalHandlers.customTrackView(Request.get('lang') + '/form/contact/incomplete');
				}
			},
			
			_requestType : function(event)
            {
			    var request_type = $('contact_request_type')[$('contact_request_type').selectedIndex].value;

			    if(request_type == 0)
                {
			        $('request_wrapper').style.display = 'none';   
                }
			    else
			    {
			        $('request_wrapper').style.display = 'block';  
			    }        
			  
            },
            
            _childrenNumber : function(event)
            {
                var children_number = $('passengers_type_2')[$('passengers_type_2').selectedIndex].value;

                $$('.children_age').each
                (
                    function(element, key)
                    {
                        $(element).style.display = 'none';
                    }
                );
                
                if(children_number > 0)
                {
                    $('age_container').style.display = 'block';
                    
                    for(var i = 1; i <= children_number; i++)
                    {
                        var current_element = 'children_age_' + i;
                        $(current_element).style.display = 'block';  
                    }       
                } 
                else
                {
                    $('age_container').style.display = 'none';
                } 
                 
              
            },
			
			_map : function()
			{
				var map 				= new google.maps.Map2(document.getElementById("contact_map_api"));
				
			    var icon 				= new GIcon();
			    icon.image 				= Request.get('basepath') + '/images/logo_maps.png';
			    icon.shadow 			= Request.get('basepath') + '/images/logo_maps_shadow.png';
			    icon.iconSize 			= new GSize(40.0, 40.0);
			    icon.shadowSize		 	= new GSize(61.0, 40.0);
			    icon.iconAnchor 		= new GPoint(20.0, 20.0);
			    icon.infoWindowAnchor 	= new GPoint(20.0, 20.0);
			        
				map.setCenter(new google.maps.LatLng(45.544929,-73.739848), 15);
				map.addControl(new GSmallMapControl());

				map.addControl(new GMapTypeControl());

				var netvpoint = new GLatLng(45.544929, -73.739849);
				
				var netvmarker = RequestsHandlers.Contact._createMarker(netvpoint, icon);
				map.addOverlay(netvmarker);
			},
			
			_createMarker : function(netvpoint, icon)
			{
				var netvmarker = new GMarker(netvpoint, icon);
			 	
				GEvent.addListener(netvmarker, "click", function() {
					netvmarker.openInfoWindowHtml(INFORMATIONS_DIRECTIONS);
				});
				finalmarker = netvmarker;
				return netvmarker;
			},
			
			toHere : function() 
			{
				finalmarker.openInfoWindowHtml(INFORMATIONS_LOCALISATION);
			}
		},
			
		Cruises : 
		{
			init : function()
			{
				RequestsHandlers.Common.init();	
				
				$('destination_precise_oui').observe('click', RequestsHandlers.Cruises._showDestinationRow);
				$('destination_precise_non').observe('click', RequestsHandlers.Cruises._showDestinationRow);
				RequestsHandlers.Cruises._showDestinationRow();
		
				$('evenement_special_oui').observe('click', RequestsHandlers.Group._showSpecialEventRow);
				$('evenement_special_non').observe('click', RequestsHandlers.Group._showSpecialEventRow);
				RequestsHandlers.Group._showSpecialEventRow();
			
				$('nb_cabins').observe('change', RequestsHandlers.Cruises._showCabins);
				RequestsHandlers.Cruises._showCabins();
								
				$('form_cruises').observe('submit', RequestsHandlers.Cruises._formHandler);
			},
			
			_showCabins : function()
			{
				var nbSelected 	= $('nb_cabins')[$('nb_cabins').selectedIndex].value;
				var nbAll 		= $('nb_cabins').options.length;
								
				for(var x = 1; x <= nbAll; x++)
				{
					if(x <= nbSelected)
					{
						$('possible_cabins_' + x).show();						
					}
					else
					{
						$('possible_cabins_' + x).hide();						
					}
				}
			},
			
			_showDestinationRow : function()
			{
				var swapObject = $('destination_precise_row');
		
				if($('destination_precise_oui').checked == true)
				{
					swapObject.show();
				}
				else
				{
					swapObject.hide();
				}
			},
			
			_formHandler : function(event)
			{
				event.stop();
				
				var inputError 		= {border 	: '1px solid #F00'};
				var inputConfirm 	= {border 	: '1px solid #999'};
				var labelError 		= {color 	: '#F00'};
				var labelConfirm 	= {color 	: '#000'};
				
				RequestsHandlers.Cruises._formHandler._errors = Array();				
				
				$$('.required_cruises').each
				(
					function(element, key)
					{
						if(element.value == '')
						{
							$(element).setStyle(inputError);
							RequestsHandlers.Cruises._formHandler._errors.push(element);
						}
						else
						{
							$(element).setStyle(inputConfirm);
						}
					}
				);

				if(RequestsHandlers.Cruises._formHandler._errors.length == 0)
				{
					$('error_form').style.display = 'none';
					this.submit();
				}
				else
				{
					$('error_form').style.display = 'block';
					GlobalHandlers.customTrackView(Request.get('lang') + '/form/cruise/incomplete');					
				}
			}
		},
		
		Group : 
		{
			init : function()
			{
				RequestsHandlers.Common.init();	
				RequestsHandlers.Contact._childrenNumber();
				/*$('destination_precise_oui').observe('click', RequestsHandlers.Group._showDestinationRow);
				$('destination_precise_non').observe('click', RequestsHandlers.Group._showDestinationRow);
				RequestsHandlers.Group._showDestinationRow();
		
				$('evenement_special_oui').observe('click', RequestsHandlers.Group._showSpecialEventRow);
				$('evenement_special_non').observe('click', RequestsHandlers.Group._showSpecialEventRow);
				RequestsHandlers.Group._showSpecialEventRow();*/
			
				$('form_group').observe('submit', RequestsHandlers.Group._formHandler);
				$('passengers_type_2').observe('change', RequestsHandlers.Contact._childrenNumber);
			},
			
			_showDestinationRow : function()
			{
				var swapObject = $('group_destination_row');
		
				if($('destination_precise_oui').checked == true)
				{
					swapObject.show();
				}
				else
				{
					swapObject.hide();
				}
			},
			
			_showSpecialEventRow : function()
			{
				var swapObject = $('evenement_specifier_row');
				
				if($('evenement_special_oui').checked == true)
				{
					swapObject.show();
				}
				else
				{
					swapObject.hide();
				}
			},

			_formHandler : function(event)
			{
				event.stop();
				
				var inputError 		= {border 	: '1px solid #F00'};
				var inputConfirm 	= {border 	: '1px solid #999'};
				var labelError 		= {color 	: '#F00'};
				var labelConfirm 	= {color 	: '#000'};
				
				RequestsHandlers.Group._formHandler._errors = Array();				
				
				$$('.required_group').each
				(
					function(element, key)
					{
						if(element.value == '')
						{
							$(element).setStyle(inputError);
							RequestsHandlers.Group._formHandler._errors.push(element);
						}
						else
						{
							$(element).setStyle(inputConfirm);
						}
					}
				);
				
				if($('required_group_mail_first').value != $('required_group_mail_second').value || $('required_group_mail_second').value == '')
                {
                    $('required_group_mail_second').setStyle(inputError);
                }
                else
                {
                    $('required_group_mail_second').setStyle(inputConfirm);
                }
				
				$$('.required_group_date').each
                (
                    function(element, key)
                    {
                        if(element.value == '' || isNaN(element.value))
                        {
                            $(element).setStyle(inputError);
                            RequestsHandlers.Group._formHandler._errors.push(element);
                        }
                        else
                        {
                            $(element).setStyle(inputConfirm);
                        }
                    }
                );  
			
				var groupAccept 		= $('group_accept');
				var groupAcceptLabel 	= $('group_accept_label');
				
				if(!groupAccept.checked)
				{
					RequestsHandlers.Group._formHandler._errors.push(groupAccept);				
					groupAcceptLabel.setStyle(labelError);
				}
				else
				{
					groupAcceptLabel.setStyle(labelConfirm);
				}

				if(RequestsHandlers.Group._formHandler._errors.length == 0)
				{
					//$('error_form').style.display = 'none';
					this.submit();
				}
				else
				{
					//$('error_form').style.display = 'block';
					GlobalHandlers.customTrackView(Request.get('lang') + '/form/group/incomplete');
				}
			}
		}	
	};		

