/* ------------------------------------------------------------------------
 * pets-details.js
 * Copyright (c) Perfect Memorials. All rights reserved.
 * ------------------------------------------------------------------------ */

var PMTPetDetails = {
    
    petTypes:    {},
    petBreeds:   {},
    
    togglePetBreeds: function(pbId){
        var reset   = false;
        var ptId    = $('#f_pt_id').val();
        if(PMTPetDetails.petTypes['type_' + ptId] && PMTPetDetails.petTypes['type_' + ptId]==1){
            // Populate breeds
            var breeds = PMTPetDetails.getPetBreeds(ptId);
            if(breeds.length > 0){
                PMTPetDetails.populateBreedsSelect(breeds, pbId);
                // Display breeds
                $('#row-pet-breeds').removeClass('hide').addClass('show');
            }
            else{
                reset = true;
            }
        }
        else{
            reset = true;
        }
        
        if(reset){
            // Hide breeds
            $('#row-pet-breeds').removeClass('show').addClass('hide');
            // Reset form
            var pbIdRef = $('#f_pb_id').get()[0];
            pbIdRef.options.length = 0;
            pbIdRef.options[pbIdRef.options.length] = new Option('', '0', true);
        }
    },

    populateBreedsSelect: function(breeds, pbId){
        var pbIdRef = $('#f_pb_id').get()[0];
        pbIdRef.options.length = 0;
        if(typeof breeds=='object'){
            pbIdRef.options[pbIdRef.options.length] = new Option('Please select a breed...', '0');
            var optionSelected;
            var altBreeds     = false;
            var dividerOption = false;
            for(var key in breeds){
                if(breeds[key].isAlt==1 && !altBreeds){
                    altBreeds = true;
                    pbIdRef.options[pbIdRef.options.length] = new Option('---------------------', '0');
                }
                if(breeds[key].isAlt==0 && altBreeds && !dividerOption){
                    dividerOption = true;
                    pbIdRef.options[pbIdRef.options.length] = new Option('---------------------', '0');
                }
                optionSelected = (pbId && pbId==breeds[key].id);
                pbIdRef.options[pbIdRef.options.length] = new Option(breeds[key].name, breeds[key].id, optionSelected);
            }
        }
    },

    getPetBreeds: function(ptId){
        var typeBreeds = [];
        if(typeof this.petBreeds=='object'){
            for(var key in this.petBreeds){
                if(this.petBreeds[key].pt_id==ptId){
                    typeBreeds[typeBreeds.length] = this.petBreeds[key];
                }
            }
        }
        return typeBreeds;
    }
    
}