var regday_month = new RegExp("^[0-9]{1,2}$");
var regyear = new RegExp("^[0-9]{4}$");
var regemail = new RegExp("^([+]?[_a-zA-Z0-9\-]+([.][_a-zA-Z0-9\-]+)*@([0-9a-zA-Z][0-9a-zA-Z\-]*[.])+[a-zA-Z]{2,4})$");

var fc_reservation = new Array();
//fc_reservation[fc_reservation.length] = new Array("location", "value != 'vyber'", "Vyberte prosím lokalitu parkoviště!");
fc_reservation[fc_reservation.length] = new Array("location", "value != 'vyber'", "Vyberte prosím parkoviště!");

fc_reservation[fc_reservation.length] = new Array("day_res", "regday_month.test(value)", "Nesprávně vyplněný den rezervace (d,dd)!");
fc_reservation[fc_reservation.length] = new Array("month_res", "regday_month.test(value)", "Nesprávně vyplněný měsíc rezervace (m,mm)!");
fc_reservation[fc_reservation.length] = new Array("year_res", "regyear.test(value)", "Nesprávně vyplněný rok (rrrr)!");
fc_reservation[fc_reservation.length] = new Array("hours_from", "testHourFrom(value)", "Rezervace musí být provedena alespoň o hodinu předem a maximálně o 332 dní předem!");

fc_reservation[fc_reservation.length] = new Array("day_res_to", "regday_month.test(value)", "Nesprávně vyplněný den rezervace (d,dd)!");
fc_reservation[fc_reservation.length] = new Array("month_res_to", "regday_month.test(value)", "Nesprávně vyplněný měsíc rezervace (m,mm)!");
fc_reservation[fc_reservation.length] = new Array("year_res_to", "regyear.test(value)", "Nesprávně vyplněný rok (rrrr)!");
fc_reservation[fc_reservation.length] = new Array("hours_to", "testHourTo(value)", "Rezervace musí být alespoň na hodinu a maximálně na 60 dní!");

function testHourFrom(hour_value){
    
    hour_from = hour_value;
    day_from = document.forms['fc_reservation'].day_res.value;
    month_from = document.forms['fc_reservation'].month_res.value;
    year_from = document.forms['fc_reservation'].year_res.value;
    
    var thisDateObj = new Date();
    var minDateObj = new Date(thisDateObj.getTime()+(1000*3600));
    var maxDateObj = new Date(thisDateObj.getTime()+(1000*3600*(24*331 + 23)));
    
    var inputDateObj = new Date();
    inputDateObj.setFullYear(year_from);
    inputDateObj.setMonth(month_from-1);
    inputDateObj.setDate(day_from);
    inputDateObj.setHours(hour_from);
    
    return (((inputDateObj.getTime() > minDateObj.getTime()) && (inputDateObj.getTime() <= maxDateObj.getTime())));    
}

function testHourTo(hour_value)
{
    hour_from = document.forms['fc_reservation'].hours_from.value;
    day_from = document.forms['fc_reservation'].day_res.value;
    month_from = document.forms['fc_reservation'].month_res.value;
    year_from = document.forms['fc_reservation'].year_res.value;
    
     var fromDateObj = new Date();
    fromDateObj.setFullYear(year_from);
    fromDateObj.setMonth(month_from-1);
    fromDateObj.setDate(day_from);
    fromDateObj.setHours(hour_from);
    
    var minDateObj = new Date(fromDateObj.getTime()+(1000*3600));
    var maxDateObj = new Date(fromDateObj.getTime()+(1000*3600*(24*60)));
    
    hour_to = hour_value;
    day_to = document.forms['fc_reservation'].day_res_to.value;
    month_to = document.forms['fc_reservation'].month_res_to.value;
    year_to = document.forms['fc_reservation'].year_res_to.value;
    
    var inputDateObj = new Date();
    inputDateObj.setFullYear(year_to);
    inputDateObj.setMonth(month_to-1);
    inputDateObj.setDate(day_to);
    inputDateObj.setHours(hour_to);
    
    return (((inputDateObj.getTime() >= minDateObj.getTime()) && (inputDateObj.getTime() <= maxDateObj.getTime())));
}

function setRightDateTo(){
    var fromDate = new Date();
        fromDate.setFullYear(document.forms['fc_reservation'].year_res.value);
        if(document.forms['fc_reservation'].month_res.value.substr(0,1)=='0')
            fromDate.setMonth(document.forms['fc_reservation'].month_res.value.substr(1,1) - 1);        
        else
            fromDate.setMonth(document.forms['fc_reservation'].month_res.value - 1);        
        fromDate.setDate(document.forms['fc_reservation'].day_res.value);
        fromDate.setHours(document.forms['fc_reservation'].hours_from.value);               
    var toDate = new Date();
        toDate.setFullYear(document.forms['fc_reservation'].year_res_to.value);
        toDate.setMonth(document.forms['fc_reservation'].month_res_to.value - 1);        
        toDate.setDate(document.forms['fc_reservation'].day_res_to.value);
        toDate.setHours(document.forms['fc_reservation'].hours_to.value);
        
    if(fromDate.getDate()!=document.forms['fc_reservation'].day_res.value || fromDate.getMonth()!=document.forms['fc_reservation'].month_res.value){
        document.forms['fc_reservation'].day_res.value = fromDate.getDate();
        document.forms['fc_reservation'].month_res.value = fromDate.getMonth()+1;
        document.forms['fc_reservation'].day_res.value = fromDate.getDate();
    }
    if(toDate.getDate()!=document.forms['fc_reservation'].day_res_to.value || toDate.getMonth()!=document.forms['fc_reservation'].month_res_to.value){
        document.forms['fc_reservation'].day_res_to.value = toDate.getDate();
        document.forms['fc_reservation'].month_res_to.value = toDate.getMonth()+1;
        document.forms['fc_reservation'].day_res_to.value = toDate.getDate();
    }        
    var difference = 1000*3600*24; // 1 den rozdil
    if((toDate.getTime() - fromDate.getTime()) < difference){
        toDate.setTime(fromDate.getTime()+difference); 
        document.forms['fc_reservation'].year_res_to.value = toDate.getFullYear();
        document.forms['fc_reservation'].month_res_to.value = toDate.getMonth()+1;
        document.forms['fc_reservation'].day_res_to.value = toDate.getDate();
        var option=document.forms['fc_reservation'].hours_to.options;
        var ht = toDate.getHours();
        for(var i=0;i<option.length; i++){
            option[i].selected = false;
            if(i == ht)
                option[i].selected = "selected";
        }
        document.forms['fc_reservation'].year_res.value = fromDate.getFullYear();
        document.forms['fc_reservation'].month_res.value = fromDate.getMonth()+1;
        document.forms['fc_reservation'].day_res.value = fromDate.getDate();

    }                
}

    var dateObj = new Date();
    dateObj.setTime(dateObj.getTime()+1000*3600*25);
    
    var dateToObj = new Date();
    dateToObj.setTime(dateToObj.getTime()+1000*3600*(24+25));
    
    var dateEnd1Obj = new Date();
    dateEnd1Obj.setTime(dateEnd1Obj.getTime()+1000*3600*(24*331 + 23));
    
    var dateEnd2Obj = new Date();
    dateEnd2Obj.setTime(dateEnd2Obj.getTime()+1000*3600*(24*331 + 23));//1000*3600*24*60);
    
    var dateStart  = dateObj.getDate()+"."+(dateObj.getMonth()+1)+"."+dateObj.getFullYear();
    var dateStart2 = dateToObj.getDate()+"."+(dateToObj.getMonth()+1)+"."+dateToObj.getFullYear();
    var dateEnd1   = dateEnd1Obj.getDate()+"."+(dateEnd1Obj.getMonth()+1)+"."+dateEnd1Obj.getFullYear();
    var dateEnd2   = dateEnd2Obj.getDate()+"."+(dateEnd2Obj.getMonth()+1)+"."+dateEnd2Obj.getFullYear();
    
/*    
jQ(document).ready(function(){    
    var day = dateObj.getDate();
    jQ("#day_res").val(day);
    jQ("#month_res").attr("value",dateObj.getMonth()+1);
    jQ("#year_res").attr("value",dateObj.getFullYear());
    jQ("#hours_from").val(dateObj.getHours());
    
    var dayTo = dateToObj.getDate();
    jQ("#day_res_to").val(dayTo);
    jQ("#month_res_to").attr("value",dateToObj.getMonth()+1);
    jQ("#year_res_to").attr("value",dateToObj.getFullYear());
    jQ("#hours_to").val(dateToObj.getHours());
  });   
*/