/*
 * Version: $Revision: 1.8 $
 * Author: BeSite <info@besite.nl>
 * Copyright 2009 BeSite
 */

var RideProcess = {
		km_per_hour: 60,
		direction_cid: 2,
		datetime_to_departure: null,
        datetime_return_departure: null,
        previous_date: ''
}

function AmountOfExtraPickupPoints( iAmount )
{
	for ( var i = 1; i <= 5; i++ )
	{
		if ( i <= iAmount )
		{
			$("#adr_" + i).show();
			$("#adr_" + i + " :input").removeAttr( "disabled" );
		}
		else
		{
			$("#adr_" + i).hide();
			$("#adr_" + i + " :input").attr( "disabled","disabled" );
		}
	}
}

function RideDirectionSelectOnChange( eSelect )
{
	if ( parseInt( eSelect.value ) == 2 ) // retour
	{
		$("#RetourData :input").removeAttr( "disabled" );
		$("#RetourData").show();
	}
	else
	{
		$("#RetourData").hide();
		$("#RetourData :input").attr( "disabled","disabled" );
	}
}

function RideTypeSelectOnChange( eSelect )
{
	if ( parseInt( eSelect.value ) > 1 ) // not private
	{
		$("#RideNameRow :input").removeAttr( "disabled" );
		$("#RideNameRow").show();
	}
	else
	{
		$("#RideNameRow").hide();
		$("#RideNameRow :input").attr( "disabled","disabled" );
	}
}

function onGDirectionsLoadCompanyDirection( oDirection, sPart )
{
	$("#DistanceTo" + sPart).val( Math.ceil( oDirection.getDistance().meters / 1000 ) );
	//$("#TravelTimeTo" + sPart).val( Math.ceil( oDirection.getDuration().seconds / 60 * 1.1 ));
	// can't clear right now, will give error, so clear little later
	setTimeout( function(){ 
		oDirection.clear();
	}, 500 );
	return oDirection;
}

function onGDirectionsLoadCompanyToPickupPoint( oDirection )
{
	return onGDirectionsLoadCompanyDirection( oDirection, "PickupPoint" );
}

function onGDirectionsLoadCompanyToDestination( oDirection )
{
	return onGDirectionsLoadCompanyDirection( oDirection, "Destination" );
}

function onGDirectionsLoadRoute( oDirection )
{
   var distance = oDirection.getDistance();
   $("#DistanceRoute").val( Math.ceil( distance.meters / 1000 ) );
   /*$("#TravelTimeRoute").val( Math.ceil( oDirection.getDuration().seconds / 60 * 1.1 ));*/
   
   if ( distance.meters > 0 )
   {
	   var travelTime = distance.meters / 1000 / RideProcess.km_per_hour * 60;
	   if ( travelTime % 15 != 0 )
	   {
		   travelTime = Math.ceil( travelTime / 15 ) * 15; // round to 15
	   }

       $.get(
    	   "/",
           {
    		   "call": "getFormattedDateTimesJSON",
    		   "function": "toStringDDmmmmmYYYYHHMM",
    		   "dates[0]": RideProcess.datetime_to_departure + ( travelTime * 60 ),
    		   "dates[1]": RideProcess.direction_cid == 2 ? ( RideProcess.datetime_return_departure + ( travelTime * 60 ) ) : 0,
               "ajax": "on"
           },
           function(data)
           {
               if ( data )
               {
                   $("#ToArrivalDateTime").text( data[0] );
                   if ( RideProcess.direction_cid == 2 )
                   {
                	   $("#ReturnArrivalDateTime").text( data[1] );
                   }
               }
           },
           "json"
       );
   }
   return oDirection;
}

function MinutesToHHMM( iMinutes )
{
    var min = iMinutes % 60;
    var hrs = ( iMinutes - min ) / 60;
    return hrs + ":" + ( min < 10 ? "0" : "" ) + min;
}

function OnDateSet( iIndex )
{
	if ( iIndex == 0 )
	{
		// if end is empty or end is same as begin, set it to begin date
		if ( JScalendarGetDate( 1 ).getTime() < 0 || RideProcess.previous_date == JScalendarGetDate( 1 ).toDateString() ||
				JScalendarGetDate( 0 ).getTime() > JScalendarGetDate( 1 ).getTime() )
		{
			JScalendarSetDate( 1, JScalendarGetDate( 0 ), false );
		}
		RideProcess.previous_date = JScalendarGetDate( 0 ).toDateString();
	}
}
