#!/bin/bash

JSONMAP=mapslideshowdata.json

#!/bin/bash

# Extract keys and sort them by their trailing numeric value
chunks=$(jq -r 'keys[]' $JSONMAP | sort -V)

for chunk in $chunks; do
    echo "=== Processing $chunk ==="

    # Safely evaluate and import the zoom and fade keys as true Bash arrays
    eval "$(jq -r --arg c "$chunk" '.[$c] | "zoom=(\(.zoom | map(@sh) | join(" ")))" , "fade=(\(.fade | map(@sh) | join(" ")))"' $JSONMAP)"

    # Print out the results to verify they are real arrays
    echo "Zoom array length: ${#zoom[@]}"
    echo "First zoom element: ${zoom[0]}"
    echo "All fade elements: ${fade[*]}"
    echo ""
done

CHUNK_SIZE=10
CHUNK_NAME=""
LAST_CHUNK_NAME=""
MAX_CHUNK_IDX=117
CHUNK_POS=0
for((count=0;count<1256;count++));do
    CHUNK_IDX=$(( $count/$CHUNK_SIZE ))
    CHUNK_NAME="chunk$CHUNK_IDX"

    echo "image $count : $CHUNK_NAME pos $CHUNK_POS"

    if [ "$LAST_CHUNK_NAME" != "$CHUNK_NAME" ]; then
        LAST_CHUNK_NAME=$CHUNK_NAME
        CHUNK_POS=0
    fi

    if [ $CHUNK_IDX -le $MAX_CHUNK_IDX ]; then
        if [ "$LAST_CHUNK_NAME" != "$CHUNK_NAME" ]; then
            eval "$(jq -r --arg c "$CHUNK_NAME" '.[$c] | "zoom=(\(.zoom | map(@sh) | join(" ")))" , "fade=(\(.fade | map(@sh) | join(" ")))"' $JSONMAP)"
        fi
        echo ""
        echo -n "zoom element:"
        for((i=0;i<${#zoom[@]};i++)); do
            if [ $i -eq $CHUNK_POS ]; then
                echo -n " ["${zoom[$i]}"]"
            else
                echo -n " "${zoom[$i]}
            fi
        done
        echo ""
        echo -n "fade element:"
        for((i=0;i<${#fade[@]};i++)); do
            if [ $i -eq $CHUNK_POS ]; then
                echo -n " ["${fade[$i]}"]"
            else
                echo -n " "${fade[$i]}
            fi
        done
        echo ""
    else
        echo "No eval, run random instead"
    fi
    CHUNK_POS=$(( CHUNK_POS+1 ))
done
