/*
 * Version: $Revision: 27455 $
 * 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();
    }
}

