$(function() {
    $("#pickup-datepick").datepicker({
        altField: '#pickup-date',
        defaultDate: +1,
        onSelect: function(date, obj) {
            // make sure return default is not before pickup
            // if so set pu +1
            //
            var pu  =  get_ms_from_datestring($("#pickup-date").val());
            var ret =  get_ms_from_datestring($("#return-date").val());
            if (!ret || ret < pu) {
                $("#return-date").val(get_datestring_from_ms(pu, 1));
                $("#return-datepick").datepicker( "setDate", new Date(pu + 1000 * 60 * 60 * 24));

            }
            document.getElementById('pickup-cal').style.display = "none";
            tb_remove();
            $('#pickup-date').select();

        }
    });



    $("#return-datepick").datepicker({
        altField: '#return-date',
        defaultDate: $("#pickup-date").val +1,

        onSelect: function(date, obj) {
            // make sure return default is not before pickup
            // if so set pu +1
            //
            var pu  =  get_ms_from_datestring($("#pickup-date").val());
            var ret =  get_ms_from_datestring($("#return-date").val());
            if (!ret || ret < pu) {
                $("#return-date").val(get_datestring_from_ms(pu, 1));
                $("#return-datepick").datepicker( "setDate", new Date(pu + 1000 * 60 * 60 * 24));
            }
            document.getElementById('return-cal').style.display = "none";
            tb_remove();
            $('#return-date').select();
        }
    });
});


function get_ms_from_datestring (dstr) {

    var match;
    var reg = /^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$/;
    if (!(match = reg.exec(dstr))) return false;

    var mon     =  parseInt(match[2], 10); // create number, even if contains leading zero
    mon     =  (mon > 0)? mon -1 : 0;
    var date    =  new Date(match[3], mon, match[1], 0, 0, 0);
    var date_ms =  date.getTime();
    return parseInt(date_ms);
}


// create date string like dd.mm.year from  miliseconds
// second param: days to be added
//
function get_datestring_from_ms (ms, addday) {

    var addms   =  addday? 60 * 60 * 24 * 1000 * addday : 0;
    var date    =  new Date(ms + addms);
    var day     =  date.getDate();
    day     =  (day < 10)? "0" + day : day;
    var mon     =  date.getMonth() +1;
    mon     =  (mon < 10)? "0" + mon : mon;
    var year    =  date.getFullYear();
    return day +  "." + mon + "." + year;
}

function openPickupCal(){
    document.getElementById('pickup-cal').style.display = "block";
    tb_show("","#TB_inline?height=300&width=700&inlineId=pickup-cal", false);
    document.getElementById('TB_load').style.display = "none";

    $("#TB_overlay").click(function(){
        document.getElementById('pickup-cal').style.display = "none";
        $('#pickup-date').select();
    });
}

function openReturnCal(){
    document.getElementById('return-cal').style.display = "block";
    tb_show("","#TB_inline?height=300&width=700&inlineId=return-cal", false);
    document.getElementById('TB_load').style.display = "none";

    $("#TB_overlay").click(function(){
        document.getElementById('return-cal').style.display = "none";
        $('#return-date').select();
    });
}
