<script>
(function($) {

  $(document).ready(function() {

    $(window).load(function () {
      $.each($('.pendari-checkboxes-filter .sort-item:checked'), function() {
          $(this).click();
          $(this).prop('checked', true);
      });
    });

/*
// external js: isotope.pkgd.js

// *****
// Overall strategy:
// 
// handle checkboxes, select and tag clouds
// multiple checkboxes are OR
// join different filters with AND
//
// find all the filters on page, save to array/object
//
// *****


// init Isotope
//var $grid = $('.vc_grid').isotope({
//  itemSelector: '.vc_grid-item',
//  layoutMode: 'fitRows'
//});


// store filter for each group
var filters = {
//      'type'     : [],
//  'authors' : '',
//  'categories' : '',
};



//
// text search
//

// quick search regex
var qsRegex;

var searchResult = true;
//var filtersFilter = true;

// init Isotope
var $grid = $('.vc_grid').isotope({
  itemSelector: '.vc_grid-item',
  layoutMode: 'fitRows',
  filter: function() {
    var $this = $(this);
    searchResult = qsRegex ? $this.text().match(qsRegex) : true;
    //var selectResult = filterValue ? $this.is(filterValue) : true;
//    filtersFilter = filtersFilter ? $this.is(filtersString_layouts(filters)) : true;

//console.log(searchResult);
//console.log(filtersString_layouts(filters));
//    return searchResult && filtersFilter;// && selectResult;
    return searchResult;
  }
});

// use value of search field to filter
var $quicksearch = $('.quicksearch').keyup( debounce( function() {
  qsRegex = new RegExp( $quicksearch.val(), 'gi' );

  // check the search textfield
  var $this = $(this);
//viewFiltersObj($this->HTMLInputElement);
  searchResult = qsRegex ? $grid.text().match(qsRegex) : true;

  // get the filter string
//  filtersFilter = filtersFilter ? $this.is(filtersString_layouts(filters)) : true;

  // reset other filters
  //pendari-dropdown-filter
  $('.pendari-dropdown-filter option[value="*"]').prop('selected', true);
  //pendari-checkboxes-filter
  $('.pendari-checkboxes-filter input').prop('checked', false);
  //$('.pendari-checkboxes-filter input.all').prop('checked', true);

  // apply the filters to the display
//  $grid.isotope({ filter: filtersFilter && searchResult });
//  $grid.isotope();
  $grid.isotope({
    filter: function() {
      var $this = $(this);
      searchResult = qsRegex ? $this.text().match(qsRegex) : true;
      return searchResult;
    }
  });
}, 200 ) );

// debounce so filtering doesn't happen every millisecond
function debounce( fn, threshold ) {
  var timeout;
  threshold = threshold || 100;
  return function debounced() {
    clearTimeout( timeout );
    var args = arguments;
    var _this = this;
    function delayed() {
      fn.apply( _this, args );
    }
    timeout = setTimeout( delayed, threshold );
  };
}




//
// handle checkbox change
//
$('.filters.checkboxes').on( 'change', function( checkEvent ) {
  $('input.quicksearch').val('');

  var $checkbox = $( checkEvent.target );
  var filter = checkEvent.target.value;

  // get group key
  var filterGroup = $checkbox.parents('.filters').attr('data-filter');

  // create array for filter group, if not there yet
  var group = filters[ filterGroup ];
  if ( !group ) {
    filters[filterGroup] = [];
    filters[filterGroup]['type'] = '';
    filters[filterGroup]['value'] = [];
  }

  // note that the type is checkboxes (needed for handling OR later)
  filters[filterGroup]['type'] = 'checkboxes';

  // add or remove the value
  if ( !filters[filterGroup]['value'].includes(filter) ) {
    // the value is not in the array already, so ADD it
    filters[filterGroup]['value'].push(filter); // add to values array for this filterGroup
  } else {
    // the value is in the array already, so REMOVE it
    for ( var j=0; j<filters[filterGroup]['value'].length; j++ ) { // loop through to find the index
      if ( filters[filterGroup]['value'][j] == filter ) {
        filters[filterGroup]['value'].splice(j, 1); // remove the value at that index
        j--; // reuse the removed value's index to avoid skipping a value
      }
    }
  }
//console.log(filters);

  // update checkbox visuals
  manageCheckboxes( $checkbox );

  // get the filter string
  var flatFilters = filtersString_layouts(filters);

  // apply the filters to the display
  $grid.isotope({ filter: flatFilters });


//  $grid.isotope();
});


//
// handle select change
//
$('.vc_grid-filter-dropdown select').on( 'change', function( selectEvent ) {
  $('input.quicksearch').val('');

  var $select = $( selectEvent.target );
  // get group key
  var filterGroup = $select.attr('data-filter');

  // create array for filter group, if not there yet
  var group = filters[ filterGroup ];
  if ( !group ) {
    filters[filterGroup] = [];
    filters[filterGroup]['type'] = '';
    filters[filterGroup]['value'] = '';
  }
  filters[filterGroup]['type'] = 'select';
  filters[filterGroup]['value'] = selectEvent.target.value;

  var flatFilters = filtersString_layouts(filters);
//alert(flatFilters);
  $grid.isotope({ filter: flatFilters });
//  $grid.isotope();
});


//
// handle cloud click
//
$('.pendari-cloud-filter .vc_grid-filter-item').on( 'click', 'span', function( cloudEvent ) {
  $('input.quicksearch').val('');

  //var $cloud = $( cloudEvent.attr('data-vc-grid-filter-value') );
  // get group key
  var filterGroup = $( this ).parent().attr('data-vc-grid-filter');

  // create array for filter group, if not there yet
  var group = filters[ filterGroup ];
  if ( !group ) {
    filters[filterGroup] = [];
    filters[filterGroup]['type'] = '';
    filters[filterGroup]['value'] = '';
  }

  // update the filters object
  filters[filterGroup]['type'] = 'cloud';
  filters[filterGroup]['value'] = $( this ).attr('data-vc-grid-filter-value');

  var flatFilters = filtersString_layouts(filters);
//alert(flatFilters);
  $grid.isotope({ filter: flatFilters });
//  $grid.isotope();
});


//
// for every filter change by the user
// convert the filters object into a fresh filter string for isotope to execute
//
function filtersString_layouts( obj ) {
//viewFiltersObj(obj);
  // receives the filters object

  var str = '';
  var indexes = '';
  var all_or = []; // to collect ALL of the OR values (checkbox filter groups) into one array
  var all_or_num = [];
  var all_and = ''; // to collect ALL of the AND values (select, cloud, radio...) into one string

  // In isotope AND terms are concatenated together (".item1.item2")
  // OR terms are separated with commas (".term3, .term4")

  // go through the filters object
  for (const [key, value] of Object.entries(obj)) {

    // if checkboxes, it's an OR join (.term1,.term2)
    if (obj[key]['type'] == 'checkboxes') {

      // loop through 
      // assemble filter string from array
      for (var i = 0; i < obj[key]['value'].length; i++) {
        // add value to the all_or array
//        all_or.push(obj[key]['value'][i]);
//alert(key);

        // create array for filter group, if not there yet
        var group = all_or[key];
        if ( !group ) {
          all_or[key] = [];
        }

        all_or[key].push(obj[key]['value'][i]);

      }

//all_or[i] = Object.keys(obj).map( (key) => obj[key]['value'] );

    } else { // otherwise it's an AND join (.term1.term2)
      all_and += obj[key]['value'];
    }

  }

//viewFiltersObj(all_or);
//viewFiltersObj(all_and);


  //
  // combine the filters:
  // .OR_term1.AND_term2.AND_term3, .OR_term4.AND_term2.AND_term3, .OR_term5.AND_term2.AND_term3
  // ...the AND terms are concatenated onto each of the OR terms
  //

  // if there were no OR items, the all_and string is the query string
  if ( Object.keys(all_or).length == 0 ) {

    str = all_and;
  
  } else {

    // convert all_or to numerically-indexed object
    Object.keys(all_or).forEach(function(key, index) {
      all_or_num[index] = this[key];
    }, all_or);

//viewFiltersObj(all_or_num);

    // handle all the OR items, join with the AND items, and assemble query string
    var index = 0;
    var assembledArray = [];
    assembledArray = handleOrs(all_or_num);//, index, assembledArray);

//viewFiltersObj(assembledArray);
    for (var j = 0; j < assembledArray.length; j++) {
      // concatenate the all_and string onto each instance in all_or
//      all_or[key][j] += all_and;
      assembledArray[j] += all_and;

      // add this new value into the final filter string
      str += assembledArray[j]+', ';
    }
//  }

    // strip off the ending ", "
    str = str.replace(new RegExp("[, ]+$"), "") + ' ';
  }

//alert(str);
  return str;
}


// for troubleshooting
function viewFiltersObj(filters) {
  for (var key in filters) {
    if (filters.hasOwnProperty(key)) {
        console.log(key + " -> " + filters[key]);
    }
  }
}


// go through the various checkbox fields
// within each field is OR; between fields is AND
// output array of strings
//
// Receives: [ [A, B, C], [1, 2] ]
// Outputs: [A1, A2, B1, B2, C1, C2]
function handleOrs (all_or) {

  var assembledArray = [];
//  var aa_index = 0;

  // step through all_or (holds arrays of fields)
  for ( var index = 0; index < all_or.length; index++ ) {
    
    // if assembledArray is still empty (it's the first item in all_or)
    if ( assembledArray.length == 0 ) {

      // go through the first array (all_or[0])
      for ( var i = 0; i < all_or[index].length; i++ ) {
        // add each item as a new entry in our result array
        assembledArray.push(all_or[index][i]);                   
      }
    } else {
      // this is a 2nd or subsequent checkbox collection

      // get the current length of the result array
      aa_index = assembledArray.length;

      // go through the 2nd, etc array of all_or
      for ( var j = 0; j < all_or[index].length; j++ ) {

        // go through the result array
        for ( var k = 0; k < aa_index; k++ ) {

          // we need to join the all_or[0] values already copied into assembledArray
          // with values from this current subsequent array
          // j is stepping through the subsequent array of all_or
          if ( j < all_or[index].length-1 ) {
            // duplicate existing rows in results array into new rows
            // concatenate on the current term from the subsequent array
            assembledArray.push(assembledArray[k] + all_or[index][j]);
          } else {
            // concatenate the current term from the subsequent array
            assembledArray[k] = assembledArray[k]+all_or[index][j];
          }
        }
      }
    }
  }

  return assembledArray;
}



// update checkbox selections (All vs the rest)
function manageCheckboxes( $checkbox ) {

//console.log($checkbox);
  var checkbox = $checkbox[0];
  var group = $checkbox.parents('.filters').attr('data-filter');

  // create array for filter group, if not there yet
  var filterGroup = filters[ group ];
  if ( !filterGroup ) {
    filterGroup = filters[ group ] = [];
  }

  var isAll = $checkbox.hasClass('all');

  // reset filter group if the All box was checked
  if ( isAll ) {
    delete filters[ group ];

//    if ( !checkbox.checked ) {
//      checkbox.checked = 'checked';
      //checkbox.prop('checked', true);
//    }

    // uncheck all the options
    // then check the All option only
    $('.pendari-checkboxes-filter .filters[data-filter="'+group+'"] input').prop('checked', false);
    $('.pendari-checkboxes-filter .filters[data-filter="'+group+'"] input.all').prop('checked', true);
  } else {
    // uncheck the All option
    $('.pendari-checkboxes-filter .filters[data-filter="'+group+'"] input.all').prop('checked', false);
  }

  // index of
  var index = $.inArray( checkbox.value, filterGroup );

  if ( !isAll && !checkbox.checked) {
//console.log(filters[group]['value'].length);
    // when uncheck the last box, check the All
    if ( !filters[group]['value'].length ) {
      filters[group]['value'].splice( index, 1 );
      //$checkbox.siblings('input.all').attr('checked', 'checked');
      //$checkbox.siblings('input.all').prop('checked', true);
      $('.pendari-checkboxes-filter .filters[data-filter="'+group+'"] input.all').prop('checked', true);
    }
  }

}


*/
  });

})(jQuery);
</script>

{"id":213,"date":"2015-01-30T13:47:54","date_gmt":"2015-01-30T13:47:54","guid":{"rendered":"http:\/\/localhost\/main_business\/?page_id=213"},"modified":"2022-03-11T09:11:07","modified_gmt":"2022-03-11T17:11:07","slug":"homepage-2","status":"publish","type":"page","link":"https:\/\/casgc.ucsd.edu\/","title":{"rendered":"Home"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][block_title inner_style_title=&#8221;only_text&#8221; padding_desc=&#8221;20%&#8221; title=&#8221;About CaSGC&#8221;]The California Space Grant Consortium (CaSGC) is California\u2019s implementation arm of NASA\u2019s National Space Grant College and Fellowship Program. It meets program objectives through a wide variety of aerospace-related activities that target pre-college to university level education and learning, research, workforce development, and public outreach.[\/block_title][\/vc_column][\/vc_row][vc_row type=&#8221;full_width_background&#8221; bg_color=&#8221;#f4f4f4&#8243; top_padding=&#8221;45&#8243; bottom_padding=&#8221;37&#8243; borders=&#8221;1&#8243; class=&#8221;home-three-blurb&#8221;][vc_column width=&#8221;1\/3&#8243;][services_medium title=&#8221;About National Space Grant&#8221; style=&#8221;style_2&#8243; icon=&#8221;steadysets-icon-book2&#8243; icon_color=&#8221;#444444&#8243; circle_color=&#8221;#f5f5f5&#8243; border_color=&#8221;#4e89c9&#8243; dynamic_content_link=&#8221;https:\/\/casgc.ucsd.edu\/?page_id=16&#8243;]<\/p>\n<p style=\"text-align: center;\">Read about the The National Space Grant College and Fellowship Program<\/p>\n<p>[\/services_medium][\/vc_column][vc_column width=&#8221;1\/3&#8243;][services_medium title=&#8221;CaSGC Strategic Plan and Mission&#8221; style=&#8221;style_2&#8243; icon=&#8221;moon-map-4&#8243; icon_color=&#8221;#444444&#8243; circle_color=&#8221;#f5f5f5&#8243; border_color=&#8221;#4e89c9&#8243; dynamic_content_link=&#8221;https:\/\/casgc.ucsd.edu\/?page_id=14&#8243;]<\/p>\n<p style=\"text-align: center;\">Read about what we are trying to do<\/p>\n<p>[\/services_medium][\/vc_column][vc_column width=&#8221;1\/3&#8243;][services_medium title=&#8221;Latest Opportunities&#8221; style=&#8221;style_2&#8243; icon=&#8221;steadysets-icon-files&#8221; icon_color=&#8221;#444444&#8243; circle_color=&#8221;#f5f5f5&#8243; border_color=&#8221;#4e89c9&#8243; dynamic_content_link=&#8221;https:\/\/casgc.ucsd.edu\/?page_id=4&#8243;]<\/p>\n<p style=\"text-align: center;\">Find out about the latest CaSGC and NASA opportunities<\/p>\n<p>[\/services_medium][\/vc_column][\/vc_row][vc_row][vc_column][block_title inner_style_title=&#8221;only_text&#8221; padding_desc=&#8221;20%&#8221; title=&#8221;CaSGC Programs&#8221;][\/block_title]<div class=\"vc_grid-container-wrapper vc_clearfix pendari-layout-grid \">\r\n    <div class=\"vc_grid-container vc_clearfix wpb_content_element vc_basic_grid\" data-initial-loading-animation=\"none\" data-vc-grid-settings=\"{&quot;page_id&quot;:213,&quot;style&quot;:&quot;all&quot;,&quot;action&quot;:&quot;vc_get_vc_grid_data&quot;,&quot;shortcode_id&quot;:&quot;faef633e3fa4fd2fb1a88688fe15bc56&quot;,&quot;tag&quot;:&quot;vc_basic_grid&quot;}\" data-vc-request=\"https:\/\/casgc.ucsd.edu\/wp-admin\/admin-ajax.php\" data-vc-post-id=\"213\" data-vc-public-nonce=\"1b62c42359f33530f1dc467392b36695\"><div class=\"vc_grid vc_row vc_grid-gutter-20px vc_pageable-wrapper vc_hook_hover\" data-vc-pageable-content=\"true\">\r\n        <div class=\"vc_pageable-slide-wrapper vc_clearfix\" data-vc-grid-content=\"true\">\r\n  <a id=\"higher-education\" name=\"higher-education\"><\/a><div class=\"vc_grid-item vc_clearfix vc_col-sm-4 vc_grid-item-zone-c-bottom vc_visible-item\">\r\n              <div class=\"vc_grid-item-mini vc_clearfix\"><div class=\"vc_gitem-animated-block \"> \r\n                <div class=\"vc_gitem-zone vc_gitem-zone-a vc-gitem-zone-height-mode-auto vc-gitem-zone-height-mode-auto-4-3\" style=\"background-image: url(https:\/\/casgc.ucsd.edu\/wp-content\/uploads\/2021\/09\/higher-education-programs.png) !important;\"><a href=\"https:\/\/casgc.ucsd.edu\/?pendari_portfolio=higher-education\" class=\"vc_gitem-link vc-zone-link\"><\/a><img decoding=\"async\" src=\"https:\/\/casgc.ucsd.edu\/wp-content\/uploads\/2021\/09\/higher-education-programs.png\" class=\"vc_gitem-zone-img\" alt=\"Higher Education Programs\">\r\n                  <div class=\"vc_gitem-zone-mini\"><\/div>\r\n                <\/div>\r\n              <\/div><div class=\"vc_gitem-zone vc_gitem-zone-c\">\r\n                <div class=\"vc_gitem-zone-mini\">\r\n                  <div class=\"vc_gitem_row vc_row vc_gitem-row-position-top\">\r\n                    <div class=\"vc_col-sm-12 vc_gitem-col vc_gitem-col-align-\">\r\n                      <div class=\"vc_custom_heading vc_gitem-post-data vc_gitem-post-data-source-post_title\">\r\n                        <h4 style=\"text-align: left\"><a href=\"https:\/\/casgc.ucsd.edu\/?pendari_portfolio=higher-education\">Higher Education Programs<\/a><\/h4>\r\n                      <\/div>\r\n                      <div class=\"vc_gitem-align-left fields\">\r\n                        <div class=\"field pendari_portfolio_blurb\"><p>One of the highest priorities of the CaSGC is to develop an effective aerospace learning environment that has both curricular excellence as well as hands-on skill development efforts. Each of the CaSGC affiliates contributes to both areas throughout California.<\/p>\n<\/div>\r\n                      <\/div>\r\n                      <div class=\"excerpt\">\r\n                        \r\n                      <\/div>\r\n                      <div class=\"terms\">\r\n                        \r\n                      <\/div>\r\n                    <\/div>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div><\/div><\/div>\n<a id=\"pre-college\" name=\"pre-college\"><\/a><div class=\"vc_grid-item vc_clearfix vc_col-sm-4 vc_grid-item-zone-c-bottom vc_visible-item\">\r\n              <div class=\"vc_grid-item-mini vc_clearfix\"><div class=\"vc_gitem-animated-block \"> \r\n                <div class=\"vc_gitem-zone vc_gitem-zone-a vc-gitem-zone-height-mode-auto vc-gitem-zone-height-mode-auto-4-3\" style=\"background-image: url(https:\/\/casgc.ucsd.edu\/wp-content\/uploads\/2021\/09\/BellGardensHS-District-40.jpg) !important;\"><a href=\"https:\/\/casgc.ucsd.edu\/?pendari_portfolio=pre-college\" class=\"vc_gitem-link vc-zone-link\"><\/a><img decoding=\"async\" src=\"https:\/\/casgc.ucsd.edu\/wp-content\/uploads\/2021\/09\/BellGardensHS-District-40.jpg\" class=\"vc_gitem-zone-img\" alt=\"Pre-College Programs\">\r\n                  <div class=\"vc_gitem-zone-mini\"><\/div>\r\n                <\/div>\r\n              <\/div><div class=\"vc_gitem-zone vc_gitem-zone-c\">\r\n                <div class=\"vc_gitem-zone-mini\">\r\n                  <div class=\"vc_gitem_row vc_row vc_gitem-row-position-top\">\r\n                    <div class=\"vc_col-sm-12 vc_gitem-col vc_gitem-col-align-\">\r\n                      <div class=\"vc_custom_heading vc_gitem-post-data vc_gitem-post-data-source-post_title\">\r\n                        <h4 style=\"text-align: left\"><a href=\"https:\/\/casgc.ucsd.edu\/?pendari_portfolio=pre-college\">Pre-College Programs<\/a><\/h4>\r\n                      <\/div>\r\n                      <div class=\"vc_gitem-align-left fields\">\r\n                        <div class=\"field pendari_portfolio_blurb\"><p>The CaSGC Advisory Council specifically set a path for precollege involvement that limited the Consortium to a supporting role to affiliate campus organizations, which deal directly with precollege curriculum development, teacher education, outreach, and assessment.<\/p>\n<\/div>\r\n                      <\/div>\r\n                      <div class=\"excerpt\">\r\n                        \r\n                      <\/div>\r\n                      <div class=\"terms\">\r\n                        \r\n                      <\/div>\r\n                    <\/div>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div><\/div><\/div>\n<a id=\"informal-education\" name=\"informal-education\"><\/a><div class=\"vc_grid-item vc_clearfix vc_col-sm-4 last vc_grid-item-zone-c-bottom vc_visible-item\">\r\n              <div class=\"vc_grid-item-mini vc_clearfix\"><div class=\"vc_gitem-animated-block \"> \r\n                <div class=\"vc_gitem-zone vc_gitem-zone-a vc-gitem-zone-height-mode-auto vc-gitem-zone-height-mode-auto-4-3\" style=\"background-image: url(https:\/\/casgc.ucsd.edu\/wp-content\/uploads\/2010\/05\/DSC_0256.jpg) !important;\"><a href=\"https:\/\/casgc.ucsd.edu\/?pendari_portfolio=informal-education\" class=\"vc_gitem-link vc-zone-link\"><\/a><img decoding=\"async\" src=\"https:\/\/casgc.ucsd.edu\/wp-content\/uploads\/2010\/05\/DSC_0256.jpg\" class=\"vc_gitem-zone-img\" alt=\"Informal Education Programs\">\r\n                  <div class=\"vc_gitem-zone-mini\"><\/div>\r\n                <\/div>\r\n              <\/div><div class=\"vc_gitem-zone vc_gitem-zone-c\">\r\n                <div class=\"vc_gitem-zone-mini\">\r\n                  <div class=\"vc_gitem_row vc_row vc_gitem-row-position-top\">\r\n                    <div class=\"vc_col-sm-12 vc_gitem-col vc_gitem-col-align-\">\r\n                      <div class=\"vc_custom_heading vc_gitem-post-data vc_gitem-post-data-source-post_title\">\r\n                        <h4 style=\"text-align: left\"><a href=\"https:\/\/casgc.ucsd.edu\/?pendari_portfolio=informal-education\">Informal Education Programs<\/a><\/h4>\r\n                      <\/div>\r\n                      <div class=\"vc_gitem-align-left fields\">\r\n                        <div class=\"field pendari_portfolio_blurb\"><p>These programs bring NASA-related content to the general public. They may involve museums and\/or other informal education venues or special events. The intent of Informal Education is to increase learning, to educate students, educators, and the general public on specific STEM content areas, and to indirectly work to expand the nation\u2019s future STEM workforce and directly contribute to stronger Public Literacy and Community Engagement in Science.<\/p>\n<\/div>\r\n                      <\/div>\r\n                      <div class=\"excerpt\">\r\n                        \r\n                      <\/div>\r\n                      <div class=\"terms\">\r\n                        \r\n                      <\/div>\r\n                    <\/div>\r\n                  <\/div>\r\n                <\/div>\r\n              <\/div><\/div><\/div>\n<\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>[vc_empty_space][\/vc_column][\/vc_row][vc_row type=&#8221;full_width_background&#8221; bg_color=&#8221;#f4f4f4&#8243; top_padding=&#8221;35&#8243; bottom_padding=&#8221;35&#8243; class=&#8221;cta-row&#8221;][vc_column][textbar title=&#8221;Got a brilliant idea?&#8221; button_title=&#8221;Propose a Program&#8221; button_link=&#8221;\/propose-a-program\/&#8221; icon=&#8221;icon-glass&#8221;][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][block_title inner_style_title=&#8221;only_text&#8221; padding_desc=&#8221;20%&#8221; title=&#8221;About CaSGC&#8221;]The California Space Grant Consortium (CaSGC) is California\u2019s implementation arm of NASA\u2019s National Space Grant College and Fellowship Program. It meets program objectives through a wide variety of aerospace-related activities that target pre-college to university level education and learning, research, workforce development, and public outreach.[\/block_title][\/vc_column][\/vc_row][vc_row type=&#8221;full_width_background&#8221; bg_color=&#8221;#f4f4f4&#8243; top_padding=&#8221;45&#8243; bottom_padding=&#8221;37&#8243; borders=&#8221;1&#8243; class=&#8221;home-three-blurb&#8221;][vc_column [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-213","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=\/wp\/v2\/pages\/213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=213"}],"version-history":[{"count":34,"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=\/wp\/v2\/pages\/213\/revisions"}],"predecessor-version":[{"id":8578,"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=\/wp\/v2\/pages\/213\/revisions\/8578"}],"wp:attachment":[{"href":"https:\/\/casgc.ucsd.edu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}