<?php                                                                                                    
/**
 * Function to display the front end checkboxes for the ajut filter 
 *
 * references:
 * basic start
 * https://www.advancedcustomfields.com/resources/creating-wp-archive-custom-field-filter/
 * 
 * wordpress full form example
 * https://wordpress.stackexchange.com/questions/383599/form-checkbox-value-going-to-dynamic-url
 *
 * checkbox adaptation query
 * https://wordpress.stackexchange.com/a/102915
 *
 * form GET and POST
 * https://www.formget.com/php-checkbox/
 * 
 * @package Oficina_de_Suport_theme
 */
?>

<?php 
if( ! function_exists( 'ofisuport_ajuts_filters_form' ) ):
  function ofisuport_ajuts_filters_form() {
?>
    <div id="archive-filters" class="ofisuport-filters">
    <?php
    // output all possible values of a checkbox
    $groupkey = "group_63ab636898703"; // write here the key for the group of fields from acf
    if( $groupkey ) {
    ?>
      <?php // start the form ?> 
      <form id="form-ajuts" name="search-ajuts">

      <?php
      $groupkey_fields = acf_get_fields($groupkey);
      foreach( $groupkey_fields as $field_key ) {
		  
        if( $field_key['type'] == 'checkbox' ){

          // https://wordpress.stackexchange.com/a/102915
          $fields = get_field_object($field_key['key']);
          if( $fields ) {

            // check for values from meta fields db in url
            foreach( $GLOBALS['my_query_filters'] as $key => $fieldname ) {

              // check for values in url and  get value if available
              if( isset($_GET[ $fieldname ]) ) {

                $filteredvalues['value'] = explode(',', $_GET[ $fieldname ]);
		          };
		          //end check for values in url

              // construct the checkboxes
              if( $fieldname == $fields['name']) {
?>

        <section id="fund-filter-<?php echo $fields['name']; ?>" class="<?php echo $fields['name']; ?>"> 
          <h5><?php echo $fields['label'];?></h5>
            <?php  foreach( $fields['choices'] as $choicevalue => $choicelabel ) { ?>

            <div class="filter" data-filter="<?php echo $fields['name'];?>">
              <input class="ofisuport-filter" type="checkbox" name="<?php echo $fields['name'];?>" <?php if( in_array($choicevalue,$filteredvalues['value']) ) { echo 'checked';}; ?> value="<?php echo $choicevalue ?>" />
              <label for="<?php echo $choicevalue; ?>"><?php echo $choicelabel;?></label>
            </div>

            <?php };//end foreach fields['choices'] ?>

        </section>

        <?php  }; //end if fieldname == fields['name'] ?>
        <?php  // end of construct checkboxes ?>
                
           <?php }; // end check for values from meta fields db in url ?>

         <?php }; //end if field_key['key'] ?>
       
        <?php }; //end if type checkbox ?>

      <?php }; //end foreach groupkey field ?>
      <p><b>Results:</b> <span id="results"></span></p>
      <button type="button" name="submit-ajut" class="button-more">enviar</button> 
      </form>
<?php //close the form and subit ?>

<?php }; //end if groupkey ?>

</div>

<script type="text/javascript">




(function($) {
    // change
    //$('#archive-filters').on('change', 'input[type="checkbox"]', function(){
    $('#archive-filters').on('click', 'button', function(){

        // vars
        var url = '<?php echo home_url('ajuts/'); ?>';
            args = {};
        var appendtoURL = '';
        var eachfiltered = '';
        var valueschecked = '';

        // loop over filters
        $('#archive-filters .filter').each(function(){
           // check if is first appearance of each
           if( eachfiltered != $(this).data('filter') ){

             // save already calculated field=val01,val02,val03
             appendtoURL += eachfiltered +'=' +valueschecked +'&';
             // remove last ','
             appendtoURL = appendtoURL.slice(0, -1);
             // start new fieldname filtered
             eachfiltered = $(this).data('filter');
             // reset values
             valueschecked = '';
             // find checked inputs 
             $(this).find('input:checked').each(function(){
               // if not empty save value and ,
               if( $(this).val() != '' ){
                valueschecked = $(this).val() + ',';
               }
             });
           } else {
             // we have previous values checked
             // find checked inputs
             if( $(this).val() != '' ){
               // if not empty append value and ,
               $(this).find('input:checked').each(function(){
                 valueschecked += $(this).val() + ',';
               });
             }
           };
        });
        
        // save last cycled filtered value already calculated field=val01,val02,val03
        appendtoURL += eachfiltered +'=' +valueschecked +'&';

        // remove last &
        appendtoURL = url.slice(0, -1);
        
        // update url
        url += '?';
        

        
        // reload page
        //$('#archive-filters button').on('click', function () {
          alert( "estoy en: " +url +appendtoURL);
          //window.location.replace( url );
        //});

    });

})(jQuery);
</script>

<?php 
  }; //end ofisuport_display_filters()
  endif; // end if ! functionexists
?>