$(document).ready(function(){
    lastBlock = $("#a1");
    maxWidth = 450;
    minWidth = 30;

    $("#a1").animate({
        width: maxWidth+"px"
    }, {
        queue:false,
        duration:0
    });


    $("#featured_pack ul li").hover(
        function(){
            $(lastBlock).animate({
                width: minWidth+"px"
            }, {
                queue:false,
                duration:800
            });
            $(this).animate({
                width: maxWidth+"px"
            }, {
                queue:false,
                duration:800
            });
            lastBlock = this;
        }
        );
	
    $('#splash_slider').cycle({
        fx:     'fade',
        prev:   '#prev_bt',
        next:   '#next_bt',
        timeout: 5000
    });
	
    // Tabs
    $('#tabs').tabs();
    // Toggle

    addDatepicker();
    checkDate();
    validatorReservationForm();
    validateNews();
    checkDateOut();
    // validatorReservationVillaForm();
    checkSubmit();
});

checkSubmit = function(){
    $('#checkAvailableBtn').click(function(){        
        var idPackage = $('#PackageId').val();
        var total = parseInt($('#adults').val())+ parseInt($('#children').val());
        var flag = false;
        $.ajax({
                url : SERVER + '/packages/ajaxGetMinStay',
                type : 'post',
                data : ({
                    id: idPackage
                }),
                dataType : "json",
                async: false,
                success : function(response){

                    if(response.data.price_charge_type == 0){
                          
                        if( total < parseInt(response.data.min_head)){
                            $.facebox('<div class="error_msg">'+response.data.name +' has '+response.data.min_head+' minimum head</div>');
                            flag =  false;
                        }else{
                            flag = true;
                        }
                    }else{
                            flag = true;
                    }
                }
            });

            return flag;
    });
}

checkDateOut = function(){
    $('#checkAvailableBtn').click(function(){
        var checkIn = $('#date-in').val();
        var checkOut = $('#date-out').val();
        var checkInSplit = checkIn.split('/');
        var checkOutSplit = checkOut.split('/');

        var masuk = new Date(checkInSplit[2], checkInSplit[0], checkInSplit[1]);
        var keluar = new Date(checkOutSplit[2],checkOutSplit[0], checkOutSplit[1]);
        var one_day=1000*60*60*24;

        var masukku = new Date(checkIn);
        var keluarku = new Date(checkOut);

        var currentTime = new Date();
        var hari = currentTime.getDate();
        var bulan = currentTime.getMonth() + 1;
        var tahun = currentTime.getFullYear() + 2;
        var now = new Date(tahun, bulan, hari);

//        if(Math.ceil((keluarku.getTime()-masukku.getTime())/(one_day)) <= 0){
//            $.facebox('<div class="error_msg">true</div>');
//            $('#date-out').attr('value','');
//        } else {
//            $.facebox('<div class="error_msg">false</div>');
//            $('#date-out').attr('value','');
//        }
        
        //Calculate difference btw the two dates, and convert to days
        if(Math.ceil((keluarku.getTime()-masukku.getTime())/(one_day)) <= 0){
            $.facebox('<div class="error_msg">Check-out date must be greater than check-in date</div>');
            $('#date-out').attr('value','');
        } else if (masuk > now) {
            $.facebox("<div class=\"error_msg\">Check-in date must not exceed 2 years from today's date </div>");
            $('#date-in').attr('value','');
            $('#date-out').attr('value','');
        } else if (keluar > now) {
            $.facebox("<div class=\"error_msg\">Check-out date must not exceed 2 years from today's date </div>");
            $('#date-out').attr('value','');
        }
    });
}

checkDate = function(){
    $('#date-in').change(function(){
            var idPackage = $('#PackageId').val();
            var checkIn = $('#date-in').val();
            var checkInSplit = checkIn.split('/');


            var masuk = new Date(checkInSplit[2], checkInSplit[0], checkInSplit[1]);
            $.ajax({
                url : SERVER + '/packages/ajaxGetMinStay',
                type : 'post',
                data : ({
                    id: idPackage
                }),
                dataType : "json",
                success : function(response){
					
                    var formatManeh = new Date(checkIn);
                    var dt = new Date(formatManeh.getFullYear(),formatManeh.getMonth(), formatManeh.getDate());
                    var formatTrue =  new Date(formatManeh.setDate(dt.getDate()+parseInt(response.data.length_of_stay)));                    
                    var d = formatTrue.getDate();
                    var m = formatTrue.getMonth()+1;

                    if(parseInt(d)<10){
                        d = "0"+d;
                    }

                    if(parseInt(m)<10){
                        m = "0"+m;
                    }

                    var strDt = m +  "/" + d + "/" + formatTrue.getFullYear();
                    $('#date-out').attr('value',strDt);
                    
                }
            });
    });
    
    $('#date-out').change(function(){
        var checkIn = $('#date-in').val();
        var checkOut = $('#date-out').val();
        var checkInSplit = checkIn.split('/');
        var checkOutSplit = checkOut.split('/');
        
        var masuk = new Date(checkInSplit[2], checkInSplit[0], checkInSplit[1]);
        var keluar = new Date(checkOutSplit[2], checkOutSplit[0], checkOutSplit[1]);
        var one_day=1000*60*60*24;

        var masukku = new Date(checkIn);
        var keluarku = new Date(checkOut);

        //Calculate difference btw the two dates, and convert to days
        if(Math.ceil((keluarku.getTime()-masukku.getTime())/(one_day)) <= 0){
            $.facebox('<div class="error_msg">Check-out date must be greater than check-in date</div>');
            $('#date-out').attr('value','');
        }
    });
}



addDatepicker = function (){
    $(".has-datepicker").datepicker({minDate: new Date()});

};

validatorReservationForm = function (){
    //alert('validasi');
    $('#checkAvailableBtn').click(function(){

        var validator = $("#PageBookForm").validate({
            rules: {
                "data[Page][package_id]": {
                    required: true
                },
                "data[Page][start_date]": {
                    required: true
                },

                "data[Page][end_date]" :{
                    required: true
                },
                "data[Page][qty]" :{
                    required: true,
                    number : true
                },
                "data[Page][adults]" :{
                    required: true,
                    number : true
                },
                "data[Page][children]" :{
                    required: true,
                    number : true
                }


            },
            errorElement: "div"
        });

        if (validator.form()) {
            checkSubmit();
            checkDate();
            $('#checkAvailableBtn').submit();
        }

    });
}

validatorReservationVillaForm = function (){
    //alert('validasi');
    $('#check_btn_villa').click(function(){

        var validator = $("#PageBookVillaForm").validate({
            rules: {
                "data[Page][villa_id]": {
                    required: true
                },
                "data[Pagea][start_date]": {
                    required: true
                },
                "data[Pagea][end_date]" :{
                    required: true
                },
                "data[Page][qty]" :{
                    required: true,
                    number : true
                },
                "data[Page][adults]" :{
                    required: true,
                    number : true
                },
                "data[Villa][children]" :{
                    required: true,
                    number : true
                }


            },
            errorElement: "div"
        });

        if (validator.form()) {
            $('#check_btn_villa').submit();
        }

    });
}

validateNews = function(){
    $('#btn_subscribe').click(function(){
//        var validator = $('#NewsletterSubscriberNewsFromUsForm').validate({
//            rules : {
//                "data[NewsletterSubscriber][email]" : {
//                    required : true,
//                    email : true
//                }
//            },
//            errorElement: "div",
//            errorPlacement : function(error, element){
//                $(element.parent().parent()).append('<div class="clearfix"></div>');
//                error.appendTo( element.parent().parent());
//            }
//        });
        //if(validator.form()){
            //$('#btn_subscribe').submit(function(){
                var email = $('#NewsletterSubscriberEmail').val();
                $.ajax({
                    type : "POST",
                    data : ({email : email}),
                    url : SERVER + '/newsletter_subscribers/news_from_us',
                    success: function(response){
                        var email = $('#NewsletterSubscriberEmail').attr('value','');
                         $.facebox(response);
                    }
                });
                
            //});
        //}
        return false;
    });
}
