﻿    $(document).ready(function(){ formController.init(); });

    var formController =
    {
        getMaxOccupants: function() {
            var maxOccupants = 4;
            var hotel = $('#ctl00_Content_ddlDestination').val();
            if (hotel == 'RHRIV8' || hotel == 'RHGI')
                maxOccupants = 3
            else if (hotel == 'RHCAS7')
                maxOccupants = 6

            return maxOccupants;
        },
        applyRules: function() {
            var hotelMaxOccupants = formController.getMaxOccupants();
            for (hab = 1; hab < 6; hab++) {
                var occupantsSelectorsArray = $('#occupationSelectors fieldset#hab' + hab + ' select');
                var occupantsSum = 0;
                for (o = 0; o < occupantsSelectorsArray.length; o++) {
                    occupantsSum += parseInt($(occupantsSelectorsArray[o]).val());
                }
                if (hotelMaxOccupants < occupantsSum)
                    return false;
            }
            return true;
        },
        validate: function(e) {
            if (!formController.applyRules()) {
                alert(alertMessage.replace('{0}', formController.getMaxOccupants())); // 'Lo sentimos. El hotel seleccionado sólo admite hasta ' + formController.getMaxOccupants() + ' ocupantes por habitación.');
                e.preventDefault();
                return false;
            }
            return true;
        },
        changeSelectCasablanca: function(idAdults,idChilds){
            $(idAdults).append('<option value="5">5</option>');
            $(idAdults).append('<option value="6">6</option>');
            $(idAdults+' option').eq(1).attr('selected', 'selected');

            $(idChilds).append('<option value="3">3</option>');
            $(idChilds).append('<option value="4">4</option>');
            $(idChilds+' option').eq(0).attr('selected', 'selected');
        },
        restoreSelectCasablanca: function(iAdults,idChilds){
            $(iAdults).find("option[value='5']").remove();
            $(iAdults).find("option[value='6']").remove();        
            
            $(idChilds).find("option[value='3']").remove();
            $(idChilds).find("option[value='4']").remove();        
        },        
        limitOccupants: function(e) {
            if ($(e.target).val() == 'RHPOR11') {
                for (i = 1; i <= 5; i++) {
                    var selector = document.getElementById('ctl00_Content_ddlBabies' + i);
                    selector.length = 2;
                }
            } else {
                if (document.getElementById('ctl00_Content_ddlBabies1').length > 2)
                    return;
                for (i = 1; i <= 5; i++) {
                    var selector = document.getElementById('ctl00_Content_ddlBabies' + i);
                    selector.options[2] = new Option('2', '2');
                }
            }
                if ($(e.target).val()=='RHCAS7'){
                    formController.changeSelectCasablanca('#ctl00_Content_ddlAdults1','#ctl00_Content_ddlBabies1');
                    formController.changeSelectCasablanca('#ctl00_Content_ddlAdults2','#ctl00_Content_ddlBabies2');
                    formController.changeSelectCasablanca('#ctl00_Content_ddlAdults3','#ctl00_Content_ddlBabies3');
                    formController.changeSelectCasablanca('#ctl00_Content_ddlAdults4','#ctl00_Content_ddlBabies4');
                }
                else{
                      if ($('#ctl00_Content_ddlAdults1')[0].options.length==6){
                            formController.restoreSelectCasablanca('#ctl00_Content_ddlAdults1','#ctl00_Content_ddlBabies1');
                            formController.restoreSelectCasablanca('#ctl00_Content_ddlAdults2','#ctl00_Content_ddlBabies2');
                            formController.restoreSelectCasablanca('#ctl00_Content_ddlAdults3','#ctl00_Content_ddlBabies3');
                            formController.restoreSelectCasablanca('#ctl00_Content_ddlAdults4','#ctl00_Content_ddlBabies4');
                      }  
                }            
        },
        init: function() {
            $('#ctl00_Content_ddlDestination, #occupationSelectors select').change(function(e) { formController.validate(e); });
            $('#ctl00_Content_ddlDestination').change(function(e) { formController.limitOccupants(e); });
            $('#ctl00_Content_btnSearch').click(function(e) { return formController.validate(e); });
        }
    }
