

function initEngine() 
{

	
	setupDateFields();

  $('.pickup_ajax').each(function(){  	
	  updateOffices($(this));
  });
  
  $('.pickup_ajax').change(function(){
	  	updateOffices($(this))
	}); 
  
  
  $('#booking_submit').click(function()
  {
    var errors = '';
    //validate form
    if ( $('#pickup_city_id').length && '-1' == $('#pickup_city_id').val() )
      errors = 'Por favor, elige Ciudad de recogida.';    
    else if ( $('#pickup_office_id').length && null == $('#pickup_office_id').val() )
      errors = 'Por favor, elige Oficina de recogida.';            
    else if (false == $('#dropoff_same_place').is(':checked')) 
    {
      if ( $('#dropoff_city_id').length && '-1' == $('#dropoff_city_id').val() )
        errors = 'Por favor, elige Ciudad de devoluci\u00f3n.';    
      else if ( $('#dropoff_office_id').length && null == $('#dropoff_office_id').val() )
        errors = 'Por favor, elige Oficina de devoluci\u00f3n.';            
    }            
    if (errors == '' && $('#dropoff_date').val() < $('#pickup_date').val() )
      errors = 'La fecha/hora de devoluci\u00f3n debe ser posterior a la de recogida.';            
    else if (errors == '' && $('#dropoff_date').val() == $('#pickup_date').val() && $('#dropoff_time').val() <= $('#pickup_time').val() )
      errors = 'La fecha/hora de devoluci\u00f3n debe ser posterior a la de recogida.';            
      
    if (errors != '') {
      alert(errors);
      return false;
    }
    else
      $('#booking_info').show();
    
  });  
  
  
  $('#dropoff_same_place').change(function(){
  	if ($(this).is(':checked')) 
  		$('#dropoff_data').hide();
  	else
  		$('#dropoff_data').show();
  });
  
  

  

}













function setupDateFields()
{

  $('#pickup_calendar').datepicker({ 
  	firstDay:1, 
  	regional: 'es',
  	altField: '#pickup_date',
  	altFormat: 'yy-mm-dd',
  	minDate: 0,
  	customTitle: mm_pickup_calendar_title
  });
  $('#dropoff_calendar').datepicker({ 
  	firstDay:1,   	
  	regional: 'es',
  	altField: '#dropoff_date',
  	altFormat: 'yy-mm-dd',
  	minDate: 0,
  	customTitle: mm_dropoff_calendar_title
  });

  
  $('#pickup_time').optionpicker({
		classOptionsHolder: "hour_select",
		classParentHolder: "line",
		onChange: pickupTimeChange
  });
  
  
  $('#dropoff_time').optionpicker({
		classOptionsHolder: "hour_select",
		classParentHolder: "line",
		onChange: dropoffTimeChange
  });
  

  
  $('#pickup_calendar').change ( function() 
  {
    $('#pickup_time').optionpicker('open');
    step1 = true;
    step2 = step3 = step4 = false;
  });  
  
  $('#dropoff_calendar').change ( function() 
  {
  	step3 = true;
    $('#dropoff_time').optionpicker('open');
  });  

}


function updateOfficesCallback(office, response)
{
	//insert options into select and focus
  office.html(response);
	office.focus();
}



function showDropoffCalendar()
{
	$( "#dropoff_calendar" ).datepicker ( "option", "minDate", $('#pickup_calendar').val() ).datepicker('show');  
}



function pickupTimeChange()
{
	step2 = true; 
	checkTicks();	
  showDropoffCalendar();
}

function dropoffTimeChange()
{
	step4 = true;  	
  checkTicks();	
}


function checkTicks() 
{
	if (step1 && step2)
		$('#pickup_tick').css('visibility', 'visible');
	else
		$('#pickup_tick').css('visibility', 'hidden');
		
	if (step3 && step4)
		$('#dropoff_tick').css('visibility', 'visible');
	else
		$('#dropoff_tick').css('visibility', 'hidden');

}


